diff --git a/.gitattributes b/.gitattributes
index a6344aac8c09253b3b630fb776ae94478aa0275b..5c36e7fc57084f3fa7ae256050726408990382d4 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -33,3 +33,48 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text
+dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/libnethost.a filter=lfs diff=lfs merge=lfs -text
+dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/singlefilehost filter=lfs diff=lfs merge=lfs -text
+dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/netstandard.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/dotnet.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/FSharp/FSharp.Compiler.Service.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/FSharp/FSharp.Core.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/FSharp/library-packs/FSharp.Core.8.0.400.nupkg filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/FSharp/Microsoft.Build.Tasks.Core.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/FSharp/System.Configuration.ConfigurationManager.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Microsoft.Build.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Cli.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/NuGet.Packaging.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/NuGet.Protocol.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/ref/netstandard.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Roslyn/bincore/Microsoft.CodeAnalysis.CSharp.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Roslyn/bincore/Microsoft.CodeAnalysis.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Roslyn/bincore/Microsoft.CodeAnalysis.VisualBasic.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/SDKPrecomputedAssemblyReferences.cache filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.Deployment.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.CodeAnalysis.Razor.Compiler.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.CodeAnalysis.Razor.Compiler.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Newtonsoft.Json.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/PresentationBuildTasks.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.NetAnalyzers.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CodeStyle.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.CodeStyle.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.NET.Build.Tasks.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Build.Tasks.Pack.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/NuGet.Build.Tasks.Pack.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/sdk/8.0.402/TestHostNetFramework/x64/msdia140.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.Core.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.Core.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/shared/Microsoft.NETCore.App/8.0.8/libclrjit.so filter=lfs diff=lfs merge=lfs -text
+dotnet/shared/Microsoft.NETCore.App/8.0.8/libmscordaccore.so filter=lfs diff=lfs merge=lfs -text
+dotnet/shared/Microsoft.NETCore.App/8.0.8/libmscordbi.so filter=lfs diff=lfs merge=lfs -text
+dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.VisualBasic.Core.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Linq.Expressions.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Http.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Private.CoreLib.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Private.DataContractSerialization.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Private.Xml.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Reflection.Metadata.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.Json.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.RegularExpressions.dll filter=lfs diff=lfs merge=lfs -text
+dotnet/templates/8.0.8/microsoft.dotnet.web.projecttemplates.8.0.8.0.8.nupkg filter=lfs diff=lfs merge=lfs -text
diff --git a/dotnet/LICENSE.txt b/dotnet/LICENSE.txt
new file mode 100644
index 0000000000000000000000000000000000000000..984713a49622a96da110443c15477613bc12656b
--- /dev/null
+++ b/dotnet/LICENSE.txt
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright (c) .NET Foundation and Contributors
+
+All rights reserved.
+
+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.
diff --git a/dotnet/ThirdPartyNotices.txt b/dotnet/ThirdPartyNotices.txt
new file mode 100644
index 0000000000000000000000000000000000000000..237af34f098f1575b6d469e58095f919c08c7bce
--- /dev/null
+++ b/dotnet/ThirdPartyNotices.txt
@@ -0,0 +1,1822 @@
+.NET Runtime uses third-party libraries or other resources that may be
+distributed under licenses different than the .NET Runtime software.
+
+In the event that we accidentally failed to list a required notice, please
+bring it to our attention. Post an issue or email us:
+
+ dotnet@microsoft.com
+
+The attached notices are provided for information only.
+
+License notice for ASP.NET
+-------------------------------
+
+Copyright (c) .NET Foundation. All rights reserved.
+Licensed under the Apache License, Version 2.0.
+
+Available at
+https://github.com/dotnet/aspnetcore/blob/main/LICENSE.txt
+
+License notice for Slicing-by-8
+-------------------------------
+
+http://sourceforge.net/projects/slicing-by-8/
+
+Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved
+
+
+This software program is licensed subject to the BSD License, available at
+http://www.opensource.org/licenses/bsd-license.html.
+
+License notice for Unicode data
+-------------------------------
+
+https://www.unicode.org/license.html
+
+Copyright © 1991-2020 Unicode, Inc. All rights reserved.
+Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Unicode data files and any associated documentation
+(the "Data Files") or Unicode software and any associated documentation
+(the "Software") to deal in the Data Files or Software
+without restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, and/or sell copies of
+the Data Files or Software, and to permit persons to whom the Data Files
+or Software are furnished to do so, provided that either
+(a) this copyright and permission notice appear with all copies
+of the Data Files or Software, or
+(b) this copyright and permission notice appear in associated
+Documentation.
+
+THE DATA FILES AND SOFTWARE ARE 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 OF THIRD PARTY RIGHTS.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in these Data Files or Software without prior
+written authorization of the copyright holder.
+
+License notice for Zlib
+-----------------------
+
+https://github.com/madler/zlib
+https://zlib.net/zlib_license.html
+
+/* zlib.h -- interface of the 'zlib' general purpose compression library
+ version 1.2.13, October 13th, 2022
+
+ Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ Jean-loup Gailly Mark Adler
+ jloup@gzip.org madler@alumni.caltech.edu
+
+*/
+
+License notice for Mono
+-------------------------------
+
+http://www.mono-project.com/docs/about-mono/
+
+Copyright (c) .NET Foundation Contributors
+
+MIT License
+
+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.
+
+License notice for International Organization for Standardization
+-----------------------------------------------------------------
+
+Portions (C) International Organization for Standardization 1986:
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+License notice for Intel
+------------------------
+
+"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for Xamarin and Novell
+-------------------------------------
+
+Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com)
+
+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.
+
+Copyright (c) 2011 Novell, Inc (http://www.novell.com)
+
+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.
+
+Third party notice for W3C
+--------------------------
+
+"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE
+Status: This license takes effect 13 May, 2015.
+This work is being provided by the copyright holders under the following license.
+License
+By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions.
+Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications:
+The full text of this NOTICE in a location viewable to users of the redistributed or derivative work.
+Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included.
+Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)."
+Disclaimers
+THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT.
+The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders."
+
+License notice for Bit Twiddling Hacks
+--------------------------------------
+
+Bit Twiddling Hacks
+
+By Sean Eron Anderson
+seander@cs.stanford.edu
+
+Individually, the code snippets here are in the public domain (unless otherwise
+noted) — feel free to use them however you please. The aggregate collection and
+descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are
+distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and
+without even the implied warranty of merchantability or fitness for a particular
+purpose.
+
+License notice for Brotli
+--------------------------------------
+
+Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.
+
+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.
+
+compress_fragment.c:
+Copyright (c) 2011, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+decode_fuzzer.c:
+Copyright (c) 2015 The Chromium Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+
+License notice for Json.NET
+-------------------------------
+
+https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md
+
+The MIT License (MIT)
+
+Copyright (c) 2007 James Newton-King
+
+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.
+
+License notice for vectorized base64 encoding / decoding
+--------------------------------------------------------
+
+Copyright (c) 2005-2007, Nick Galbreath
+Copyright (c) 2013-2017, Alfred Klomp
+Copyright (c) 2015-2017, Wojciech Mula
+Copyright (c) 2016-2017, Matthieu Darbois
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+- Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+- Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for RFC 3492
+---------------------------
+
+The punycode implementation is based on the sample code in RFC 3492
+
+Copyright (C) The Internet Society (2003). All Rights Reserved.
+
+This document and translations of it may be copied and furnished to
+others, and derivative works that comment on or otherwise explain it
+or assist in its implementation may be prepared, copied, published
+and distributed, in whole or in part, without restriction of any
+kind, provided that the above copyright notice and this paragraph are
+included on all such copies and derivative works. However, this
+document itself may not be modified in any way, such as by removing
+the copyright notice or references to the Internet Society or other
+Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for
+copyrights defined in the Internet Standards process must be
+followed, or as required to translate it into languages other than
+English.
+
+The limited permissions granted above are perpetual and will not be
+revoked by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an
+"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Copyright(C) The Internet Society 1997. All Rights Reserved.
+
+This document and translations of it may be copied and furnished to others,
+and derivative works that comment on or otherwise explain it or assist in
+its implementation may be prepared, copied, published and distributed, in
+whole or in part, without restriction of any kind, provided that the above
+copyright notice and this paragraph are included on all such copies and
+derivative works.However, this document itself may not be modified in any
+way, such as by removing the copyright notice or references to the Internet
+Society or other Internet organizations, except as needed for the purpose of
+developing Internet standards in which case the procedures for copyrights
+defined in the Internet Standards process must be followed, or as required
+to translate it into languages other than English.
+
+The limited permissions granted above are perpetual and will not be revoked
+by the Internet Society or its successors or assigns.
+
+This document and the information contained herein is provided on an "AS IS"
+basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE
+DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
+ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY
+RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
+PARTICULAR PURPOSE.
+
+License notice for Algorithm from RFC 4122 -
+A Universally Unique IDentifier (UUID) URN Namespace
+----------------------------------------------------
+
+Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc.
+Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. &
+Digital Equipment Corporation, Maynard, Mass.
+Copyright (c) 1998 Microsoft.
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty: permission to use, copy,
+modify, and distribute this file for any purpose is hereby
+granted without fee, provided that the above copyright notices and
+this notice appears in all source code copies, and that none of
+the names of Open Software Foundation, Inc., Hewlett-Packard
+Company, Microsoft, or Digital Equipment Corporation be used in
+advertising or publicity pertaining to distribution of the software
+without specific, written prior permission. Neither Open Software
+Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital
+Equipment Corporation makes any representations about the
+suitability of this software for any purpose."
+
+License notice for The LLVM Compiler Infrastructure (Legacy License)
+--------------------------------------------------------------------
+
+Developed by:
+
+ LLVM Team
+
+ University of Illinois at Urbana-Champaign
+
+ http://llvm.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal with
+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:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimers.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimers in the
+ documentation and/or other materials provided with the distribution.
+
+ * Neither the names of the LLVM Team, University of Illinois at
+ Urbana-Champaign, nor the names of its contributors may be used to
+ endorse or promote products derived from this Software without specific
+ prior written permission.
+
+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
+CONTRIBUTORS 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 WITH THE
+SOFTWARE.
+
+License notice for Bob Jenkins
+------------------------------
+
+By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this
+code any way you wish, private, educational, or commercial. It's free.
+
+License notice for Greg Parker
+------------------------------
+
+Greg Parker gparker@cs.stanford.edu December 2000
+This code is in the public domain and may be copied or modified without
+permission.
+
+License notice for libunwind based code
+----------------------------------------
+
+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.
+
+License notice for Printing Floating-Point Numbers (Dragon4)
+------------------------------------------------------------
+
+/******************************************************************************
+ Copyright (c) 2014 Ryan Juckett
+ http://www.ryanjuckett.com/
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+
+ 3. This notice may not be removed or altered from any source
+ distribution.
+******************************************************************************/
+
+License notice for Printing Floating-point Numbers (Grisu3)
+-----------------------------------------------------------
+
+Copyright 2012 the V8 project authors. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+ * Neither the name of Google Inc. nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for xxHash
+-------------------------
+
+xxHash Library
+Copyright (c) 2012-2014, Yann Collet
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice, this
+ list of conditions and the following disclaimer in the documentation and/or
+ other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for Berkeley SoftFloat Release 3e
+------------------------------------------------
+
+https://github.com/ucb-bar/berkeley-softfloat-3
+https://github.com/ucb-bar/berkeley-softfloat-3/blob/master/COPYING.txt
+
+License for Berkeley SoftFloat Release 3e
+
+John R. Hauser
+2018 January 20
+
+The following applies to the whole of SoftFloat Release 3e as well as to
+each source file individually.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
+University of California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions, and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for xoshiro RNGs
+--------------------------------
+
+Written in 2018 by David Blackman and Sebastiano Vigna (vigna@acm.org)
+
+To the extent possible under law, the author has dedicated all copyright
+and related and neighboring rights to this software to the public domain
+worldwide. This software is distributed without any warranty.
+
+See .
+
+License for fastmod (https://github.com/lemire/fastmod)
+--------------------------------------
+
+ Copyright 2018 Daniel Lemire
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+License notice for The C++ REST SDK
+-----------------------------------
+
+C++ REST SDK
+
+The MIT License (MIT)
+
+Copyright (c) Microsoft Corporation
+
+All rights reserved.
+
+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.
+
+License notice for MessagePack-CSharp
+-------------------------------------
+
+MessagePack for C#
+
+MIT License
+
+Copyright (c) 2017 Yoshifumi Kawai
+
+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.
+
+License notice for lz4net
+-------------------------------------
+
+lz4net
+
+Copyright (c) 2013-2017, Milosz Krajewski
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for Nerdbank.Streams
+-----------------------------------
+
+The MIT License (MIT)
+
+Copyright (c) Andrew Arnott
+
+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.
+
+License notice for RapidJSON
+----------------------------
+
+Tencent is pleased to support the open source community by making RapidJSON available.
+
+Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved.
+
+Licensed under the MIT License (the "License"); you may not use this file except
+in compliance with the License. You may obtain a copy of the License at
+
+http://opensource.org/licenses/MIT
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+
+License notice for DirectX Math Library
+---------------------------------------
+
+https://github.com/microsoft/DirectXMath/blob/master/LICENSE
+
+ The MIT License (MIT)
+
+Copyright (c) 2011-2020 Microsoft Corp
+
+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.
+
+License notice for ldap4net
+---------------------------
+
+The MIT License (MIT)
+
+Copyright (c) 2018 Alexander Chermyanin
+
+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.
+
+License notice for vectorized sorting code
+------------------------------------------
+
+MIT License
+
+Copyright (c) 2020 Dan Shechter
+
+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.
+
+License notice for musl
+-----------------------
+
+musl as a whole is licensed under the following standard MIT license:
+
+Copyright © 2005-2020 Rich Felker, et al.
+
+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.
+
+License notice for "Faster Unsigned Division by Constants"
+----------------------------------------------------------
+
+Reference implementations of computing and using the "magic number" approach to dividing
+by constants, including codegen instructions. The unsigned division incorporates the
+"round down" optimization per ridiculous_fish.
+
+This is free and unencumbered software. Any copyright is dedicated to the Public Domain.
+
+License notice for mimalloc
+---------------------------
+
+MIT License
+
+Copyright (c) 2019 Microsoft Corporation, Daan Leijen
+
+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.
+
+License notice for Apple header files
+-------------------------------------
+
+Copyright (c) 1980, 1986, 1993
+ The Regents of the University of California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+ must display the following acknowledgement:
+ This product includes software developed by the University of
+ California, Berkeley and its contributors.
+4. Neither the name of the University nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+License notice for Angular v8.0
+--------------------------------
+The MIT License (MIT)
+=====================
+
+Copyright (c) 2010-2019 Google LLC. http://angular.io/license
+
+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.
+
+License notice for corefx
+
+License notice for BedrockFramework
+===================================
+
+MIT License
+
+Copyright (c) 2019 David Fowler
+
+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.
+
+License notice for Swashbuckle
+===================================
+
+The MIT License (MIT)
+
+Copyright (c) 2016 Richard Morris
+
+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.
+
+License notice for cli-spinners
+=============================================
+
+MIT License
+
+Copyright (c) Sindre Sorhus (https://sindresorhus.com)
+
+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.
+
+License notice for dotnet-deb-tool
+------------------------------------
+
+The MIT License (MIT)
+
+Copyright (c) .NET Foundation and Contributors
+
+All rights reserved.
+
+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.
+
+License notice for IIS-Common
+------------------------------------
+
+MIT License
+
+Copyright (c) Microsoft Corporation. All rights reserved.
+
+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
+
+License notice for IIS-Setup
+------------------------------------
+
+MIT License
+
+Copyright (c) Microsoft Corporation. All rights reserved.
+
+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
+
+License notice for LZMA SDK
+---------------------------
+
+http://7-zip.org/sdk.html
+
+LZMA SDK is placed in the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or distribute the
+original LZMA SDK code, either in source code form or as a compiled binary,
+for any purpose, commercial or non-commercial, and by any means.
+
+License notice for MonoDevelop
+------------------------------
+
+Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com)
+
+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.
+
+Copyright (c) 2011 Novell, Inc (http://www.novell.com)
+
+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.
+
+License notice for Nuget.Client
+-------------------------------
+
+Copyright (c) .NET Foundation. All rights reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+these files except in compliance with the License. You may obtain a copy of the
+License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+
+License notice for Ookie.Dialogs
+--------------------------------
+
+http://www.ookii.org/software/dialogs/
+
+Copyright © Sven Groot (Ookii.org) 2009
+All rights reserved.
+
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1) Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+2) Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+3) Neither the name of the ORGANIZATION nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for viz.js
+------------------------------------
+
+Copyright (c) 2014-2018 Michael Daines
+
+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.
+
+License notice for West Wind Live Reload ASP.NET Core Middleware
+=============================================
+
+
+
+---
+
+lz4net
+
+Copyright (c) 2013-2017, Milosz Krajewski
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+MIT License
+-----------
+
+Copyright (c) 2019-2020 West Wind Technologies
+
+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.
+
+License for fastmod (https://github.com/lemire/fastmod) and ibm-fpgen (https://github.com/nigeltao/parse-number-fxx-test-data)
+--------------------------------------
+
+ Copyright 2018 Daniel Lemire
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+License notice for Angular v8.0
+--------------------------------------------
+The MIT License (MIT)
+=====================
+
+Copyright (c) 2010-2019 Google LLC. http://angular.io/license
+
+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.
+
+License notice for corefx
+
+License notice for JavaScript queues
+-------------------------------------
+
+CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER.
+
+Statement of Purpose
+The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work").
+Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others.
+For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights.
+
+1. Copyright and Related Rights. A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following:
+the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work;
+moral rights retained by the original author(s) and/or performer(s);
+publicity and privacy rights pertaining to a person's image or likeness depicted in a Work;
+rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below;
+rights protecting the extraction, dissemination, use and reuse of data in a Work;
+database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and
+other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof.
+2. Waiver. To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose.
+3. Public License Fallback. Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose.
+4. Limitations and Disclaimers.
+a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document.
+b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law.
+c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work.
+d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work.
+
+License notice for MSBuild Locator
+-------------------------------------
+
+https://github.com/Microsoft/MSBuildLocator
+
+Copyright (c) 2018 .NET Foundation and Contributors
+
+This software is licensed subject to the MIT license, available at
+https://opensource.org/licenses/MIT
+
+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.
+
+License notice for Newtonsoft.Json
+===================================
+
+The MIT License (MIT)
+
+Copyright (c) 2007 James Newton-King
+
+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.
+
+License notice for NuGet.Client
+-------------------------------
+
+In reference to: https://github.com/dotnet/templating/blob/main/build/nuget.exe
+
+https://github.com/NuGet/NuGet.Client/blob/dev/LICENSE.txt
+
+Copyright (c) .NET Foundation. All rights reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+these files except in compliance with the License. You may obtain a copy of the
+License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+
+License notice for Roslyn Clr Heap Allocation Analyzer
+-------------------------------------
+
+https://github.com/Microsoft/RoslynClrHeapAllocationAnalyzer
+
+Copyright (c) 2018 Microsoft Corporation
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
+
+License notice for StyleCop Analyzers
+-------------------------------------
+
+The MIT License (MIT)
+
+Copyright (c) Tunnel Vision Laboratories, LLC
+
+All rights reserved.
+
+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.
+
+------------------------------------------------
+
+The MIT License (MIT)
+
+Copyright (c) .NET Foundation and Contributors
+
+All rights reserved.
+
+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.
+
+---
+
+Copyright (c) 2015, Google Inc.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+License for C# Implementation of Fast CRC Computation
+-----------------------------------------------------
+
+https://github.com/SixLabors/ImageSharp/blob/f4f689ce67ecbcc35cebddba5aacb603e6d1068a/src/ImageSharp/Formats/Png/Zlib/Crc32.cs
+
+Copyright (c) Six Labors.
+Licensed under the Apache License, Version 2.0.
+
+Available at
+https://github.com/SixLabors/ImageSharp/blob/f4f689ce67ecbcc35cebddba5aacb603e6d1068a/LICENSE
+
+License for Fast CRC Computation
+--------------------------------------
+
+https://github.com/intel/isa-l/blob/33a2d9484595c2d6516c920ce39a694c144ddf69/crc/crc32_ieee_by4.asm
+https://github.com/intel/isa-l/blob/33a2d9484595c2d6516c920ce39a694c144ddf69/crc/crc64_ecma_norm_by8.asm
+
+Copyright(c) 2011-2015 Intel Corporation All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+ * Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License for fastmod (https://github.com/lemire/fastmod), ibm-fpgen (https://github.com/nigeltao/parse-number-fxx-test-data) and fastrange (https://github.com/lemire/fastrange)
+--------------------------------------
+
+ Copyright 2018 Daniel Lemire
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+License for Jb Evain
+---------------------
+
+Copyright (c) 2006 Jb Evain (jbevain@gmail.com)
+
+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.
+
+--- Optional exception to the license ---
+
+As an exception, if, as a result of your compiling your source code, portions
+of this Software are embedded into a machine-executable object form of such
+source code, you may redistribute such embedded portions in such object form
+without including the above copyright and permission notices.
+
+License for MurmurHash3
+--------------------------------------
+
+https://github.com/aappleby/smhasher/blob/master/src/MurmurHash3.cpp
+
+MurmurHash3 was written by Austin Appleby, and is placed in the public
+domain. The author hereby disclaims copyright to this source
+
+License notice for The LLVM Project
+-----------------------------------
+
+Copyright 2019 LLVM Project
+
+Licensed under the Apache License, Version 2.0 (the "License") with LLVM Exceptions;
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+https://llvm.org/LICENSE.txt
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+License for sse4-strstr (https://github.com/WojciechMula/sse4-strstr)
+--------------------------------------
+
+ Copyright (c) 2008-2016, Wojciech Mula
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License for the Teddy multi-substring searching implementation
+--------------------------------------
+
+https://github.com/BurntSushi/aho-corasick
+
+The MIT License (MIT)
+
+Copyright (c) 2015 Andrew Gallant
+
+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.
+
+License notice for amd/aocl-libm-ose
+-------------------------------
+
+Copyright (C) 2008-2020 Advanced Micro Devices, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+3. Neither the name of the copyright holder nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
+OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+
+License notice for code from The Practice of Programming
+-------------------------------
+
+Copyright (C) 1999 Lucent Technologies
+
+Excerpted from 'The Practice of Programming
+by Brian W. Kernighan and Rob Pike
+
+You may use this code for any purpose, as long as you leave the copyright notice and book citation attached.
+
+License notice for fmtlib/fmt
+-------------------------------
+
+Formatting library for C++
+
+Copyright (c) 2012 - present, Victor Zverovich
+
+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.
+
+License notice for gRPC
+===================================
+
+Copyright 2019 The gRPC Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+License notice for m-ou-se/floatconv
+-------------------------------
+
+Copyright (c) 2020 Mara Bos
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+License notice for MsQuic
+--------------------------------------
+
+Copyright (c) Microsoft Corporation.
+Licensed under the MIT License.
+
+Available at
+https://github.com/microsoft/msquic/blob/main/LICENSE
+
+License notice for vectorized hex parsing
+--------------------------------------------------------
+
+Copyright (c) 2022, Geoff Langdale
+Copyright (c) 2022, Wojciech Mula
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+- Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+- Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Notice for Euclidean Affine Functions and Applications to Calendar
+Algorithms
+-------------------------------
+
+Aspects of Date/Time processing based on algorithm described in "Euclidean Affine Functions and Applications to Calendar
+Algorithms", Cassio Neri and Lorenz Schneider. https://arxiv.org/pdf/2102.06959.pdf
diff --git a/dotnet/dotnet b/dotnet/dotnet
new file mode 100644
index 0000000000000000000000000000000000000000..689bff19a836a7e2c71d9c8873c0f5efc7645193
Binary files /dev/null and b/dotnet/dotnet differ
diff --git a/dotnet/host/fxr/8.0.8/libhostfxr.so b/dotnet/host/fxr/8.0.8/libhostfxr.so
new file mode 100644
index 0000000000000000000000000000000000000000..799ba6b92d6545389fcdeb6e2818bcd6afca06a9
Binary files /dev/null and b/dotnet/host/fxr/8.0.8/libhostfxr.so differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.AspNetCore.App.Analyzers.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.AspNetCore.App.Analyzers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8a0c33e46afdf5e75e644eac861817d41a3c074d
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.AspNetCore.App.Analyzers.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.AspNetCore.App.CodeFixes.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.AspNetCore.App.CodeFixes.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7d268295ac79024ba25125e10a529620b66b1baa
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.AspNetCore.App.CodeFixes.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.AspNetCore.Components.Analyzers.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.AspNetCore.Components.Analyzers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..320b0f8d6bb1c9a29da24156a4b94f9da94aca89
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.AspNetCore.Components.Analyzers.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.AspNetCore.Http.RequestDelegateGenerator.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.AspNetCore.Http.RequestDelegateGenerator.dll
new file mode 100644
index 0000000000000000000000000000000000000000..988905480f25457c6550fe0ff4971ae815f6a078
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.AspNetCore.Http.RequestDelegateGenerator.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2a65c99846560acecdf266f34e5e868f2f1b5b0a
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..43770be5edb2e6b4119728881bf37318dda13e4b
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a99149431cc2d3e2bf103b2f86701ada4dcd8ed5
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4a1c3b7c9b49407c6b7431dc9356549f68c597f9
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c4bc6ccf06b6dafef35e1f2c1c18554edab5694b
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0c7a0e210e435bd8a33cee46dfd5d5b0f6843d2b
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b6a709b6792b17436fe826d8e945f89823cb2a64
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7f2a935c2bfeb8f239de746e936a8f14372c6a8a
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8eff7adfd0fc174f173469a601fedbcd4c8fc1c5
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a88d382462eb6314cc0d8a8786b4098d8d27ed8e
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3f3fc749f4d275c0f3cacaf48c5c97b7d52e7659
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..62386f2e27828b7dec66426fc321c901ce69ab39
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..df8c56aa2f07dfe0009c2ac09b2b081d4850d66d
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9814612f13a0e8e5b0343436a7c913c3b2fcd262
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/Microsoft.Extensions.Configuration.Binder.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6d4eade24efeca33d54f02a47fea6cd2b3627970
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dc8ba3227e40c9dd99e110961481146f158c71fd
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Options.SourceGeneration.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c59959b8c11c88ca44c54d3b9d3f625bfd91cd57
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..469e8209f2413e20f8533a69f82aef78e8cf150f
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Options.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..132fcf623d369f083241a4bc8f4c97ef4fa7e6af
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..587a3338a1468517be7929184a31dd3a03a14bb8
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Options.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dea25551ad799afee1d88894751b996b688188b6
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..28a6f31a5dfad81c6358d09c98252e597f16530c
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Options.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..37e2e7f5928a5516363a6d5f1a82e0c9b87a2402
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ac296cec05b692ac8cc27ba038951d043107c042
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Options.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f7d6ea2b85cdce378e987967a8c0434d15917a34
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cb3ed29924b92affa95d1a93256091c924cea552
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Options.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2aad67170824ea02b6adcc957f8ae25a9952a5ee
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fb5b076f1c4fe3684c26bc7f0291694c4492e876
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Options.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9c52214cab5ae04601ccf764f2774f89ef2a23d0
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d0ef49e243f8ec2dd6d71ce33d3c7edb9d1c9f75
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Options.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..045fc1a2d9be95bce69249aaa1f1e118de550f38
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a518cfeab8bf354b452c405fcc6a9b16b368ab8f
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Options.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a1225ad60f999047567939057a90e3f31b611e66
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c7ece4a8d8aed8167a39d7ee8df33106ed1b8f7d
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Options.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..32376bcdc6a582d3f46857903380b436bd79d043
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f1b07663d5831a0e3b7db62b886158e3b032ce64
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Options.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2592d3cfbbf7825748275de4eeb46cf664f22aa8
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9e6351abf91688d6eb8eb6f58f4236f4f9eec154
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Options.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..788d800d8ef7fb27ccc954fe32f24b86e001d8c8
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..40237bca7d774cf0d70858fb25539a8633116cf6
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Options.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..024e9a12aa0e1bfed6550dd4a5696e0a60ea90bd
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..42618a43e4ed4cfdfb31acc0ee2ce980ea3d6c5f
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Options.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/data/FrameworkList.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/data/FrameworkList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7be67493a27fc7edec55ddbf82bf205691ba6f9f
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/data/FrameworkList.xml
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/data/PackageOverrides.txt b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/data/PackageOverrides.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c19d37a6630ebe6bd81a277b72694bfa91581076
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/data/PackageOverrides.txt
@@ -0,0 +1,138 @@
+Microsoft.Extensions.Caching.Abstractions|8.0.0
+Microsoft.Extensions.Caching.Memory|8.0.0
+Microsoft.Extensions.Configuration.Abstractions|8.0.0
+Microsoft.Extensions.Configuration.Binder|8.0.0
+Microsoft.Extensions.Configuration.CommandLine|8.0.0
+Microsoft.Extensions.Configuration|8.0.0
+Microsoft.Extensions.Configuration.EnvironmentVariables|8.0.0
+Microsoft.Extensions.Configuration.FileExtensions|8.0.0
+Microsoft.Extensions.Configuration.Ini|8.0.0
+Microsoft.Extensions.Configuration.Json|8.0.0
+Microsoft.Extensions.Configuration.UserSecrets|8.0.0
+Microsoft.Extensions.Configuration.Xml|8.0.0
+Microsoft.Extensions.DependencyInjection.Abstractions|8.0.0
+Microsoft.Extensions.DependencyInjection|8.0.0
+Microsoft.Extensions.Diagnostics.Abstractions|8.0.0
+Microsoft.Extensions.Diagnostics|8.0.0
+Microsoft.Extensions.FileProviders.Abstractions|8.0.0
+Microsoft.Extensions.FileProviders.Composite|8.0.0
+Microsoft.Extensions.FileProviders.Physical|8.0.0
+Microsoft.Extensions.FileSystemGlobbing|8.0.0
+Microsoft.Extensions.Hosting.Abstractions|8.0.0
+Microsoft.Extensions.Hosting|8.0.0
+Microsoft.Extensions.Http|8.0.0
+Microsoft.Extensions.Logging.Abstractions|8.0.0
+Microsoft.Extensions.Logging.Configuration|8.0.0
+Microsoft.Extensions.Logging.Console|8.0.0
+Microsoft.Extensions.Logging.Debug|8.0.0
+Microsoft.Extensions.Logging|8.0.0
+Microsoft.Extensions.Logging.EventLog|8.0.0
+Microsoft.Extensions.Logging.EventSource|8.0.0
+Microsoft.Extensions.Logging.TraceSource|8.0.0
+Microsoft.Extensions.Options.ConfigurationExtensions|8.0.0
+Microsoft.Extensions.Options.DataAnnotations|8.0.0
+Microsoft.Extensions.Options|8.0.0
+Microsoft.Extensions.Primitives|8.0.0
+System.Diagnostics.EventLog|8.0.0
+System.IO.Pipelines|8.0.0
+System.Security.Cryptography.Xml|8.0.0
+System.Threading.RateLimiting|8.0.0
+Microsoft.AspNetCore.Antiforgery|8.0.0
+Microsoft.AspNetCore.Authentication.Abstractions|8.0.0
+Microsoft.AspNetCore.Authentication.BearerToken|8.0.0
+Microsoft.AspNetCore.Authentication.Cookies|8.0.0
+Microsoft.AspNetCore.Authentication.Core|8.0.0
+Microsoft.AspNetCore.Authentication|8.0.0
+Microsoft.AspNetCore.Authentication.OAuth|8.0.0
+Microsoft.AspNetCore.Authorization|8.0.0
+Microsoft.AspNetCore.Authorization.Policy|8.0.0
+Microsoft.AspNetCore.Components.Authorization|8.0.0
+Microsoft.AspNetCore.Components|8.0.0
+Microsoft.AspNetCore.Components.Endpoints|8.0.0
+Microsoft.AspNetCore.Components.Forms|8.0.0
+Microsoft.AspNetCore.Components.Server|8.0.0
+Microsoft.AspNetCore.Components.Web|8.0.0
+Microsoft.AspNetCore.Connections.Abstractions|8.0.0
+Microsoft.AspNetCore.CookiePolicy|8.0.0
+Microsoft.AspNetCore.Cors|8.0.0
+Microsoft.AspNetCore.Cryptography.Internal|8.0.0
+Microsoft.AspNetCore.Cryptography.KeyDerivation|8.0.0
+Microsoft.AspNetCore.DataProtection.Abstractions|8.0.0
+Microsoft.AspNetCore.DataProtection|8.0.0
+Microsoft.AspNetCore.DataProtection.Extensions|8.0.0
+Microsoft.AspNetCore.Diagnostics.Abstractions|8.0.0
+Microsoft.AspNetCore.Diagnostics|8.0.0
+Microsoft.AspNetCore.Diagnostics.HealthChecks|8.0.0
+Microsoft.AspNetCore|8.0.0
+Microsoft.AspNetCore.HostFiltering|8.0.0
+Microsoft.AspNetCore.Hosting.Abstractions|8.0.0
+Microsoft.AspNetCore.Hosting|8.0.0
+Microsoft.AspNetCore.Hosting.Server.Abstractions|8.0.0
+Microsoft.AspNetCore.Html.Abstractions|8.0.0
+Microsoft.AspNetCore.Http.Abstractions|8.0.0
+Microsoft.AspNetCore.Http.Connections.Common|8.0.0
+Microsoft.AspNetCore.Http.Connections|8.0.0
+Microsoft.AspNetCore.Http|8.0.0
+Microsoft.AspNetCore.Http.Extensions|8.0.0
+Microsoft.AspNetCore.Http.Features|8.0.0
+Microsoft.AspNetCore.Http.Results|8.0.0
+Microsoft.AspNetCore.HttpLogging|8.0.0
+Microsoft.AspNetCore.HttpOverrides|8.0.0
+Microsoft.AspNetCore.HttpsPolicy|8.0.0
+Microsoft.AspNetCore.Identity|8.0.0
+Microsoft.AspNetCore.Localization|8.0.0
+Microsoft.AspNetCore.Localization.Routing|8.0.0
+Microsoft.AspNetCore.Metadata|8.0.0
+Microsoft.AspNetCore.Mvc.Abstractions|8.0.0
+Microsoft.AspNetCore.Mvc.ApiExplorer|8.0.0
+Microsoft.AspNetCore.Mvc.Core|8.0.0
+Microsoft.AspNetCore.Mvc.Cors|8.0.0
+Microsoft.AspNetCore.Mvc.DataAnnotations|8.0.0
+Microsoft.AspNetCore.Mvc|8.0.0
+Microsoft.AspNetCore.Mvc.Formatters.Json|8.0.0
+Microsoft.AspNetCore.Mvc.Formatters.Xml|8.0.0
+Microsoft.AspNetCore.Mvc.Localization|8.0.0
+Microsoft.AspNetCore.Mvc.Razor|8.0.0
+Microsoft.AspNetCore.Mvc.RazorPages|8.0.0
+Microsoft.AspNetCore.Mvc.TagHelpers|8.0.0
+Microsoft.AspNetCore.Mvc.ViewFeatures|8.0.0
+Microsoft.AspNetCore.OutputCaching|8.0.0
+Microsoft.AspNetCore.RateLimiting|8.0.0
+Microsoft.AspNetCore.Razor|8.0.0
+Microsoft.AspNetCore.Razor.Runtime|8.0.0
+Microsoft.AspNetCore.RequestDecompression|8.0.0
+Microsoft.AspNetCore.ResponseCaching.Abstractions|8.0.0
+Microsoft.AspNetCore.ResponseCaching|8.0.0
+Microsoft.AspNetCore.ResponseCompression|8.0.0
+Microsoft.AspNetCore.Rewrite|8.0.0
+Microsoft.AspNetCore.Routing.Abstractions|8.0.0
+Microsoft.AspNetCore.Routing|8.0.0
+Microsoft.AspNetCore.Server.HttpSys|8.0.0
+Microsoft.AspNetCore.Server.IIS|8.0.0
+Microsoft.AspNetCore.Server.IISIntegration|8.0.0
+Microsoft.AspNetCore.Server.Kestrel.Core|8.0.0
+Microsoft.AspNetCore.Server.Kestrel|8.0.0
+Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes|8.0.0
+Microsoft.AspNetCore.Server.Kestrel.Transport.Quic|8.0.0
+Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets|8.0.0
+Microsoft.AspNetCore.Session|8.0.0
+Microsoft.AspNetCore.SignalR.Common|8.0.0
+Microsoft.AspNetCore.SignalR.Core|8.0.0
+Microsoft.AspNetCore.SignalR|8.0.0
+Microsoft.AspNetCore.SignalR.Protocols.Json|8.0.0
+Microsoft.AspNetCore.StaticFiles|8.0.0
+Microsoft.AspNetCore.WebSockets|8.0.0
+Microsoft.AspNetCore.WebUtilities|8.0.0
+Microsoft.Extensions.Configuration.KeyPerFile|8.0.0
+Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions|8.0.0
+Microsoft.Extensions.Diagnostics.HealthChecks|8.0.0
+Microsoft.Extensions.Features|8.0.0
+Microsoft.Extensions.FileProviders.Embedded|8.0.0
+Microsoft.Extensions.Identity.Core|8.0.0
+Microsoft.Extensions.Identity.Stores|8.0.0
+Microsoft.Extensions.Localization.Abstractions|8.0.0
+Microsoft.Extensions.Localization|8.0.0
+Microsoft.Extensions.ObjectPool|8.0.0
+Microsoft.Extensions.WebEncoders|8.0.0
+Microsoft.JSInterop|8.0.0
+Microsoft.Net.Http.Headers|8.0.0
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/data/PlatformManifest.txt b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/data/PlatformManifest.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c63f422d37c2416142a2e262f4b256f5ec8de901
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/data/PlatformManifest.txt
@@ -0,0 +1,141 @@
+aspnetcorev2_inprocess.dll|Microsoft.AspNetCore.App.Ref||18.0.23305.0
+Microsoft.AspNetCore.Antiforgery.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Authentication.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Authentication.BearerToken.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Authentication.Cookies.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Authentication.Core.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Authentication.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Authentication.OAuth.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Authorization.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Authorization.Policy.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Components.Authorization.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Components.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Components.Endpoints.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Components.Forms.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Components.Server.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Components.Web.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Connections.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.CookiePolicy.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Cors.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Cryptography.Internal.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Cryptography.KeyDerivation.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.DataProtection.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.DataProtection.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.DataProtection.Extensions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Diagnostics.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Diagnostics.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Diagnostics.HealthChecks.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.HostFiltering.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Hosting.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Hosting.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Hosting.Server.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Html.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Http.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Http.Connections.Common.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Http.Connections.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Http.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Http.Extensions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Http.Features.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Http.Results.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.HttpLogging.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.HttpOverrides.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.HttpsPolicy.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Identity.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Localization.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Localization.Routing.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Metadata.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Mvc.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Mvc.ApiExplorer.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Mvc.Core.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Mvc.Cors.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Mvc.DataAnnotations.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Mvc.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Mvc.Formatters.Json.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Mvc.Formatters.Xml.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Mvc.Localization.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Mvc.Razor.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Mvc.RazorPages.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Mvc.TagHelpers.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Mvc.ViewFeatures.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.OutputCaching.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.RateLimiting.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Razor.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Razor.Runtime.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.RequestDecompression.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.ResponseCaching.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.ResponseCaching.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.ResponseCompression.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Rewrite.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Routing.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Routing.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Server.HttpSys.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Server.IIS.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Server.IISIntegration.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Server.Kestrel.Core.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Server.Kestrel.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.Session.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.SignalR.Common.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.SignalR.Core.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.SignalR.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.SignalR.Protocols.Json.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.StaticFiles.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.WebSockets.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.AspNetCore.WebUtilities.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.Extensions.Caching.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Caching.Memory.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Configuration.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Configuration.Binder.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Configuration.CommandLine.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Configuration.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Configuration.EnvironmentVariables.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Configuration.FileExtensions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Configuration.Ini.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Configuration.Json.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Configuration.KeyPerFile.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.Extensions.Configuration.UserSecrets.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Configuration.Xml.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.DependencyInjection.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.DependencyInjection.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Diagnostics.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Diagnostics.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.Extensions.Diagnostics.HealthChecks.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.Extensions.Features.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.Extensions.FileProviders.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.FileProviders.Composite.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.FileProviders.Embedded.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.Extensions.FileProviders.Physical.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.FileSystemGlobbing.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Hosting.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Hosting.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Http.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Identity.Core.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.Extensions.Identity.Stores.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.Extensions.Localization.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.Extensions.Localization.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.Extensions.Logging.Abstractions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Logging.Configuration.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Logging.Console.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Logging.Debug.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Logging.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Logging.EventLog.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Logging.EventSource.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Logging.TraceSource.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.ObjectPool.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.Extensions.Options.ConfigurationExtensions.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Options.DataAnnotations.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Options.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.Primitives.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+Microsoft.Extensions.WebEncoders.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.JSInterop.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+Microsoft.Net.Http.Headers.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53112
+System.Diagnostics.EventLog.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+System.Diagnostics.EventLog.Messages.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|0.0.0.0
+System.IO.Pipelines.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+System.Security.Cryptography.Pkcs.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+System.Security.Cryptography.Xml.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
+System.Threading.RateLimiting.dll|Microsoft.AspNetCore.App.Ref|8.0.0.0|8.0.23.53103
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Antiforgery.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Antiforgery.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c5b59c79ea113e2a9b7b6a03cd9a35efdaf067b2
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Antiforgery.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authentication.Cookies.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authentication.Cookies.xml
new file mode 100644
index 0000000000000000000000000000000000000000..be7f95088fb128daea8877e52d7f1c82a5b41425
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authentication.Cookies.xml
@@ -0,0 +1,711 @@
+
+
+
+ Microsoft.AspNetCore.Authentication.Cookies
+
+
+
+
+ Default values related to cookie-based authentication handler
+
+
+
+
+ The default value used for CookieAuthenticationOptions.AuthenticationScheme
+
+
+
+
+ The prefix used to provide a default CookieAuthenticationOptions.CookieName
+
+
+
+
+ The default value used by CookieAuthenticationMiddleware for the
+ CookieAuthenticationOptions.LoginPath
+
+
+
+
+ The default value used by CookieAuthenticationMiddleware for the
+ CookieAuthenticationOptions.LogoutPath
+
+
+
+
+ The default value used by CookieAuthenticationMiddleware for the
+ CookieAuthenticationOptions.AccessDeniedPath
+
+
+
+
+ The default value of the CookieAuthenticationOptions.ReturnUrlParameter
+
+
+
+
+ Allows subscribing to events raised during cookie authentication.
+
+
+
+
+ Invoked to validate the principal.
+
+
+
+
+ Invoked to check if the cookie should be renewed.
+
+
+
+
+ Invoked on signing in.
+
+
+
+
+ Invoked after sign in has completed.
+
+
+
+
+ Invoked on signing out.
+
+
+
+
+ Invoked when the client needs to be redirected to the sign in url.
+
+
+
+
+ Invoked when the client needs to be redirected to the access denied url.
+
+
+
+
+ Invoked when the client is to be redirected to logout.
+
+
+
+
+ Invoked when the client is to be redirected after logout.
+
+
+
+
+ Invoked to validate the principal.
+
+ The .
+
+
+
+ Invoked to check if the cookie should be renewed.
+
+ The .
+
+
+
+ Invoked during sign in.
+
+ The .
+
+
+
+ Invoked after sign in has completed.
+
+ The .
+
+
+
+ Invoked on sign out.
+
+ The .
+
+
+
+ Invoked when the client is being redirected to the log out url.
+
+ The .
+
+
+
+ Invoked when the client is being redirected to the log in url.
+
+ The .
+
+
+
+ Invoked when the client is being redirected after log out.
+
+ The .
+
+
+
+ Invoked when the client is being redirected to the access denied url.
+
+ The .
+
+
+
+ Implementation for the cookie-based authentication handler.
+
+
+
+
+ Initializes a new instance of .
+
+ Accessor to .
+ The .
+ The .
+ The .
+
+
+
+ Initializes a new instance of .
+
+ Accessor to .
+ The .
+ The .
+
+
+
+ The handler calls methods on the events which give the application control at certain points where processing is occurring.
+ If it is not provided a default instance is supplied which does nothing when the methods are called.
+
+
+
+
+
+
+
+ Creates a new instance of the events instance.
+
+ A new instance of the events instance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Configuration options for .
+
+
+
+
+ Create an instance of the options initialized with the default values
+
+
+
+
+ Determines the settings used to create the cookie.
+
+
+
+ - The default value for cookie is .AspNetCore.Cookies.
+ This value should be changed if you change the name of the AuthenticationScheme, especially if your
+ system uses the cookie authentication handler multiple times.
+ - determines if the browser should allow the cookie to be attached to same-site or cross-site requests.
+ The default is Lax, which means the cookie is only allowed to be attached to cross-site requests using safe HTTP methods and same-site requests.
+ - determines if the browser should allow the cookie to be accessed by client-side JavaScript.
+ The default is true, which means the cookie will only be passed to HTTP requests and is not made available to JavaScript on the page.
+ - is currently ignored. Use to control lifetime of cookie authentication.
+ - defaults to .
+
+
+
+
+
+ If set this will be used by the CookieAuthenticationHandler for data protection.
+
+
+
+
+ The SlidingExpiration is set to true to instruct the handler to re-issue a new cookie with a new
+ expiration time any time it processes a request which is more than halfway through the expiration window.
+
+
+
+
+ The LoginPath property is used by the handler for the redirection target when handling ChallengeAsync.
+ The current url which is added to the LoginPath as a query string parameter named by the ReturnUrlParameter.
+ Once a request to the LoginPath grants a new SignIn identity, the ReturnUrlParameter value is used to redirect
+ the browser back to the original url.
+
+
+
+
+ If the LogoutPath is provided the handler then a request to that path will redirect based on the ReturnUrlParameter.
+
+
+
+
+ The AccessDeniedPath property is used by the handler for the redirection target when handling ForbidAsync.
+
+
+
+
+ The ReturnUrlParameter determines the name of the query string parameter which is appended by the handler
+ during a Challenge. This is also the query string parameter looked for when a request arrives on the login
+ path or logout path, in order to return to the original url after the action is performed.
+
+
+
+
+ The Provider may be assigned to an instance of an object created by the application at startup time. The handler
+ calls methods on the provider which give the application control at certain points where processing is occurring.
+ If it is not provided a default instance is supplied which does nothing when the methods are called.
+
+
+
+
+ The TicketDataFormat is used to protect and unprotect the identity and other properties which are stored in the
+ cookie value. If not provided one will be created using .
+
+
+
+
+ The component used to get cookies from the request or set them on the response.
+
+ ChunkingCookieManager will be used by default.
+
+
+
+
+ An optional container in which to store the identity across requests. When used, only a session identifier is sent
+ to the client. This can be used to mitigate potential problems with very large identities.
+
+
+
+
+
+ Controls how much time the authentication ticket stored in the cookie will remain valid from the point it is created.
+ The expiration information is stored in the protected cookie ticket. Because of that an expired cookie will be ignored
+ even if it is passed to the server after the browser should have purged it.
+
+
+ This is separate from the value of , which specifies
+ how long the browser will keep the cookie.
+
+
+
+
+
+ Context object passed to the ICookieAuthenticationEvents method SignedIn.
+
+
+
+
+ Creates a new instance of the context object.
+
+ The HTTP request context
+ The scheme data
+ Initializes Principal property
+ Initializes Properties property
+ The handler options
+
+
+
+ Context object passed to the .
+
+
+
+
+ Creates a new instance of the context object.
+
+ The HTTP request context
+ The scheme data
+ The handler options
+ Initializes Principal property
+ The authentication properties.
+ Initializes options for the authentication cookie.
+
+
+
+ The options for creating the outgoing cookie.
+ May be replace or altered during the SigningIn call.
+
+
+
+
+ Context object passed to the
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The options for creating the outgoing cookie.
+ May be replace or altered during the SigningOut call.
+
+
+
+
+ Context object passed to the CookieAuthenticationEvents OnCheckSlidingExpiration method.
+
+
+
+
+ Creates a new instance of the context object.
+
+
+
+ Contains the initial values for identity and extra data
+
+
+
+
+
+
+ The amount of time that has elapsed since the cookie was issued or renewed.
+
+
+
+
+ The amount of time left until the cookie expires.
+
+
+
+
+ If true, the cookie will be renewed. The initial value will be true if the elapsed time
+ is greater than the remaining time (e.g. more than 50% expired).
+
+
+
+
+ Context object passed to the CookieAuthenticationEvents ValidatePrincipal method.
+
+
+
+
+ Creates a new instance of the context object.
+
+
+
+ Contains the initial values for identity and extra data
+
+
+
+
+ If true, the cookie will be renewed
+
+
+
+
+ Called to replace the claims principal. The supplied principal will replace the value of the
+ Principal property, which determines the identity of the authenticated request.
+
+ The used as the replacement
+
+
+
+ Called to reject the incoming principal. This may be done if the application has determined the
+ account is no longer active, and the request should be treated as if it was anonymous.
+
+
+
+
+ This is used by the CookieAuthenticationMiddleware to process request and response cookies.
+ It is abstracted from the normal cookie APIs to allow for complex operations like chunking.
+
+
+
+
+ Retrieve a cookie of the given name from the request.
+
+
+
+
+
+
+
+ Append the given cookie to the response.
+
+
+
+
+
+
+
+
+ Append a delete cookie to the response.
+
+
+
+
+
+
+
+ This provides an abstract storage mechanic to preserve identity information on the server
+ while only sending a simple identifier key to the client. This is most commonly used to mitigate
+ issues with serializing large identities into cookies.
+
+
+
+
+ Store the identity ticket and return the associated key.
+
+ The identity information to store.
+ The key that can be used to retrieve the identity later.
+
+
+
+ Store the identity ticket and return the associated key.
+
+ The identity information to store.
+ The used to propagate notifications that the operation should be canceled.
+ The key that can be used to retrieve the identity later.
+
+
+
+ Store the identity ticket and return the associated key.
+
+ The identity information to store.
+ The associated with the current request.
+ The used to propagate notifications that the operation should be canceled.
+ The key that can be used to retrieve the identity later.
+
+
+
+ Tells the store that the given identity should be updated.
+
+
+
+
+
+
+
+ Tells the store that the given identity should be updated.
+
+
+
+ The used to propagate notifications that the operation should be canceled.
+
+
+
+
+ Tells the store that the given identity should be updated.
+
+
+
+
+ The used to propagate notifications that the operation should be canceled.
+
+
+
+
+ Retrieves an identity from the store for the given key.
+
+ The key associated with the identity.
+ The identity associated with the given key, or null if not found.
+
+
+
+ Retrieves an identity from the store for the given key.
+
+ The key associated with the identity.
+ The used to propagate notifications that the operation should be canceled.
+ The identity associated with the given key, or null if not found.
+
+
+
+ Retrieves an identity from the store for the given key.
+
+ The key associated with the identity.
+ The associated with the current request.
+ The used to propagate notifications that the operation should be canceled.
+ The identity associated with the given key, or null if not found.
+
+
+
+ Remove the identity associated with the given key.
+
+ The key associated with the identity.
+
+
+
+
+ Remove the identity associated with the given key.
+
+ The key associated with the identity.
+ The used to propagate notifications that the operation should be canceled.
+
+
+
+
+ Remove the identity associated with the given key.
+
+ The key associated with the identity.
+ The associated with the current request.
+ The used to propagate notifications that the operation should be canceled.
+
+
+
+
+ Used to setup defaults for all .
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+
+
+
+ Invoked to post configure a TOptions instance.
+
+ The name of the options instance being configured.
+ The options instance to configure.
+
+
+
+ This handles cookies that are limited by per cookie length. It breaks down long cookies for responses, and reassembles them
+ from requests.
+
+
+
+
+ The default maximum size of characters in a cookie to send back to the client.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ The maximum size of cookie to send back to the client. If a cookie exceeds this size it will be broken down into multiple
+ cookies. Set this value to null to disable this behavior. The default is 4050 characters, which is supported by all
+ common browsers.
+
+ Note that browsers may also have limits on the total size of all cookies per domain, and on the number of cookies per domain.
+
+
+
+
+ Throw if not all chunks of a cookie are available on a request for re-assembly.
+
+
+
+
+ Get the reassembled cookie. Non chunked cookies are returned normally.
+ Cookies with missing chunks just have their "chunks-XX" header returned.
+
+
+
+ The reassembled cookie, if any, or null.
+
+
+
+ Appends a new response cookie to the Set-Cookie header. If the cookie is larger than the given size limit
+ then it will be broken down into multiple cookies as follows:
+ Set-Cookie: CookieName=chunks-3; path=/
+ Set-Cookie: CookieNameC1=Segment1; path=/
+ Set-Cookie: CookieNameC2=Segment2; path=/
+ Set-Cookie: CookieNameC3=Segment3; path=/
+
+
+
+
+
+
+
+
+ Deletes the cookie with the given key by setting an expired state. If a matching chunked cookie exists on
+ the request, delete each chunk.
+
+
+
+
+
+
+
+ Extension methods to configure cookie authentication.
+
+
+
+
+ Adds cookie authentication to using the default scheme.
+ The default scheme is specified by .
+
+ Cookie authentication uses a HTTP cookie persisted in the client to perform authentication.
+
+
+ The .
+ A reference to after the operation has completed.
+
+
+
+ Adds cookie authentication to using the specified scheme.
+
+ Cookie authentication uses a HTTP cookie persisted in the client to perform authentication.
+
+
+ The .
+ The authentication scheme.
+ A reference to after the operation has completed.
+
+
+
+ Adds cookie authentication to using the default scheme.
+ The default scheme is specified by .
+
+ Cookie authentication uses a HTTP cookie persisted in the client to perform authentication.
+
+
+ The .
+ A delegate to configure .
+ A reference to after the operation has completed.
+
+
+
+ Adds cookie authentication to using the specified scheme.
+
+ Cookie authentication uses a HTTP cookie persisted in the client to perform authentication.
+
+
+ The .
+ The authentication scheme.
+ A delegate to configure .
+ A reference to after the operation has completed.
+
+
+
+ Adds cookie authentication to using the specified scheme.
+
+ Cookie authentication uses a HTTP cookie persisted in the client to perform authentication.
+
+
+ The .
+ The authentication scheme.
+ A display name for the authentication handler.
+ A delegate to configure .
+ A reference to after the operation has completed.
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authentication.Core.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authentication.Core.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dea98d98efd7e1442644f905b4989723681e8858
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authentication.Core.xml
@@ -0,0 +1,253 @@
+
+
+
+ Microsoft.AspNetCore.Authentication.Core
+
+
+
+
+ Extension methods for setting up authentication services in an .
+
+
+
+
+ Add core authentication services needed for .
+
+ The .
+ The service collection.
+
+
+
+ Add core authentication services needed for .
+
+ The .
+ Used to configure the .
+ The service collection.
+
+
+
+ Used to capture path info so redirects can be computed properly within an app.Map().
+
+
+
+
+ The original path base.
+
+
+
+
+ The original path.
+
+
+
+
+ Implementation of .
+
+
+
+
+ Constructor.
+
+ The .
+
+
+
+ The .
+
+
+
+
+ Returns the handler instance that will be used.
+
+ The context.
+ The name of the authentication scheme being handled.
+ The handler instance.
+
+
+
+ Implements .
+
+
+
+
+ Creates an instance of
+ using the specified ,
+
+ The options.
+
+
+
+ Creates an instance of
+ using the specified and .
+
+ The options.
+ The dictionary used to store authentication schemes.
+
+
+
+ Returns the scheme that will be used by default for .
+ This is typically specified via .
+ Otherwise, this will fallback to .
+
+ The scheme that will be used by default for .
+
+
+
+ Returns the scheme that will be used by default for .
+ This is typically specified via .
+ Otherwise, this will fallback to .
+
+ The scheme that will be used by default for .
+
+
+
+ Returns the scheme that will be used by default for .
+ This is typically specified via .
+ Otherwise, this will fallback to .
+
+ The scheme that will be used by default for .
+
+
+
+ Returns the scheme that will be used by default for .
+ This is typically specified via .
+ Otherwise, this will fallback to .
+
+ The scheme that will be used by default for .
+
+
+
+ Returns the scheme that will be used by default for .
+ This is typically specified via .
+ Otherwise this will fallback to if that supports sign out.
+
+ The scheme that will be used by default for .
+
+
+
+ Returns the matching the name, or null.
+
+ The name of the authenticationScheme.
+ The scheme or null if not found.
+
+
+
+ Returns the schemes in priority order for request handling.
+
+ The schemes in priority order for request handling
+
+
+
+ Registers a scheme for use by .
+
+ The scheme.
+ true if the scheme was added successfully.
+
+
+
+ Registers a scheme for use by .
+
+ The scheme.
+
+
+
+ Removes a scheme, preventing it from being used by .
+
+ The name of the authenticationScheme being removed.
+
+
+
+
+
+
+ Implements .
+
+
+
+
+ Constructor.
+
+ The .
+ The .
+ The .
+ The .
+
+
+
+ Used to lookup AuthenticationSchemes.
+
+
+
+
+ Used to resolve IAuthenticationHandler instances.
+
+
+
+
+ Used for claims transformation.
+
+
+
+
+ The .
+
+
+
+
+ Authenticate for the specified authentication scheme.
+
+ The .
+ The name of the authentication scheme.
+ The result.
+
+
+
+ Challenge the specified authentication scheme.
+
+ The .
+ The name of the authentication scheme.
+ The .
+ A task.
+
+
+
+ Forbid the specified authentication scheme.
+
+ The .
+ The name of the authentication scheme.
+ The .
+ A task.
+
+
+
+ Sign a principal in for the specified authentication scheme.
+
+ The .
+ The name of the authentication scheme.
+ The to sign in.
+ The .
+ A task.
+
+
+
+ Sign out the specified authentication scheme.
+
+ The .
+ The name of the authentication scheme.
+ The .
+ A task.
+
+
+
+ Default claims transformation is a no-op.
+
+
+
+
+ Returns the principal unchanged.
+
+ The user.
+ The principal unchanged.
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authentication.OAuth.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authentication.OAuth.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fb082fce9ac117da1e92abde32ab8da264f2e6ba
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authentication.OAuth.xml
@@ -0,0 +1,725 @@
+
+
+
+ Microsoft.AspNetCore.Authentication.OAuth
+
+
+
+
+ Infrastructure for mapping user data from a json structure to claims on the ClaimsIdentity.
+
+
+
+
+ Create a new claim manipulation action.
+
+ The value to use for Claim.Type when creating a Claim.
+ The value to use for Claim.ValueType when creating a Claim.
+
+
+
+ Gets the value to use for when creating a Claim.
+
+
+
+
+ Gets the value to use for when creating a Claim.
+
+
+
+
+ Examine the given userData JSON, determine if the requisite data is present, and optionally add it
+ as a new Claim on the ClaimsIdentity.
+
+ The source data to examine. This value may be null.
+ The identity to add Claims to.
+ The value to use for Claim.Issuer when creating a Claim.
+
+
+
+ A collection of ClaimActions used when mapping user data to Claims.
+
+
+
+
+ Remove all claim actions.
+
+
+
+
+ Remove all claim actions for the given ClaimType.
+
+ The ClaimType of maps to remove.
+
+
+
+ Add a claim action to the collection.
+
+ The claim action to add.
+
+
+
+
+
+
+ A ClaimAction that selects the value from the JSON user data by running the given Func resolver.
+
+
+
+
+ Creates a new CustomJsonClaimAction.
+
+ The value to use for Claim.Type when creating a Claim.
+ The value to use for Claim.ValueType when creating a Claim.
+ The Func that will be called to select value from the given JSON user data.
+
+
+
+ The Func that will be called to select value from the given JSON user data.
+
+
+
+
+
+
+
+ A ClaimAction that deletes all claims from the given ClaimsIdentity with the given ClaimType.
+
+
+
+
+ Creates a new DeleteClaimAction.
+
+ The ClaimType of Claims to delete.
+
+
+
+
+
+
+ A ClaimAction that selects a top level value from the json user data with the given key name and adds it as a Claim.
+ This no-ops if the key is not found or the value is empty.
+
+
+
+
+ Creates a new JsonKeyClaimAction.
+
+ The value to use for Claim.Type when creating a Claim.
+ The value to use for Claim.ValueType when creating a Claim.
+ The top level key to look for in the json user data.
+
+
+
+ The top level key to look for in the json user data.
+
+
+
+
+
+
+
+ A ClaimAction that selects a second level value from the json user data with the given top level key
+ name and second level sub key name and add it as a Claim.
+ This no-ops if the keys are not found or the value is empty.
+
+
+
+
+ Creates a new JsonSubKeyClaimAction.
+
+ The value to use for Claim.Type when creating a Claim.
+ The value to use for Claim.ValueType when creating a Claim.
+ The top level key to look for in the json user data.
+ The second level key to look for in the json user data.
+
+
+
+ The second level key to look for in the json user data.
+
+
+
+
+
+
+
+ A ClaimAction that selects all top level values from the json user data and adds them as Claims.
+ This excludes duplicate sets of names and values.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+
+
+
+ Contains information about the login session as well as the user .
+
+
+
+
+ Initializes a new .
+
+ The .
+ The .
+ The HTTP environment.
+ The authentication scheme.
+ The options used by the authentication middleware.
+ The HTTP client used by the authentication middleware
+ The tokens returned from the token endpoint.
+ The JSON-serialized user.
+
+
+
+ Gets the JSON-serialized user or an empty
+ if it is not available.
+
+
+
+
+ Gets the token response returned by the authentication service.
+
+
+
+
+ Gets the access token provided by the authentication service.
+
+
+
+
+ Gets the access token type provided by the authentication service.
+
+
+
+
+ Gets the refresh token provided by the authentication service.
+
+
+
+
+ Gets the access token expiration time.
+
+
+
+
+ Gets the backchannel used to communicate with the provider.
+
+
+
+
+ Gets the main identity exposed by the authentication ticket.
+ This property returns null when the ticket is null.
+
+
+
+
+ Examines , determine if the requisite data is present, and optionally add it
+ to .
+
+
+
+
+ Examines the specified , determine if the requisite data is present, and optionally add it
+ to .
+
+
+
+
+ Default implementation.
+
+
+
+
+ Gets or sets the function that is invoked when the CreatingTicket method is invoked.
+
+
+
+
+ Gets or sets the delegate that is invoked when the RedirectToAuthorizationEndpoint method is invoked.
+
+
+
+
+ Invoked after the provider successfully authenticates a user.
+
+ Contains information about the login session as well as the user .
+ A representing the completed operation.
+
+
+
+ Called when a Challenge causes a redirect to authorize endpoint in the OAuth handler.
+
+ Contains redirect URI and of the challenge.
+
+
+
+ for an OAuth challenge.
+
+
+
+
+ The parameter key for the "scope" argument being used for a challenge request.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+
+ The "scope" parameter value being used for a challenge request.
+
+
+
+
+ Set the "scope" parameter value.
+
+ List of scopes.
+
+
+
+ Contains information used to perform the code exchange.
+
+
+
+
+ Initializes a new .
+
+ The .
+ The code returned from the authorization endpoint.
+ The redirect uri used in the authorization request.
+
+
+
+ State for the authentication flow.
+
+
+
+
+ The code returned from the authorization endpoint.
+
+
+
+
+ The redirect uri used in the authorization request.
+
+
+
+
+ Constants used in the OAuth protocol
+
+
+
+
+ code_verifier defined in .
+
+
+
+
+ code_challenge defined in .
+
+
+
+
+ code_challenge_method defined in .
+
+
+
+
+ S256 defined in .
+
+
+
+
+ Defaults for OAuth authentication.
+
+
+
+
+ The default display name for OAuth authentication.
+
+
+
+
+ An authentication handler that supports OAuth.
+
+ The type of options.
+
+
+
+ Gets the instance used to communicate with the remote authentication provider.
+
+
+
+
+ The handler calls methods on the events which give the application control at certain points where processing is occurring.
+ If it is not provided a default instance is supplied which does nothing when the methods are called.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+
+ Creates a new instance of the events instance.
+
+ A new instance of the events instance.
+
+
+
+
+
+
+ Exchanges the authorization code for a authorization token from the remote provider.
+
+ The .
+ The response .
+
+
+
+ Creates an from the specified .
+
+ The .
+ The .
+ The .
+ The .
+
+
+
+
+
+
+ Constructs the OAuth challenge url.
+
+ The .
+ The url to redirect to once the challenge is completed.
+ The challenge url.
+
+
+
+ Format a list of OAuth scopes.
+
+ List of scopes.
+ Formatted scopes.
+
+
+
+ Format the property.
+
+ Formatted scopes.
+ Subclasses should rather override .
+
+
+
+ Configuration options OAuth.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Check that the options are valid. Should throw an exception if things are not ok.
+
+
+
+
+ Gets or sets the provider-assigned client id.
+
+
+
+
+ Gets or sets the provider-assigned client secret.
+
+
+
+
+ Gets or sets the URI where the client will be redirected to authenticate.
+
+
+
+
+ Gets or sets the URI the middleware will access to exchange the OAuth token.
+
+
+
+
+ Gets or sets the URI the middleware will access to obtain the user information.
+ This value is not used in the default implementation, it is for use in custom implementations of
+ .
+
+
+
+
+ Gets or sets the used to handle authentication events.
+
+
+
+
+ A collection of claim actions used to select values from the json user data and create Claims.
+
+
+
+
+ Gets the list of permissions to request.
+
+
+
+
+ Gets or sets the type used to secure data handled by the middleware.
+
+
+
+
+ Enables or disables the use of the Proof Key for Code Exchange (PKCE) standard. See .
+ The default value is `false` but derived handlers should enable this if their provider supports it.
+
+
+
+
+ Response from an provider for an OAuth token request.
+
+
+
+
+ Initializes a new instance .
+
+ The received JSON payload.
+
+
+
+ Creates a successful .
+
+ The received JSON payload.
+ A instance.
+
+
+
+ Creates a failed .
+
+ The error associated with the failure.
+ A instance.
+
+
+
+
+
+
+ Gets or sets the received JSON payload.
+
+
+
+
+ Gets or sets the access token issued by the OAuth provider.
+
+
+
+
+ Gets or sets the token type.
+
+
+ Typically the string “bearer”.
+
+
+
+
+ Gets or sets a refresh token that applications can use to obtain another access token if tokens can expire.
+
+
+
+
+ Gets or sets the validatity lifetime of the token in seconds.
+
+
+
+
+ The exception in the event the response was a failure.
+
+
+
+ The '{0}' option must be provided.
+
+
+ The '{0}' option must be provided.
+
+
+ An ICertificateValidator cannot be specified at the same time as an HttpMessageHandler unless it is a WebRequestHandler.
+
+
+
+ Extension methods for .
+
+
+
+
+ Select a top level value from the json user data with the given key name and add it as a Claim.
+ This no-ops if the key is not found or the value is empty.
+
+ The .
+ The value to use for Claim.Type when creating a Claim.
+ The top level key to look for in the json user data.
+
+
+
+ Select a top level value from the json user data with the given key name and add it as a Claim.
+ This no-ops if the key is not found or the value is empty.
+
+ The .
+ The value to use for Claim.Type when creating a Claim.
+ The top level key to look for in the json user data.
+ The value to use for Claim.ValueType when creating a Claim.
+
+
+
+ Select a second level value from the json user data with the given top level key name and second level sub key name and add it as a Claim.
+ This no-ops if the keys are not found or the value is empty.
+
+ The .
+ The value to use for Claim.Type when creating a Claim.
+ The top level key to look for in the json user data.
+ The second level key to look for in the json user data.
+
+
+
+ Select a second level value from the json user data with the given top level key name and second level sub key name and add it as a Claim.
+ This no-ops if the keys are not found or the value is empty.
+
+ The .
+ The value to use for Claim.Type when creating a Claim.
+ The top level key to look for in the json user data.
+ The second level key to look for in the json user data.
+ The value to use for Claim.ValueType when creating a Claim.
+
+
+
+ Run the given resolver to select a value from the json user data to add as a claim.
+ This no-ops if the returned value is empty.
+
+ The .
+ The value to use for Claim.Type when creating a Claim.
+ The Func that will be called to select value from the given json user data.
+
+
+
+ Run the given resolver to select a value from the json user data to add as a claim.
+ This no-ops if the returned value is empty.
+
+ The .
+ The value to use for Claim.Type when creating a Claim.
+ The value to use for Claim.ValueType when creating a Claim.
+ The Func that will be called to select value from the given json user data.
+
+
+
+ Clears any current ClaimsActions and maps all values from the json user data as claims, excluding duplicates.
+
+ The .
+
+
+
+ Clears any current ClaimsActions and maps all values from the json user data as claims, excluding the specified types.
+
+ The .
+ The types to exclude.
+
+
+
+ Delete all claims from the given ClaimsIdentity with the given ClaimType.
+
+ The .
+ The claim type to delete
+
+
+
+ Delete all claims from the ClaimsIdentity with the given claimTypes.
+
+ The .
+ The claim types to delete.
+
+
+
+ Extension methods to add OAuth authentication.
+
+
+
+
+ Adds OAuth 2.0 based authentication to using the specified authentication scheme.
+
+ The .
+ The authentication scheme.
+ A delegate to configure .
+ A reference to after the operation has completed.
+
+
+
+ Adds OAuth 2.0 based authentication to using the specified authentication scheme.
+
+ The .
+ The authentication scheme.
+ A display name for the authentication handler.
+ A delegate to configure .
+ A reference to after the operation has completed.
+
+
+
+ Adds OAuth 2.0 based authentication to using the specified authentication scheme.
+
+ The .
+ The authentication scheme.
+ A delegate to configure the handler specific options.
+ A reference to after the operation has completed.
+
+
+
+ Adds OAuth 2.0 based authentication to using the specified authentication scheme.
+
+ The .
+ The authentication scheme.
+ A display name for the authentication handler.
+ A delegate to configure the handler specific options.
+ A reference to after the operation has completed.
+
+
+
+ Used to setup defaults for the OAuthOptions.
+
+
+
+
+ Initializes the .
+
+ The .
+
+
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authentication.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authentication.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f496973b275598ff0b7c18abd5031379ca1bc93d
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authentication.xml
@@ -0,0 +1,1417 @@
+
+
+
+ Microsoft.AspNetCore.Authentication
+
+
+
+
+ Extension methods to add authentication capabilities to an HTTP application pipeline.
+
+
+
+
+ Adds the to the specified , which enables authentication capabilities.
+
+ The to add the middleware to.
+ A reference to this instance after the operation has completed.
+
+
+
+ Used to configure authentication
+
+
+
+
+ Initializes a new instance of .
+
+ The services being configured.
+
+
+
+ The services being configured.
+
+
+
+
+ Adds a which can be used by .
+
+ The type to configure the handler.
+ The used to handle this scheme.
+ The name of this scheme.
+ The display name of this scheme.
+ Used to configure the scheme options.
+ The builder.
+
+
+
+ Adds a which can be used by .
+
+ The type to configure the handler.
+ The used to handle this scheme.
+ The name of this scheme.
+ Used to configure the scheme options.
+ The builder.
+
+
+
+ Adds a based that supports remote authentication
+ which can be used by .
+
+ The type to configure the handler.
+ The used to handle this scheme.
+ The name of this scheme.
+ The display name of this scheme.
+ Used to configure the scheme options.
+ The builder.
+
+
+
+ Adds a based authentication handler which can be used to
+ redirect to other authentication schemes.
+
+ The name of this scheme.
+ The display name of this scheme.
+ Used to configure the scheme options.
+ The builder.
+
+
+
+ Extension methods for
+
+
+
+
+ Returns the specified object.
+
+ An instance.
+ The path to the section to be returned.
+ The specified object, or null if the requested section does not exist.
+
+
+
+ Keeps the User and AuthenticationResult consistent with each other
+
+
+
+
+ An opinionated abstraction for implementing .
+
+ The type for the options used to configure the authentication handler.
+
+
+
+ Gets or sets the asssociated with this authentication handler.
+
+
+
+
+ Gets or sets the options associated with this authentication handler.
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Gets the associated with the current request.
+
+
+
+
+ Gets the associated with the current request.
+
+
+
+
+ Gets the path as seen by the authentication middleware.
+
+
+
+
+ Gets the path base as seen by the authentication middleware.
+
+
+
+
+ Gets the .
+
+
+
+
+ Gets the .
+
+
+
+
+ Gets the .
+
+
+
+
+ Gets the current time, primarily for unit testing.
+
+
+
+
+ Gets the to detect changes to options.
+
+
+
+
+ The handler calls methods on the events which give the application control at certain points where processing is occurring.
+ If it is not provided a default instance is supplied which does nothing when the methods are called.
+
+
+
+
+ Gets the issuer that should be used when any claims are issued.
+
+
+ The ClaimsIssuer configured in , if configured, otherwise .
+
+
+
+
+ Gets the absolute current url.
+
+
+
+
+ Initializes a new instance of .
+
+ The monitor for the options instance.
+ The .
+ The .
+ The .
+
+
+
+ Initializes a new instance of .
+
+ The monitor for the options instance.
+ The .
+ The .
+
+
+
+ Initialize the handler, resolve the options and validate them.
+
+
+
+
+
+
+
+ Initializes the events object, called once per request by .
+
+
+
+
+ Creates a new instance of the events instance.
+
+ A new instance of the events instance.
+
+
+
+ Called after options/events have been initialized for the handler to finish initializing itself.
+
+ A task
+
+
+
+ Constructs an absolute url for the specified .
+
+ The path.
+ The absolute url.
+
+
+
+ Resolves the scheme that this authentication operation is forwarded to.
+
+ The scheme to forward. One of ForwardAuthenticate, ForwardChallenge, ForwardForbid, ForwardSignIn, or ForwardSignOut.
+ The forwarded scheme or .
+
+
+
+
+
+
+ Used to ensure HandleAuthenticateAsync is only invoked once. The subsequent calls
+ will return the same authenticate result.
+
+
+
+
+ Used to ensure HandleAuthenticateAsync is only invoked once safely. The subsequent
+ calls will return the same authentication result. Any exceptions will be converted
+ into a failed authentication result containing the exception.
+
+
+
+
+ Allows derived types to handle authentication.
+
+ The .
+
+
+
+ Override this method to handle Forbid.
+
+
+ A Task.
+
+
+
+ Override this method to deal with 401 challenge concerns, if an authentication scheme in question
+ deals an authentication interaction as part of it's request flow. (like adding a response header, or
+ changing the 401 result to 302 of a login page or external sign-in location.)
+
+
+ A Task.
+
+
+
+
+
+
+
+
+
+ Middleware that performs authentication.
+
+
+
+
+ Initializes a new instance of .
+
+ The next item in the middleware pipeline.
+ The .
+
+
+
+ Gets or sets the .
+
+
+
+
+ Invokes the middleware performing authentication.
+
+ The .
+
+
+
+ Contains the options used by the .
+
+
+
+
+ Check that the options are valid. Should throw an exception if things are not ok.
+
+
+
+
+ Checks that the options are valid for a specific scheme
+
+ The scheme being validated.
+
+
+
+ Gets or sets the issuer that should be used for any claims that are created
+
+
+
+
+ Instance used for events
+
+
+
+
+ If set, will be used as the service type to get the Events instance instead of the property.
+
+
+
+
+ If set, this specifies a default scheme that authentication handlers should forward all authentication operations to
+ by default. The default forwarding logic will check the most specific ForwardAuthenticate/Challenge/Forbid/SignIn/SignOut
+ setting first, followed by checking the ForwardDefaultSelector, followed by ForwardDefault. The first non null result
+ will be used as the target scheme to forward to.
+
+
+
+
+ If set, this specifies the target scheme that this scheme should forward AuthenticateAsync calls to.
+ For example Context.AuthenticateAsync("ThisScheme") => Context.AuthenticateAsync("ForwardAuthenticateValue");
+ Set the target to the current scheme to disable forwarding and allow normal processing.
+
+
+
+
+ If set, this specifies the target scheme that this scheme should forward ChallengeAsync calls to.
+ For example Context.ChallengeAsync("ThisScheme") => Context.ChallengeAsync("ForwardChallengeValue");
+ Set the target to the current scheme to disable forwarding and allow normal processing.
+
+
+
+
+ If set, this specifies the target scheme that this scheme should forward ForbidAsync calls to.
+ For example Context.ForbidAsync("ThisScheme") => Context.ForbidAsync("ForwardForbidValue");
+ Set the target to the current scheme to disable forwarding and allow normal processing.
+
+
+
+
+ If set, this specifies the target scheme that this scheme should forward SignInAsync calls to.
+ For example Context.SignInAsync("ThisScheme") => Context.SignInAsync("ForwardSignInValue");
+ Set the target to the current scheme to disable forwarding and allow normal processing.
+
+
+
+
+ If set, this specifies the target scheme that this scheme should forward SignOutAsync calls to.
+ For example Context.SignOutAsync("ThisScheme") => Context.SignOutAsync("ForwardSignOutValue");
+ Set the target to the current scheme to disable forwarding and allow normal processing.
+
+
+
+
+ Used to select a default scheme for the current request that authentication handlers should forward all authentication operations to
+ by default. The default forwarding logic will check the most specific ForwardAuthenticate/Challenge/Forbid/SignIn/SignOut
+ setting first, followed by checking the ForwardDefaultSelector, followed by ForwardDefault. The first non null result
+ will be used as the target scheme to forward to.
+
+
+
+
+ Used for testing.
+
+
+
+
+ Provides access denied failure context information to handler providers.
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+ The .
+ The .
+
+
+
+ Gets or sets the endpoint path the user agent will be redirected to.
+ By default, this property is set to .
+
+
+
+
+ Additional state values for the authentication session.
+
+
+
+
+ Gets or sets the return URL that will be flowed up to the access denied page.
+ If is not set, this property is not used.
+
+
+
+
+ Gets or sets the parameter name that will be used to flow the return URL.
+ By default, this property is set to .
+
+
+
+
+ Base class used by other context classes.
+
+
+
+
+ Constructor.
+
+ The context.
+ The authentication scheme.
+ The authentication options associated with the scheme.
+
+
+
+ The authentication scheme.
+
+
+
+
+ Gets the authentication options associated with the scheme.
+
+
+
+
+ The context.
+
+
+
+
+ The request.
+
+
+
+
+ The response.
+
+
+
+
+ Base context type for handling authentication request.
+
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+ The .
+ The authentication scheme options.
+
+
+
+ The which is used by the handler.
+
+
+
+
+ Discontinue all processing for this request and return to the client.
+ The caller is responsible for generating the full response.
+
+
+
+
+ Discontinue processing the request in the current handler.
+
+
+
+
+ Base context for authentication events which deal with a ClaimsPrincipal.
+
+
+
+
+ Constructor.
+
+ The context.
+ The authentication scheme.
+ The authentication options associated with the scheme.
+ The authentication properties.
+
+
+
+ Gets the containing the user claims.
+
+
+
+
+ Base context for authentication events which contain .
+
+
+
+
+ Constructor.
+
+ The context.
+ The authentication scheme.
+ The authentication options associated with the scheme.
+ The authentication properties.
+
+
+
+ Gets or sets the .
+
+
+
+
+ Context passed for redirect events.
+
+
+
+
+ Creates a new context object.
+
+ The HTTP request context
+ The scheme data
+ The handler options
+ The initial redirect URI
+ The .
+
+
+
+ Gets or Sets the URI used for the redirect operation.
+
+
+
+
+ Base context for remote authentication.
+
+
+
+
+ Constructor.
+
+ The context.
+ The authentication scheme.
+ The authentication options associated with the scheme.
+ The authentication properties.
+
+
+
+ Gets the containing the user claims.
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Calls success creating a ticket with the and .
+
+
+
+
+ Indicates that authentication failed.
+
+ The exception associated with the failure.
+
+
+
+ Indicates that authentication failed.
+
+ The exception associated with the failure.
+
+
+
+ Allows subscribing to events raised during remote authentication.
+
+
+
+
+ Invoked when an access denied error was returned by the remote server.
+
+
+
+
+ Invoked when there is a remote failure.
+
+
+
+
+ Invoked after the remote ticket has been received.
+
+
+
+
+ Invoked when an access denied error was returned by the remote server.
+
+
+
+
+ Invoked when there is a remote failure.
+
+
+
+
+ Invoked after the remote ticket has been received.
+
+
+
+
+ Provides failure context information to handler providers.
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+ The .
+ The .
+ User friendly error message for the error.
+
+
+
+ User friendly error message for the error.
+
+
+
+
+ Additional state values for the authentication session.
+
+
+
+
+ Base context for events that produce AuthenticateResults.
+
+
+
+
+ Initializes a new instance of .
+
+ The context.
+ The authentication scheme.
+ The authentication options associated with the scheme.
+
+
+
+ Gets or sets the containing the user claims.
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Gets the result.
+
+
+
+
+ Calls success creating a ticket with the and .
+
+
+
+
+ Indicates that there was no information returned for this authentication scheme.
+
+
+
+
+ Indicates that there was a failure during authentication.
+
+
+
+
+
+ Indicates that there was a failure during authentication.
+
+
+
+
+
+ Provides context information to handler providers.
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+ The .
+ The .
+ The received ticket.
+
+
+
+ Gets or sets the URL to redirect to after signin.
+
+
+
+
+ Contains the result of an Authenticate call
+
+
+
+
+ Indicates that stage of authentication was directly handled by
+ user intervention and no further processing should be attempted.
+
+
+
+
+ Indicates that the default authentication logic should be
+ skipped and that the rest of the pipeline should be invoked.
+
+
+
+
+ Indicates that authentication was successful.
+
+ The ticket representing the authentication result.
+ The result.
+
+
+
+ Indicates that there was a failure during authentication.
+
+ The failure exception.
+ The result.
+
+
+
+ Indicates that there was a failure during authentication.
+
+ The failure exception.
+ Additional state values for the authentication session.
+ The result.
+
+
+
+ Indicates that there was a failure during authentication.
+
+ The failure message.
+ The result.
+
+
+
+ Indicates that there was a failure during authentication.
+
+ The failure message.
+ Additional state values for the authentication session.
+ The result.
+
+
+
+ Discontinue all processing for this request and return to the client.
+ The caller is responsible for generating the full response.
+
+ The result.
+
+
+
+ Discontinue processing the request in the current handler.
+
+ The result.
+
+
+
+ Indicates that there were no results produced during authentication.
+
+ The result.
+
+
+
+ Contract for serialzing authentication data.
+
+ The type of the model being serialized.
+
+
+
+ Serializes the specified .
+
+ The value to serialize.
+ The serialized data.
+
+
+
+ Deserializes the specified as an instance of type .
+
+ The bytes being deserialized.
+ The model.
+
+
+
+ A contract for securing data.
+
+ The type of the data to protect.
+
+
+
+ Protects the specified .
+
+ The value to protect
+ The data protected value.
+
+
+
+ Protects the specified for the specified .
+
+ The value to protect
+ The purpose.
+ A data protected value.
+
+
+
+ Unprotects the specified .
+
+ The data protected value.
+ An instance of .
+
+
+
+ Unprotects the specified using the specified .
+
+ The data protected value.
+ The purpose.
+ An instance of .
+
+
+
+ Abstracts the system clock to facilitate testing.
+
+
+
+
+ Retrieves the current system time in UTC.
+
+
+
+
+ Authentication extensions to .
+
+
+
+
+ Gets a string property value from the specified .
+
+ The .
+ The property name.
+ The property value.
+
+
+
+ PolicySchemes are used to redirect authentication methods to another scheme.
+
+
+
+
+ Initializes a new instance of .
+
+ The monitor for the options instance.
+ The .
+ The .
+ The .
+
+
+
+ Initializes a new instance of .
+
+ The monitor for the options instance.
+ The .
+ The .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Contains the options used by the .
+
+
+
+
+ A instance to secure
+ .
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+
+
+
+ A for .
+
+
+
+
+ Gets the default instance of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An opinionated abstraction for an that performs authentication using a separately hosted
+ provider.
+
+ The type for the options used to configure the authentication handler.
+
+
+
+ The authentication scheme used by default for signin.
+
+
+
+
+ The handler calls methods on the events which give the application control at certain points where processing is occurring.
+ If it is not provided a default instance is supplied which does nothing when the methods are called.
+
+
+
+
+ Initializes a new instance of .
+
+ The monitor for the options instance.
+ The .
+ The .
+ The .
+
+
+
+ Initializes a new instance of .
+
+ The monitor for the options instance.
+ The .
+ The .
+
+
+
+
+
+
+ Gets a value that determines if the current authentication request should be handled by .
+
+ to handle the operation, otherwise .
+
+
+
+ Handles the current authentication request.
+
+ if authentication was handled, otherwise .
+
+
+
+ Authenticate the user identity with the identity provider.
+
+ The method process the request on the endpoint defined by CallbackPath.
+
+
+
+
+
+
+
+
+
+
+ Produces a cookie containing a nonce used to correlate the current remote authentication request.
+
+
+
+
+
+ Validates that the current request correlates with the current remote authentication request.
+
+
+
+
+
+
+ Derived types may override this method to handle access denied errors.
+
+ The .
+ The .
+
+
+
+ Contains the options used by the .
+
+
+
+
+ Initializes a new .
+
+
+
+
+ Checks that the options are valid for a specific scheme
+
+ The scheme being validated.
+
+
+
+ Check that the options are valid. Should throw an exception if things are not ok.
+
+
+
+
+ Gets or sets timeout value in milliseconds for back channel communications with the remote identity provider.
+
+
+ The back channel timeout.
+
+
+
+
+ The HttpMessageHandler used to communicate with remote identity provider.
+ This cannot be set at the same time as BackchannelCertificateValidator unless the value
+ can be downcast to a WebRequestHandler.
+
+
+
+
+ Used to communicate with the remote identity provider.
+
+
+
+
+ Gets or sets the type used to secure data.
+
+
+
+
+ The request path within the application's base path where the user-agent will be returned.
+ The middleware will process this request when it arrives.
+
+
+
+
+ Gets or sets the optional path the user agent is redirected to if the user
+ doesn't approve the authorization demand requested by the remote server.
+ This property is not set by default. In this case, an exception is thrown
+ if an access_denied response is returned by the remote authorization server.
+
+
+
+
+ Gets or sets the name of the parameter used to convey the original location
+ of the user before the remote challenge was triggered up to the access denied page.
+ This property is only used when the is explicitly specified.
+
+
+
+
+ Gets or sets the authentication scheme corresponding to the middleware
+ responsible of persisting user's identity after a successful authentication.
+ This value typically corresponds to a cookie middleware registered in the Startup class.
+ When omitted, is used as a fallback value.
+
+
+
+
+ Gets or sets the time limit for completing the authentication flow (15 minutes by default).
+
+
+
+
+ Gets or sets a value that allows subscribing to remote authentication events.
+
+
+
+
+ Defines whether access and refresh tokens should be stored in the
+ after a successful authorization.
+ This property is set to false by default to reduce
+ the size of the final authentication cookie.
+
+
+
+
+ Determines the settings used to create the correlation cookie before the
+ cookie gets added to the response.
+
+
+
+ If an explicit is not provided, the system will automatically generate a
+ unique name that begins with .AspNetCore.Correlation..
+
+
+ - defaults to .
+ - defaults to true.
+ - defaults to true.
+ - defaults to .
+
+
+
+
+
+ A cookie builder that sets to the request path base.
+
+
+
+
+ Gets an optional value that is appended to the request path base.
+
+
+
+
+ Configures if not explicitly configured.
+
+
+
+
+
+ An implementation for .
+
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+ The .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Adds support for SignInAsync
+
+
+
+
+ Initializes a new instance of .
+
+ The monitor for the options instance.
+ The .
+ The .
+ The .
+
+
+
+ Initializes a new instance of .
+
+ The monitor for the options instance.
+ The .
+ The .
+
+
+
+
+
+
+ Override this method to handle SignIn.
+
+
+
+ A Task.
+
+
+
+ Adds support for SignOutAsync
+
+
+
+
+ Initializes a new instance of .
+
+ The monitor for the options instance.
+ The .
+ The .
+ The .
+
+
+
+ Initializes a new instance of .
+
+ The monitor for the options instance.
+ The .
+ The .
+
+
+
+
+
+
+ Override this method to handle SignOut.
+
+
+
+
+
+ Provides access to the normal system clock with precision in seconds.
+
+
+
+
+ Creates a new SystemClock that reads the current system time.
+
+
+
+ Gets a singleton instance backed by .
+
+
+
+ Retrieves the current system time in UTC.
+
+
+
+
+ Allows encoding and decoding base-64 url encoded text.
+
+
+
+
+ Encodes supplied data into Base64 and replaces any URL encodable characters into non-URL encodable
+ characters.
+
+ Data to be encoded.
+ Base64 encoded string modified with non-URL encodable characters
+
+
+
+ Decodes supplied string by replacing the non-URL encodable characters with URL encodable characters and
+ then decodes the Base64 string.
+
+ The string to be decoded.
+ The decoded data.
+
+
+
+ A instance to secure
+ .
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+
+
+
+ Serializes and deserializes instances.
+
+
+
+
+ Gets the default implementation for .
+
+
+
+
+
+
+
+
+
+
+ Writes the using the specified .
+
+ The .
+ The .
+
+
+
+ Writes the specified .
+
+ The .
+ The .
+
+
+
+
+
+
+ Reads an .
+
+ The .
+ The if the format is supported, otherwise .
+
+
+
+ Reads a from a .
+
+ The .
+ The read .
+
+
+
+ Reads a and adds it to the specified .
+
+ The .
+ The to add the claim to.
+ The read .
+
+
+ The default data protection provider may only be used when the IApplicationBuilder.Properties contains an appropriate 'host.AppName' key.
+
+
+ The state passed to UnhookAuthentication may only be the return value from HookAuthentication.
+
+
+ The AuthenticationTokenProvider's required synchronous events have not been registered.
+
+
+ The '{0}' option must be provided.
+
+
+ The '{0}' option must be provided.
+
+
+ The SignInScheme for a remote authentication handler cannot be set to itself. If it was not explicitly set, the AuthenticationOptions.DefaultSignInScheme or DefaultScheme is used.
+
+
+
+ Extension methods for setting up authentication services in an .
+
+
+
+
+ Registers services required by authentication services.
+
+ The .
+ A that can be used to further configure authentication.
+
+
+
+ Registers services required by authentication services. specifies the name of the
+ scheme to use by default when a specific scheme isn't requested.
+
+ The .
+ The default scheme used as a fallback for all other schemes.
+ A that can be used to further configure authentication.
+
+
+
+ Registers services required by authentication services and configures .
+
+ The .
+ A delegate to configure .
+ A that can be used to further configure authentication.
+
+
+
+ Helper code used when implementing authentication middleware
+
+
+
+
+ Add all ClaimsIdentities from an additional ClaimPrincipal to the ClaimsPrincipal
+ Merges a new claims principal, placing all new identities first, and eliminating
+ any empty unauthenticated identities from context.User
+
+ The containing existing .
+ The containing to be added.
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authorization.Policy.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authorization.Policy.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a3d489ed743cae544f9ba10973b75cfa949b4f36
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authorization.Policy.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authorization.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authorization.xml
new file mode 100644
index 0000000000000000000000000000000000000000..58716265e7a7a7ee326135b6eb30fc2eb8403aee
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Authorization.xml
@@ -0,0 +1,1131 @@
+
+
+
+ Microsoft.AspNetCore.Authorization
+
+
+
+
+ Specifies that the class or method that this attribute is applied to does not require authorization.
+
+
+
+ >
+
+
+
+ Implements an and
+ that takes a user specified assertion.
+
+
+
+
+ Function that is called to handle this requirement.
+
+
+
+
+ Creates a new instance of .
+
+ Function that is called to handle this requirement.
+
+
+
+ Creates a new instance of .
+
+ Function that is called to handle this requirement.
+
+
+
+ Calls to see if authorization is allowed.
+
+ The authorization information.
+
+
+
+
+
+
+ Implements an and
+ which requires at least one instance of the specified claim type, and, if allowed values are specified,
+ the claim value must be any of the allowed values.
+
+
+
+
+ Creates a new instance of .
+
+ The claim type that must be present.
+ Optional list of claim values. If specified, the claim must match one or more of these values.
+
+
+
+ Gets the claim type that must be present.
+
+
+
+
+ Gets the optional list of claim values, which, if present,
+ the claim must match.
+
+
+
+
+ Makes a decision if authorization is allowed based on the claims requirements specified.
+
+ The authorization context.
+ The requirement to evaluate.
+
+
+
+
+
+
+ Implements an and
+ which requires the current user must be authenticated.
+
+
+
+
+ Makes a decision if authorization is allowed based on a specific requirement.
+
+ The authorization context.
+ The requirement to evaluate.
+
+
+
+
+
+
+ Implements an and
+ which requires the current user name must match the specified value.
+
+
+
+
+ Constructs a new instance of .
+
+ The required name that the current user must have.
+
+
+
+ Gets the required name that the current user must have.
+
+
+
+
+ Makes a decision if authorization is allowed based on a specific requirement.
+
+ The authorization context.
+ The requirement to evaluate.
+
+
+
+
+
+
+ A helper class to provide a useful which
+ contains a name.
+
+
+
+
+ The name of this instance of .
+
+
+
+
+
+
+
+ Infrastructure class which allows an to
+ be its own .
+
+
+
+
+ Creates a new instance of .
+
+
+
+
+ Creates a new instance of .
+
+ The used.
+
+
+
+ Makes a decision if authorization is allowed.
+
+ The authorization context.
+
+
+
+ Implements an and
+ which requires at least one role claim whose value must be any of the allowed roles.
+
+
+
+
+ Creates a new instance of .
+
+ A collection of allowed roles.
+
+
+
+ Gets the collection of allowed roles.
+
+
+
+
+ Makes a decision if authorization is allowed based on a specific requirement.
+
+ The authorization context.
+ The requirement to evaluate.
+
+
+
+
+
+
+ Used to configure authorization
+
+
+
+
+ Initializes a new instance of .
+
+ The services being configured.
+
+
+
+ The services being configured.
+
+
+
+
+ Determines whether authorization handlers should be invoked after .
+ Defaults to true.
+
+ The builder.
+
+
+
+ Sets the default authorization policy. Defaults to require authenticated users.
+
+
+ The default policy used when evaluating with no policy name specified.
+
+ The builder.
+
+
+
+ Sets the fallback authorization policy used by
+ when no IAuthorizeData have been provided. As a result, the AuthorizationMiddleware uses the fallback policy
+ if there are no instances for a resource. If a resource has any
+ then they are evaluated instead of the fallback policy. By default the fallback policy is null, and usually will have no
+ effect unless you have the AuthorizationMiddleware in your pipeline. It is not used in any way by the
+ default .
+
+ The builder.
+
+
+
+ Adds a which can be used by .
+
+ The name of this policy.
+ The .>
+ The builder.
+
+
+
+ Add a policy that is built from a delegate with the provided name.
+
+ The name of the policy.
+ The delegate that will be used to build the policy.
+ The builder.
+
+
+
+ Add a policy that is built from a delegate with the provided name and used as the default policy.
+
+ The name of the default policy.
+ The default .>
+ The builder.
+
+
+
+ Add a policy that is built from a delegate with the provided name and used as the DefaultPolicy.
+
+ The name of the DefaultPolicy.
+ The delegate that will be used to build the DefaultPolicy.
+ The builder.
+
+
+
+ Add a policy that is built from a delegate with the provided name and used as the FallbackPolicy.
+
+ The name of the FallbackPolicy.
+ The Fallback .>
+ The builder.
+
+
+
+ Add a policy that is built from a delegate with the provided name and used as the FallbackPolicy.
+
+ The name of the Fallback policy.
+ The delegate that will be used to build the Fallback policy.
+ The builder.
+
+
+
+ Encapsulates a failure result of .
+
+
+
+
+ Failure was due to being called.
+
+
+
+
+ Failure was due to these requirements not being met via .
+
+
+
+
+ Allows to flow more detailed reasons for why authorization failed.
+
+
+
+
+ Return a failure due to being called.
+
+ The failure.
+
+
+
+ Return a failure due to being called.
+
+ The failure.
+
+
+
+ Return a failure due to some requirements not being met via .
+
+ The requirements that were not met.
+ The failure.
+
+
+
+ Encapsulates a reason why authorization failed.
+
+
+
+
+ Creates a new failure reason.
+
+ The handler responsible for this failure reason.
+ The message describing the failure.
+
+
+
+ A message describing the failure reason.
+
+
+
+
+ The responsible for this failure reason.
+
+
+
+
+ Base class for authorization handlers that need to be called for a specific requirement type.
+
+ The type of the requirement to handle.
+
+
+
+ Makes a decision if authorization is allowed.
+
+ The authorization context.
+
+
+
+ Makes a decision if authorization is allowed based on a specific requirement.
+
+ The authorization context.
+ The requirement to evaluate.
+
+
+
+ Base class for authorization handlers that need to be called for specific requirement and
+ resource types.
+
+ The type of the requirement to evaluate.
+ The type of the resource to evaluate.
+
+
+
+ Makes a decision if authorization is allowed.
+
+ The authorization context.
+
+
+
+ Makes a decision if authorization is allowed based on a specific requirement and resource.
+
+ The authorization context.
+ The requirement to evaluate.
+ The resource to evaluate.
+
+
+
+ Contains authorization information used by .
+
+
+
+
+ Creates a new instance of .
+
+ A collection of all the for the current authorization action.
+ A representing the current user.
+ An optional resource to evaluate the against.
+
+
+
+ The collection of all the for the current authorization action.
+
+
+
+
+ The representing the current user.
+
+
+
+
+ The optional resource to evaluate the against.
+
+
+
+
+ Gets the requirements that have not yet been marked as succeeded.
+
+
+
+
+ Gets the reasons why authorization has failed.
+
+
+
+
+ Flag indicating whether the current authorization processing has failed due to Fail being called.
+
+
+
+
+ Flag indicating whether the current authorization processing has succeeded.
+
+
+
+
+ Called to indicate will
+ never return true, even if all requirements are met.
+
+
+
+
+ Called to indicate will
+ never return true, even if all requirements are met.
+
+ Optional for why authorization failed.
+
+
+
+ Called to mark the specified as being
+ successfully evaluated.
+
+ The requirement whose evaluation has succeeded.
+
+
+
+ Provides programmatic configuration used by and .
+
+
+
+
+ Determines whether authorization handlers should be invoked after .
+ Defaults to true.
+
+
+
+
+ Gets or sets the default authorization policy. Defaults to require authenticated users.
+
+
+ The default policy used when evaluating with no policy name specified.
+
+
+
+
+ Gets or sets the fallback authorization policy used by
+ when no IAuthorizeData have been provided. As a result, the AuthorizationMiddleware uses the fallback policy
+ if there are no instances for a resource. If a resource has any
+ then they are evaluated instead of the fallback policy. By default the fallback policy is null, and usually will have no
+ effect unless you have the AuthorizationMiddleware in your pipeline. It is not used in any way by the
+ default .
+
+
+
+
+ Add an authorization policy with the provided name.
+
+ The name of the policy.
+ The authorization policy.
+
+
+
+ Add a policy that is built from a delegate with the provided name.
+
+ The name of the policy.
+ The delegate that will be used to build the policy.
+
+
+
+ Returns the policy for the specified name, or null if a policy with the name does not exist.
+
+ The name of the policy to return.
+ The policy for the specified name, or null if a policy with the name does not exist.
+
+
+
+ Represents a collection of authorization requirements and the scheme or
+ schemes they are evaluated against, all of which must succeed
+ for authorization to succeed.
+
+
+
+
+ Creates a new instance of .
+
+
+ The list of s which must succeed for
+ this policy to be successful.
+
+
+ The authentication schemes the are evaluated against.
+
+
+
+
+ Gets a readonly list of s which must succeed for
+ this policy to be successful.
+
+
+
+
+ Gets a readonly list of the authentication schemes the
+ are evaluated against.
+
+
+
+
+ Combines the specified into a single policy.
+
+ The authorization policies to combine.
+
+ A new which represents the combination of the
+ specified .
+
+
+
+
+ Combines the specified into a single policy.
+
+ The authorization policies to combine.
+
+ A new which represents the combination of the
+ specified .
+
+
+
+
+ Combines the provided by the specified
+ .
+
+ A which provides the policies to combine.
+ A collection of authorization data used to apply authorization to a resource.
+
+ A new which represents the combination of the
+ authorization policies provided by the specified .
+
+
+
+
+ Combines the provided by the specified
+ .
+
+ A which provides the policies to combine.
+ A collection of authorization data used to apply authorization to a resource.
+ A collection of policies to combine.
+
+ A new which represents the combination of the
+ authorization policies provided by the specified .
+
+
+
+
+ Used for building policies.
+
+
+
+
+ Creates a new instance of
+
+ An array of authentication schemes the policy should be evaluated against.
+
+
+
+ Creates a new instance of .
+
+ The to copy.
+
+
+
+ Gets or sets a list of s which must succeed for
+ this policy to be successful.
+
+
+
+
+ Gets or sets a list authentication schemes the
+ are evaluated against.
+
+ When not specified, the requirements are evaluated against default schemes.
+
+
+
+
+
+ Adds the specified authentication to the
+ for this instance.
+
+ The schemes to add.
+ A reference to this instance after the operation has completed.
+
+
+
+ Adds the specified to the
+ for this instance.
+
+ The authorization requirements to add.
+ A reference to this instance after the operation has completed.
+
+
+
+ Combines the specified into the current instance.
+
+ The to combine.
+ A reference to this instance after the operation has completed.
+
+
+
+ Adds a to the current instance which requires
+ that the current user has the specified claim and that the claim value must be one of the allowed values.
+
+ The claim type required.
+ Optional list of claim values. If specified, the claim must match one or more of these values.
+ A reference to this instance after the operation has completed.
+
+
+
+ Adds a to the current instance which requires
+ that the current user has the specified claim and that the claim value must be one of the allowed values.
+
+ The claim type required.
+ Optional list of claim values. If specified, the claim must match one or more of these values.
+ A reference to this instance after the operation has completed.
+
+
+
+ Adds a to the current instance which requires
+ that the current user has the specified claim.
+
+ The claim type required, with no restrictions on claim value.
+ A reference to this instance after the operation has completed.
+
+
+
+ Adds a to the current instance which enforces that the current user
+ must have at least one of the specified roles.
+
+ The allowed roles.
+ A reference to this instance after the operation has completed.
+
+
+
+ Adds a to the current instance which enforces that the current user
+ must have at least one of the specified roles.
+
+ The allowed roles.
+ A reference to this instance after the operation has completed.
+
+
+
+ Adds a to the current instance which enforces that the current user matches the specified name.
+
+ The user name the current user must have.
+ A reference to this instance after the operation has completed.
+
+
+
+ Adds to the current instance which enforces that the current user is authenticated.
+
+ A reference to this instance after the operation has completed.
+
+
+
+ Adds an to the current instance.
+
+ The handler to evaluate during authorization.
+ A reference to this instance after the operation has completed.
+
+
+
+ Adds an to the current instance.
+
+ The handler to evaluate during authorization.
+ A reference to this instance after the operation has completed.
+
+
+
+ Builds a new from the requirements
+ in this instance.
+
+
+ A new built from the requirements in this instance.
+
+
+
+
+ Encapsulates the result of .
+
+
+
+
+ True if authorization was successful.
+
+
+
+
+ Contains information about why authorization failed.
+
+
+
+
+ Returns a successful result.
+
+ A successful result.
+
+
+
+ Creates a failed authorization result.
+
+ Contains information about why authorization failed.
+ The .
+
+
+
+ Creates a failed authorization result.
+
+ The .
+
+
+
+ Extension methods for .
+
+
+
+
+ Checks if a user meets a specific requirement for the specified resource
+
+ The providing authorization.
+ The user to evaluate the policy against.
+ The resource to evaluate the policy against.
+ The requirement to evaluate the policy against.
+
+ A flag indicating whether requirement evaluation has succeeded or failed.
+ This value is true when the user fulfills the policy, otherwise false.
+
+
+
+
+ Checks if a user meets a specific authorization policy against the specified resource.
+
+ The providing authorization.
+ The user to evaluate the policy against.
+ The resource to evaluate the policy against.
+ The policy to evaluate.
+
+ A flag indicating whether policy evaluation has succeeded or failed.
+ This value is true when the user fulfills the policy, otherwise false.
+
+
+
+
+ Checks if a user meets a specific authorization policy against the specified resource.
+
+ The providing authorization.
+ The user to evaluate the policy against.
+ The policy to evaluate.
+
+ A flag indicating whether policy evaluation has succeeded or failed.
+ This value is true when the user fulfills the policy, otherwise false.
+
+
+
+
+ Checks if a user meets a specific authorization policy against the specified resource.
+
+ The providing authorization.
+ The user to evaluate the policy against.
+ The name of the policy to evaluate.
+
+ A flag indicating whether policy evaluation has succeeded or failed.
+ This value is true when the user fulfills the policy, otherwise false.
+
+
+
+
+ Specifies that the class or method that this attribute is applied to requires the specified authorization.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with the specified policy.
+
+ The name of the policy to require for authorization.
+
+
+
+ Gets or sets the policy name that determines access to the resource.
+
+
+
+
+ Gets or sets a comma delimited list of roles that are allowed to access the resource.
+
+
+
+
+ Gets or sets a comma delimited list of schemes from which user information is constructed.
+
+
+
+ >
+
+
+
+ Determines whether an authorization request was successful or not.
+
+
+
+
+ Determines whether the authorization result was successful or not.
+
+ The authorization information.
+ The .
+
+
+
+ A type used to provide a used for authorization.
+
+
+
+
+ Creates a used for authorization.
+
+ The requirements to evaluate.
+ The user to evaluate the requirements against.
+
+ An optional resource the policy should be checked with.
+ If a resource is not required for policy evaluation you may pass null as the value.
+
+ The .
+
+
+
+ The default implementation of a handler provider,
+ which provides the s for an authorization request.
+
+
+
+
+ Creates a new instance of .
+
+ The s.
+
+
+
+
+
+
+ The default implementation of a policy provider,
+ which provides a for a particular name.
+
+
+
+
+ Creates a new instance of .
+
+ The options used to configure this instance.
+
+
+
+ Gets the default authorization policy.
+
+ The default authorization policy.
+
+
+
+ Gets the fallback authorization policy.
+
+ The fallback authorization policy.
+
+
+
+ Gets a from the given
+
+ The policy name to retrieve.
+ The named .
+
+
+
+ Determines if policies from this provider can be cached, which is true only for this type.
+
+
+
+
+ The default implementation of an .
+
+
+
+
+ Creates a new instance of .
+
+ The used to provide policies.
+ The handlers used to fulfill s.
+ The logger used to log messages, warnings and errors.
+ The used to create the context to handle the authorization.
+ The used to determine if authorization was successful.
+ The used.
+
+
+
+ Checks if a user meets a specific set of requirements for the specified resource.
+
+ The user to evaluate the requirements against.
+ The resource to evaluate the requirements against.
+ The requirements to evaluate.
+
+ A flag indicating whether authorization has succeeded.
+ This value is true when the user fulfills the policy otherwise false.
+
+
+
+
+ Checks if a user meets a specific authorization policy.
+
+ The user to check the policy against.
+ The resource the policy should be checked with.
+ The name of the policy to check against a specific context.
+
+ A flag indicating whether authorization has succeeded.
+ This value is true when the user fulfills the policy otherwise false.
+
+
+
+
+ Determines whether an authorization request was successful or not.
+
+
+
+
+ Determines whether the authorization result was successful or not.
+
+ The authorization information.
+ The .
+
+
+
+ Classes implementing this interface are able to make a decision if authorization is allowed.
+
+
+
+
+ Makes a decision if authorization is allowed.
+
+ The authorization information.
+
+
+
+ A type used to provide a used for authorization.
+
+
+
+
+ Creates a used for authorization.
+
+ The requirements to evaluate.
+ The user to evaluate the requirements against.
+
+ An optional resource the policy should be checked with.
+ If a resource is not required for policy evaluation you may pass null as the value.
+
+ The .
+
+
+
+ A type which can provide the s for an authorization request.
+
+
+
+
+ Return the handlers that will be called for the authorization request.
+
+ The .
+ The list of handlers.
+
+
+
+ A type which can provide a for a particular name.
+
+
+
+
+ Gets a from the given
+
+ The policy name to retrieve.
+ The named .
+
+
+
+ Gets the default authorization policy.
+
+ The default authorization policy.
+
+
+
+ Gets the fallback authorization policy.
+
+ The fallback authorization policy.
+
+
+
+ Determines if policies from this provider can be cached, defaults to false.
+
+
+
+
+ Represents an authorization requirement.
+
+
+
+
+ Interface that can produce authorization requirements.
+
+
+
+
+ Returns that should be satisfied for authorization.
+
+ used for authorization.
+
+
+
+ Checks policy based permissions for a user
+
+
+
+
+ Checks if a user meets a specific set of requirements for the specified resource
+
+ The user to evaluate the requirements against.
+
+ An optional resource the policy should be checked with.
+ If a resource is not required for policy evaluation you may pass null as the value.
+
+ The requirements to evaluate.
+
+ A flag indicating whether authorization has succeeded.
+ This value is true when the user fulfills the policy; otherwise false.
+
+
+ Resource is an optional parameter and may be null. Please ensure that you check it is not
+ null before acting upon it.
+
+
+
+
+ Checks if a user meets a specific authorization policy
+
+ The user to check the policy against.
+
+ An optional resource the policy should be checked with.
+ If a resource is not required for policy evaluation you may pass null as the value.
+
+ The name of the policy to check against a specific context.
+
+ A flag indicating whether authorization has succeeded.
+ Returns a flag indicating whether the user, and optional resource has fulfilled the policy.
+ true when the policy has been fulfilled; otherwise false.
+
+
+ Resource is an optional parameter and may be null. Please ensure that you check it is not
+ null before acting upon it.
+
+
+
+ AuthorizationPolicy must have at least one requirement.
+
+
+ The AuthorizationPolicy named: '{0}' was not found.
+
+
+ The AuthorizationPolicy named: '{0}' was not found.
+
+
+ At least one role must be specified.
+
+
+ Throws an if is null.
+ The reference type argument to validate as non-null.
+ The name of the parameter with which corresponds.
+
+
+
+ Extension methods for setting up authorization services in an .
+
+
+
+
+ Adds authorization services to the specified .
+
+ The to add services to.
+ The so that additional calls can be chained.
+
+
+
+ Adds authorization services to the specified .
+
+ The to add services to.
+ An action delegate to configure the provided .
+ The so that additional calls can be chained.
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Components.Authorization.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Components.Authorization.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7bea939f78c413ec77afdfebe050dd1ea3c1796b
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Components.Authorization.xml
@@ -0,0 +1,183 @@
+
+
+
+ Microsoft.AspNetCore.Components.Authorization
+
+
+
+
+ Provides information about the currently authenticated user, if any.
+
+
+
+
+ Constructs an instance of .
+
+ A representing the user.
+
+
+
+ Gets a that describes the current user.
+
+
+
+
+ Provides information about the authentication state of the current user.
+
+
+
+
+ Asynchronously gets an that describes the current user.
+
+ A task that, when resolved, gives an instance that describes the current user.
+
+
+
+ An event that provides notification when the
+ has changed. For example, this event may be raised if a user logs in or out.
+
+
+
+
+ Raises the event.
+
+ A that supplies the updated .
+
+
+
+ A handler for the event.
+
+ A that supplies the updated .
+
+
+
+ Combines the behaviors of and ,
+ so that it displays the page matching the specified route but only if the user
+ is authorized to see it.
+
+ Additionally, this component supplies a cascading parameter of type ,
+ which makes the user's current authentication state available to descendants.
+
+
+
+
+ Initialize a new instance of a .
+
+
+
+
+ The content that will be displayed if the user is not authorized.
+
+
+
+
+ The content that will be displayed while asynchronous authorization is in progress.
+
+
+
+
+ The resource to which access is being controlled.
+
+
+
+
+
+
+
+ Displays differing content depending on the user's authorization status.
+
+
+
+
+ Constructs an instance of .
+
+
+
+
+ The policy name that determines whether the content can be displayed.
+
+
+
+
+ A comma delimited list of roles that are allowed to display the content.
+
+
+
+
+ Gets the data used for authorization.
+
+
+
+
+ A base class for components that display differing content depending on the user's authorization status.
+
+
+
+
+ The content that will be displayed if the user is authorized.
+
+
+
+
+ The content that will be displayed if the user is not authorized.
+
+
+
+
+ The content that will be displayed if the user is authorized.
+ If you specify a value for this parameter, do not also specify a value for .
+
+
+
+
+ The content that will be displayed while asynchronous authorization is in progress.
+
+
+
+
+ The resource to which access is being controlled.
+
+
+
+
+
+
+
+
+
+
+ Gets the data required to apply authorization rules.
+
+
+
+
+ An interface implemented by classes that can receive authentication
+ state information from the host environment.
+
+
+
+
+ Supplies updated authentication state data to the .
+
+ A task that resolves with the updated .
+
+
+
+ The content to which the authentication state should be provided.
+
+
+
+
+ Extension methods for configuring cascading authentication state on a service collection.
+
+
+
+
+ Adds cascading authentication state to the . This is equivalent to
+ having a component at the root of your component hierarchy.
+
+ The .
+ The .
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Components.Endpoints.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Components.Endpoints.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9fbd640244bfdf8c3e8571534d2831da84f358ea
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Components.Endpoints.xml
@@ -0,0 +1,878 @@
+
+
+
+ Microsoft.AspNetCore.Components.Endpoints
+
+
+
+
+ This type is not recommended for use outside of the Blazor framework.
+
+
+
+
+ This method is not recommended for use outside of the Blazor framework.
+
+
+
+
+
+
+ A provider that can register endpoints to support a specific .
+
+
+
+
+ Determines whether this supports the specified .
+
+ The .
+ true if the is supported; false otherwise.
+
+
+
+ Gets the endpoints for the specified .
+
+ The .
+ The used to configure non endpoint aware endpoints.
+ The list of endpoints this provider is registering.
+
+
+
+ Metadata that represents the component associated with an endpoint.
+
+
+
+
+ Initializes a new instance of .
+
+ The component type.
+
+
+
+ Gets the component type.
+
+
+
+
+ Options associated with the endpoints defined by the components in the
+ given
+ invocation.
+
+
+
+
+ Metadata that represents the root component associated with an endpoint.
+
+
+
+
+ Initializes a new instance of .
+
+ The component type.
+
+
+
+ Gets the component type.
+
+
+
+
+ A service that can prerender Razor Components as HTML.
+
+
+
+
+ Prerenders a Razor Component as HTML.
+
+ The .
+ The type of component to prerender. This must implement .
+ The mode in which to prerender the component.
+ Parameters for the component.
+ A task that completes with the prerendered content.
+
+
+
+ Prepares a serialized representation of any component state that is persistible within the current request.
+
+ The .
+ The .
+ A task that completes with the prerendered state content.
+
+
+
+ Gets a that should be used for calls to .
+
+
+
+
+ Provides options for configuring server-side rendering of Razor Components.
+
+
+
+
+ Gets or sets a value that determines whether to include detailed information on errors.
+
+
+
+
+ Gets or sets the maximum number of elements allowed in a form collection.
+
+
+
+
+ Gets or sets the maximum depth allowed when recursively mapping form data.
+
+
+
+
+ Gets or sets the maximum number of errors allowed when mapping form data.
+
+
+
+
+ Gets or sets the maximum size of the buffer used to read form data keys.
+
+
+
+
+ Gets or sets the lifetime of data protection validity for temporary redirection URLs
+ emitted by Blazor server-side rendering. These are only used transiently so the lifetime
+ only needs to be long enough for a client to receive the URL and begin navigation to it.
+ However, it should also be long enough to allow for clock skew across servers.
+
+
+
+ This API supports the logging infrastructure and is not intended to be used directly from your code. It is subject to change in the future.
+
+
+ This API supports the logging infrastructure and is not intended to be used directly from your code. It is subject to change in the future.
+
+
+ This API supports the logging infrastructure and is not intended to be used directly from your code. It is subject to change in the future.
+
+
+ The value '{0}' is not a valid key for '{1}'.
+
+
+ The value '{0}' is not a valid key for '{1}'.
+
+
+ The value '{0}' is not valid for '{1}'.
+
+
+ The value '{0}' is not valid for '{1}'.
+
+
+ An error occurred while trying to map a value from form data. For more details, see the 'Error' property and the 'InnerException' property.
+
+
+ The number of elements in the {0} exceeded the maximum number of '{1}' elements allowed.
+
+
+ The number of elements in the {0} exceeded the maximum number of '{1}' elements allowed.
+
+
+ The value '{0}' is not valid for '{1}'.
+
+
+ The value '{0}' is not valid for '{1}'.
+
+
+
+ Invokes a Razor component endpoint to render the given root component and populates the
+ with the given metadata (if any) to render a given
+ page.
+
+
+ Razor component endpoints provide the root component via the
+ metadata in the endpoint.
+ The page component is provided via the .
+
+
+
+
+ Invokes the Razor component endpoint.
+
+ The for the current request.
+ A that completes when the endpoint has been invoked and the component
+ has been rendered into the response.
+
+
+
+ Internal component type that acts as a root component when executing a Razor Component endpoint. It takes
+ care of rendering the component inside its hierarchy of layouts (via LayoutView) as well as converting
+ any information we want into component parameters. We could also use this to supply other data from the
+ original HttpContext as component parameters, e.g., for model binding.
+
+ It happens to be almost the same as RouteView except it doesn't supply any query parameters. We can
+ resolve that at the same time we implement support for form posts.
+
+
+
+
+ MetadataUpdateHandler event. This is invoked by the hot reload host via reflection.
+
+
+
+
+ A subclass which is also the implementation of the
+ DI service. This is the underlying mechanism shared by:
+
+ * Html.RenderComponentAsync (the earliest prerendering mechanism - a Razor HTML helper)
+ * ComponentTagHelper (the primary prerendering mechanism before .NET 8)
+ * RazorComponentResult and RazorComponentEndpoint (the primary prerendering mechanisms since .NET 8)
+
+ EndpointHtmlRenderer wraps the underlying mechanism, annotating the
+ output with prerendering markers so the content can later switch into interactive mode when used with
+ blazor.*.js. It also deals with initializing the standard component DI services once per request.
+
+
+
+
+ A component that describes a location in prerendered output where client-side code
+ should insert an interactive component.
+
+
+
+ The persistence mode could not be determined based on the rendered components. Specify a value.
+
+
+ The type '{0}' must derive from '{1}'.
+
+
+ The type '{0}' must derive from '{1}'.
+
+
+ Unable to find the required services. Please add all the required services by calling '{0}.{1}' in the application startup code.
+
+
+ Unable to find the required services. Please add all the required services by calling '{0}.{1}' in the application startup code.
+
+
+ Unsupported RenderMode '{0}'.
+
+
+ Unsupported RenderMode '{0}'.
+
+
+
+ Indicates how to collect the components that are part of a razor components
+ application.
+
+
+
+
+ Creates a builder that can be used to customize the definition of the application.
+ For example, to add or remove pages, change routes, etc.
+
+
+ The associated with the application definition.
+
+
+
+
+ Specifies the mode to use when serializing component persistent state.
+
+
+
+
+ Indicates that the serialization mode should be inferred from the current request context.
+
+
+
+
+ Indicates that the state should be persisted so that execution may resume on Server.
+
+
+
+
+ Indicates that the state should be persisted so that execution may resume on WebAssembly.
+
+
+
+
+ Represents an assembly along with the components and pages included in it.
+
+
+ This API is meant to be consumed in a source generation context.
+
+
+
+
+ Initializes a new instance of .
+ The assembly name.
+ The list of pages in the assembly.
+ The list of components in the assembly.
+
+
+
+ Gets the name of the assembly.
+
+
+
+
+ Gets the pages in the assembly.
+
+
+
+
+ Gets the components in the assembly.
+
+
+
+
+ Builder used to configure a razor component application.
+
+
+
+
+ Builds the component application definition.
+
+ The .
+
+
+
+ Indicates whether the current instance
+ has the given .
+
+ The name of the assembly to check.
+ true when present; false otherwise.
+
+
+
+ Scans the given assembly for pages and adds them to the current set of pages.
+
+ The to scan for pages.
+ The .
+
+
+
+ Removes all the discovered pages that are part of the given assembly.
+
+ The to remove.
+ The .
+
+
+
+ Adds a given assembly and associated pages and components to the build.
+
+ The assembly with the pages and components.
+ When the assembly has already been added
+ to this component application builder.
+
+
+
+
+ Combines the two instances.
+
+ The to merge.
+
+
+
+ Excludes the assemblies and other definitions in from the
+ current .
+
+
+
+
+
+ Removes the given and the associated definitions from
+ the current .
+
+ The assembly name.
+
+
+
+ Gets the for the given .
+
+ A component inside the assembly.
+
+
+
+
+ Represents a discovered component.
+
+
+
+
+ Gets or sets the assembly name where this component comes from.
+
+
+
+
+ Gets or sets the component type.
+
+
+
+
+ Gets or sets the render mode for the component.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents the list of components defined in a
+ before the configuration has finalized.
+
+
+
+
+ Metadata captured for a component during discovery.
+
+
+
+
+ Initializes a new instance of .
+
+ The component .
+
+
+
+ Gets the component .
+
+
+
+
+ Gets the component .
+
+
+
+
+ Represents the list of pages in a .
+
+
+
+
+ A razor component page .
+
+
+
+
+ Gets or sets the assembly name where this component comes from.
+
+
+
+
+ Gets or sets the route templates for this page component.
+
+
+
+
+ Gets or sets the page type.
+
+
+
+
+ Compares the given against the source for this .
+
+ The source to compare against.
+ true when it has the same source; false otherwise.
+
+
+
+
+
+
+
+
+
+
+
+
+ The definition for a page, including the type and the associated routes.
+
+
+
+
+ Initializes a new instance of .
+
+ The name for the page. Used for logging and debug purposes across the system.
+ The page .
+ The see list of routes for the page.
+ The page metadata.
+
+
+
+ Gets the page display name.
+
+
+
+
+ Gets the page type.
+
+
+
+
+ Gets the routes for the page.
+
+
+
+
+ Gets the metadata for the page.
+
+
+
+
+ The definition of a component based application.
+
+
+
+
+ Gets the list of associated with the application.
+
+ The list of pages.
+
+
+
+ Gets the list of associated with the application.
+
+
+
+
+
+
+
+
+
+
+ Builds conventions that will be used for customization of instances.
+
+
+
+
+ Gets the that is used to build the endpoints.
+
+
+
+
+
+
+
+
+
+
+ Configures which assemblies are part of the given Razor Component Application.
+
+
+
+
+ Adds the given additional assemblies to the component application.
+
+ The ."/>
+ The instances to add.
+ The .
+
+ The provided assemblies will be scanned for pages that will be mapped as endpoints.
+
+
+
+
+ Extensions to for razor component applications.
+
+
+
+
+ Maps the page components defined in the specified to the given assembly
+ and renders the component specified by when the route matches.
+
+ The .
+ An that can be used to further configure the API.
+
+
+
+ An that renders a Razor Component.
+
+
+
+
+ Constructs an instance of .
+
+ The type of the component to render. This must implement .
+
+
+
+ Constructs an instance of .
+
+ The type of the component to render. This must implement .
+ Parameters for the component.
+
+
+
+ Constructs an instance of .
+
+ The type of the component to render. This must implement .
+ Parameters for the component.
+
+
+
+ Gets the component type.
+
+
+
+
+ Gets or sets the Content-Type header for the response.
+
+
+
+
+ Gets or sets the HTTP status code.
+
+
+
+
+ Gets the parameters for the component.
+
+
+
+
+ Gets or sets a flag to indicate whether streaming rendering should be prevented. If true, the renderer will
+ wait for the component hierarchy to complete asynchronous tasks such as loading before supplying the HTML response.
+ If false, streaming rendering will be determined by the components being rendered.
+
+ The default value is false.
+
+
+
+
+ Processes this result in the given .
+
+ An associated with the current request.
+ A which will complete when execution is completed.
+
+
+
+ An that renders a Razor Component.
+
+
+
+
+ Constructs an instance of .
+
+
+
+
+ Constructs an instance of .
+
+ Parameters for the component.
+
+
+
+ Constructs an instance of .
+
+ Parameters for the component.
+
+
+
+ Flags for a member that is JSON (de)serialized.
+
+
+
+
+ Flags for a component
+
+
+
+
+ Flags for a JSInvokable type.
+
+
+
+
+ A builder that can be used to configure Razor Components.
+
+
+
+
+ Gets the .
+
+
+
+
+ Provides methods for registering services required for server-side rendering of Razor Components.
+
+
+
+
+ Registers services required for server-side rendering of Razor Components.
+
+ The service collection.
+ An to configure the provided .
+ An that can be used to further configure the Razor component services.
+
+
+
+ Helper related to generic interface definitions and implementing classes.
+
+
+
+
+ Determine whether is or implements a closed generic
+ created from .
+
+ The of interest.
+ The open generic to match. Usually an interface.
+
+ The closed generic created from that
+ is or implements. null if the two s have no such
+ relationship.
+
+
+ This method will return if is
+ typeof(KeyValuePair{,}), and is
+ typeof(KeyValuePair{string, object}).
+
+
+
+
+ Initializes a fast .
+ This constructor does not cache the helper. For caching, use .
+
+
+
+
+ Gets the backing .
+
+
+
+
+ Gets (or sets in derived types) the property name.
+
+
+
+
+ Gets the property value getter.
+
+
+
+
+ Gets the property value setter.
+
+
+
+
+ Returns the property value for the specified .
+
+ The object whose property value will be returned.
+ The property value.
+
+
+
+ Sets the property value for the specified .
+
+ The object whose property value will be set.
+ The property value.
+
+
+
+ Creates and caches fast property helpers that expose getters for every public get property on the
+ specified type.
+
+ The type to extract property accessors for.
+ A cached array of all public properties of the specified type.
+
+
+
+
+
+ Creates and caches fast property helpers that expose getters for every non-hidden get property
+ on the specified type.
+
+
+ excludes properties defined on base types that have been
+ hidden by definitions using the new keyword.
+
+
+ The type to extract property accessors for.
+
+ A cached array of all public properties of the specified type.
+
+
+
+
+ Creates a single fast property getter. The result is not cached.
+
+ propertyInfo to extract the getter for.
+ a fast getter.
+
+ This method is more memory efficient than a dynamically compiled lambda, and about the
+ same speed.
+
+
+
+
+ Creates a single fast property getter which is safe for a null input object. The result is not cached.
+
+ propertyInfo to extract the getter for.
+ a fast getter.
+
+ This method is more memory efficient than a dynamically compiled lambda, and about the
+ same speed.
+
+
+
+
+ Creates a single fast property setter for reference types. The result is not cached.
+
+ propertyInfo to extract the setter for.
+ a fast getter.
+
+ This method is more memory efficient than a dynamically compiled lambda, and about the
+ same speed. This only works for reference types.
+
+
+
+
+ Given an object, adds each instance property with a public get method as a key and its
+ associated value to a dictionary.
+
+ If the object is already an instance, then a copy
+ is returned.
+
+
+ The implementation of PropertyHelper will cache the property accessors per-type. This is
+ faster when the same type is used multiple times with ObjectToDictionary.
+
+
+
+
+
+ Creates and caches fast property helpers that expose getters for every non-hidden get property
+ on the specified type.
+
+
+ excludes properties defined on base types that have been
+ hidden by definitions using the new keyword.
+
+
+ The type to extract property accessors for.
+ The cache to store results in. Use to use the default cache. Use to avoid caching.
+ The cache to store results in. Use if the calling type does not have its own independent cache. Use to avoid caching.
+
+ A cached array of all public properties of the specified type.
+
+
+
+
+ Creates and caches fast property helpers that expose getters for every public get property on the
+ specified type.
+
+ The type to extract property accessors for.
+ The cache to store results in. Use to use the default cache. Use to avoid caching.
+ A cached array of all public properties of the specified type.
+
+
+
+
+ Invoked as part of contract for hot reload.
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Components.Server.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Components.Server.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a3fdd1439ee11b5fd2f2032345ae939c55cb4431
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Components.Server.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Components.Web.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Components.Web.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e08eebc5e10a288f5547e4cfe13600d63d00e5d1
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Components.Web.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Connections.Abstractions.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Connections.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..472a113147c04b13df50438b211bf352dd83e828
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Connections.Abstractions.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.CookiePolicy.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.CookiePolicy.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4b4d97c4a6805a4917b2c16cd2349d25ff1261bf
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.CookiePolicy.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Cors.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Cors.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a877c373bfd10c2435c9985cae59f5bd124f77cd
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Cors.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Cryptography.Internal.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Cryptography.Internal.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c477e7cf372a0c3677c7dd9047d4f8c765a26355
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Cryptography.Internal.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..77e720279549b2738d4f7d86b58132e457dcdb46
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.DataProtection.Abstractions.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.DataProtection.Abstractions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1e18b379efa735d90f9f11209e2fb7faa4181781
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.DataProtection.Abstractions.xml
@@ -0,0 +1,360 @@
+
+
+
+ Microsoft.AspNetCore.DataProtection.Abstractions
+
+
+
+
+ Helpful extension methods for data protection APIs.
+
+
+
+
+ Creates an given a list of purposes.
+
+ The from which to generate the purpose chain.
+ The list of purposes which contribute to the purpose chain. This list must
+ contain at least one element, and it may not contain null elements.
+ An tied to the provided purpose chain.
+
+ This is a convenience method which chains together several calls to
+ . See that method's
+ documentation for more information.
+
+
+
+
+ Creates an given a list of purposes.
+
+ The from which to generate the purpose chain.
+ The primary purpose used to create the .
+ An optional list of secondary purposes which contribute to the purpose chain.
+ If this list is provided it cannot contain null elements.
+ An tied to the provided purpose chain.
+
+ This is a convenience method which chains together several calls to
+ . See that method's
+ documentation for more information.
+
+
+
+
+ Retrieves an from an .
+
+ The service provider from which to retrieve the .
+ An . This method is guaranteed never to return null.
+ If no service exists in .
+
+
+
+ Retrieves an from an given a list of purposes.
+
+ An which contains the
+ from which to generate the purpose chain.
+ The list of purposes which contribute to the purpose chain. This list must
+ contain at least one element, and it may not contain null elements.
+ An tied to the provided purpose chain.
+
+ This is a convenience method which calls
+ then . See those methods'
+ documentation for more information.
+
+
+
+
+ Retrieves an from an given a list of purposes.
+
+ An which contains the
+ from which to generate the purpose chain.
+ The primary purpose used to create the .
+ An optional list of secondary purposes which contribute to the purpose chain.
+ If this list is provided it cannot contain null elements.
+ An tied to the provided purpose chain.
+
+ This is a convenience method which calls
+ then . See those methods'
+ documentation for more information.
+
+
+
+
+ Cryptographically protects a piece of plaintext data.
+
+ The data protector to use for this operation.
+ The plaintext data to protect.
+ The protected form of the plaintext data.
+
+
+
+ Cryptographically unprotects a piece of protected data.
+
+ The data protector to use for this operation.
+ The protected data to unprotect.
+ The plaintext form of the protected data.
+
+ Thrown if is invalid or malformed.
+
+
+
+
+ An interface that can be used to create instances.
+
+
+
+
+ Creates an given a purpose.
+
+
+ The purpose to be assigned to the newly-created .
+
+ An IDataProtector tied to the provided purpose.
+
+ The parameter must be unique for the intended use case; two
+ different instances created with two different
+ values will not be able to decipher each other's payloads. The parameter
+ value is not intended to be kept secret.
+
+
+
+
+ An interface that can provide data protection services.
+
+
+
+
+ Cryptographically protects a piece of plaintext data.
+
+ The plaintext data to protect.
+ The protected form of the plaintext data.
+
+
+
+ Cryptographically unprotects a piece of protected data.
+
+ The protected data to unprotect.
+ The plaintext form of the protected data.
+
+ Thrown if the protected data is invalid or malformed.
+
+
+
+
+ Provides information used to discriminate applications.
+
+
+ This type supports the data protection system and is not intended to be used
+ by consumers.
+
+
+
+
+ An identifier that uniquely discriminates this application from all other
+ applications on the machine.
+
+
+
+
+ Determines whether an exception must be homogenized by being wrapped inside a
+ CryptographicException before being rethrown.
+
+
+
+ The payload was invalid. For more information go to https://aka.ms/aspnet/dataprotectionwarning
+
+
+ The purposes collection cannot be null or empty and cannot contain null elements.
+
+
+ An error occurred during a cryptographic operation. Refer to the inner exception for more information.
+
+
+ No service for type '{0}' has been registered.
+
+
+ No service for type '{0}' has been registered.
+
+
+ Throws an if is null.
+ The reference type argument to validate as non-null.
+ The name of the parameter with which corresponds.
+
+
+ Throws an if is zero.
+ The argument to validate as non-zero.
+ The name of the parameter with which corresponds.
+
+
+ Throws an if is negative.
+ The argument to validate as non-negative.
+ The name of the parameter with which corresponds.
+
+
+ Throws an if is negative.
+ The argument to validate as non-negative.
+ The name of the parameter with which corresponds.
+
+
+ Throws an if is negative or zero.
+ The argument to validate as non-zero or non-negative.
+ The name of the parameter with which corresponds.
+
+
+ Throws an if is greater than .
+ The argument to validate as less or equal than .
+ The value to compare with .
+ The name of the parameter with which corresponds.
+
+
+ Throws an if is greater than or equal .
+ The argument to validate as less than .
+ The value to compare with .
+ The name of the parameter with which corresponds.
+
+
+ Throws an if is less than .
+ The argument to validate as greatar than or equal than .
+ The value to compare with .
+ The name of the parameter with which corresponds.
+
+
+ Throws an if is less than or equal .
+ The argument to validate as greatar than than .
+ The value to compare with .
+ The name of the parameter with which corresponds.
+
+
+
+ Invalid {0}, {1} or {2} length.
+
+
+
+
+ Malformed input: {0} is an invalid input length.
+
+
+
+
+ Invalid {0}, {1} or {2} length.
+
+
+
+
+ Malformed input: {0} is an invalid input length.
+
+
+
+
+ Contains utility APIs to assist with common encoding and decoding operations.
+
+
+
+
+ Decodes a base64url-encoded string.
+
+ The base64url-encoded input to decode.
+ The base64url-decoded form of the input.
+
+ The input must not contain any whitespace or padding characters.
+ Throws if the input is malformed.
+
+
+
+
+ Decodes a base64url-encoded substring of a given string.
+
+ A string containing the base64url-encoded input to decode.
+ The position in at which decoding should begin.
+ The number of characters in to decode.
+ The base64url-decoded form of the input.
+
+ The input must not contain any whitespace or padding characters.
+ Throws if the input is malformed.
+
+
+
+
+ Decodes a base64url-encoded into a byte[].
+
+ A string containing the base64url-encoded input to decode.
+ The position in at which decoding should begin.
+
+ Scratch buffer to hold the s to decode. Array must be large enough to hold
+ and characters as well as Base64 padding
+ characters. Content is not preserved.
+
+
+ The offset into at which to begin writing the s to decode.
+
+ The number of characters in to decode.
+ The base64url-decoded form of the .
+
+ The input must not contain any whitespace or padding characters.
+ Throws if the input is malformed.
+
+
+
+
+ Gets the minimum char[] size required for decoding of characters
+ with the method.
+
+ The number of characters to decode.
+
+ The minimum char[] size required for decoding of characters.
+
+
+
+
+ Encodes using base64url encoding.
+
+ The binary input to encode.
+ The base64url-encoded form of .
+
+
+
+ Encodes using base64url encoding.
+
+ The binary input to encode.
+ The offset into at which to begin encoding.
+ The number of bytes from to encode.
+ The base64url-encoded form of .
+
+
+
+ Encodes using base64url encoding.
+
+ The binary input to encode.
+ The offset into at which to begin encoding.
+
+ Buffer to receive the base64url-encoded form of . Array must be large enough to
+ hold characters and the full base64-encoded form of
+ , including padding characters.
+
+
+ The offset into at which to begin writing the base64url-encoded form of
+ .
+
+ The number of bytes from to encode.
+
+ The number of characters written to , less any padding characters.
+
+
+
+
+ Get the minimum output char[] size required for encoding
+ s with the method.
+
+ The number of characters to encode.
+
+ The minimum output char[] size required for encoding s.
+
+
+
+
+ Encodes using base64url encoding.
+
+ The binary input to encode.
+ The base64url-encoded form of .
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.DataProtection.Extensions.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.DataProtection.Extensions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ee740c360f3a3abbb591d6eaa59fa79f03826f30
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.DataProtection.Extensions.xml
@@ -0,0 +1,218 @@
+
+
+
+ Microsoft.AspNetCore.DataProtection.Extensions
+
+
+
+
+ Reads an unsigned 64-bit integer from
+ starting at offset . Data is read big-endian.
+
+
+
+
+ Writes an unsigned 64-bit integer to starting at
+ offset . Data is written big-endian.
+
+
+
+
+ Helpful extension methods for data protection APIs.
+
+
+
+
+ Cryptographically protects a piece of plaintext data, expiring the data after
+ the specified amount of time has elapsed.
+
+ The protector to use.
+ The plaintext data to protect.
+ The amount of time after which the payload should no longer be unprotectable.
+ The protected form of the plaintext data.
+
+
+
+ Cryptographically protects a piece of plaintext data, expiring the data at
+ the chosen time.
+
+ The protector to use.
+ The plaintext data to protect.
+ The time when this payload should expire.
+ The protected form of the plaintext data.
+
+
+
+ Cryptographically protects a piece of plaintext data, expiring the data after
+ the specified amount of time has elapsed.
+
+ The protector to use.
+ The plaintext data to protect.
+ The amount of time after which the payload should no longer be unprotectable.
+ The protected form of the plaintext data.
+
+
+
+ Converts an into an
+ so that payloads can be protected with a finite lifetime.
+
+ The to convert to a time-limited protector.
+ An .
+
+
+
+ Cryptographically unprotects a piece of protected data.
+
+ The protector to use.
+ The protected data to unprotect.
+ An 'out' parameter which upon a successful unprotect
+ operation receives the expiration date of the payload.
+ The plaintext form of the protected data.
+
+ Thrown if is invalid, malformed, or expired.
+
+
+
+
+ Contains factory methods for creating an where keys are stored
+ at a particular location on the file system.
+
+ Use these methods when not using dependency injection to provide the service to the application.
+
+
+
+ Creates a that store keys in a location based on
+ the platform and operating system.
+
+ An identifier that uniquely discriminates this application from all other
+ applications on the machine.
+
+
+
+ Creates an given a location at which to store keys.
+
+ The in which keys should be stored. This may
+ represent a directory on a local disk or a UNC share.
+
+
+
+ Creates an given a location at which to store keys and an
+ optional configuration callback.
+
+ The in which keys should be stored. This may
+ represent a directory on a local disk or a UNC share.
+ An optional callback which provides further configuration of the data protection
+ system. See for more information.
+
+
+
+ Creates a that store keys in a location based on
+ the platform and operating system and uses the given to encrypt the keys.
+
+ An identifier that uniquely discriminates this application from all other
+ applications on the machine.
+ The to be used for encryption.
+
+
+
+ Creates an given a location at which to store keys
+ and a used to encrypt the keys.
+
+ The in which keys should be stored. This may
+ represent a directory on a local disk or a UNC share.
+ The to be used for encryption.
+
+
+
+ Creates an given a location at which to store keys, an
+ optional configuration callback and a used to encrypt the keys.
+
+ The in which keys should be stored. This may
+ represent a directory on a local disk or a UNC share.
+ An optional callback which provides further configuration of the data protection
+ system. See for more information.
+ The to be used for encryption.
+
+
+
+ An interface that can provide data protection services where payloads have
+ a finite lifetime.
+
+
+ It is intended that payload lifetimes be somewhat short. Payloads protected
+ via this mechanism are not intended for long-term persistence (e.g., longer
+ than a few weeks).
+
+
+
+
+ Creates an given a purpose.
+
+
+ The purpose to be assigned to the newly-created .
+
+ An tied to the provided purpose.
+
+ The parameter must be unique for the intended use case; two
+ different instances created with two different
+ values will not be able to decipher each other's payloads. The parameter
+ value is not intended to be kept secret.
+
+
+
+
+ Cryptographically protects a piece of plaintext data, expiring the data at
+ the chosen time.
+
+ The plaintext data to protect.
+ The time when this payload should expire.
+ The protected form of the plaintext data.
+
+
+
+ Cryptographically unprotects a piece of protected data.
+
+ The protected data to unprotect.
+ An 'out' parameter which upon a successful unprotect
+ operation receives the expiration date of the payload.
+ The plaintext form of the protected data.
+
+ Thrown if is invalid, malformed, or expired.
+
+
+
+
+ Wraps an existing and appends a purpose that allows
+ protecting data with a finite lifetime.
+
+
+
+
+ Determines whether an exception must be homogenized by being wrapped inside a
+ CryptographicException before being rethrown.
+
+
+
+ An error occurred during a cryptographic operation. Refer to the inner exception for more information.
+
+
+ The payload expired at {0}.
+
+
+ The payload expired at {0}.
+
+
+ The payload is invalid. For more information go to https://aka.ms/aspnet/dataprotectionwarning
+
+
+ Throws an if is null or an if it is empty.
+ The reference type argument to validate as neither null nor empty.
+ The name of the parameter with which corresponds.
+
+
+ Throws an if is null.
+ The reference type argument to validate as non-null.
+ The name of the parameter with which corresponds.
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.DataProtection.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.DataProtection.dll
new file mode 100644
index 0000000000000000000000000000000000000000..94f9fd3cf2088cf1afce33e66b76e00202da25f0
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.DataProtection.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Diagnostics.Abstractions.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Diagnostics.Abstractions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..518d0d1dedd1b63726ec967c22b1e49f46cc3ce5
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Diagnostics.Abstractions.xml
@@ -0,0 +1,249 @@
+
+
+
+ Microsoft.AspNetCore.Diagnostics.Abstractions
+
+
+
+
+ Describes a failure compiling a specific file.
+
+
+
+
+ Initializes a new instance of .
+
+ Path for the file that produced the compilation failure.
+ Contents of the file being compiled.
+ For templated languages (such as Asp.Net Core Razor), the generated content.
+
+ One or or more instances.
+
+
+
+ Initializes a new instance of .
+
+ Path for the file that produced the compilation failure.
+ Contents of the file being compiled.
+ For templated languages (such as Asp.Net Core Razor), the generated content.
+
+ One or or more instances.
+ Summary message or instructions to fix the failure.
+
+
+
+ Path of the file that produced the compilation failure.
+
+
+
+
+ Contents of the file.
+
+
+
+
+ Contents being compiled.
+
+
+ For templated files, the represents the original content and
+ represents the transformed content. This property can be null if
+ the exception is encountered during transformation.
+
+
+
+
+ Gets a sequence of produced as a result of compilation.
+
+
+
+
+ Summary message or instructions to fix the failure.
+
+
+
+
+ A single diagnostic message.
+
+
+
+
+ Initializes a new instance of .
+
+ The error message.
+ The formatted error message.
+ The path of the file that produced the message.
+ The one-based line index for the start of the compilation error.
+ The zero-based column index for the start of the compilation error.
+ The one-based line index for the end of the compilation error.
+ The zero-based column index for the end of the compilation error.
+
+
+
+ Path of the file that produced the message.
+
+
+
+
+ Gets the error message.
+
+
+
+
+ Gets the one-based line index for the start of the compilation error.
+
+
+
+
+ Gets the zero-based column index for the start of the compilation error.
+
+
+
+
+ Gets the one-based line index for the end of the compilation error.
+
+
+
+
+ Gets the zero-based column index for the end of the compilation error.
+
+
+
+
+ Gets the formatted error message.
+
+
+
+
+ Provides context about the error currently being handled by the DeveloperExceptionPageMiddleware.
+
+
+
+
+ Initializes the ErrorContext with the specified and .
+
+
+
+
+
+
+ The .
+
+
+
+
+ The thrown during request processing.
+
+
+
+
+ Specifies the contract for an exception representing compilation failure.
+
+
+ This interface is implemented on exceptions thrown during compilation to enable consumers
+ to read compilation-related data out of the exception
+
+
+
+
+ Gets a sequence of with compilation failures.
+
+
+
+
+ Provides an extensibility point for changing the behavior of the DeveloperExceptionPageMiddleware.
+
+
+
+
+ An exception handling method that is used to either format the exception or delegate to the next handler in the chain.
+
+ The error context.
+ The next filter in the pipeline.
+ A task the completes when the handler is done executing.
+
+
+
+ Represents a feature containing the error of the original request to be examined by an exception handler.
+
+
+
+
+ The error encountered during the original request
+
+
+
+
+ The portion of the request path that identifies the requested resource. The value
+ is un-escaped.
+
+
+
+
+ Gets the selected for the original request.
+
+
+
+
+ Gets the associated with the original request.
+
+
+
+
+ Represents an exception handler with the original path of the request.
+
+
+
+
+ The portion of the request path that identifies the requested resource. The value
+ is un-escaped.
+
+
+
+
+ Represents the Status code pages feature.
+
+
+
+
+ Indicates if the status code middleware will handle responses.
+
+
+
+
+ Represents a feature containing the path details of the original request. This feature is provided by the
+ StatusCodePagesMiddleware when it re-execute the request pipeline with an alternative path to generate the
+ response body.
+
+
+
+
+ The of the original request.
+
+
+
+
+ The of the original request.
+
+
+
+
+ The of the original request.
+
+
+
+
+ The of the original response.
+
+
+
+
+ Gets the selected for the original request.
+
+
+
+
+ Gets the associated with the original request.
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Diagnostics.HealthChecks.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Diagnostics.HealthChecks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7a9f967735c70d499142d13ca16cc302bdb60886
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Diagnostics.HealthChecks.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Diagnostics.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Diagnostics.xml
new file mode 100644
index 0000000000000000000000000000000000000000..02649721b2d7fc3bbeb07dc402b60f7d16a070c5
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Diagnostics.xml
@@ -0,0 +1,1112 @@
+
+
+
+ Microsoft.AspNetCore.Diagnostics
+
+
+
+
+ extension methods for the .
+
+
+
+
+ Captures synchronous and asynchronous instances from the pipeline and generates HTML error responses.
+
+ The .
+ A reference to the after the operation has completed.
+
+ This should only be enabled in the Development environment.
+
+
+
+
+ Captures synchronous and asynchronous instances from the pipeline and generates HTML error responses.
+
+ The .
+ A that specifies options for the middleware.
+ A reference to the after the operation has completed.
+
+ This should only be enabled in the Development environment.
+
+
+
+
+ Options for the .
+
+
+
+
+ Create an instance with the default options settings.
+
+
+
+
+ Determines how many lines of code to include before and after the line of code
+ present in an exception's stack frame. Only applies when symbols are available and
+ source code referenced by the exception stack trace is present on the server.
+
+
+
+
+ Provides files containing source code used to display contextual information of an exception.
+
+
+ If null will use a .
+
+
+
+
+ Extension methods for enabling .
+
+
+
+
+ Adds a middleware to the pipeline that will catch exceptions, log them, and re-execute the request in an alternate pipeline.
+ The request will not be re-executed if the response has already started.
+
+
+
+
+
+
+ Adds a middleware to the pipeline that will catch exceptions, log them, reset the request path, and re-execute the request.
+ The request will not be re-executed if the response has already started.
+
+
+
+
+
+
+
+ Adds a middleware to the pipeline that will catch exceptions, log them, reset the request path, and re-execute the request.
+ The request will not be re-executed if the response has already started.
+
+ The .
+ The path to the endpoint that will handle the exception.
+ Whether or not to create a new scope.
+
+
+
+
+ Adds a middleware to the pipeline that will catch exceptions, log them, and re-execute the request in an alternate pipeline.
+ The request will not be re-executed if the response has already started.
+
+
+
+
+
+
+
+ Adds a middleware to the pipeline that will catch exceptions, log them, and re-execute the request in an alternate pipeline.
+ The request will not be re-executed if the response has already started.
+
+
+
+
+
+
+
+ Options for configuring the .
+
+
+
+
+ The path to the exception handling endpoint. This path will be used when executing
+ the .
+
+
+
+
+ Gets or sets whether the handler needs to create a separate scope and
+ replace it on when re-executing the request to handle an error.
+
+ The default value is .
+
+
+
+ The that will handle the exception. If this is not
+ explicitly provided, the subsequent middleware pipeline will be used by default.
+
+
+
+
+ This value controls whether the should
+ consider a response with a 404 status code to be a valid result of executing the
+ . The default value is false and the middleware will
+ consider 404 status codes to be an error on the server and will therefore rethrow
+ the original exception.
+
+
+
+
+ Extension methods for enabling .
+
+
+
+
+ Adds a StatusCodePages middleware with the given options that checks for responses with status codes
+ between 400 and 599 that do not have a body.
+
+
+
+
+
+
+
+ Adds a StatusCodePages middleware with a default response handler that checks for responses with status codes
+ between 400 and 599 that do not have a body.
+
+
+
+
+
+
+ Adds a StatusCodePages middleware with the specified handler that checks for responses with status codes
+ between 400 and 599 that do not have a body.
+
+
+
+
+
+
+
+ Adds a StatusCodePages middleware with the specified response body to send. This may include a '{0}' placeholder for the status code.
+ The middleware checks for responses with status codes between 400 and 599 that do not have a body.
+
+
+
+
+
+
+
+
+ Adds a StatusCodePages middleware to the pipeline. Specifies that responses should be handled by redirecting
+ with the given location URL template. This may include a '{0}' placeholder for the status code. URLs starting
+ with '~' will have PathBase prepended, where any other URL will be used as is.
+
+
+
+
+
+
+
+ Adds a StatusCodePages middleware to the pipeline with the specified alternate middleware pipeline to execute
+ to generate the response body.
+
+
+
+
+
+
+
+ Adds a StatusCodePages middleware to the pipeline. Specifies that the response body should be generated by
+ re-executing the request pipeline using an alternate path. This path may contain a '{0}' placeholder of the status code.
+
+
+
+
+
+
+
+
+ Options for .
+
+
+
+
+ Creates a default which produces a plaintext response
+ containing the status code and the reason phrase.
+
+
+
+
+ The handler that generates the response body for the given . By default this produces a plain text response that includes the status code.
+
+
+
+
+ IApplicationBuilder extensions for the WelcomePageMiddleware.
+
+
+
+
+ Adds the WelcomePageMiddleware to the pipeline with the given options.
+
+
+
+
+
+
+
+ Adds the WelcomePageMiddleware to the pipeline with the given path.
+
+
+
+
+
+
+
+ Adds the WelcomePageMiddleware to the pipeline with the given path.
+
+
+
+
+
+
+
+ Adds the WelcomePageMiddleware to the pipeline.
+
+
+
+
+
+
+ Options for the WelcomePageMiddleware.
+
+
+
+
+ Specifies which requests paths will be responded to. Exact matches only. Leave null to handle all requests.
+
+
+
+
+ Captures synchronous and asynchronous exceptions from the pipeline and generates error responses.
+
+
+
+
+ Initializes a new instance of the class
+
+ The representing the next middleware in the pipeline.
+ The options for configuring the middleware.
+ The used for logging.
+
+ The used for writing diagnostic messages.
+ The list of registered .
+
+
+
+ Process an individual request.
+
+
+
+
+
+
+ Captures synchronous and asynchronous exceptions from the pipeline and generates error responses.
+
+
+
+
+ Process an individual request.
+
+
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ The default associated with a default instance.
+
+
+
+
+ The source-generated options associated with this context.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Holds data to be displayed on the compilation error page.
+
+
+
+
+ Options for what output to display.
+
+
+
+
+ Detailed information about each parse or compilation error.
+
+
+
+
+ Gets the generated content that produced the corresponding .
+
+
+
+
+ Holds data to be displayed on the error page.
+
+
+
+
+ Options for what output to display.
+
+
+
+
+ Detailed information about each exception in the stack.
+
+
+
+
+ Parsed query data.
+
+
+
+
+ Request cookies.
+
+
+
+
+ Request headers.
+
+
+
+
+ Request route values.
+
+
+
+
+ Request endpoint.
+
+
+
+
+ The text be inside the HTML title element.
+
+
+
+
+ A feature containing the path and error of the original request for examination by an exception handler.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A middleware for handling exceptions in the application.
+
+
+
+
+ Creates a new
+
+ The representing the next middleware in the pipeline.
+ The used for logging.
+ The options for configuring the middleware.
+ The used for writing diagnostic messages.
+
+
+
+ Executes the middleware.
+
+ The for the current request.
+
+
+
+ A middleware for handling exceptions in the application.
+
+
+
+
+ Executes the middleware.
+
+ The for the current request.
+
+
+
+ Represents an interface for handling exceptions in ASP.NET Core applications.
+ `IExceptionHandler` implementations are used by the exception handler middleware.
+
+
+
+
+ Tries to handle the specified exception asynchronously within the ASP.NET Core pipeline.
+ Implementations of this method can provide custom exception-handling logic for different scenarios.
+
+ The for the request.
+ The unhandled exception.
+ The cancellation token.
+
+ A task that represents the asynchronous read operation. The value of its
+ property contains the result of the handling operation.
+ if the exception was handled successfully; otherwise .
+
+
+
+
+ Contains information used by the handler of the .
+
+
+
+
+ Creates a new .
+
+ The .
+ The configured .
+ The representing the next middleware in the pipeline.
+
+
+
+ Gets the .
+
+
+
+
+ Gets the configured .
+
+
+
+
+ Gets the representing the next middleware in the pipeline.
+
+
+
+
+ Represents the Status code pages feature.
+
+
+
+
+ Enables or disables status code pages. The default value is true.
+ Set this to false to prevent the
+ from creating a response body while handling the error status code.
+
+
+
+
+ A middleware for generating the response body of error status codes with no body.
+
+
+
+
+ Creates a new
+
+ The representing the next middleware in the pipeline.
+ The options for configuring the middleware.
+
+
+
+ Executes the middleware.
+
+ The for the current request.
+ A task that represents the execution of this middleware.
+
+
+ Default implementation for .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This middleware provides a default web page for new applications.
+
+
+
+
+ Creates a default web page for new applications.
+
+
+
+
+
+
+ Process an individual request.
+
+ The .
+
+
+
+ You are seeing this page because DiagnosticsPageMiddleware was added to your web application.
+
+
+ Test Error Message
+
+
+ Test Error Page
+
+
+ Diagnostics Page
+
+
+ Cookies
+
+
+ Headers
+
+
+ No cookie data.
+
+
+ No header data.
+
+
+ No query string data.
+
+
+ Query
+
+
+ Stack
+
+
+ Internal Server Error
+
+
+ An unhandled exception occurred while processing the request.
+
+
+ Unknown location
+
+
+ Value
+
+
+ Variable
+
+
+ The path must start with a '/'.
+
+
+ Name
+
+
+ Path
+
+
+ Packages:
+
+
+ Could not retrieve the list of loaded packages.
+
+
+ Version
+
+
+ Runtime Version:
+
+
+ Could not determine the runtime version.
+
+
+ Runtime Information
+
+
+ Welcome
+
+
+ Learn more about the Microsoft ASP.NET Core components
+
+
+ Browser
+
+
+ Learn More
+
+
+ Light Bulb
+
+
+ Skyline
+
+
+ Your ASP.NET Core application has been successfully started
+
+
+ Your ASP.NET Core application has been successfully started.
+
+
+ An error occurred during the compilation of a resource required to process this request. Please review the following specific error details and modify your source code appropriately.
+
+
+ Operating System:
+
+
+ Runtime Architecture:
+
+
+ Runtime Type:
+
+
+ Could not determine the operating system.
+
+
+ Could not determine the runtime architecture.
+
+
+ Could not determine the runtime type.
+
+
+ Environment:
+
+
+ An error occurred when configuring the exception handler middleware. Either the 'ExceptionHandlingPath' or the 'ExceptionHandler' property must be set in 'UseExceptionHandler()'. Alternatively, set one of the aforementioned properties in 'Startup.Configure ...
+
+
+ No route values.
+
+
+ Routing
+
+
+ Endpoint
+
+
+ Display Name
+
+
+ Route Order
+
+
+ Route HTTP Method
+
+
+ Route Pattern
+
+
+ No endpoint.
+
+
+ Route Values
+
+
+ Name
+
+
+
+
+
+
+
+
+
+ The request context
+
+
+
+
+ The request
+
+
+
+
+ The response
+
+
+
+
+ The output stream
+
+
+
+
+ Html encoder used to encode content.
+
+
+
+
+ Url encoder used to encode content.
+
+
+
+
+ JavaScript encoder used to encode content.
+
+
+
+
+ Execute an individual request
+
+
+
+
+
+ Execute an individual request
+
+
+
+
+ Write the given value directly to the output
+
+
+
+
+
+ Write the given value directly to the output
+
+
+
+
+
+ Writes the given attribute to the given writer
+
+ The instance to write to.
+ The name of the attribute to write
+ The value of the prefix
+ The value of the suffix
+ The s to write.
+
+
+
+ Convert to string and html encode
+
+
+
+
+
+ Html encode and write
+
+
+
+
+
+ is invoked
+
+ The to invoke
+
+
+
+ Writes the specified to .
+
+ The instance to write to.
+ The to write.
+
+ is invoked for types.
+ For all other types, the encoded result of is written to the
+ .
+
+
+
+
+ Writes the specified with HTML encoding to .
+
+ The instance to write to.
+ The to write.
+
+
+
+ Writes the specified without HTML encoding to the .
+
+ The instance to write to.
+ The to write.
+
+
+
+ Writes the specified without HTML encoding to .
+
+ The instance to write to.
+ The to write.
+
+
+
+ Represents a deferred write operation in a .
+
+
+
+
+ Creates a new instance of .
+
+ The delegate to invoke when is called.
+
+
+
+ Method invoked to produce content from the .
+
+ The instance to write to.
+
+
+
+ Extension methods for the exception handler middleware.
+
+
+
+
+ Adds services and options for the exception handler middleware.
+
+ The for adding services.
+ A delegate to configure the .
+
+
+
+
+ Adds services and options for the exception handler middleware.
+
+ The for adding services.
+ A delegate to configure the .
+
+
+
+
+ Adds an `IExceptionHandler` implementation to services. `IExceptionHandler` implementations are used by the exception handler middleware to handle unexpected request exceptions.
+ Multiple handlers can be added and they're called by the middleware in the order they're added.
+
+ The type of the exception handler implementation.
+ The for adding services.
+ The modified .
+
+
+
+ Infrastructure
+
+
+
+
+ The request context
+
+
+
+
+ The request
+
+
+
+
+ The response
+
+
+
+
+ The output stream
+
+
+
+
+ Html encoder used to encode content.
+
+
+
+
+ Url encoder used to encode content.
+
+
+
+
+ JavaScript encoder used to encode content.
+
+
+
+
+ Execute an individual request
+
+ The stream to write to
+
+
+
+ Execute an individual request
+
+
+
+
+
+ Execute an individual request
+
+
+
+
+ Write the given value without HTML encoding directly to .
+
+ The to write.
+
+
+
+ Write the given value without HTML encoding directly to .
+
+ The to write.
+
+
+
+ Writes the given attribute to the given writer
+
+ The name of the attribute to write
+ The value of the prefix
+ The value of the suffix
+ The s to write.
+
+
+
+ is invoked
+
+ The to invoke
+
+
+
+ Writes the specified to .
+
+ The to write.
+
+ is invoked for types.
+ For all other types, the encoded result of is written to
+ .
+
+
+
+
+ Writes the specified with HTML encoding to .
+
+ The to write.
+
+
+
+ Represents a deferred write operation in a .
+
+
+
+
+ Creates a new instance of .
+
+ The delegate to invoke when is called.
+
+
+
+ Method invoked to produce content from the .
+
+ The instance to write to.
+
+
+
+ Contains details for individual exception messages.
+
+
+
+
+ An individual exception
+
+
+
+
+ The generated stack frames
+
+
+
+
+ Gets or sets the summary message.
+
+
+
+
+ Contains the source code where the exception occurred.
+
+
+
+
+ Function containing instruction
+
+
+
+
+ File containing the instruction
+
+
+
+
+ The line number of the instruction
+
+
+
+
+ The line preceding the frame line
+
+
+
+
+ Lines of code before the actual error line(s).
+
+
+
+
+ Line(s) of code responsible for the error.
+
+
+
+
+ Lines of code after the actual error line(s).
+
+
+
+
+ Specific error details for this stack frame.
+
+
+
+
+ Pretty print a type name.
+
+ The .
+ true to print a fully qualified name.
+ true to include generic parameter names.
+ true to include generic parameters.
+ Character to use as a delimiter in nested type names
+ The pretty printed type name.
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.HostFiltering.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.HostFiltering.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1dfa373fb0ceacace91b29161db758512091c014
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.HostFiltering.xml
@@ -0,0 +1,88 @@
+
+
+
+ Microsoft.AspNetCore.HostFiltering
+
+
+
+
+ Extension methods for the HostFiltering middleware.
+
+
+
+
+ Adds middleware for filtering requests by allowed host headers. Invalid requests will be rejected with a
+ 400 status code.
+
+ The instance this method extends.
+ The original .
+
+
+
+ Extension methods for the host filtering middleware.
+
+
+
+
+ Adds services and options for the host filtering middleware.
+
+ The for adding services.
+ A delegate to configure the .
+
+
+
+
+ A middleware used to filter requests by their Host header.
+
+
+
+
+ A middleware used to filter requests by their Host header.
+
+
+
+
+
+
+
+ Processes requests
+
+
+
+
+
+
+ Options for the HostFiltering middleware
+
+
+
+
+ The hosts headers that are allowed to access this site. At least one value is required.
+
+
+
+ - Port numbers must be excluded.
+ - A top level wildcard "*" allows all non-empty hosts.
+ - Subdomain wildcards are permitted. E.g. "*.example.com" matches subdomains like foo.example.com,
+ but not the parent domain example.com.
+ - Unicode host names are allowed but will be converted to punycode for matching.
+ - IPv6 addresses must include their bounding brackets and be in their normalized form.
+
+
+
+
+
+ Indicates if requests without hosts are allowed. The default is true.
+
+
+ HTTP/1.0 does not require a host header.
+ Http/1.1 requires a host header, but says the value may be empty.
+
+
+
+
+ Indicates if the 400 response should include a default message or be empty. This is enabled by default.
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Hosting.Abstractions.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Hosting.Abstractions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9e1e8f8a134849ab6a54a0f9deec37246b7ff1c8
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Hosting.Abstractions.xml
@@ -0,0 +1,536 @@
+
+
+
+ Microsoft.AspNetCore.Hosting.Abstractions
+
+
+
+
+ Commonly used environment names.
+
+
+
+
+ A string constant for Development environments.
+
+
+
+
+ A string constant for Staging environments.
+
+
+
+
+ A string constant for Production environments.
+
+
+
+
+ Contains extension methods for configuring the .
+
+
+
+
+ Use the given configuration settings on the web host.
+
+ The to configure.
+ The containing settings to be used.
+ The .
+
+
+
+ Set whether startup errors should be captured in the configuration settings of the web host.
+ When enabled, startup exceptions will be caught and an error page will be returned. If disabled, startup exceptions will be propagated.
+
+ The to configure.
+ true to use startup error page; otherwise false.
+ The .
+
+
+
+ Specify the assembly containing the startup type to be used by the web host.
+
+ The to configure.
+ The name of the assembly containing the startup type.
+ The .
+
+
+
+ Specify the server to be used by the web host.
+
+ The to configure.
+ The to be used.
+ The .
+
+
+
+ Specify the environment to be used by the web host.
+
+ The to configure.
+ The environment to host the application in.
+ The .
+
+
+
+ Specify the content root directory to be used by the web host.
+
+ The to configure.
+ Path to root directory of the application.
+ The .
+
+
+
+ Specify the webroot directory to be used by the web host.
+
+ The to configure.
+ Path to the root directory used by the web server.
+ The .
+
+
+
+ Specify the urls the web host will listen on.
+
+ The to configure.
+ The urls the hosted application will listen on.
+ The .
+
+
+
+ Indicate whether the host should listen on the URLs configured on the
+ instead of those configured on the .
+
+ The to configure.
+ true to prefer URLs configured on the ; otherwise false.
+ The .
+
+
+
+ Specify if startup status messages should be suppressed.
+
+ The to configure.
+ true to suppress writing of hosting startup status messages; otherwise false.
+ The .
+
+
+
+ Specify the amount of time to wait for the web host to shutdown.
+
+ The to configure.
+ The amount of time to wait for server shutdown.
+ The .
+
+
+
+ Start the web host and listen on the specified urls.
+
+ The to start.
+ The urls the hosted application will listen on.
+ The .
+
+
+
+ Extension methods for .
+
+
+
+
+ Checks if the current hosting environment name is .
+
+ An instance of .
+ True if the environment name is , otherwise false.
+
+
+
+ Checks if the current hosting environment name is .
+
+ An instance of .
+ True if the environment name is , otherwise false.
+
+
+
+ Checks if the current hosting environment name is .
+
+ An instance of .
+ True if the environment name is , otherwise false.
+
+
+
+ Compares the current hosting environment name against the specified value.
+
+ An instance of .
+ Environment name to validate against.
+ True if the specified name is the same as the current environment, otherwise false.
+
+
+
+ Marker attribute indicating an implementation of that will be loaded and executed when building an .
+
+
+
+
+ Constructs the with the specified type.
+
+ A type that implements .
+
+
+
+ The implementation of that should be loaded when
+ starting an application.
+
+
+
+
+ Allows consumers to perform cleanup during a graceful shutdown.
+
+ This type is obsolete and will be removed in a future version.
+ The recommended alternative is Microsoft.Extensions.Hosting.IHostApplicationLifetime.
+
+
+
+
+
+ Triggered when the application host has fully started and is about to wait
+ for a graceful shutdown.
+
+
+
+
+ Triggered when the application host is performing a graceful shutdown.
+ Requests may still be in flight. Shutdown will block until this event completes.
+
+
+
+
+ Triggered when the application host is performing a graceful shutdown.
+ All requests should be complete at this point. Shutdown will block
+ until this event completes.
+
+
+
+
+ Requests termination of the current application.
+
+
+
+
+ Provides information about the web hosting environment an application is running in.
+
+ This type is obsolete and will be removed in a future version.
+ The recommended alternative is Microsoft.AspNetCore.Hosting.IWebHostEnvironment.
+
+
+
+
+
+ Gets or sets the name of the environment. The host automatically sets this property to the value
+ of the "ASPNETCORE_ENVIRONMENT" environment variable, or "environment" as specified in any other configuration source.
+
+
+
+
+ Gets or sets the name of the application. This property is automatically set by the host to the assembly containing
+ the application entry point.
+
+
+
+
+ Gets or sets the absolute path to the directory that contains the web-servable application content files.
+
+
+
+
+ Gets or sets an pointing at .
+
+
+
+
+ Gets or sets the absolute path to the directory that contains the application content files.
+
+
+
+
+ Gets or sets an pointing at .
+
+
+
+
+ Represents platform specific configuration that will be applied to a when building an .
+
+
+
+
+ Configure the .
+
+
+ Configure is intended to be called before user code, allowing a user to overwrite any changes made.
+
+
+
+
+
+ Provides an interface for initializing services and middleware used by an application.
+
+
+
+
+ Register services into the .
+
+ The to add the services to.
+
+
+
+ Configures the application.
+
+ An for the app to configure.
+
+
+
+ This API supports the ASP.NET Core infrastructure and is not intended to be used
+ directly from your code. This API may change or be removed in future releases.
+
+
+
+
+ Extends the provided and returns a modified action of the same type.
+
+ The ConfigureContainer method to extend.
+ A modified .
+
+
+
+ This API supports the ASP.NET Core infrastructure and is not intended to be used
+ directly from your code. This API may change or be removed in future releases.
+
+
+
+
+ Extends the provided and returns a modified action of the same type.
+
+ The ConfigureServices method to extend.
+ A modified .
+
+
+
+ Provides an interface for extending the middleware pipeline with new
+ Configure methods. Can be used to add defaults to the beginning or
+ end of the pipeline without having to make the app author explicitly
+ register middleware.
+
+
+
+
+ Extends the provided and returns an of the same type.
+
+ The Configure method to extend.
+ A modified .
+
+
+
+ Represents a configured web host.
+
+
+
+
+ The exposed by the configured server.
+
+
+
+
+ The for the host.
+
+
+
+
+ Starts listening on the configured addresses.
+
+
+
+
+ Starts listening on the configured addresses.
+
+ Used to abort program start.
+ A that completes when the starts.
+
+
+
+ Attempt to gracefully stop the host.
+
+ Used to indicate when stop should no longer be graceful.
+ A that completes when the stops.
+
+
+
+ A builder for .
+
+
+
+
+ Builds an which hosts a web application.
+
+
+
+
+ Adds a delegate for configuring the that will construct an .
+
+ The delegate for configuring the that will be used to construct an .
+ The .
+
+ The and on the are uninitialized at this stage.
+ The is pre-populated with the settings of the .
+
+
+
+
+ Adds a delegate for configuring additional services for the host or web application. This may be called
+ multiple times.
+
+ A delegate for configuring the .
+ The .
+
+
+
+ Adds a delegate for configuring additional services for the host or web application. This may be called
+ multiple times.
+
+ A delegate for configuring the .
+ The .
+
+
+
+ Get the setting value from the configuration.
+
+ The key of the setting to look up.
+ The value the setting currently contains.
+
+
+
+ Add or replace a setting in the configuration.
+
+ The key of the setting to add or replace.
+ The value of the setting to add or replace.
+ The .
+
+
+
+ Provides information about the web hosting environment an application is running in.
+
+
+
+
+ Gets or sets the absolute path to the directory that contains the web-servable application content files.
+ This defaults to the 'wwwroot' subfolder.
+
+
+
+
+ Gets or sets an pointing at .
+ This defaults to referencing files from the 'wwwroot' subfolder.
+
+
+
+
+ Context containing the common services on the . Some properties may be null until set by the .
+
+
+
+
+ The initialized by the .
+
+
+
+
+ The containing the merged configuration of the application and the .
+
+
+
+
+ Contains a set of constants representing configuration keys.
+
+
+
+
+ The configuration key associated with an application name.
+
+
+
+
+ The configuration key associated with the startup assembly.
+
+
+
+
+ The configuration key associated with "hostingStartupAssemblies" configuration.
+
+
+
+
+ The configuration key associated with the "hostingStartupExcludeAssemblies" configuration.
+
+
+
+
+ The configuration key associated with the "DetailedErrors" configuration.
+
+
+
+
+ The configuration key associated with the application's environment setting.
+
+
+
+
+ The configuration key associated with the "webRoot" configuration.
+
+
+
+
+ The configuration key associated with the "captureStartupErrors" configuration.
+
+
+
+
+ The configuration key associated with the "urls" configuration.
+
+
+
+
+ The configuration key associated with the "http_ports" configuration.
+
+
+
+
+ The configuration key associated with the "https_ports" configuration.
+
+
+
+
+ The configuration key associated with the "ContentRoot" configuration.
+
+
+
+
+ The configuration key associated with the "PreferHostingUrls" configuration.
+
+
+
+
+ The configuration key associated with the "PreventHostingStartup" configuration.
+
+
+
+
+ The configuration key associated with the "SuppressStatusMessages" configuration.
+
+
+
+
+ The configuration key associated with the "ShutdownTimeoutSeconds" configuration.
+
+
+
+
+ The configuration key associated with the "StaticWebAssets" configuration.
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cca2ad9ccfeb5a6ad1c29ad48c73c1f88e8c2996
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Hosting.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Hosting.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f1300fac57845a5510e3b9c64a273e552f27d271
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Hosting.xml
@@ -0,0 +1,762 @@
+
+
+
+ Microsoft.AspNetCore.Hosting
+
+
+
+
+ A factory for creating instances.
+
+
+
+
+ Initialize a new factory instance with an .
+
+ The used to resolve dependencies and initialize components.
+
+
+
+ Create an builder given a .
+
+ An of HTTP features.
+ An configured with .
+
+
+
+ Provides an interface for implementing a factory that produces instances.
+
+
+
+
+ Create an builder given a
+
+ An of HTTP features.
+ An configured with .
+
+
+
+ An interface implemented by IWebHostBuilders that handle
+ directly.
+
+
+
+
+ Adds and configures an ASP.NET Core web application.
+
+ The delegate that configures the .
+ The delegate that configures the .
+ The .
+
+
+
+ An interface implemented by IWebHostBuilders that handle ,
+ and
+ directly.
+
+
+
+
+ Specify the startup method to be used to configure the web application.
+
+ The delegate that configures the .
+ The .
+
+
+
+ Specify the startup method to be used to configure the web application.
+
+ The delegate that configures the .
+ The .
+
+
+
+ Specify the startup type to be used by the web host.
+
+ The to be used.
+ The .
+
+
+
+ Specify a factory that creates the startup instance to be used by the web host.
+
+ A delegate that specifies a factory for the startup class.
+ The .
+ When in a trimmed app, all public methods of are preserved. This should match the Startup type directly (and not a base type).
+
+
+
+ Allows consumers to perform cleanup during a graceful shutdown.
+
+
+
+
+ Triggered when the application host has fully started and is about to wait
+ for a graceful shutdown.
+
+
+
+
+ Triggered when the application host is performing a graceful shutdown.
+ Request may still be in flight. Shutdown will block until this event completes.
+
+
+
+
+ Triggered when the application host is performing a graceful shutdown.
+ All requests should be complete at this point. Shutdown will block
+ until this event completes.
+
+
+
+
+ Signals the ApplicationStopping event and blocks until it completes.
+
+
+
+
+ Signals the ApplicationStarted event and blocks until it completes.
+
+
+
+
+ Signals the ApplicationStopped event and blocks until it completes.
+
+
+
+
+ Default implementation for .
+
+
+
+
+
+
+
+ Specifies the address used by the server.
+
+
+
+
+
+
+
+
+
+
+ Used for initializing services and middlewares used by an application.
+
+
+
+
+ Creates a new instance.
+
+ A factory for creating instances.
+ An for configuring the application.
+
+
+
+ Configures the with the initialized .
+
+ The .
+
+
+
+ Base class for initializing services and middlewares used by an application.
+
+
+
+
+ Configures the application.
+
+ An for the app to configure.
+
+
+
+ Register services into the .
+
+ The to add the services to.
+
+
+
+ Creates an instance for a given .
+
+ The to add the services to.
+ The .
+
+
+
+ Base class for initializing services and middlewares used for configuring a .
+
+ The type of builder associated with the startup configuration.
+
+
+
+ Constructor for StartupBase class.
+
+ A factory used to generate instances.
+
+
+
+ Creates an instance for a given .
+
+ The to add the services to.
+ The .
+
+
+
+ Sets up the service container.
+
+ The builder associated with the container to configure.
+
+
+
+ Loader for static web assets
+
+
+
+
+ Configure the to use static web assets.
+
+ The application .
+ The host .
+
+
+
+ A builder for
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Get the setting value from the configuration.
+
+ The key of the setting to look up.
+ The value the setting currently contains.
+
+
+
+ Add or replace a setting in the configuration.
+
+ The key of the setting to add or replace.
+ The value of the setting to add or replace.
+ The .
+
+
+
+ Adds a delegate for configuring additional services for the host or web application. This may be called
+ multiple times.
+
+ A delegate for configuring the .
+ The .
+
+
+
+ Adds a delegate for configuring additional services for the host or web application. This may be called
+ multiple times.
+
+ A delegate for configuring the .
+ The .
+
+
+
+ Adds a delegate for configuring the that will construct an .
+
+ The delegate for configuring the that will be used to construct an .
+ The .
+
+ The and on the are uninitialized at this stage.
+ The is pre-populated with the settings of the .
+
+
+
+
+ Builds the required services and an which hosts a web application.
+
+
+
+
+ Contains extensions for configuring an .
+
+
+
+
+ Specify the startup method to be used to configure the web application.
+
+ The to configure.
+ The delegate that configures the .
+ The .
+
+
+
+ Specify the startup method to be used to configure the web application.
+
+ The to configure.
+ The delegate that configures the .
+ The .
+
+
+
+ Specify a factory that creates the startup instance to be used by the web host.
+
+ The to configure.
+ A delegate that specifies a factory for the startup class.
+ The .
+ When in a trimmed app, all public methods of are preserved. This should match the Startup type directly (and not a base type).
+
+
+
+ Specify the startup type to be used by the web host.
+
+ The to configure.
+ The to be used.
+ The .
+
+
+
+ Specify the startup type to be used by the web host.
+
+ The to configure.
+ The type containing the startup methods for the application.
+ The .
+
+
+
+ Configures the default service provider
+
+ The to configure.
+ A callback used to configure the for the default .
+ The .
+
+
+
+ Configures the default service provider
+
+ The to configure.
+ A callback used to configure the for the default .
+ The .
+
+
+
+ Adds a delegate for configuring the that will construct an .
+
+ The to configure.
+ The delegate for configuring the that will be used to construct an .
+ The .
+
+ The and on the are uninitialized at this stage.
+ The is pre-populated with the settings of the .
+
+
+
+
+ Adds a delegate for configuring the provided . This may be called multiple times.
+
+ The to configure.
+ The delegate that configures the .
+ The .
+
+
+
+ Adds a delegate for configuring the provided . This may be called multiple times.
+
+ The to configure.
+ The delegate that configures the .
+ The .
+
+
+
+ Configures the to use static web assets
+ defined by referenced projects and packages.
+
+ The .
+ The .
+
+
+
+ Contains extensions for managing the lifecycle of an .
+
+
+
+
+ Attempts to gracefully stop the host with the given timeout.
+
+
+ The timeout for stopping gracefully. Once expired the
+ server may terminate any remaining active connections.
+ A that completes when the stops.
+
+
+
+ Block the calling thread until shutdown is triggered via Ctrl+C or SIGTERM.
+
+ The running .
+
+
+
+ Returns a Task that completes when shutdown is triggered via the given token, Ctrl+C or SIGTERM.
+
+ The running .
+ The token to trigger shutdown.
+ A that completes when shutdown is triggered via Ctrl+C or SIGTERM.
+
+
+
+ Runs a web application and block the calling thread until host shutdown.
+
+ The to run.
+
+
+
+ Runs a web application and returns a Task that only completes when the token is triggered or shutdown is triggered.
+
+ The to run.
+ The token to trigger shutdown.
+
+
+
+ Holds data to be displayed on the error page.
+
+
+
+
+ Detailed information about each exception in the stack.
+
+
+
+ WebHostBuilder allows creation only of a single instance of WebHost
+
+
+
+ A factory for creating instances.
+
+
+
+
+ Creates a factory for creating instances.
+
+ The to be used when retrieving services.
+
+
+
+ Create an instance given an .
+
+
+ An initialized object.
+
+
+
+ Clears the current .
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ Defines the source generated JSON serialization contract metadata for a given type.
+
+
+
+
+ The default associated with a default instance.
+
+
+
+
+ The source-generated options associated with this context.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Contains extensions for an .
+
+
+
+
+ Adds and configures an ASP.NET Core web application.
+
+ The to add the to.
+ The delegate that configures the .
+ The .
+
+
+
+ Adds and configures an ASP.NET Core web application.
+
+ The to add the to.
+ The delegate that configures the .
+ The delegate that configures the .
+ The .
+
+
+
+ Adds and configures an ASP.NET Core web application with minimal dependencies.
+
+ The to add the to.
+ The delegate that configures the .
+ The delegate that configures the .
+ The .
+
+
+
+ Builder options for use with ConfigureWebHost.
+
+
+
+
+ Indicates if "ASPNETCORE_" prefixed environment variables should be added to configuration.
+ They are added by default.
+
+
+
+
+ Infrastructure
+
+
+
+
+ The request context
+
+
+
+
+ The request
+
+
+
+
+ The response
+
+
+
+
+ The output stream
+
+
+
+
+ Html encoder used to encode content.
+
+
+
+
+ Url encoder used to encode content.
+
+
+
+
+ JavaScript encoder used to encode content.
+
+
+
+
+ Execute an individual request
+
+ The stream to write to
+
+
+
+ Execute an individual request
+
+
+
+
+
+ Execute an individual request
+
+
+
+
+ Write the given value without HTML encoding directly to .
+
+ The to write.
+
+
+
+ Write the given value without HTML encoding directly to .
+
+ The to write.
+
+
+
+ Writes the given attribute to the given writer
+
+ The name of the attribute to write
+ The value of the prefix
+ The value of the suffix
+ The s to write.
+
+
+
+ is invoked
+
+ The to invoke
+
+
+
+ Writes the specified to .
+
+ The to write.
+
+ is invoked for types.
+ For all other types, the encoded result of is written to
+ .
+
+
+
+
+ Writes the specified with HTML encoding to .
+
+ The to write.
+
+
+
+ Represents a deferred write operation in a .
+
+
+
+
+ Creates a new instance of .
+
+ The delegate to invoke when is called.
+
+
+
+ Method invoked to produce content from the .
+
+ The instance to write to.
+
+
+
+ Contains details for individual exception messages.
+
+
+
+
+ An individual exception
+
+
+
+
+ The generated stack frames
+
+
+
+
+ Gets or sets the summary message.
+
+
+
+
+ Contains the source code where the exception occurred.
+
+
+
+
+ Function containing instruction
+
+
+
+
+ File containing the instruction
+
+
+
+
+ The line number of the instruction
+
+
+
+
+ The line preceding the frame line
+
+
+
+
+ Lines of code before the actual error line(s).
+
+
+
+
+ Line(s) of code responsible for the error.
+
+
+
+
+ Lines of code after the actual error line(s).
+
+
+
+
+ Specific error details for this stack frame.
+
+
+
+
+ Pretty print a type name.
+
+ The .
+ true to print a fully qualified name.
+ true to include generic parameter names.
+ true to include generic parameters.
+ Character to use as a delimiter in nested type names
+ The pretty printed type name.
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Http.Abstractions.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Http.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e7cab383bfd03b832883f0a21c795fad9d02abb2
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Http.Abstractions.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Http.Connections.Common.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Http.Connections.Common.dll
new file mode 100644
index 0000000000000000000000000000000000000000..268cfe2872380d0d7c5aa54df2f227c723c95783
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Http.Connections.Common.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Http.Features.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Http.Features.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dca782ef896f0799bfeaa79445cd1bf9a0d1be20
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Http.Features.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Http.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Http.xml
new file mode 100644
index 0000000000000000000000000000000000000000..af0f33a4bab89860681f7ffd0d4b07bce9976005
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Http.xml
@@ -0,0 +1,1800 @@
+
+
+
+ Microsoft.AspNetCore.Http
+
+
+
+
+ An address that a HTTP server may bind to.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Gets the host component.
+
+
+
+
+ Gets the path component.
+
+
+
+
+ Gets the port.
+
+
+
+
+ Gets the scheme component.
+
+
+
+
+ Gets a value that determines if this instance represents a Unix pipe.
+
+ Returns if starts with unix:// prefix.
+
+
+
+
+
+ Gets a value that determines if this instance represents a named pipe.
+
+ Returns if starts with pipe:/ prefix.
+
+
+
+
+
+ Gets the unix pipe path if this instance represents a Unix pipe.
+
+
+
+
+ Gets the named pipe name if this instance represents a named pipe.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Parses the specified as a .
+
+ The address to parse.
+ The parsed address.
+
+
+
+ Represents an implementation of the HTTP Context class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class with provided features.
+
+ Initial set of features for the .
+
+
+
+ Reinitialize the current instant of the class with features passed in.
+
+
+ This method allows the consumer to re-use the for another request, rather than having to allocate a new instance.
+
+ The new set of features for the .
+
+
+
+ Uninitialize all the features in the .
+
+
+
+
+ Gets or set the for this instance.
+
+
+
+
+
+
+
+ Gets or sets the for this instance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This API is used by ASP.NET Core's infrastructure and should not be used by application code.
+
+
+
+
+
+
+
+ Extension methods for enabling buffering in an .
+
+
+
+
+ Ensure the can be read multiple times. Normally
+ buffers request bodies in memory; writes requests larger than 30K bytes to disk.
+
+ The to prepare.
+
+ Temporary files for larger requests are written to the location named in the ASPNETCORE_TEMP
+ environment variable, if any. If that environment variable is not defined, these files are written to the
+ current user's temporary folder. Files are automatically deleted at the end of their associated requests.
+
+
+
+
+ Ensure the can be read multiple times. Normally
+ buffers request bodies in memory; writes requests larger than bytes to
+ disk.
+
+ The to prepare.
+
+ The maximum size in bytes of the in-memory used to buffer the
+ stream. Larger request bodies are written to disk.
+
+
+ Temporary files for larger requests are written to the location named in the ASPNETCORE_TEMP
+ environment variable, if any. If that environment variable is not defined, these files are written to the
+ current user's temporary folder. Files are automatically deleted at the end of their associated requests.
+
+
+
+
+ Ensure the can be read multiple times. Normally
+ buffers request bodies in memory; writes requests larger than 30K bytes to disk.
+
+ The to prepare.
+
+ The maximum size in bytes of the request body. An attempt to read beyond this limit will cause an
+ .
+
+
+ Temporary files for larger requests are written to the location named in the ASPNETCORE_TEMP
+ environment variable, if any. If that environment variable is not defined, these files are written to the
+ current user's temporary folder. Files are automatically deleted at the end of their associated requests.
+
+
+
+
+ Ensure the can be read multiple times. Normally
+ buffers request bodies in memory; writes requests larger than bytes to
+ disk.
+
+ The to prepare.
+
+ The maximum size in bytes of the in-memory used to buffer the
+ stream. Larger request bodies are written to disk.
+
+
+ The maximum size in bytes of the request body. An attempt to read beyond this limit will cause an
+ .
+
+
+ Temporary files for larger requests are written to the location named in the ASPNETCORE_TEMP
+ environment variable, if any. If that environment variable is not defined, these files are written to the
+ current user's temporary folder. Files are automatically deleted at the end of their associated requests.
+
+
+
+
+ Default implementation for .
+
+
+
+
+
+
+
+ Default implementation of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This type exists only for the purpose of unit testing where the user can directly set the
+ property without the need for creating a .
+
+
+
+
+
+
+
+ Default implementation for .
+
+
+
+
+ Initializes a new instance of .
+
+ The to use as the backing store.
+
+
+
+ Initializes a new instance of .
+
+ The .
+
+
+
+ Initializes a new instance of .
+
+ The .
+ The .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Options to configure reading the request body as a HTTP form.
+
+
+
+
+ Default value for .
+ Defaults to 65,536 bytes, which is approximately 64KB.
+
+
+
+
+ Default value for .
+ Defaults to 134,217,728 bytes, which is 128MB.
+
+
+
+
+ Default value for .
+ Defaults to 128 bytes.
+
+
+
+
+ Default value for .
+ Defaults to 134,217,728 bytes, which is approximately 128MB.
+
+
+
+
+ Enables full request body buffering. Use this if multiple components need to read the raw stream.
+ Defaults to false.
+
+
+
+
+ If is enabled, this many bytes of the body will be buffered in memory.
+ If this threshold is exceeded then the buffer will be moved to a temp file on disk instead.
+ This also applies when buffering individual multipart section bodies.
+ Defaults to 65,536 bytes, which is approximately 64KB.
+
+
+
+
+ If is enabled, this is the limit for the total number of bytes that will
+ be buffered. Forms that exceed this limit will throw an when parsed.
+ Defaults to 134,217,728 bytes, which is approximately 128MB.
+
+
+
+
+ A limit for the number of form entries to allow.
+ Forms that exceed this limit will throw an when parsed.
+ Defaults to 1024.
+
+
+
+
+ A limit on the length of individual keys. Forms containing keys that exceed this limit will
+ throw an when parsed.
+ Defaults to 2,048 bytes, which is approximately 2KB.
+
+
+
+
+ A limit on the length of individual form values. Forms containing values that exceed this
+ limit will throw an when parsed.
+ Defaults to 4,194,304 bytes, which is approximately 4MB.
+
+
+
+
+ A limit for the length of the boundary identifier. Forms with boundaries that exceed this
+ limit will throw an when parsed.
+ Defaults to 128 bytes.
+
+
+
+
+ A limit for the number of headers to allow in each multipart section. Headers with the same name will
+ be combined. Form sections that exceed this limit will throw an
+ when parsed.
+ Defaults to 16.
+
+
+
+
+ A limit for the total length of the header keys and values in each multipart section.
+ Form sections that exceed this limit will throw an when parsed.
+ Defaults to 16,384 bytes, which is approximately 16KB.
+
+
+
+
+ A limit for the length of each multipart body. Forms sections that exceed this limit will throw an
+ when parsed.
+ Defaults to 134,217,728 bytes, which is approximately 128MB.
+
+
+
+
+ Default implementation for .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default implementation for .
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default implementation for .
+
+
+
+
+
+
+
+ Default implementation for .
+
+
+
+
+
+
+
+
+
+
+ Default implementation for .
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Feature to access the associated with a request.
+
+
+
+
+ Returns the associated with the current request.
+
+
+
+
+ Default implementation for .
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+
+
+
+ Default implementation for .
+
+
+
+
+ Initializes a new instance of .
+
+ The to use as a backing store.
+
+
+
+ Initializes a new instance of .
+
+ The to initialize.
+
+
+
+
+
+
+ Parse a query string into its component key and value parts.
+
+ The raw query string value, with or without the leading '?'.
+ A collection of parsed keys and values, null if there are no entries.
+
+
+
+ This API supports infrastructure and is not intended to be used
+ directly from your code. This API may change or be removed in future releases.
+
+
+
+
+ This API supports infrastructure and is not intended to be used
+ directly from your code. This API may change or be removed in future releases.
+
+
+
+
+ This API supports infrastructure and is not intended to be used
+ directly from your code. This API may change or be removed in future releases.
+
+
+
+
+ This API supports infrastructure and is not intended to be used
+ directly from your code. This API may change or be removed in future releases.
+
+
+
+
+ This API supports infrastructure and is not intended to be used
+ directly from your code. This API may change or be removed in future releases.
+
+
+
+
+ This API supports infrastructure and is not intended to be used
+ directly from your code. This API may change or be removed in future releases.
+
+
+
+
+ Default implementation for .
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+
+
+
+
+ Default implementation for .
+
+
+
+
+ Initializes a new instance of .
+
+ The to use as backing store.
+
+
+
+ Initializes a new instance of .
+
+ The to initialize.
+
+
+
+
+
+
+ An implementation for for accessing request services.
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+ The .
+
+
+
+
+
+
+
+
+
+
+
+
+ Default implementation of .
+
+
+
+
+ Initializes a new instance.
+
+
+ containing all defined features, including this
+ and the .
+
+
+
+
+ Initializes a new instance.
+
+
+ containing all defined features, including this
+ and the .
+
+ The , if available.
+
+
+
+
+
+
+ A feature for routing values. Use
+ to access the values associated with the current request.
+
+
+
+
+ Gets or sets the associated with the currrent
+ request.
+
+
+
+
+ Default implementation for .
+
+
+
+
+
+
+
+ Default implementation for .
+
+
+
+
+
+
+
+
+
+
+ Contains the parsed HTTP form values.
+
+
+
+
+ An empty .
+
+
+
+
+ Initializes a new instance of .
+
+ The backing fields.
+ The files associated with the form.
+
+
+
+ Gets the files associated with the HTTP form.
+
+
+
+
+ Get or sets the associated value from the collection as a single string.
+
+ The header name.
+ the associated value from the collection as a
+ or if the key is not present.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Returns an struct enumerator that iterates through a collection without boxing and
+ is also used via the interface.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ Returns an enumerator that iterates through a collection, boxes in non-empty path.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ Returns an enumerator that iterates through a collection, boxes in non-empty path.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ Enumerates a .
+
+
+
+
+ Advances the enumerator to the next element of the .
+
+ if the enumerator was successfully advanced to the next element;
+ if the enumerator has passed the end of the collection.
+
+
+
+ Gets the element at the current position of the enumerator.
+
+
+
+
+
+
+
+ Default implementation of .
+
+
+
+
+ Initializes a new instance of .
+
+ The containing the form file.
+ The offset at which the form file begins.
+ The length of the form file.
+ The name of the form file from the Content-Disposition header.
+ The file name from the Content-Disposition header.
+
+
+
+ Gets the raw Content-Disposition header of the uploaded file.
+
+
+
+
+ Gets the raw Content-Type header of the uploaded file.
+
+
+
+
+ Gets the header dictionary of the uploaded file.
+
+
+
+
+ Gets the file length in bytes.
+
+
+
+
+ Gets the name from the Content-Disposition header.
+
+
+
+
+ Gets the file name from the Content-Disposition header.
+
+
+
+
+ Opens the request stream for reading the uploaded file.
+
+
+
+
+ Copies the contents of the uploaded file to the stream.
+
+ The stream to copy the file contents to.
+
+
+
+ Asynchronously copies the contents of the uploaded file to the stream.
+
+ The stream to copy the file contents to.
+
+
+
+
+ Default implementation of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Represents a wrapper for RequestHeaders and ResponseHeaders.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of .
+
+ The value to use as the backing store.
+
+
+
+ Initializes a new instance of .
+
+ The initial number of headers that this instance can contain.
+
+
+
+ Get or sets the associated value from the collection as a single string.
+
+ The header name.
+ the associated value from the collection as a StringValues or StringValues.Empty if the key is not present.
+
+
+
+
+
+
+ Gets the number of elements contained in the ;.
+
+ The number of elements contained in the .
+
+
+
+ Gets a value that indicates whether the is in read-only mode.
+
+ true if the is in read-only mode; otherwise, false.
+
+
+
+ Gets the collection of HTTP header names in this instance.
+
+
+
+
+ Gets the collection of HTTP header values in this instance.
+
+
+
+
+ Adds a new header item to the collection.
+
+ The item to add.
+
+
+
+ Adds the given header and values to the collection.
+
+ The header name.
+ The header values.
+
+
+
+ Clears the entire list of objects.
+
+
+
+
+ Returns a value indicating whether the specified object occurs within this collection.
+
+ The item.
+ true if the specified object occurs within this collection; otherwise, false.
+
+
+
+ Determines whether the contains a specific key.
+
+ The key.
+ true if the contains a specific key; otherwise, false.
+
+
+
+ Copies the elements to a one-dimensional Array instance at the specified index.
+
+ The one-dimensional Array that is the destination of the specified objects copied from the .
+ The zero-based index in at which copying begins.
+
+
+
+ Removes the given item from the the collection.
+
+ The item.
+ true if the specified object was removed from the collection; otherwise, false.
+
+
+
+ Removes the given header from the collection.
+
+ The header name.
+ true if the specified object was removed from the collection; otherwise, false.
+
+
+
+ Retrieves a value from the dictionary.
+
+ The header name.
+ The value.
+ true if the contains the key; otherwise, false.
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ Enumerates a .
+
+
+
+
+ Advances the enumerator to the next element of the .
+
+ if the enumerator was successfully advanced to the next element;
+ if the enumerator has passed the end of the collection.
+
+
+
+ Gets the element at the current position of the enumerator.
+
+
+
+
+
+
+
+ Provides an implementation of based on the current execution context.
+
+
+
+
+
+
+
+
+
+
+ A Stream that wraps another stream starting at a certain offset and reading for the given length.
+
+
+
+
+ Returns an struct enumerator that iterates through a collection without boxing.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ Returns an enumerator that iterates through a collection, boxes in non-empty path.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ Returns an enumerator that iterates through a collection, boxes in non-empty path.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ A wrapper for the response Set-Cookie header.
+
+
+
+
+ Create a new wrapper.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default implementation for .
+
+
+
+
+ Initializes a new instance of .
+
+ The application services.
+
+
+
+
+
+
+
+
+
+ The HttpRequest query string collection
+
+
+
+
+ Gets an empty .
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of .
+
+ The backing store.
+
+
+
+ Creates a shallow copy of the specified .
+
+ The to clone.
+
+
+
+ Initializes a new instance of .
+
+ The initial number of query items that this instance can contain.
+
+
+
+ Gets the associated set of values from the collection.
+
+ The key name.
+ the associated value from the collection as a StringValues or StringValues.Empty if the key is not present.
+
+
+
+ Gets the number of elements contained in the ;.
+
+ The number of elements contained in the .
+
+
+
+ Gets the collection of query names in this instance.
+
+
+
+
+ Determines whether the contains a specific key.
+
+ The key.
+ true if the contains a specific key; otherwise, false.
+
+
+
+ Retrieves a value from the collection.
+
+ The key.
+ The value.
+ true if the contains the key; otherwise, false.
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ Enumerates a .
+
+
+
+
+ Advances the enumerator to the next element of the .
+
+ if the enumerator was successfully advanced to the next element;
+ if the enumerator has passed the end of the collection.
+
+
+
+ Gets the element at the current position of the enumerator.
+
+
+
+
+
+
+
+ The HttpRequest query string collection
+
+
+
+
+ Initializes a new instance of .
+
+ The backing store.
+
+
+
+ Gets the associated set of values from the collection.
+
+ The key name.
+ the associated value from the collection as a StringValues or StringValues.Empty if the key is not present.
+
+
+
+ Gets the number of elements contained in the ;.
+
+ The number of elements contained in the .
+
+
+
+ Gets the collection of query names in this instance.
+
+
+
+
+ Determines whether the contains a specific key.
+
+ The key.
+ true if the contains a specific key; otherwise, false.
+
+
+
+ Retrieves a value from the collection.
+
+ The key.
+ The value.
+ true if the contains the key; otherwise, false.
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ Returns an enumerator that iterates through a collection.
+
+ An object that can be used to iterate through the collection.
+
+
+
+ Enumerates a .
+
+
+
+
+ Advances the enumerator to the next element of the .
+
+ if the enumerator was successfully advanced to the next element;
+ if the enumerator has passed the end of the collection.
+
+
+
+ Gets the element at the current position of the enumerator.
+
+
+
+
+
+
+
+ Extension for .
+
+
+
+
+ Read the request body as a form with the given options. These options will only be used
+ if the form has not already been read.
+
+ The request.
+ Options for reading the form.
+
+ The parsed form.
+
+
+
+ Helper type that allows copying a file to a Stream.
+
+ This type is part of ASP.NET Core's infrastructure and should not used by application code.
+
+
+
+
+
+ Copies the segment of the file to the destination stream.
+
+ The stream to write the file segment to.
+ The full disk path to the file.
+ The offset in the file to start at.
+ The number of bytes to send, or null to send the remainder of the file.
+ A used to abort the transmission.
+
+
+
+
+ An implementation of that aproximates all of the APIs over the given Stream.
+
+
+
+
+ Wraps the given stream.
+
+
+
+
+
+ Wraps the given stream and tracks the prior feature instance.
+
+
+
+
+
+
+ The original response body stream.
+
+
+
+
+ The prior feature, if any.
+
+
+
+
+ A PipeWriter adapted over the given stream.
+
+
+
+
+ Opts out of write buffering for the response.
+
+
+
+
+ Copies the specified file segment to the given response stream.
+ This calls StartAsync if it has not previously been called.
+
+ The full disk path to the file.
+ The offset in the file to start at.
+ The number of bytes to send, or null to send the remainder of the file.
+ A used to abort the transmission.
+
+
+
+
+ Flushes the given stream if this has not previously been called.
+
+
+
+
+
+
+ This calls StartAsync if it has not previously been called.
+ It will complete the adapted pipe if it exists.
+
+
+
+
+
+ Prevents CompleteAsync from operating.
+
+
+
+
+ Metadata that disables request timeouts on an endpoint.
+
+
+ Completely disables the request timeouts middleware from applying to this endpoint.
+
+
+
+
+ Used to control timeouts on the current request.
+
+
+
+
+ A that will trigger when the request times out.
+
+
+
+
+ Disables the request timeout if it hasn't already expired. This does not
+ trigger the .
+
+
+
+
+ Metadata that provides endpoint-specific request timeouts.
+
+
+ The default policy will be ignored with this attribute applied.
+
+
+
+
+ The timeout to apply for this endpoint.
+
+
+
+
+ The name of the policy which needs to be applied.
+ This value is case-insensitive.
+
+
+
+
+ Creates a new instance of using the specified timeout.
+
+ The duration, in milliseconds, of the timeout for this endpoint.
+
+
+
+ Creates a new instance of using the specified policy.
+
+ The name of the policy which needs to be applied (case-insensitive).
+
+
+
+ Specifies options for the request timeouts middleware.
+
+
+
+
+ Applied to any request without a policy set via endpoint metadata. No value by default.
+
+
+
+
+ Dictionary of policies that would be applied per endpoint.
+ Policy names are case-insensitive.
+
+
+
+
+ Adds a new policy.
+
+ The name of the policy (case-insensitive).
+ The timeout to apply for this policy.
+
+
+
+ Adds a new policy.
+
+ The name of the policy (case-insensitive).
+ The policy to be added.
+
+
+
+ Defines the policy for request timeouts middleware.
+
+
+
+
+ The timeout to apply.
+
+
+
+
+ Status code to be set in response when a timeout results in an being caught by the middleware.
+ The status code cannot be applied if the response has already started.
+ 504 will be used if none is specified.
+
+
+
+
+ A callback for creating a timeout response.
+ This is called if a timeout results in an being caught by the middleware.
+ The status code will be set first.
+ The status code and callback cannot be applied if the response has already started.
+ The default behavior is an empty response with only the status code.
+
+
+
+ Asynchronously reads the given number of bytes from the source stream and writes them to another stream.
+ A task that represents the asynchronous copy operation.
+ The stream from which the contents will be copied.
+ The stream to which the contents of the current stream will be copied.
+ The count of bytes to be copied.
+ The token to monitor for cancellation requests. The default value is .
+
+
+ Asynchronously reads the given number of bytes from the source stream and writes them to another stream, using a specified buffer size.
+ A task that represents the asynchronous copy operation.
+ The stream from which the contents will be copied.
+ The stream to which the contents of the current stream will be copied.
+ The count of bytes to be copied.
+ The size, in bytes, of the buffer. This value must be greater than zero. The default size is 4096.
+ The token to monitor for cancellation requests. The default value is .
+
+
+
+ Default implementation for .
+
+
+
+
+ Initializes a new instance of .
+
+ The for application services.
+
+
+
+ Initializes a new instance of .
+
+ The for application services.
+ The server instance that hosts the application.
+
+
+
+ Gets the for application services.
+
+
+
+
+ Gets the for server features.
+
+
+ An empty collection is returned if a server wasn't specified for the application builder.
+
+
+
+
+ Gets a set of properties for .
+
+
+
+
+ Adds the middleware to the application request pipeline.
+
+ The middleware.
+ An instance of after the operation has completed.
+
+
+
+ Creates a copy of this application builder.
+
+ The created clone has the same properties as the current instance, but does not copy
+ the request pipeline.
+
+
+ The cloned instance.
+
+
+
+ Produces a that executes added middlewares.
+
+ The .
+
+
+
+ Extension methods for the request timeouts middleware.
+
+
+
+
+ Enables request timeouts for the application.
+
+ No timeouts are configured by default. They must be configured in ,
+ the on endpoints, or using the WithRequestTimeout routing extensions.
+
+
+ The .
+
+
+
+ Request timeouts extension methods for .
+
+
+
+
+ Specifies a timeout for the endpoint(s).
+
+ The endpoint convention builder.
+ The timeout to apply for the endpoint(s).
+ The original convention builder parameter.
+
+
+
+ Specifies a timeout policy for to the endpoint(s).
+
+ The endpoint convention builder.
+ The name (case-insensitive) of the policy to apply for the endpoint(s).
+ The original convention builder parameter.
+
+
+
+ Specifies a timeout policy for to the endpoint(s).
+
+ The endpoint convention builder.
+ The request timeout policy.
+ The original convention builder parameter.
+
+
+
+ Disables request timeout on the endpoint(s).
+
+ The endpoint convention builder.
+ The original convention builder parameter.
+ Will skip both the default timeout, and any endpoint-specific timeout that apply to the endpoint(s).
+
+
+
+ A with a back pointer to the pool it came from.
+ Dispose will return it to the pool.
+
+
+
+
+ An type to hold a small amount of items (10 or less in the common case).
+
+
+
+
+ Creates an empty .
+
+
+
+
+ Creates a .
+
+ Equality comparison.
+
+
+
+ Creates a .
+
+ Initial capacity.
+
+
+
+ Creates a .
+
+ Initial capacity.
+ Equality comparison.
+
+
+
+ Creates a initialized with the specified .
+
+ A dictionary to use.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Attempts to remove and return the value that has the specified key from the .
+
+ The key of the element to remove and return.
+ When this method returns, contains the object removed from the , or null if key does not exist.
+
+ true if the object was removed successfully; otherwise, false.
+
+
+
+
+ Attempts to the add the provided and to the dictionary.
+
+ The key.
+ The value.
+ Returns true if the value was added. Returns false if the key was already present.
+
+
+
+
+
+
+
+
+
+ Instantiates a new enumerator with the values provided in .
+
+ A .
+
+
+
+
+
+
+ Releases resources used by the .
+
+
+
+
+
+
+
+
+
+
+ Extension methods for configuring HttpContext services.
+
+
+
+
+ Adds a default implementation for the service.
+
+ The .
+ The service collection.
+
+
+
+ Extension methods for the request timeouts middleware.
+
+
+
+
+ Add request timeout services.
+
+ The for adding services.
+
+
+
+
+ Add request timeout services and configure the related options.
+
+ The for adding services.
+ A delegate to configure the .
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.HttpLogging.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.HttpLogging.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c9a49f177cfe87c596ff735df34c985d8048902e
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.HttpLogging.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.HttpsPolicy.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.HttpsPolicy.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3f0cc3d8f4003c27f058519fdfca8e84c0366980
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.HttpsPolicy.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Identity.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Identity.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9c5fc489ad9859b5d8b3e00f38a808a532868199
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Identity.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Localization.Routing.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Localization.Routing.dll
new file mode 100644
index 0000000000000000000000000000000000000000..58ab767487182439937cbdd44bf283694dae0c30
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Localization.Routing.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Localization.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Localization.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8ae9ed01fe03a67336e27183b75c3820c3678bb3
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Localization.xml
@@ -0,0 +1,465 @@
+
+
+
+ Microsoft.AspNetCore.Localization
+
+
+
+
+ Determines the culture information for a request via the value of the Accept-Language header.
+
+
+
+
+ The maximum number of values in the Accept-Language header to attempt to create a
+ from for the current request.
+ Defaults to 3.
+
+
+
+
+
+
+
+ Determines the culture information for a request via the value of a cookie.
+
+
+
+
+ Represent the default cookie name used to track the user's preferred culture information, which is ".AspNetCore.Culture".
+
+
+
+
+ The name of the cookie that contains the user's preferred culture information.
+ Defaults to .
+
+
+
+
+
+
+
+ Creates a string representation of a for placement in a cookie.
+
+ The .
+ The cookie value.
+
+
+
+ Parses a from the specified cookie value.
+ Returns null if parsing fails.
+
+ The cookie value to parse.
+ The or null if parsing fails.
+
+
+
+ Determines the culture information for a request via the configured delegate.
+
+
+
+
+ Creates a new using the specified delegate.
+
+ The provider delegate.
+
+
+
+
+
+
+ Represents the feature that provides the current request's culture information.
+
+
+
+
+ The of the request.
+
+
+
+
+ The that determined the request's culture information.
+ If the value is null then no provider was used and the request's culture was set to the value of
+ .
+
+
+
+
+ Represents a provider for determining the culture information of an .
+
+
+
+
+ Implements the provider to determine the culture of the given request.
+
+ The for the request.
+
+ The determined .
+ Returns null if the provider couldn't determine a .
+
+
+
+
+ Details about the cultures obtained from .
+
+
+
+
+ Creates a new object that has its and
+ properties set to the same culture value.
+
+ The name of the culture to be used for formatting, text, i.e. language.
+
+
+
+ Creates a new object has its and
+ properties set to the respective culture values provided.
+
+ The name of the culture to be used for formatting.
+ The name of the ui culture to be used for text, i.e. language.
+
+
+
+ Creates a new object that has its and
+ properties set to the same culture value.
+
+ The list of cultures to be used for formatting, text, i.e. language.
+
+
+
+ Creates a new object has its and
+ properties set to the respective culture values provided.
+
+ The list of cultures to be used for formatting.
+ The list of ui cultures to be used for text, i.e. language.
+
+
+
+ Gets the list of cultures to be used for formatting.
+
+
+
+
+ Gets the list of ui cultures to be used for text, i.e. language;
+
+
+
+
+ Determines the culture information for a request via values in the query string.
+
+
+
+
+ The key that contains the culture name.
+ Defaults to "culture".
+
+
+
+
+ The key that contains the UI culture name. If not specified or no value is found,
+ will be used.
+ Defaults to "ui-culture".
+
+
+
+
+
+
+
+ Details about the culture for an .
+
+
+
+
+ Creates a new object with its and
+ properties set to the same value.
+
+ The for the request.
+
+
+
+ Creates a new object with its and
+ properties set to the same value.
+
+ The culture for the request.
+
+
+
+ Creates a new object with its and
+ properties set to the respective values provided.
+
+ The culture for the request to be used for formatting.
+ The culture for the request to be used for text, i.e. language.
+
+
+
+ Creates a new object with its and
+ properties set to the respective values provided.
+
+ The for the request to be used for formatting.
+ The for the request to be used for text, i.e. language.
+
+
+
+ Gets the for the request to be used for formatting.
+
+
+
+
+ Gets the for the request to be used for text, i.e. language;
+
+
+
+
+ Provides the current request's culture information.
+
+
+
+
+ Creates a new with the specified .
+
+ The .
+ The .
+
+
+
+
+
+
+
+
+
+ An abstract base class provider for determining the culture information of an .
+
+
+
+
+ Result that indicates that this instance of could not determine the
+ request culture.
+
+
+
+
+ The current options for the .
+
+
+
+
+
+
+
+ Enables automatic setting of the culture for s based on information
+ sent by the client in headers and logic provided by the application.
+
+
+
+
+ Creates a new .
+
+ The representing the next middleware in the pipeline.
+ The representing the options for the
+ The used for logging.
+ .
+
+
+
+ Invokes the logic of the middleware.
+
+ The .
+ A that completes when the middleware has completed processing.
+
+
+ Please provide at least one culture.
+
+
+
+ Extension methods for adding the to an application.
+
+
+
+
+ Adds the to automatically set culture information for
+ requests based on information provided by the client.
+
+ The .
+ The .
+
+
+
+ Adds the to automatically set culture information for
+ requests based on information provided by the client.
+
+ The .
+ The to configure the middleware with.
+ The .
+
+
+
+ Adds the to automatically set culture information for
+ requests based on information provided by the client.
+
+ The .
+ A callback that configures the .
+
+ This will going to instantiate a new that doesn't come from the services.
+
+ The .
+
+
+
+ Adds the to automatically set culture information for
+ requests based on information provided by the client.
+
+ The .
+ The culture names to be added by the application, which is represents both supported cultures and UI cultures.
+ The .
+
+ Note that the first culture is the default culture name.
+
+
+
+
+ Specifies options for the .
+
+
+
+
+ Creates a new with default values.
+
+
+
+
+ Configures . Defaults to true.
+
+
+
+
+ Gets or sets the default culture to use for requests when a supported culture could not be determined by
+ one of the configured s.
+ Defaults to and .
+
+
+
+
+ Gets or sets a value indicating whether to set a request culture to an parent culture in the case the
+ culture determined by the configured s is not in the
+ list but a parent culture is.
+ Defaults to true;
+
+
+ Note that the parent culture check is done using only the culture name.
+
+
+ If this property is true and the application is configured to support the culture "fr", but not the
+ culture "fr-FR", and a configured determines a request's culture is
+ "fr-FR", then the request's culture will be set to the culture "fr", as it is a parent of "fr-FR".
+
+
+
+
+ Gets or sets a value indicating whether to set a request UI culture to a parent culture in the case the
+ UI culture determined by the configured s is not in the
+ list but a parent culture is.
+ Defaults to true;
+
+
+ Note that the parent culture check is done using ony the culture name.
+
+
+ If this property is true and the application is configured to support the UI culture "fr", but not
+ the UI culture "fr-FR", and a configured determines a request's UI
+ culture is "fr-FR", then the request's UI culture will be set to the culture "fr", as it is a parent of
+ "fr-FR".
+
+
+
+
+ Gets or sets a value that determines if is applied to the response Content-Language header.
+
+
+
+
+ The cultures supported by the application. The will only set
+ the current request culture to an entry in this list.
+ Defaults to .
+
+
+
+
+ The UI cultures supported by the application. The will only set
+ the current request culture to an entry in this list.
+ Defaults to .
+
+
+
+
+ An ordered list of providers used to determine a request's culture information. The first provider that
+ returns a non-null result for a given request will be used.
+ Defaults to the following:
+
+
+
+
+
+
+
+
+
+ Adds the set of the supported cultures by the application.
+
+ The cultures to be added.
+ The .
+
+
+
+ Adds the set of the supported UI cultures by the application.
+
+ The UI cultures to be added.
+ The .
+
+
+
+ Set the default culture which is used by the application when a supported culture could not be determined by
+ one of the configured s.
+
+ The default culture to be set.
+ The .
+
+
+
+ Extension methods for the .
+
+
+
+
+ Adds a new to the .
+
+ The cultures to be added.
+ The cultures to be added.
+ The .
+ This method ensures that has priority over other instances in .
+
+
+
+ Extension methods for the request localization middleware.
+
+
+
+
+ Adds services and options for the request localization middleware.
+
+ The for adding services.
+ A delegate to configure the .
+ The .
+
+
+
+ Adds services and options for the request localization middleware.
+
+ The for adding services.
+ A delegate to configure the .
+ The .
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Metadata.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Metadata.xml
new file mode 100644
index 0000000000000000000000000000000000000000..37bed099796ed502fb819f8117879f742dd505e6
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Metadata.xml
@@ -0,0 +1,33 @@
+
+
+
+ Microsoft.AspNetCore.Metadata
+
+
+
+
+ Marker interface to allow access to anonymous users.
+
+
+
+
+ Defines the set of data required to apply authorization rules to a resource.
+
+
+
+
+ Gets or sets the policy name that determines access to the resource.
+
+
+
+
+ Gets or sets a comma delimited list of roles that are allowed to access the resource.
+
+
+
+
+ Gets or sets a comma delimited list of schemes from which user information is constructed.
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.Abstractions.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.Abstractions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6892bb7a0493c26a9557ea965a8536184659e6de
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.Abstractions.xml
@@ -0,0 +1,5070 @@
+
+
+
+ Microsoft.AspNetCore.Mvc.Abstractions
+
+
+
+
+ Describes an MVC action.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Gets an id which uniquely identifies the action.
+
+
+
+
+ Gets or sets the collection of route values that must be provided by routing
+ for the action to be selected.
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ The set of constraints for this action. Must all be satisfied for the action to be selected.
+
+
+
+
+ Gets or sets the endpoint metadata for this action.
+ This API is meant for infrastructure and should not be used by application code.
+
+
+
+
+ The set of parameters associated with this action.
+
+
+
+
+ The set of properties which are model bound.
+
+
+
+
+ The set of filters associated with this action.
+
+
+
+
+ A friendly name for this action.
+
+
+
+
+ Stores arbitrary metadata properties associated with the .
+
+
+
+
+ Extension methods for .
+
+
+
+
+ Gets the value of a property from the collection
+ using the provided value of as the key.
+
+ The type of the property.
+ The action descriptor.
+ The property or the default value of .
+
+
+
+ Sets the value of an property in the collection using
+ the provided value of as the key.
+
+ The type of the property.
+ The action descriptor.
+ The value of the property.
+
+
+
+ A context for .
+
+
+
+
+ Gets the of instances of
+ can populate.
+
+
+
+
+ A context for .
+
+
+
+
+ Initializes a new instance of .
+
+ The to invoke.
+
+
+
+ Gets the to invoke.
+
+
+
+
+ Gets or sets the that will be used to invoke
+
+
+
+
+ Defines a contract for specifying instances.
+
+
+
+ On application initialization, MVC invokes all registered instances of to
+ perform discovery.
+ instances are invoked in the ascending sort order of .
+
+
+ Each provider has its method
+ called in sequence and given the same instance of . Then each
+ provider has its method called in the reverse order. Each instance has
+ an opportunity to add or modify .
+
+
+ As providers are called in a predefined sequence, each provider has a chance to observe and decorate the
+ result of the providers that have already run.
+
+
+
+
+
+ Gets the order value for determining the order of execution of providers. Providers execute in
+ ascending numeric value of the property.
+
+
+
+ Providers are executed in an ordering determined by an ascending sort of the property.
+ A provider with a lower numeric value of will have its
+ called before that of a provider with a higher numeric value of
+ . The method is called in the reverse ordering after
+ all calls to . A provider with a lower numeric value of
+ will have its method called after that of a provider
+ with a higher numeric value of .
+
+
+ If two providers have the same numeric value of , then their relative execution order
+ is undefined.
+
+
+
+
+
+ Called to execute the provider.
+ for details on the order of execution of .
+
+ The .
+
+
+
+ Called to execute the provider, after the methods of all providers,
+ have been called.
+ for details on the order of execution of .
+
+ The .
+
+
+
+ Defines an interface for invoking an MVC action.
+
+
+ An is created for each request the MVC handles by querying the set of
+ instances. See for more information.
+
+
+
+
+ Invokes an MVC action.
+
+ A which will complete when action processing has completed.
+
+
+
+ Defines an interface for components that can create an for the
+ current request.
+
+
+
+ instances form a pipeline that results in the creation of an
+ . The instances are ordered by
+ an ascending sort of the .
+
+
+ To create an , each provider has its method
+ called in sequence and given the same instance of . Then each
+ provider has its method called in the reverse order. The result is
+ the value of .
+
+
+ As providers are called in a predefined sequence, each provider has a chance to observe and decorate the
+ result of the providers that have already run.
+
+
+
+
+
+ Gets the order value for determining the order of execution of providers. Providers execute in
+ ascending numeric value of the property.
+
+
+
+ Providers are executed in an ordering determined by an ascending sort of the property.
+ A provider with a lower numeric value of will have its
+ called before that of a provider with a higher numeric value of
+ . The method is called in the reverse ordering after
+ all calls to . A provider with a lower numeric value of
+ will have its method called after that of a provider
+ with a higher numeric value of .
+
+
+ If two providers have the same numeric value of , then their relative execution order
+ is undefined.
+
+
+
+
+
+ Called to execute the provider.
+
+ The .
+
+
+
+ Called to execute the provider, after the methods of all providers,
+ have been called.
+
+ The .
+
+
+
+ Describes a parameter in an action.
+
+
+
+
+ Gets or sets the parameter name.
+
+
+
+
+ Gets or sets the type of the parameter.
+
+
+
+
+ Gets or sets the for the parameter.
+
+
+
+ Value cannot be null or empty.
+
+
+ The ModelMetadata property must be set before accessing this property.
+
+
+ A field previously marked invalid should not be marked valid.
+
+
+ A field previously marked invalid should not be marked skipped.
+
+
+ The maximum number of allowed model errors has been reached.
+
+
+ Body
+
+
+ Custom
+
+
+ Form
+
+
+ Header
+
+
+ Services
+
+
+ ModelBinding
+
+
+ Path
+
+
+ Query
+
+
+ The provided binding source '{0}' is a composite. '{1}' requires that the source must represent a single type of input.
+
+
+ The provided binding source '{0}' is a composite. '{1}' requires that the source must represent a single type of input.
+
+
+ The provided binding source '{0}' is not a request-based binding source. '{1}' requires that the source must represent data from an HTTP request.
+
+
+ The provided binding source '{0}' is not a request-based binding source. '{1}' requires that the source must represent data from an HTTP request.
+
+
+ The provided binding source '{0}' is a greedy data source. '{1}' does not support greedy data sources.
+
+
+ The provided binding source '{0}' is a greedy data source. '{1}' does not support greedy data sources.
+
+
+ The provided binding source '{0}' is not a greedy data source. '{1}' only supports greedy data sources.
+
+
+ The provided binding source '{0}' is not a greedy data source. '{1}' only supports greedy data sources.
+
+
+ Special
+
+
+ FormFile
+
+
+ The type '{0}' must implement '{1}' to be used as a model binder.
+
+
+ The type '{0}' must implement '{1}' to be used as a model binder.
+
+
+ Record type '{0}' has validation metadata defined on property '{1}' that will be ignored. '{1}' is a parameter in the record primary constructor and validation metadata must be associated with the constructor parameter.
+
+
+ Record type '{0}' has validation metadata defined on property '{1}' that will be ignored. '{1}' is a parameter in the record primary constructor and validation metadata must be associated with the constructor parameter.
+
+
+ The specified key exceeded the maximum ModelState depth: {0}
+
+
+ The specified key exceeded the maximum ModelState depth: {0}
+
+
+
+ Context for execution.
+
+
+
+
+ The list of . This includes all actions that are valid for the current
+ request, as well as their constraints.
+
+
+
+
+ The current .
+
+
+
+
+ The .
+
+
+
+
+ Represents an with or without a corresponding
+ .
+
+
+
+
+ Creates a new .
+
+ The instance.
+
+
+
+ The associated with .
+
+
+
+
+ The instance.
+
+
+
+
+ Gets or sets a value indicating whether or not can be reused across requests.
+
+
+
+
+ Context for an action constraint provider.
+
+
+
+
+ Creates a new .
+
+ The associated with the request.
+ The for which constraints are being created.
+ The list of objects.
+
+
+
+ The associated with the request.
+
+
+
+
+ The for which constraints are being created.
+
+
+
+
+ The list of objects.
+
+
+
+
+ A candidate action for action selection.
+
+
+
+
+ Creates a new .
+
+ The representing a candidate for selection.
+
+ The list of instances associated with .
+
+
+
+
+ The representing a candidate for selection.
+
+
+
+
+ The list of instances associated with .
+
+
+
+
+ Supports conditional logic to determine whether or not an associated action is valid to be selected
+ for the given request.
+
+
+ Action constraints have the secondary effect of making an action with a constraint applied a better
+ match than one without.
+
+ Consider two actions, 'A' and 'B' with the same action and controller name. Action 'A' only allows the
+ HTTP POST method (via a constraint) and action 'B' has no constraints.
+
+ If an incoming request is a POST, then 'A' is considered the best match because it both matches and
+ has a constraint. If an incoming request uses any other verb, 'A' will not be valid for selection
+ due to it's constraint, so 'B' is the best match.
+
+
+ Action constraints are also grouped according to their order value. Any constraints with the same
+ group value are considered to be part of the same application policy, and will be executed in the
+ same stage.
+
+ Stages run in ascending order based on the value of . Given a set of actions which
+ are candidates for selection, the next stage to run is the lowest value of for any
+ constraint of any candidate which is greater than the order of the last stage.
+
+ Once the stage order is identified, each action has all of its constraints in that stage executed.
+ If any constraint does not match, then that action is not a candidate for selection. If any actions
+ with constraints in the current state are still candidates, then those are the 'best' actions and this
+ process will repeat with the next stage on the set of 'best' actions. If after processing the
+ subsequent stages of the 'best' actions no candidates remain, this process will repeat on the set of
+ 'other' candidate actions from this stage (those without a constraint).
+
+
+
+
+ The constraint order.
+
+
+ Constraints are grouped into stages by the value of . See remarks on
+ .
+
+
+
+
+ Determines whether an action is a valid candidate for selection.
+
+ The .
+ True if the action is valid for selection, otherwise false.
+
+
+
+ A factory for .
+
+
+ will be invoked during action selection
+ to create constraint instances for an action.
+
+ Place an attribute implementing this interface on a controller or action to insert an action
+ constraint created by a factory.
+
+
+
+
+ Gets a value that indicates if the result of
+ can be reused across requests.
+
+
+
+
+ Creates a new .
+
+ The per-request services.
+ An .
+
+
+
+ A marker interface that identifies a type as metadata for an .
+
+
+
+
+ Provider for .
+
+
+
+
+ Gets the order value for determining the order of execution of providers. Providers execute in
+ ascending numeric value of the property.
+
+
+
+ Providers are executed in an ordering determined by an ascending sort of the property.
+ A provider with a lower numeric value of will have its
+ called before that of a provider with a higher numeric value of
+ . The method is called in the reverse ordering after
+ all calls to . A provider with a lower numeric value of
+ will have its method called after that of a provider
+ with a higher numeric value of .
+
+
+ If two providers have the same numeric value of , then their relative execution order
+ is undefined.
+
+
+
+
+
+ Called to execute the provider.
+ for details on the order of execution of .
+
+ The .
+
+
+
+ Called to execute the provider, after the methods of all providers,
+ have been called.
+ for details on the order of execution of .
+
+ The .
+
+
+
+ Context object for execution of action which has been selected as part of an HTTP request.
+
+
+
+
+ Creates an empty .
+
+
+ The default constructor is provided for unit test purposes only.
+
+
+
+
+ Creates a new .
+
+ The to copy.
+
+
+
+ Creates a new .
+
+ The for the current request.
+ The for the current request.
+ The for the selected action.
+
+
+
+ Creates a new .
+
+ The for the current request.
+ The for the current request.
+ The for the selected action.
+ The .
+
+
+
+ Gets or sets the for the selected action.
+
+
+ The property setter is provided for unit test purposes only.
+
+
+
+
+ Gets or sets the for the current request.
+
+
+ The property setter is provided for unit test purposes only.
+
+
+
+
+ Gets the .
+
+
+
+
+ Gets or sets the for the current request.
+
+
+ The property setter is provided for unit test purposes only.
+
+
+
+
+ Represents an API exposed by this application.
+
+
+
+
+ Gets or sets for this api.
+
+
+
+
+ Gets or sets group name for this api.
+
+
+
+
+ Gets or sets the supported HTTP method for this api, or null if all HTTP methods are supported.
+
+
+
+
+ Gets a list of for this api.
+
+
+
+
+ Gets arbitrary metadata properties associated with the .
+
+
+
+
+ Gets or sets relative url path template (relative to application root) for this api.
+
+
+
+
+ Gets the list of possible formats for a request.
+
+
+ Will be empty if the action does not accept a parameter decorated with the [FromBody] attribute.
+
+
+
+
+ Gets the list of possible formats for a response.
+
+
+ Will be empty if the action returns no response, or if the response type is unclear. Use
+ ProducesAttribute on an action method to specify a response type.
+
+
+
+
+ A context object for providers.
+
+
+
+
+ Creates a new instance of .
+
+ The list of actions.
+
+
+
+ The list of actions.
+
+
+
+
+ The list of resulting .
+
+
+
+
+ A metadata description of an input to an API.
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Gets or sets the name.
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Gets or sets the parameter type.
+
+
+
+
+ Gets or sets the parameter descriptor.
+
+
+
+
+ Gets or sets a value that determines if the parameter is required.
+
+
+ A parameter is considered required if
+
+ - it's bound from the request body ().
+ - it's a required route value.
+ - it has annotations (e.g. BindRequiredAttribute) that indicate it's required.
+
+
+
+
+
+ Gets or sets the default value for a parameter.
+
+
+
+
+ A metadata description of routing information for an .
+
+
+
+
+ Gets or sets the set of objects for the parameter.
+
+
+ Route constraints are only applied when a value is bound from a URL's path. See
+ for the data source considered.
+
+
+
+
+ Gets or sets the default value for the parameter.
+
+
+
+
+ Gets a value indicating whether not a parameter is considered optional by routing.
+
+
+ An optional parameter is considered optional by the routing system. This does not imply
+ that the parameter is considered optional by the action.
+
+ If the parameter uses for the value of
+ then the value may also come from the
+ URL query string or form data.
+
+
+
+
+ A possible format for the body of a request.
+
+
+
+
+ The formatter used to read this request.
+
+
+
+
+ The media type of the request.
+
+
+
+
+ Possible format for an .
+
+
+
+
+ Gets or sets the formatter used to output this response.
+
+
+
+
+ Gets or sets the media type of the response.
+
+
+
+
+ Possible type of the response body which is formatted by .
+
+
+
+
+ Gets or sets the response formats supported by this type.
+
+
+
+
+ Gets or sets for the or null.
+
+
+ Will be null if is null or void.
+
+
+
+
+ Gets or sets the CLR data type of the response or null.
+
+
+ Will be null if the action returns no response, or if the response type is unclear. Use
+ Microsoft.AspNetCore.Mvc.ProducesAttribute or Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute on an action method
+ to specify a response type.
+
+
+
+
+ Gets or sets the HTTP response status code.
+
+
+
+
+ Gets or sets a value indicating whether the response type represents a default response.
+
+
+ If an has a default response, then the property should be ignored. This response
+ will be used when a more specific response format does not apply. The common use of a default response is to specify the format
+ for communicating error conditions.
+
+
+
+
+ Defines a contract for specifying instances.
+
+
+
+ On the first query for , MVC invokes all registered instances of
+ in the ascending sort order of .
+
+
+ Each provider has its method
+ called in sequence and given the same instance of . Then each
+ provider has its method called in the reverse order. Each instance has
+ an opportunity to add or modify .
+
+
+ As providers are called in a predefined sequence, each provider has a chance to observe and decorate the
+ result of the providers that have already run.
+
+
+
+
+
+ Gets the order value for determining the order of execution of providers. Providers execute in
+ ascending numeric value of the property.
+
+
+
+ Providers are executed in an ordering determined by an ascending sort of the property.
+ A provider with a lower numeric value of will have its
+ called before that of a provider with a higher numeric value of
+ . The method is called in the reverse ordering after
+ all calls to . A provider with a lower numeric value of
+ will have its method called after that of a provider
+ with a higher numeric value of .
+
+
+ If two providers have the same numeric value of , then their relative execution order
+ is undefined.
+
+
+
+
+
+ Creates or modifies s.
+
+ The .
+
+
+
+ Called after implementations with higher values have been called.
+
+ The .
+
+
+
+ A filter that allows anonymous requests, disabling some s.
+
+
+
+
+ A context for action filters, specifically calls.
+
+
+
+
+ Instantiates a new instance.
+
+ The .
+ All applicable implementations.
+ The controller instance containing the action.
+
+
+
+ Gets or sets an indication that an action filter short-circuited the action and the action filter pipeline.
+
+
+
+
+ Gets the controller instance containing the action.
+
+
+
+
+ Gets or sets the caught while executing the action or action filters, if
+ any.
+
+
+
+
+ Gets or sets the for the
+ , if an was caught and this information captured.
+
+
+
+
+ Gets or sets an indication that the has been handled.
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ A context for action filters, specifically and
+ calls.
+
+
+
+
+ Instantiates a new instance.
+
+ The .
+ All applicable implementations.
+
+ The arguments to pass when invoking the action. Keys are parameter names.
+
+ The controller instance containing the action.
+
+
+
+ Gets or sets the to execute. Setting to a non-null
+ value inside an action filter will short-circuit the action and any remaining action filters.
+
+
+
+
+ Gets the arguments to pass when invoking the action. Keys are parameter names.
+
+
+
+
+ Gets the controller instance containing the action.
+
+
+
+
+ A delegate that asynchronously returns an indicating the action or the next
+ action filter has executed.
+
+
+ A that on completion returns an .
+
+
+
+
+ A context for authorization filters i.e. and
+ implementations.
+
+
+
+
+ Instantiates a new instance.
+
+ The .
+ All applicable implementations.
+
+
+
+ Gets or sets the result of the request. Setting to a non-null value inside
+ an authorization filter will short-circuit the remainder of the filter pipeline.
+
+
+
+
+ A context for exception filters i.e. and
+ implementations.
+
+
+
+
+ Instantiates a new instance.
+
+ The .
+ All applicable implementations.
+
+
+
+ Gets or sets the caught while executing the action.
+
+
+
+
+ Gets or sets the for the
+ , if this information was captured.
+
+
+
+
+ Gets or sets an indication that the has been handled.
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ An abstract context for filters.
+
+
+
+
+ Instantiates a new instance.
+
+ The .
+ All applicable implementations.
+
+
+
+ Gets all applicable implementations.
+
+
+
+
+ Returns a value indicating whether the provided is the most effective
+ policy (most specific) applied to the action associated with the .
+
+ The type of the filter policy.
+ The filter policy instance.
+
+ true if the provided is the most effective policy, otherwise false.
+
+
+
+ The method is used to implement a common convention
+ for filters that define an overriding behavior. When multiple filters may apply to the same
+ cross-cutting concern, define a common interface for the filters () and
+ implement the filters such that all of the implementations call this method to determine if they should
+ take action.
+
+
+ For instance, a global filter might be overridden by placing a filter attribute on an action method.
+ The policy applied directly to the action method could be considered more specific.
+
+
+ This mechanism for overriding relies on the rules of order and scope that the filter system
+ provides to control ordering of filters. It is up to the implementor of filters to implement this
+ protocol cooperatively. The filter system has no innate notion of overrides, this is a recommended
+ convention.
+
+
+
+
+
+ Returns the most effective (most specific) policy of type applied to
+ the action associated with the .
+
+ The type of the filter policy.
+ The implementation of applied to the action associated with
+ the
+
+
+
+
+ Descriptor for an .
+
+
+ describes an with an order and scope.
+
+ Order and scope control the execution order of filters. Filters with a higher value of Order execute
+ later in the pipeline.
+
+ When filters have the same Order, the Scope value is used to determine the order of execution. Filters
+ with a higher value of Scope execute later in the pipeline. See Microsoft.AspNetCore.Mvc.FilterScope
+ for commonly used scopes.
+
+ For implementations, the filter runs only after an exception has occurred,
+ and so the observed order of execution will be opposite that of other filters.
+
+
+
+
+ Creates a new .
+
+ The .
+ The filter scope.
+
+ If the implements , then the value of
+ will be taken from . Otherwise the value
+ of will default to 0.
+
+
+
+
+ The instance.
+
+
+
+
+ The filter order.
+
+
+
+
+ The filter scope.
+
+
+
+
+ Used to associate executable filters with instances
+ as part of . An should
+ inspect and set and
+ as appropriate.
+
+
+
+
+ Creates a new .
+
+ The .
+
+
+
+ Creates a new .
+
+ The .
+
+
+
+
+ Gets the containing the filter metadata.
+
+
+
+
+ Gets or sets the executable associated with .
+
+
+
+
+ Gets or sets a value indicating whether or not can be reused across requests.
+
+
+
+
+ A context for filter providers i.e. implementations.
+
+
+
+
+ Instantiates a new instance.
+
+ The .
+
+ The s, initially created from s or a cache entry.
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Gets or sets the s, initially created from s or a
+ cache entry. s should set on existing items or
+ add new s to make executable filters available.
+
+
+
+
+ A filter that surrounds execution of the action.
+
+
+
+
+ Called before the action executes, after model binding is complete.
+
+ The .
+
+
+
+ Called after the action executes, before the action result.
+
+ The .
+
+
+
+ A filter that surrounds execution of all action results.
+
+
+
+ The interface declares an implementation
+ that should run for all action results. .
+
+
+ and instances are not executed in cases where
+ an authorization filter or resource filter short-circuits the request to prevent execution of the action.
+ and implementations
+ are also not executed in cases where an exception filter handles an exception by producing an action result.
+
+
+
+
+
+ A filter that asynchronously surrounds execution of the action, after model binding is complete.
+
+
+
+
+ Called asynchronously before the action, after model binding is complete.
+
+ The .
+
+ The . Invoked to execute the next action filter or the action itself.
+
+ A that on completion indicates the filter has executed.
+
+
+
+ A filter that asynchronously surrounds execution of all action results.
+
+
+
+ The interface declares an implementation
+ that should run for all action results. .
+
+
+ and instances are not executed in cases where
+ an authorization filter or resource filter short-circuits the request to prevent execution of the action.
+ and implementations
+ are also not executed in cases where an exception filter handles an exception by producing an action result.
+
+
+
+
+
+ A filter that asynchronously confirms request authorization.
+
+
+
+
+ Called early in the filter pipeline to confirm request is authorized.
+
+ The .
+
+ A that on completion indicates the filter has executed.
+
+
+
+
+ A filter that runs asynchronously after an action has thrown an .
+
+
+
+
+ Called after an action has thrown an .
+
+ The .
+ A that on completion indicates the filter has executed.
+
+
+
+ A filter that asynchronously surrounds execution of model binding, the action (and filters) and the action
+ result (and filters).
+
+
+
+
+ Called asynchronously before the rest of the pipeline.
+
+ The .
+
+ The . Invoked to execute the next resource filter or the remainder
+ of the pipeline.
+
+
+ A which will complete when the remainder of the pipeline completes.
+
+
+
+
+ A filter that asynchronously surrounds execution of action results successfully returned from an action.
+
+
+
+ and implementations are executed around the action
+ result only when the action method (or action filters) complete successfully.
+
+
+ and instances are not executed in cases where
+ an authorization filter or resource filter short-circuits the request to prevent execution of the action.
+ . and implementations
+ are also not executed in cases where an exception filter handles an exception by producing an action result.
+
+
+ To create a result filter that surrounds the execution of all action results, implement
+ either the or the interface.
+
+
+
+
+
+ Called asynchronously before the action result.
+
+ The .
+
+ The . Invoked to execute the next result filter or the result itself.
+
+ A that on completion indicates the filter has executed.
+
+
+
+ A filter that confirms request authorization.
+
+
+
+
+ Called early in the filter pipeline to confirm request is authorized.
+
+ The .
+
+
+
+ A filter that runs after an action has thrown an .
+
+
+
+
+ Called after an action has thrown an .
+
+ The .
+
+
+
+ A filter that requires a reference back to the that created it.
+
+
+
+
+ The that created this filter instance.
+
+
+
+
+ An interface for filter metadata which can create an instance of an executable filter.
+
+
+
+
+ Gets a value that indicates if the result of
+ can be reused across requests.
+
+
+
+
+ Creates an instance of the executable filter.
+
+ The request .
+ An instance of the executable filter.
+
+
+
+ Marker interface for filters handled in the MVC request pipeline.
+
+
+
+
+ A provider. Implementations should update
+ to make executable filters available.
+
+
+
+
+ Gets the order value for determining the order of execution of providers. Providers execute in
+ ascending numeric value of the property.
+
+
+
+ Providers are executed in an ordering determined by an ascending sort of the property.
+ A provider with a lower numeric value of will have its
+ called before that of a provider with a higher numeric value of
+ . The method is called in the reverse ordering after
+ all calls to . A provider with a lower numeric value of
+ will have its method called after that of a provider
+ with a higher numeric value of .
+
+
+ If two providers have the same numeric value of , then their relative execution order
+ is undefined.
+
+
+
+
+
+ Called in increasing .
+
+ The .
+
+
+
+ Called in decreasing , after all s have executed once.
+
+ The .
+
+
+
+ A filter that specifies the relative order it should run.
+
+
+
+
+ Gets the order value for determining the order of execution of filters. Filters execute in
+ ascending numeric value of the property.
+
+
+
+ Filters are executed in an ordering determined by an ascending sort of the property.
+
+
+ Asynchronous filters, such as , surround the execution of subsequent
+ filters of the same filter kind. An asynchronous filter with a lower numeric
+ value will have its filter method, such as ,
+ executed before that of a filter with a higher value of .
+
+
+ Synchronous filters, such as , have a before-method, such as
+ , and an after-method, such as
+ . A synchronous filter with a lower numeric
+ value will have its before-method executed before that of a filter with a higher value of
+ . During the after-stage of the filter, a synchronous filter with a lower
+ numeric value will have its after-method executed after that of a filter with a higher
+ value of .
+
+
+ If two filters have the same numeric value of , then their relative execution order
+ is determined by the filter scope.
+
+
+
+
+
+ A filter that surrounds execution of model binding, the action (and filters) and the action result
+ (and filters).
+
+
+
+
+ Executes the resource filter. Called before execution of the remainder of the pipeline.
+
+ The .
+
+
+
+ Executes the resource filter. Called after execution of the remainder of the pipeline.
+
+ The .
+
+
+
+ A filter that surrounds execution of action results successfully returned from an action.
+
+
+
+ and implementations are executed around the action
+ result only when the action method (or action filters) complete successfully.
+
+
+ and instances are not executed in cases where
+ an authorization filter or resource filter short-circuits the request to prevent execution of the action.
+ . and implementations
+ are also not executed in cases where an exception filter handles an exception by producing an action result.
+
+
+ To create a result filter that surrounds the execution of all action results, implement
+ either the or the interface.
+
+
+
+
+
+ Called before the action result executes.
+
+ The .
+
+
+
+ Called after the action result executes.
+
+ The .
+
+
+
+ A context for resource filters, specifically calls.
+
+
+
+
+ Creates a new .
+
+ The .
+ The list of instances.
+
+
+
+ Gets or sets a value which indicates whether or not execution was canceled by a resource filter.
+ If true, then a resource filter short-circuited execution by setting
+ .
+
+
+
+
+ Gets or set the current .
+
+
+
+ Setting or to null will treat
+ the exception as handled, and it will not be rethrown by the runtime.
+
+
+ Setting to true will also mark the exception as handled.
+
+
+
+
+
+ Gets or set the current .
+
+
+
+ Setting or to null will treat
+ the exception as handled, and it will not be rethrown by the runtime.
+
+
+ Setting to true will also mark the exception as handled.
+
+
+
+
+
+
+ Gets or sets a value indicating whether or not the current has been handled.
+
+
+ If false the will be rethrown by the runtime after resource filters
+ have executed.
+
+
+
+
+
+ Gets or sets the result.
+
+
+
+ The may be provided by execution of the action itself or by another
+ filter.
+
+
+ The has already been written to the response before being made available
+ to resource filters.
+
+
+
+
+
+ A context for resource filters, specifically and
+ calls.
+
+
+
+
+ Creates a new .
+
+ The .
+ The list of instances.
+ The list of instances.
+
+
+
+ Gets or sets the result of the action to be executed.
+
+
+ Setting to a non-null value inside a resource filter will
+ short-circuit execution of additional resource filters and the action itself.
+
+
+
+
+ Gets the list of instances used by model binding.
+
+
+
+
+ A delegate that asynchronously returns a indicating model binding, the
+ action, the action's result, result filters, and exception filters have executed.
+
+ A that on completion returns a .
+
+
+
+ A context for result filters, specifically calls.
+
+
+
+
+ Instantiates a new instance.
+
+ The .
+ All applicable implementations.
+
+ The copied from .
+
+ The controller instance containing the action.
+
+
+
+ Gets or sets an indication that a result filter set to
+ true and short-circuited the filter pipeline.
+
+
+
+
+ Gets the controller instance containing the action.
+
+
+
+
+ Gets or sets the caught while executing the result or result filters, if
+ any.
+
+
+
+
+ Gets or sets the for the
+ , if an was caught and this information captured.
+
+
+
+
+ Gets or sets an indication that the has been handled.
+
+
+
+
+ Gets the copied from .
+
+
+
+
+ A context for result filters, specifically and
+ calls.
+
+
+
+
+ Instantiates a new instance.
+
+ The .
+ All applicable implementations.
+ The of the action and action filters.
+ The controller instance containing the action.
+
+
+
+ Gets the controller instance containing the action.
+
+
+
+
+ Gets or sets the to execute. Setting to a non-null
+ value inside a result filter will short-circuit the result and any remaining result filters.
+
+
+
+
+ Gets or sets an indication the result filter pipeline should be short-circuited.
+
+
+
+
+ A delegate that asynchronously returns an indicating the action result or
+ the next result filter has executed.
+
+ A that on completion returns an .
+
+
+
+ Represents a collection of formatters.
+
+ The type of formatters in the collection.
+
+
+
+ Initializes a new instance of the class that is empty.
+
+
+
+
+ Initializes a new instance of the class
+ as a wrapper for the specified list.
+
+ The list that is wrapped by the new collection.
+
+
+
+ Removes all formatters of the specified type.
+
+ The type to remove.
+
+
+
+ Removes all formatters of the specified type.
+
+ The type to remove.
+
+
+
+ Reads an object from the request body.
+
+
+
+
+ Determines whether this can deserialize an object of the
+ 's .
+
+ The .
+
+ true if this can deserialize an object of the
+ 's . false otherwise.
+
+
+
+
+ Reads an object from the request body.
+
+ The .
+ A that on completion deserializes the request body.
+
+
+
+ A policy which s can implement to indicate if they want the body model binder
+ to handle all exceptions. By default, all default s implement this interface and
+ have a default value of .
+
+
+
+
+ Gets the flag to indicate if the body model binder should handle all exceptions. If an exception is handled,
+ the body model binder converts the exception into model state errors, else the exception is allowed to propagate.
+
+
+
+
+ A context object used by an input formatter for deserializing the request body into an object.
+
+
+
+
+ Creates a new instance of .
+
+
+ The for the current operation.
+
+ The name of the model.
+
+ The for recording errors.
+
+
+ The of the model to deserialize.
+
+
+ A delegate which can create a for the request body.
+
+
+
+
+ Creates a new instance of .
+
+
+ The for the current operation.
+
+ The name of the model.
+
+ The for recording errors.
+
+
+ The of the model to deserialize.
+
+
+ A delegate which can create a for the request body.
+
+
+ A value for the property.
+
+
+
+
+ Gets a flag to indicate whether the input formatter should allow no value to be provided.
+ If , the input formatter should handle empty input by returning
+ . If , the input
+ formatter should handle empty input by returning the default value for the type
+ .
+
+
+
+
+ Gets the associated with the current operation.
+
+
+
+
+ Gets the name of the model. Used as the key or key prefix for errors added to .
+
+
+
+
+ Gets the associated with the current operation.
+
+
+
+
+ Gets the requested of the request body deserialization.
+
+
+
+
+ Gets the requested of the request body deserialization.
+
+
+
+
+ Gets a delegate which can create a for the request body.
+
+
+
+
+ Exception thrown by when the input is not in an expected format.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of with the specified .
+
+ The exception message.
+
+
+
+ Initializes a new instance of with the specified and
+ inner exception that is the cause of this exception.
+
+ The exception message.
+ The exception that is the cause of the current exception.
+
+
+
+ Defines the set of policies that determine how the model binding system interprets exceptions
+ thrown by an .
+
+
+
+ An could throw an exception for several reasons, including:
+
+ - malformed input
+ - client disconnect or other I/O problem
+ -
+ application configuration problems such as
+
+
+
+
+ The policy associated with treats
+ all such categories of problems as model state errors, and usually will be reported to the client as
+ an HTTP 400. This was the only policy supported by model binding in ASP.NET Core MVC 1.0, 1.1, and 2.0
+ and is still the default for historical reasons.
+
+
+ The policy associated with
+ treats only and its subclasses as model state errors. This means that
+ exceptions that are not related to the content of the HTTP request (such as a disconnect) will be re-thrown,
+ which by default would cause an HTTP 500 response, unless there is exception-handling middleware enabled.
+
+
+
+
+
+ This value indicates that all exceptions thrown by an will be treated
+ as model state errors.
+
+
+
+
+ This value indicates that only and subclasses will be treated
+ as model state errors. All other exceptions types will be re-thrown and can be handled by a higher
+ level exception handler, such as exception-handling middleware.
+
+
+
+
+ Result of a operation.
+
+
+
+
+ Gets an indication whether the operation had an error.
+
+
+
+
+ Gets an indication whether a value for the property was supplied.
+
+
+
+
+ Gets the deserialized .
+
+
+ null if is true.
+
+
+
+
+ Returns an indicating the
+ operation failed.
+
+
+ An indicating the
+ operation failed i.e. with true.
+
+
+
+
+ Returns a that on completion provides an indicating
+ the operation failed.
+
+
+ A that on completion provides an indicating the
+ operation failed i.e. with true.
+
+
+
+
+ Returns an indicating the
+ operation was successful.
+
+ The deserialized .
+
+ An indicating the
+ operation succeeded i.e. with false.
+
+
+
+
+ Returns a that on completion provides an indicating
+ the operation was successful.
+
+ The deserialized .
+
+ A that on completion provides an indicating the
+ operation succeeded i.e. with false.
+
+
+
+
+ Returns an indicating the
+ operation produced no value.
+
+
+ An indicating the
+ operation produced no value.
+
+
+
+
+ Returns a that on completion provides an indicating
+ the operation produced no value.
+
+
+ A that on completion provides an indicating the
+ operation produced no value.
+
+
+
+
+ Writes an object to the output stream.
+
+
+
+
+ Determines whether this can serialize
+ an object of the specified type.
+
+ The formatter context associated with the call.
+ Returns true if the formatter can write the response; false otherwise.
+
+
+
+ Writes the object represented by 's Object property.
+
+ The formatter context associated with the call.
+ A Task that serializes the value to the 's response message.
+
+
+
+ A context object for .
+
+
+
+
+ Creates a new .
+
+ The for the current request.
+
+
+
+ Gets or sets the context associated with the current operation.
+
+
+
+
+ Gets or sets the content type to write to the response.
+
+
+ An can set this value when its
+ method is called,
+ and expect to see the same value provided in
+
+
+
+
+
+ Gets or sets a value to indicate whether the content type was specified by server-side code.
+ This allows to
+ implement stricter filtering on content types that, for example, are being considered purely
+ because of an incoming Accept header.
+
+
+
+
+ Gets or sets the object to write to the response.
+
+
+
+
+ Gets or sets the of the object to write to the response.
+
+
+
+
+ A context object for .
+
+
+
+
+ Creates a new .
+
+ The for the current request.
+ The delegate used to create a for writing the response.
+ The of the object to write to the response.
+ The object to write to the response.
+
+
+
+
+ Gets or sets a delegate used to create a for writing text to the response.
+
+
+ Write to directly to write binary data to the response.
+
+
+
+
+ The created by this delegate will encode text and write to the
+ stream. Call this delegate to create a
+ for writing text output to the response stream.
+
+
+ To implement a formatter that writes binary data to the response stream, do not use the
+ delegate, and use instead.
+
+
+
+
+
+ Defines a contract that represents the result of an action method.
+
+
+
+
+ Executes the result operation of the action method asynchronously. This method is called by MVC to process
+ the result of an action method.
+
+ The context in which the result is executed. The context information includes
+ information about the action that was executed and request information.
+ A task that represents the asynchronous execute operation.
+
+
+
+ Defines the contract for the helper to build URLs for ASP.NET MVC within an application.
+
+
+
+
+ Gets the for the current request.
+
+
+
+
+ Generates a URL with an absolute path for an action method, which contains the action
+ name, controller name, route values, protocol to use, host name, and fragment specified by
+ . Generates an absolute URL if and
+ are non-null. See the remarks section for important security information.
+
+ The context object for the generated URLs for an action method.
+ The generated URL.
+
+
+ The value of should be a trusted value. Relying on the value of the current request
+ can allow untrusted input to influence the resulting URI unless the Host header has been validated.
+ See the deployment documentation for instructions on how to properly validate the Host header in
+ your deployment environment.
+
+
+
+
+
+ Converts a virtual (relative, starting with ~/) path to an application absolute path.
+
+
+ If the specified content path does not start with the tilde (~) character,
+ this method returns unchanged.
+
+ The virtual path of the content.
+ The application absolute path.
+
+
+
+ Returns a value that indicates whether the URL is local. A URL is considered local if it does not have a
+ host / authority part and it has an absolute path. URLs using virtual paths ('~/') are also local.
+
+ The URL.
+ true if the URL is local; otherwise, false.
+
+
+ For example, the following URLs are considered local:
+
+ /Views/Default/Index.html
+ ~/Index.html
+
+
+
+ The following URLs are non-local:
+
+ ../Index.html
+ http://www.contoso.com/
+ http://localhost/Index.html
+
+
+
+
+
+
+ Generates a URL with an absolute path, which contains the route name, route values, protocol to use, host
+ name, and fragment specified by . Generates an absolute URL if
+ and are non-null.
+ See the remarks section for important security information.
+
+ The context object for the generated URLs for a route.
+ The generated URL.
+
+
+ The value of should be a trusted value. Relying on the value of the current request
+ can allow untrusted input to influence the resulting URI unless the Host header has been validated.
+ See the deployment documentation for instructions on how to properly validate the Host header in
+ your deployment environment.
+
+
+
+
+
+ Generates an absolute URL for the specified and route
+ , which contains the protocol (such as "http" or "https") and host name from the
+ current request. See the remarks section for important security information.
+
+ The name of the route that is used to generate URL.
+ An object that contains route values.
+ The generated absolute URL.
+
+
+ This method uses the value of to populate the host section of the generated URI.
+ Relying on the value of the current request can allow untrusted input to influence the resulting URI unless
+ the Host header has been validated. See the deployment documentation for instructions on how to properly
+ validate the Host header in your deployment environment.
+
+
+
+
+
+ Binding info which represents metadata associated to an action parameter.
+
+
+
+
+ Creates a new .
+
+
+
+
+ Creates a copy of a .
+
+ The to copy.
+
+
+
+ Gets or sets the .
+
+
+
+
+ Gets or sets the binder model name.
+
+
+
+
+ Gets or sets the of the implementation used to bind the
+ model.
+
+
+ Also set if the specified implementation does not
+ use values from form data, route values or the query string.
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Gets or sets a predicate which determines whether or not the model should be bound based on state
+ from the current request.
+
+
+
+
+ Gets or sets the value which decides if empty bodies are treated as valid inputs.
+
+
+
+
+ Get or sets the value used as the key when looking for a keyed service
+
+
+
+
+ Constructs a new instance of from the given .
+
+ This overload does not account for specified via . Consider using
+ overload, or
+ on the result of this method to get a more accurate instance.
+
+
+ A collection of attributes which are used to construct
+
+ A new instance of .
+
+
+
+ Constructs a new instance of from the given and .
+
+ A collection of attributes which are used to construct .
+ The .
+ A new instance of if any binding metadata was discovered; otherwise or .
+
+
+
+ Applies binding metadata from the specified .
+
+ Uses values from if no value is already available.
+
+
+ The .
+ if any binding metadata from was applied;
+ otherwise.
+
+
+
+ A metadata object representing a source of data for model binding.
+
+
+
+
+ A for the request body.
+
+
+
+
+ A for a custom model binder (unknown data source).
+
+
+
+
+ A for the request form-data.
+
+
+
+
+ A for the request headers.
+
+
+
+
+ A for model binding. Includes form-data, query-string
+ and route data from the request.
+
+
+
+
+ A for the request url path.
+
+
+
+
+ A for the request query-string.
+
+
+
+
+ A for request services.
+
+
+
+
+ A for special parameter types that are not user input.
+
+
+
+
+ A for , , and .
+
+
+
+
+ Creates a new .
+
+ The id, a unique identifier.
+ The display name.
+ A value indicating whether or not the source is greedy.
+
+ A value indicating whether or not the data comes from the HTTP request.
+
+
+
+
+ Gets the display name for the source.
+
+
+
+
+ Gets the unique identifier for the source. Sources are compared based on their Id.
+
+
+
+
+ Gets a value indicating whether or not a source is greedy. A greedy source will bind a model in
+ a single operation, and will not decompose the model into sub-properties.
+
+
+
+ For sources based on a , setting to false
+ will most closely describe the behavior. This value is used inside the default model binders to
+ determine whether or not to attempt to bind properties of a model.
+
+
+ Set to true for most custom implementations.
+
+
+ If a source represents an which will recursively traverse a model's properties
+ and bind them individually using , then set to
+ true.
+
+
+
+
+
+ Gets a value indicating whether or not the binding source uses input from the current HTTP request.
+
+
+ Some sources (like ) are based on application state and not user
+ input. These are excluded by default from ApiExplorer diagnostics.
+
+
+
+
+ Gets a value indicating whether or not the can accept
+ data from .
+
+ The to consider as input.
+ True if the source is compatible, otherwise false.
+
+ When using this method, it is expected that the left-hand-side is metadata specified
+ on a property or parameter for model binding, and the right hand side is a source of
+ data used by a model binder or value provider.
+
+ This distinction is important as the left-hand-side may be a composite, but the right
+ may not.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A which can represent multiple value-provider data sources.
+
+
+
+
+ Creates a new .
+
+
+ The set of entries.
+ Must be value-provider sources and user input.
+
+ The display name for the composite source.
+ A .
+
+
+
+ Gets the set of entries.
+
+
+
+
+
+
+
+ Determines the behavior for processing empty bodies during input formatting.
+
+
+
+
+ Uses the framework default behavior for processing empty bodies.
+ This is typically configured using MvcOptions.AllowEmptyInputInBodyModelBinding.
+
+
+
+
+ Empty bodies are treated as valid inputs.
+
+
+
+
+ Empty bodies are treated as invalid inputs.
+
+
+
+
+ An abstraction used when grouping enum values for .
+
+
+
+
+ Initializes a new instance of the structure. This constructor should
+ not be used in any site where localization is important.
+
+ The group name.
+ The name.
+
+
+
+ Initializes a new instance of the structure.
+
+ The group name.
+ A which will return the name.
+
+
+
+ Gets the Group name.
+
+
+
+
+ Gets the name.
+
+
+
+
+ Provides a which implements .
+
+
+
+
+ A which implements either .
+
+
+
+
+ Metadata which specifies the data source for model binding.
+
+
+
+
+ Gets the .
+
+
+ The is metadata which can be used to determine which data
+ sources are valid for model binding of a property or parameter.
+
+
+
+
+ Defines an interface for model binders.
+
+
+
+
+ Attempts to bind a model.
+
+ The .
+
+
+ A which will complete when the model binding process completes.
+
+
+ If model binding was successful, the should have
+ set to true.
+
+
+ A model binder that completes successfully should set to
+ a value returned from .
+
+
+
+
+
+ Creates instances. Register
+ instances in MvcOptions.
+
+
+
+
+ Creates a based on .
+
+ The .
+ An .
+
+
+
+ A provider that can supply instances of .
+
+
+ While not obsolete, implementing or using is preferred over .
+
+
+
+
+ Supplies metadata describing a .
+
+ The .
+ A instance describing the .
+
+
+
+ Supplies metadata describing the properties of a .
+
+ The .
+ A set of instances describing properties of the .
+
+
+
+ Represents an entity which can provide model name as metadata.
+
+
+
+
+ Model name.
+
+
+
+
+ Provides a predicate which can determines which model properties or parameters should be bound by model binding.
+
+
+
+
+
+ Gets a predicate which can determines which model properties should be bound by model binding.
+
+
+ This predicate is also used to determine which parameters are bound when a model's constructor is bound.
+
+
+
+
+
+ An interface that allows a top-level model to be bound or not bound based on state associated
+ with the current request.
+
+
+
+
+ Gets a function which determines whether or not the model object should be bound based
+ on the current request.
+
+
+
+
+ Defines the methods that are required for a value provider.
+
+
+
+
+ Determines whether the collection contains the specified prefix.
+
+ The prefix to search for.
+ true if the collection contains the specified prefix; otherwise, false.
+
+
+
+ Retrieves a value object using the specified key.
+
+ The key of the value object to retrieve.
+ The value object for the specified key. If the exact key is not found, .
+
+
+
+ A factory for creating instances.
+
+
+
+
+ Creates a with values from the current request
+ and adds it to list.
+
+ The .
+ A that when completed will add an instance
+ to list if applicable.
+
+
+
+ Provider for error messages the model binding system detects.
+
+
+
+
+ Error message the model binding system adds when a property with an associated
+ BindRequiredAttribute is not bound.
+
+
+ Default is "A value for the '{0}' parameter or property was not provided.".
+
+
+
+
+ Error message the model binding system adds when either the key or the value of a
+ is bound but not both.
+
+ Default is "A value is required.".
+
+
+
+ Error message the model binding system adds when no value is provided for the request body,
+ but a value is required.
+
+ Default is "A non-empty request body is required.".
+
+
+
+ Error message the model binding system adds when a null value is bound to a
+ non- property.
+
+ Default is "The value '{0}' is invalid.".
+
+
+
+ Error message the model binding system adds when is of type
+ or , value is known, and error is associated
+ with a property.
+
+ Default is "The value '{0}' is not valid for {1}.".
+
+
+
+ Error message the model binding system adds when is of type
+ or , value is known, and error is associated
+ with a collection element or parameter.
+
+ Default is "The value '{0}' is not valid.".
+
+
+
+ Error message the model binding system adds when is of type
+ or , value is unknown, and error is associated
+ with a property.
+
+ Default is "The supplied value is invalid for {0}.".
+
+
+
+ Error message the model binding system adds when is of type
+ or , value is unknown, and error is associated
+ with a collection element or parameter.
+
+ Default is "The supplied value is invalid.".
+
+
+
+ Fallback error message HTML and tag helpers display when a property is invalid but the
+ s have null s.
+
+ Default is "The value '{0}' is invalid.".
+
+
+
+ Error message HTML and tag helpers add for client-side validation of numeric formats. Visible in the
+ browser if the field for a float (for example) property does not have a correctly-formatted value.
+
+ Default is "The field {0} must be a number.".
+
+
+
+ Error message HTML and tag helpers add for client-side validation of numeric formats. Visible in the
+ browser if the field for a float (for example) collection element or action parameter does not have a
+ correctly-formatted value.
+
+ Default is "The field must be a number.".
+
+
+
+ A key type which identifies a .
+
+
+
+
+ Creates a for the provided model .
+
+ The model .
+ A .
+
+
+
+ Creates a for the provided property.
+
+ The model type.
+ The name of the property.
+ The container type of the model property.
+ A .
+
+
+
+ Creates a for the provided property.
+
+ The model type.
+ The property.
+ The container type of the model property.
+ A .
+
+
+
+ Creates a for the provided parameter.
+
+ The .
+ A .
+
+
+
+ Creates a for the provided parameter with the specified
+ model type.
+
+ The .
+ The model type.
+ A .
+
+
+
+ Creates a for the provided parameter with the specified
+ model type.
+
+ The .
+ The model type.
+ A .
+
+
+
+ Gets the defining the model property represented by the current
+ instance, or null if the current instance does not represent a property.
+
+
+
+
+ Gets the represented by the current instance.
+
+
+
+
+ Gets a value indicating the kind of metadata represented by the current instance.
+
+
+
+
+ Gets the name of the current instance if it represents a parameter or property, or null if
+ the current instance represents a type.
+
+
+
+
+ Gets a descriptor for the parameter, or null if this instance
+ does not represent a parameter.
+
+
+
+
+ Gets a descriptor for the property, or null if this instance
+ does not represent a property.
+
+
+
+
+ Gets a descriptor for the constructor, or null if this instance
+ does not represent a constructor.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Enumeration for the kinds of
+
+
+
+
+ Used for for a .
+
+
+
+
+ Used for for a property.
+
+
+
+
+ Used for for a parameter.
+
+
+
+
+ for a constructor.
+
+
+
+
+ A context object for .
+
+
+
+
+ Creates an for the given .
+
+ The for the model.
+ An .
+
+
+
+ Creates an for the given
+ and .
+
+ The for the model.
+ The that should be used
+ for creating the binder.
+ An .
+
+
+
+ Gets the .
+
+
+
+
+ Gets the .
+
+
+
+
+ Gets the .
+
+
+
+
+ Gets the .
+
+
+
+
+ A context that contains operating information for model binding and validation.
+
+
+
+
+ Represents the associated with this context.
+
+
+ The property setter is provided for unit testing purposes only.
+
+
+
+
+ Gets or sets a model name which is explicitly set using an .
+
+
+
+
+ Gets or sets a value which represents the associated with the
+ .
+
+
+
+
+ Gets or sets the name of the current field being bound.
+
+
+
+
+ Gets the associated with this context.
+
+
+
+
+ Gets or sets an indication that the current binder is handling the top-level object.
+
+ Passed into the model binding system.
+
+
+
+ Gets or sets the model value for the current operation.
+
+
+ The will typically be set for a binding operation that works
+ against a pre-existing model object to update certain properties.
+
+
+
+
+ Gets or sets the metadata for the model associated with this context.
+
+
+
+
+ Gets or sets the name of the model. This property is used as a key for looking up values in
+ during model binding.
+
+
+
+
+ Gets or sets the name of the top-level model. This is not reset to when value
+ providers have no match for that model.
+
+
+
+
+ Gets or sets the used to capture values
+ for properties in the object graph of the model when binding.
+
+
+ The property setter is provided for unit testing purposes only.
+
+
+
+
+ Gets the type of the model.
+
+
+ The property must be set to access this property.
+
+
+
+
+ Gets or sets a predicate which will be evaluated for each property to determine if the property
+ is eligible for model binding.
+
+
+
+
+ Gets or sets the . Used for tracking validation state to
+ customize validation behavior for a model object.
+
+
+ The property setter is provided for unit testing purposes only.
+
+
+
+
+ Gets or sets the associated with this context.
+
+
+
+
+
+ Gets or sets a which represents the result of the model binding process.
+
+
+ Before an is called, will be set to a value indicating
+ failure. The binder should set to a value created with
+ if model binding succeeded.
+
+
+
+
+
+ Pushes a layer of state onto this context. implementations will call this as
+ part of recursion when binding properties or collection items.
+
+
+ to assign to the property.
+
+ Name to assign to the property.
+ Name to assign to the property.
+ Instance to assign to the property.
+
+ A scope object which should be used in a using statement where
+ is called.
+
+
+
+
+ Pushes a layer of state onto this context. implementations will call this as
+ part of recursion when binding properties or collection items.
+
+
+ A scope object which should be used in a using statement where
+ is called.
+
+
+
+
+ Removes a layer of state pushed by calling .
+
+
+
+
+ Return value of . Should be disposed
+ by caller when child binding context state should be popped off of
+ the .
+
+
+
+
+ Initializes the for a .
+
+
+
+
+
+ Exits the created by calling .
+
+
+
+
+ Contains the result of model binding.
+
+
+
+
+ Creates a representing a failed model binding operation.
+
+ A representing a failed model binding operation.
+
+
+
+ Creates a representing a successful model binding operation.
+
+ The model value. May be null.
+ A representing a successful model bind.
+
+
+
+ Gets the model associated with this context.
+
+
+
+
+
+ Gets a value indicating whether or not the value has been set.
+
+
+ This property can be used to distinguish between a model binder which does not find a value and
+ the case where a model binder sets the null value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compares objects for equality.
+
+ A .
+ A .
+ true if the objects are equal, otherwise false.
+
+
+
+ Compares objects for inequality.
+
+ A .
+ A .
+ true if the objects are not equal, otherwise false.
+
+
+
+ An error that occurred during model binding and validation.
+
+
+
+
+ Initializes a new instance of with the specified .
+
+ The .
+
+
+
+ Initializes a new instance of with the specified
+ and specified .
+
+ The .
+ The error message.
+
+
+
+ Initializes a new instance of with the specified .
+
+ The error message.
+
+
+
+ Gets the associated with this instance.
+
+
+
+
+ Gets the error message associated with this instance.
+
+
+
+
+ A collection of instances.
+
+
+
+
+ Adds the specified instance.
+
+ The
+
+
+
+ Adds the specified error message.
+
+ The error message.
+
+
+
+ A metadata representation of a model type, property or parameter.
+
+
+
+
+ The default value of .
+
+
+
+
+ Creates a new .
+
+ The .
+
+
+
+ Gets the type containing the property if this metadata is for a property; otherwise.
+
+
+
+
+ Gets the metadata for if this metadata is for a property;
+ otherwise.
+
+
+
+
+ Gets a value indicating the kind of metadata element represented by the current instance.
+
+
+
+
+ Gets the model type represented by the current instance.
+
+
+
+
+ Gets the name of the parameter or property if this metadata is for a parameter or property;
+ otherwise i.e. if this is the metadata for a type.
+
+
+
+
+ Gets the name of the parameter if this metadata is for a parameter; otherwise.
+
+
+
+
+ Gets the name of the property if this metadata is for a property; otherwise.
+
+
+
+
+ Gets the key for the current instance.
+
+
+
+
+ Gets a collection of additional information about the model.
+
+
+
+
+ Gets the collection of instances for the model's properties.
+
+
+
+
+ A mapping from parameters to their corresponding properties on a record type.
+
+
+
+
+ A mapping from properties to their corresponding constructor parameter on a record type.
+ This is the inverse mapping of .
+
+
+
+
+ Gets instance for a constructor of a record type that is used during binding and validation.
+
+
+
+
+ Gets the collection of instances for parameters on a .
+ This is only available when is .
+
+
+
+
+ Gets the name of a model if specified explicitly using .
+
+
+
+
+ Gets the of an of a model if specified explicitly using
+ .
+
+
+
+
+ Gets a binder metadata for this model.
+
+
+
+
+ Gets a value indicating whether or not to convert an empty string value or one containing only whitespace
+ characters to null when representing a model as text.
+
+
+
+
+ Gets the name of the model's datatype. Overrides in some
+ display scenarios.
+
+ null unless set manually or through additional metadata e.g. attributes.
+
+
+
+ Gets the description of the model.
+
+
+
+
+ Gets the format string (see ) used to display the
+ model.
+
+
+
+
+ Gets the display name of the model.
+
+
+
+
+ Gets the format string (see ) used to edit the model.
+
+
+
+
+ Gets the for elements of if that
+ implements .
+
+
+ for T if implements
+ . for object if
+ implements but not . null otherwise i.e. when
+ is false.
+
+
+
+
+ Gets the ordered and grouped display names and values of all values in
+ .
+
+
+ An of of mappings between
+ field groups, names and values. null if is false.
+
+
+
+
+ Gets the names and values of all values in .
+
+
+ An of mappings between field names
+ and values. null if is false.
+
+
+
+
+ Gets a value indicating whether has a non-null, non-empty
+ value different from the default for the datatype.
+
+
+
+
+ Gets a value indicating whether the value should be HTML-encoded.
+
+ If true, value should be HTML-encoded. Default is true.
+
+
+
+ Gets a value indicating whether the "HiddenInput" display template should return
+ string.Empty (not the expression value) and whether the "HiddenInput" editor template should not
+ also return the expression value (together with the hidden <input> element).
+
+
+ If true, also causes the default display and editor templates to return HTML
+ lacking the usual per-property <div> wrapper around the associated property. Thus the default
+ display template effectively skips the property and the default
+ editor template returns only the hidden <input> element for the property.
+
+
+
+
+ Gets a value indicating whether or not the model value can be bound by model binding. This is only
+ applicable when the current instance represents a property.
+
+
+ If true then the model value is considered supported by model binding and can be set
+ based on provided input in the request.
+
+
+
+
+ Gets a value indicating whether or not the model value is required by model binding. This is only
+ applicable when the current instance represents a property.
+
+
+ If true then the model value is considered required by model binding and must have a value
+ supplied in the request to be considered valid.
+
+
+
+
+ Gets a value indicating whether is for an .
+
+
+ true if type.IsEnum (type.GetTypeInfo().IsEnum for DNX Core 5.0) is true for
+ ; false otherwise.
+
+
+
+
+ Gets a value indicating whether is for an with an
+ associated .
+
+
+ true if is true and has an
+ associated ; false otherwise.
+
+
+
+
+ Gets a value indicating whether or not the model value is read-only. This is only applicable when
+ the current instance represents a property.
+
+
+
+
+ Gets a value indicating whether or not the model value is required. This is only applicable when
+ the current instance represents a property.
+
+
+
+ If true then the model value is considered required by validators.
+
+
+ By default an implicit System.ComponentModel.DataAnnotations.RequiredAttribute will be added
+ if not present when true..
+
+
+
+
+
+ Gets the instance.
+
+
+
+
+ Gets a value indicating where the current metadata should be ordered relative to other properties
+ in its containing type.
+
+ The order value of the current metadata.
+
+ For example this property is used to order items in .
+ The default order is 10000.
+
+
+
+
+ Gets the text to display as a placeholder value for an editor.
+ By default, this is configured using .
+
+
+
+
+ Gets the text to display when the model is null.
+
+
+
+
+ Gets the , which can determine which properties
+ should be model bound.
+
+
+
+
+ Gets a value that indicates whether the property should be displayed in read-only views.
+
+
+
+
+ Gets a value that indicates whether the property should be displayed in editable views.
+
+
+
+
+ Gets a value which is the name of the property used to display the model.
+
+
+
+
+ Gets a string used by the templating system to discover display-templates and editor-templates.
+ Use to specify.
+
+
+
+
+ Gets an implementation that indicates whether this model should be
+ validated. If null, properties with this are validated.
+
+ Defaults to null.
+
+
+
+ Gets a value that indicates whether properties or elements of the model should be validated.
+
+
+
+
+ Gets a value that indicates if the model, or one of its properties or elements, has associated validators.
+
+
+ When , validation can be assume that the model is valid () without
+ inspecting the object graph.
+
+
+
+
+ Gets a collection of metadata items for validators.
+
+
+
+
+ Gets the for elements of if that
+ implements .
+
+
+
+
+ Gets a value indicating whether is a complex type.
+
+
+ A complex type is defined as a without a that can convert
+ from and without a TryParse method. Most POCO and types are therefore complex.
+ Most, if not all, BCL value types are simple types.
+
+
+
+
+ Gets a value indicating whether or not is a .
+
+
+
+
+ Gets a value indicating whether or not is a collection type.
+
+
+ A collection type is defined as a which is assignable to .
+
+
+
+
+ Gets a value indicating whether or not is an enumerable type.
+
+
+ An enumerable type is defined as a which is assignable to
+ , and is not a .
+
+
+
+
+ Gets a value indicating whether or not allows null values.
+
+
+
+
+ Gets the underlying type argument if inherits from .
+ Otherwise gets .
+
+
+ Identical to unless is true.
+
+
+
+
+ Gets a value indicating whether or not has a TryParse method.
+
+
+
+
+ Gets a value indicating whether or not has a
+ from .
+
+
+
+
+ Gets a value indicating the NullabilityState of the value or reference type.
+
+
+ The state will be set for Parameters and Properties
+ otherwise the state will be NullabilityState.Unknown
+
+
+
+
+ Gets a property getter delegate to get the property value from a model object.
+
+
+
+
+ Gets a property setter delegate to set the property value on a model object.
+
+
+
+
+ Gets a delegate that invokes the bound constructor if non-.
+
+
+
+
+ Gets a value that determines if validators can be constructed using metadata exclusively defined on the property.
+
+
+
+
+ Gets the name of a model, if specified explicitly, to be used on
+
+
+
+
+ Gets the value that indicates if the parameter has a default value set.
+ This is only available when is otherwise it will be false.
+
+
+
+
+ Throws if the ModelMetadata is for a record type with validation on properties.
+
+
+
+
+ Gets a display name for the model.
+
+
+ will return the first of the following expressions which has a
+ non- value: , , or ModelType.Name.
+
+ The display name.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A provider that can supply instances of .
+
+
+
+
+ Supplies metadata describing the properties of a .
+
+ The .
+ A set of instances describing properties of the .
+
+
+
+ Supplies metadata describing a .
+
+ The .
+ A instance describing the .
+
+
+
+ Supplies metadata describing a parameter.
+
+ The .
+ A instance describing the .
+
+
+
+ Supplies metadata describing a parameter.
+
+ The
+ The actual model type.
+ A instance describing the .
+
+
+
+ Supplies metadata describing a property.
+
+ The .
+ The actual model type.
+ A instance describing the .
+
+
+
+ Supplies metadata describing a constructor.
+
+ The .
+ The type declaring the constructor.
+ A instance describing the .
+
+
+
+ A read-only collection of objects which represent model properties.
+
+
+
+
+ Creates a new .
+
+ The properties.
+
+
+
+ Gets a instance for the property corresponding to .
+
+
+ The property name. Property names are compared using .
+
+
+ The instance for the property specified by , or
+ null if no match can be found.
+
+
+
+
+ Represents the state of an attempt to bind values from an HTTP Request to an action method, which includes
+ validation information.
+
+
+
+
+ The default value for of 200.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Initializes a new instance of the class by using values that are copied
+ from the specified .
+
+ The to copy values from.
+
+
+
+ Root entry for the .
+
+
+
+
+ Gets or sets the maximum allowed model state errors in this instance of .
+ Defaults to 200.
+
+
+
+ tracks the number of model errors added by calls to
+ or
+ .
+ Once the value of MaxAllowedErrors - 1 is reached, if another attempt is made to add an error,
+ the error message will be ignored and a will be added.
+
+
+ Errors added via modifying directly do not count towards this limit.
+
+
+
+
+
+ Gets a value indicating whether or not the maximum number of errors have been
+ recorded.
+
+
+ Returns true if a has been recorded;
+ otherwise false.
+
+
+
+
+ Gets the number of errors added to this instance of via
+ or .
+
+
+
+
+
+
+
+ Gets the key sequence.
+
+
+
+
+
+
+
+ Gets the value sequence.
+
+
+
+
+
+
+
+ Gets a value that indicates whether any model state values in this model state dictionary is invalid or not validated.
+
+
+
+
+
+
+
+
+
+
+ Adds the specified to the instance
+ that is associated with the specified . If the maximum number of allowed
+ errors has already been recorded, ensures that a exception is
+ recorded instead.
+
+
+ This method allows adding the to the current
+ when is not available or the exact
+ must be maintained for later use (even if it is for example a ).
+ Where is available, use instead.
+
+ The key of the to add errors to.
+ The to add.
+
+ True if the given error was added, false if the error was ignored.
+ See .
+
+
+
+
+ Adds the specified to the instance
+ that is associated with the specified . If the maximum number of allowed
+ errors has already been recorded, ensures that a exception is
+ recorded instead.
+
+ The key of the to add errors to.
+ The to add. Some exception types will be replaced with
+ a descriptive error message.
+ The associated with the model.
+
+
+
+ Attempts to add the specified to the
+ instance that is associated with the specified . If the maximum number of allowed
+ errors has already been recorded, ensures that a exception is
+ recorded instead.
+
+ The key of the to add errors to.
+ The to add. Some exception types will be replaced with
+ a descriptive error message.
+ The associated with the model.
+
+ True if the given error was added, false if the error was ignored.
+ See .
+
+
+
+
+ Adds the specified to the instance
+ that is associated with the specified . If the maximum number of allowed
+ errors has already been recorded, ensures that a exception is
+ recorded instead.
+
+ The key of the to add errors to.
+ The error message to add.
+
+
+
+ Attempts to add the specified to the
+ instance that is associated with the specified . If the maximum number of allowed
+ errors has already been recorded, ensures that a exception is
+ recorded instead.
+
+ The key of the to add errors to.
+ The error message to add.
+
+ True if the given error was added, false if the error was ignored.
+ See .
+
+
+
+
+ Returns the aggregate for items starting with the
+ specified .
+
+ The key to look up model state errors for.
+ Returns if no entries are found for the specified
+ key, if at least one instance is found with one or more model
+ state errors; otherwise.
+
+
+
+ Returns for the .
+
+ The key to look up model state errors for.
+ Returns if no entry is found for the specified
+ key, if an instance is found with one or more model
+ state errors; otherwise.
+
+
+
+ Marks the for the entry with the specified
+ as .
+
+ The key of the to mark as valid.
+
+
+
+ Marks the for the entry with the specified
+ as .
+
+ The key of the to mark as skipped.
+
+
+
+ Copies the values from the specified into this instance, overwriting
+ existing values if keys are the same.
+
+ The to copy values from.
+
+
+
+ Sets the of and for
+ the with the specified .
+
+ The key for the entry.
+ The raw value for the entry.
+
+ The values of in a comma-separated .
+
+
+
+
+ Sets the value for the with the specified .
+
+ The key for the entry
+
+ A with data for the entry.
+
+
+
+
+ Clears entries that match the key that is passed as parameter.
+
+ The key of to clear.
+
+
+
+ Removes all keys and values from this instance of .
+
+
+
+
+
+
+
+ Removes the with the specified .
+
+ The key.
+ true if the element is successfully removed; otherwise false. This method also
+ returns false if key was not found.
+
+
+
+
+
+
+ Returns an enumerator that iterates through this instance of .
+
+ An .
+
+
+
+
+
+
+
+
+
+
+ This API supports the MVC's infrastructure and is not intended to be used
+ directly from your code. This API may change or be removed in future releases.
+
+
+
+
+
+ Gets a that iterates over this instance of
+ using the specified .
+
+ The prefix.
+ The .
+
+
+
+ Enumerates over to provide entries that start with the
+ specified prefix.
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+ The prefix.
+
+
+
+
+
+
+ An for .
+
+
+
+
+ Intializes a new instance of .
+
+ The .
+ The prefix.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A for keys in .
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+
+
+
+
+
+
+ An for keys in .
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+ The prefix.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An for .
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+
+
+
+
+
+
+ An enumerator for .
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+ The prefix to enumerate.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An entry in a .
+
+
+
+
+ Gets the raw value from the request associated with this entry.
+
+
+
+
+ Gets the set of values contained in , joined into a comma-separated string.
+
+
+
+
+ Gets the for this entry.
+
+
+
+
+ Gets or sets the for this entry.
+
+
+
+
+ Gets a value that determines if the current instance of is a container node.
+ Container nodes represent prefix nodes that aren't explicitly added to the
+ .
+
+
+
+
+ Gets the for a sub-property with the specified
+ .
+
+ The property name to lookup.
+
+ The if a sub-property was found; otherwise .
+
+
+ This method returns any existing entry, even those with with value
+ .
+
+
+
+
+ Gets the values for sub-properties.
+
+
+ This property returns all existing entries, even those with with value
+ .
+
+
+
+
+ The validation state of a instance.
+
+ of is used to determine the validity
+ of . is , when
+ the aggregate validity ()
+ of the root node is .
+
+
+
+
+
+ Validation has not been performed on the .
+
+ For aggregate validity, the validation of a is
+ if either the entry or one of thedescendants is .
+
+
+
+
+
+ Validation was performed on the and was found to be invalid.
+
+ For aggregate validity, the validation of a is
+ if either the entry or one of the descendants is and none are .
+
+
+
+
+
+ Validation was performed on the
+
+ For aggregate validity, the validation of a is
+ if the validity of the entry and all descendants is either or .
+
+
+
+
+
+ Validation was skipped for the .
+
+ The aggregate validity of an entry is never .
+
+
+
+
+
+ The that is thrown when too many model errors are encountered.
+
+
+
+
+ Creates a new instance of with the specified
+ exception .
+
+ The message that describes the error.
+
+
+
+ The context for client-side model validation.
+
+
+
+
+ Create a new instance of .
+
+ The for validation.
+ The for validation.
+ The to be used in validation.
+ The attributes dictionary for the HTML tag being rendered.
+
+
+
+ Gets the attributes dictionary for the HTML tag being rendered.
+
+
+
+
+ Used to associate validators with instances
+ as part of . An should
+ inspect and set and
+ as appropriate.
+
+
+
+
+ Creates a new .
+
+
+
+
+ Creates a new .
+
+ The .
+
+
+
+ Gets the metadata associated with the .
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Gets or sets a value indicating whether or not can be reused across requests.
+
+
+
+
+ A context for .
+
+
+
+
+ Creates a new .
+
+ The for the model being validated.
+
+ The list of s.
+
+
+
+ Gets the .
+
+
+
+
+ Gets the validator metadata.
+
+
+ This property provides convenience access to .
+
+
+
+
+ Gets the list of instances.
+ instances should add the appropriate properties when
+
+ is called.
+
+
+
+
+ Specifies the contract for performing validation in the browser.
+
+ MVC's validation system invokes to gather attributes that apply to the
+ rendered HTML. The rendered view may have to reference JavaScript libraries, such as jQuery Unobtrusive Validation,
+ to provide client validation based on the presence of these attributes.
+
+
+
+
+
+ Called to add client-side model validation.
+
+ The .
+
+
+
+ Provides a collection of s.
+
+
+
+
+ Creates set of s by updating
+ in .
+
+ The associated with this call.
+
+
+
+ Validates a model value.
+
+
+
+
+ Validates the model value.
+
+ The .
+
+ A list of indicating the results of validating the model value.
+
+
+
+
+ Provides validators for a model value.
+
+
+
+
+ Creates the validators for .
+
+ The .
+
+ Implementations should add the instances to the appropriate
+ instance which should be added to
+ .
+
+
+
+
+ Contract for attributes that determine whether associated properties should be validated. When the attribute is
+ applied to a property, the validation system calls to determine whether to
+ validate that property. When applied to a type, the validation system calls
+ for each property that type defines to determine whether to validate it.
+
+
+
+
+ Gets an indication whether the should be validated.
+
+ to check.
+ containing .
+ true if should be validated; false otherwise.
+
+
+
+ Defines a strategy for enumerating the child entries of a model object which should be validated.
+
+
+
+
+ Gets an containing a for
+ each child entry of the model object to be validated.
+
+ The associated with .
+ The model prefix associated with .
+ The model object.
+ An .
+
+
+
+ A context object for .
+
+
+
+
+ Create a new instance of .
+
+ The for validation.
+ The for validation.
+ The to be used in validation.
+ The model container.
+ The model to be validated.
+
+
+
+ Gets the model object.
+
+
+
+
+ Gets the model container object.
+
+
+
+
+ A common base class for and .
+
+
+
+
+ Instantiates a new .
+
+ The for this context.
+ The for this model.
+ The to be used by this context.
+
+
+
+ Gets the .
+
+
+
+
+ Gets the .
+
+
+
+
+ Gets the .
+
+
+
+
+ The result of model validation.
+
+
+
+
+ Initializes a new instance of .
+
+ The name of the entry on which validation was performed.
+ The validation message.
+
+
+
+ Gets the name of the entry on which validation was performed.
+
+
+
+
+ Gets the validation message.
+
+
+
+
+ A context for .
+
+
+
+
+ Creates a new .
+
+ The .
+ The list of s.
+
+
+
+ Gets the .
+
+
+
+
+ Gets the validator metadata.
+
+
+ This property provides convenience access to .
+
+
+
+
+ Gets the list of instances. instances
+ should add the appropriate properties when
+
+ is called.
+
+
+
+
+ Contains data needed for validating a child entry of a model object. See .
+
+
+
+
+ Creates a new .
+
+ The associated with .
+ The model prefix associated with .
+ The model object.
+
+
+
+ Creates a new .
+
+ The associated with the .
+ The model prefix associated with the .
+ A delegate that will return the .
+
+
+
+ The model prefix associated with .
+
+
+
+
+ The associated with .
+
+
+
+
+ The model object.
+
+
+
+
+ Used for tracking validation state to customize validation behavior for a model object.
+
+
+
+
+ Creates a new .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An entry in a . Records state information to override the default
+ behavior of validation for an object.
+
+
+
+
+ Gets or sets the model prefix associated with the entry.
+
+
+
+
+ Gets or sets the associated with the entry.
+
+
+
+
+ Gets or sets a value indicating whether the associated model object should be validated.
+
+
+
+
+ Gets or sets an for enumerating child entries of the associated
+ model object.
+
+
+
+
+ Used to associate validators with instances
+ as part of . An should
+ inspect and set and
+ as appropriate.
+
+
+
+
+ Creates a new .
+
+
+
+
+ Creates a new .
+
+ The .
+
+
+
+ Gets the metadata associated with the .
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Gets or sets a value indicating whether or not can be reused across requests.
+
+
+
+
+ Exception thrown by when the input is unable to be read.
+
+
+
+
+ Initializes a new instance of with the specified .
+
+ The exception message.
+
+
+
+ Initializes a new instance of with the specified and
+ inner exception that is the cause of this exception.
+
+ The exception message.
+ The exception that is the cause of the current exception.
+
+
+
+ A context for .
+
+
+
+
+ Creates a new .
+
+ The .
+
+
+
+ Gets the associated with this context.
+
+
+
+
+ Gets the list of instances.
+ instances should add the appropriate
+ instances to this list.
+
+
+
+
+ Result of an operation.
+
+
+
+ can represent a single submitted value or multiple submitted values.
+
+
+ Use to consume only a single value, regardless of whether a single value or
+ multiple values were submitted.
+
+
+ Treat as an to consume all values,
+ regardless of whether a single value or multiple values were submitted.
+
+
+
+
+
+ A that represents a lack of data.
+
+
+
+
+ Creates a new using .
+
+ The submitted values.
+
+
+
+ Creates a new .
+
+ The submitted values.
+ The associated with this value.
+
+
+
+ Gets or sets the associated with the values.
+
+
+
+
+ Gets or sets the values.
+
+
+
+
+ Gets the first value based on the order values were provided in the request. Use
+ to get a single value for processing regardless of whether a single or multiple values were provided
+ in the request.
+
+
+
+
+ Gets the number of submitted values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets an for this .
+
+ An .
+
+
+
+
+
+
+ Converts the provided into a comma-separated string containing all
+ submitted values.
+
+ The .
+
+
+
+ Converts the provided into a an array of containing
+ all submitted values.
+
+ The .
+
+
+
+ Compares two objects for equality.
+
+ A .
+ A .
+ true if the values are equal, otherwise false.
+
+
+
+ Compares two objects for inequality.
+
+ A .
+ A .
+ false if the values are equal, otherwise true.
+
+
+
+ Represents the routing information for an action that is attribute routed.
+
+
+
+
+ The route template. May be if the action has no attribute routes.
+
+
+
+
+ Gets the order of the route associated with a given action. This property determines
+ the order in which routes get executed. Routes with a lower order value are tried first. In case a route
+ doesn't specify a value, it gets a default order of 0.
+
+
+
+
+ Gets the name of the route associated with a given action. This property can be used
+ to generate a link by referring to the route by name instead of attempting to match a
+ route by provided route data.
+
+
+
+
+ Gets or sets a value that determines if the route entry associated with this model participates in link generation.
+
+
+
+
+ Gets or sets a value that determines if the route entry associated with this model participates in path matching (inbound routing).
+
+
+
+
+ Context object to be used for the URLs that generates.
+
+
+
+
+ The name of the action method that uses to generate URLs.
+
+
+
+
+ The name of the controller that uses to generate URLs.
+
+
+
+
+ The object that contains the route values that
+ uses to generate URLs.
+
+
+
+
+ The protocol for the URLs that generates,
+ such as "http" or "https"
+
+
+
+
+ The host name for the URLs that generates.
+
+
+
+
+ The fragment for the URLs that generates.
+
+
+
+
+ Context object to be used for the URLs that generates.
+
+
+
+
+ The name of the route that uses to generate URLs.
+
+
+
+
+ The object that contains the route values that
+ uses to generate URLs.
+
+
+
+
+ The protocol for the URLs that generates,
+ such as "http" or "https"
+
+
+
+
+ The host name for the URLs that generates.
+
+
+
+
+ The fragment for the URLs that generates.
+
+
+
+ Throws an if is null.
+ The reference type argument to validate as non-null.
+ The name of the parameter with which corresponds.
+
+
+
+ Helper related to generic interface definitions and implementing classes.
+
+
+
+
+ Determine whether is or implements a closed generic
+ created from .
+
+ The of interest.
+ The open generic to match. Usually an interface.
+
+ The closed generic created from that
+ is or implements. null if the two s have no such
+ relationship.
+
+
+ This method will return if is
+ typeof(KeyValuePair{,}), and is
+ typeof(KeyValuePair{string, object}).
+
+
+
+
+ Pretty print a type name.
+
+ The .
+ true to print a fully qualified name.
+ true to include generic parameter names.
+ true to include generic parameters.
+ Character to use as a delimiter in nested type names
+ The pretty printed type name.
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.ApiExplorer.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.ApiExplorer.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ff6c90dc33f2eea16d3bae43257d83bc12d7575c
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.ApiExplorer.xml
@@ -0,0 +1,194 @@
+
+
+
+ Microsoft.AspNetCore.Mvc.ApiExplorer
+
+
+
+
+ Extension methods for .
+
+
+
+
+ Gets the value of a property from the collection
+ using the provided value of as the key.
+
+ The type of the property.
+ The .
+ The property or the default value of .
+
+
+
+ Sets the value of an property in the collection using
+ the provided value of as the key.
+
+ The type of the property.
+ The .
+ The value of the property.
+
+
+
+ Represents a group of related apis.
+
+
+
+
+ Creates a new .
+
+ The group name.
+ A collection of items for this group.
+
+
+
+ The group name.
+
+
+
+
+ A collection of items for this group.
+
+
+
+
+ A cached collection of .
+
+
+
+
+ Initializes a new instance of the .
+
+ The list of .
+ The unique version of discovered groups.
+
+
+
+ Returns the list of .
+
+
+
+
+ Returns the unique version of the current items.
+
+
+
+
+
+
+
+ Creates a new instance of .
+
+
+ The .
+
+
+ The .
+
+
+
+
+
+
+
+ Implements a provider of for actions represented
+ by .
+
+
+
+
+ Creates a new instance of .
+
+ The accessor for .
+ The used for resolving inline
+ constraints.
+ The .
+ The .
+ The accessor for .
+ The parameter is currently ignored.
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides access to a collection of .
+
+
+
+
+ Gets a collection of .
+
+
+
+
+ Unwraps all parameters that contains and
+ creates a flat list merging the current parameters, not including the
+ parameters that contain a , and all additional
+ parameters detected.
+
+ List of parameters to be flattened.
+ An instance of the method cache class.
+ Flat list of parameters.
+
+
+
+ Extensions for configuring ApiExplorer using .
+
+
+
+
+ Configures ApiExplorer using .
+
+ The .
+
+
+
+ Extensions for configuring ApiExplorer using an .
+
+
+
+
+ Configures to use ApiExplorer.
+
+ The .
+ The .
+
+
+
+ Checks to see if a given type is compiler generated.
+
+ The compiler will annotate either the target type or the declaring type
+ with the CompilerGenerated attribute. We walk up the declaring types until
+ we find a CompilerGenerated attribute or declare the type as not compiler
+ generated otherwise.
+
+
+ The type to evaluate.
+ if is compiler generated.
+
+
+
+ Checks to see if a given method is compiler generated.
+
+ The method to evaluate.
+ if is compiler generated.
+
+
+
+ Parses generated local function name out of a generated method name. This code is a stop-gap and exists to address the issues with extracting
+ original method names from generated local functions. See https://github.com/dotnet/roslyn/issues/55651 for more info.
+
+
+
+
+ Tries to get non-compiler-generated name of function. This parses generated local function names out of a generated method name if possible.
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.DataAnnotations.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.DataAnnotations.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c5630a0dd925b165d5ddceed14ab950f7ac9c8ac
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.DataAnnotations.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.Formatters.Json.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.Formatters.Json.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9a2c69b5d14aeef97758ebefe17f2612d6e1afcf
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.Formatters.Json.xml
@@ -0,0 +1,8 @@
+
+
+
+ Microsoft.AspNetCore.Mvc.Formatters.Json
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.Formatters.Xml.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.Formatters.Xml.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ffa94dc9b0861b2f4622643c41f974f7b3a4a717
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.Formatters.Xml.xml
@@ -0,0 +1,866 @@
+
+
+
+ Microsoft.AspNetCore.Mvc.Formatters.Xml
+
+
+
+
+ Serializes types by delegating them through a concrete implementation.
+
+ The wrapping or original type of the
+ to proxy.
+ The type parameter of the original
+ to proxy.
+
+
+
+ Initializes a .
+
+
+ This constructor is necessary for
+ to serialize.
+
+
+
+
+ Initializes a with the original
+ and the wrapper provider for wrapping individual elements.
+
+ The instance to get the enumerator from.
+ The wrapper provider for wrapping individual elements.
+
+
+
+ Gets a delegating enumerator of the original source which is being
+ wrapped.
+
+ The delegating enumerator of the original source.
+
+
+
+ The serializer requires every type it encounters can be serialized and deserialized.
+ This type will never be used for deserialization, but we are required to implement the add
+ method so that the type can be serialized. This will never be called.
+
+ The item to add.
+ Thrown unconditionally.
+
+
+
+ Gets a delegating enumerator of the original source which is being
+ wrapped.
+
+ The delegating enumerator of the original source.
+
+
+
+ Delegates enumeration of elements to the original enumerator and wraps the items
+ with the supplied .
+
+ The type to which the individual elements need to be wrapped to.
+ The original type of the element being wrapped.
+
+
+
+ Initializes a which enumerates
+ over the elements of the original enumerator and wraps them using the supplied
+ .
+
+ The original enumerator.
+ The wrapper provider to wrap individual elements.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides a for interface types which implement
+ .
+
+
+
+
+ Initializes an instance of .
+
+ Type of the original
+ that is being wrapped.
+ The for the element type.
+ Can be null.
+
+
+
+
+
+
+
+
+
+ Creates an for interface types implementing the
+ type.
+
+
+
+
+ Initializes an with a list
+ .
+
+ List of .
+
+
+
+ Gets an for the provided context.
+
+ The .
+ An instance of if the declared type is
+ an interface and implements .
+
+
+
+ Contains methods which are used by Xml input formatters.
+
+
+
+
+ Gets the default Reader Quotas for XmlReader.
+
+ XmlReaderQuotas with default values
+
+
+
+ Gets the default XmlWriterSettings.
+
+ Default
+
+
+
+ Defines an interface for objects to be un-wrappable after deserialization.
+
+
+
+
+ Unwraps an object.
+
+ The type to which the object should be un-wrapped to.
+ The un-wrapped object.
+
+
+
+ Defines an interface for wrapping objects for serialization or deserialization into xml.
+
+
+
+
+ Gets the wrapping type.
+
+
+
+
+ Wraps the given object to the wrapping type provided by .
+
+ The original non-wrapped object.
+ Returns a wrapped object.
+
+
+
+ Create a given a .
+
+
+
+
+ Gets the for the provided context.
+
+ The .
+ A wrapping provider if the factory decides to wrap the type, else null.
+
+
+
+ Provides configuration for XML formatters.
+
+ This class is currently empty.
+
+
+
+ Wrapper class for to enable it to be serialized by the xml formatters.
+
+
+
+
+ Key used to represent dictionary elements with empty keys
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+
+
+
+
+
+
+ Reads the value for the specified from the .
+
+ The .
+ The name of the node.
+
+
+
+
+
+
+ Wrapper class for to enable it to be serialized by the xml formatters.
+
+
+
+
+ Initializes a new
+
+
+
+
+ Initializes a new instance of the class.
+
+ The object that needs to be wrapped.
+
+
+
+ Gets the wrapped object which is serialized/deserialized into XML
+ representation.
+
+
+
+
+
+
+
+ Generates a object from its XML representation.
+
+ The stream from which the object is deserialized.
+
+
+
+ Converts the wrapped object into its XML representation.
+
+ The stream to which the object is serialized.
+
+
+
+
+
+
+ Wraps the object of type .
+
+
+
+
+
+
+
+
+
+
+ Creates an for the type .
+
+
+
+
+ Creates an instance of if the provided
+ 's is
+ .
+
+ The .
+
+ An instance of if the provided 's
+ is
+ ; otherwise null.
+
+
+
+
+ Wrapper class for to enable it to be serialized by the xml formatters.
+
+
+
+
+ Initializes a new instance of .
+
+
+
+
+ Initializes a new instance of for the specified
+ .
+
+ The .
+
+
+
+
+
+
+
+
+
+ The context used by an to wrap or un-wrap types.
+
+
+
+
+ Initializes a .
+
+ The declared type of the object that needs to be wrapped.
+ if the wrapper provider is invoked during
+ serialization, otherwise .
+
+
+
+ The declared type which could be wrapped/un-wrapped by a different type
+ during serialization or deserialization.
+
+
+
+
+ if a wrapper provider is invoked during serialization,
+ otherwise.
+
+
+
+
+ Extension methods for .
+
+
+
+
+ Gets an instance of for the supplied
+ type.
+
+ A list of .
+ The .
+ An instance of if there is a wrapping provider for the
+ supplied type, else null.
+
+
+ The type must be an interface and must be or derive from '{0}'.
+
+
+ The type must be an interface and must be or derive from '{0}'.
+
+
+ An error occurred while deserializing input data.
+
+
+ {0} does not recognize '{1}', so instead use '{2}' with '{3}' set to '{4}' for value type property '{5}' on type '{6}'.
+
+
+ {0} does not recognize '{1}', so instead use '{2}' with '{3}' set to '{4}' for value type property '{5}' on type '{6}'.
+
+
+ The object to be wrapped must be of type '{0}' but was of type '{1}'.
+
+
+ The object to be wrapped must be of type '{0}' but was of type '{1}'.
+
+
+
+ This class handles deserialization of input XML data
+ to strongly-typed objects using .
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+
+
+
+ Gets the list of to
+ provide the wrapping type for de-serialization.
+
+
+
+
+ Indicates the acceptable input XML depth.
+
+
+
+
+ The quotas include - DefaultMaxDepth, DefaultMaxStringContentLength, DefaultMaxArrayLength,
+ DefaultMaxBytesPerRead, DefaultMaxNameTableCharCount
+
+
+
+
+ Gets or sets the used to configure the
+ .
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Called during deserialization to get the .
+
+ The from which to read.
+ The used to read the stream.
+ The used during deserialization.
+
+
+
+ Gets the type to which the XML will be deserialized.
+
+ The declared type.
+ The type to which the XML will be deserialized.
+
+
+
+ Called during deserialization to get the .
+
+ The type of object for which the serializer should be created.
+ The used during deserialization.
+
+
+
+ Gets the cached serializer or creates and caches the serializer for the given type.
+
+ The instance.
+
+
+
+ This class handles serialization of objects
+ to XML using
+
+
+
+
+ Initializes a new instance of
+ with default .
+
+
+
+
+ Initializes a new instance of
+ with default .
+
+ The .
+
+
+
+ Initializes a new instance of .
+
+ The settings to be used by the .
+
+
+
+ Initializes a new instance of .
+
+ The settings to be used by the .
+ The .
+
+
+
+ Gets the list of to
+ provide the wrapping type for serialization.
+
+
+
+
+ Gets the settings to be used by the XmlWriter.
+
+
+
+
+ Gets or sets the used to configure the
+ .
+
+
+
+
+ Gets the type to be serialized.
+
+ The original type to be serialized
+ The original or wrapped type provided by any s.
+
+
+
+
+
+
+ Create a new instance of for the given object type.
+
+ The type of object for which the serializer should be created.
+ A new instance of
+
+
+
+ Creates a new instance of using the given and
+ .
+
+
+ The underlying which the should write to.
+
+
+ The .
+
+ A new instance of
+
+
+
+ Creates a new instance of using the given and
+ .
+
+ The formatter context associated with the call.
+
+ The underlying which the should write to.
+
+
+ The .
+
+ A new instance of .
+
+
+
+
+
+
+ Gets the cached serializer or creates and caches the serializer for the given type.
+
+ The instance.
+
+
+
+ This class handles deserialization of input XML data
+ to strongly-typed objects using
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+
+
+
+ Gets the list of to
+ provide the wrapping type for de-serialization.
+
+
+
+
+ Indicates the acceptable input XML depth.
+
+
+
+
+ The quotas include - DefaultMaxDepth, DefaultMaxStringContentLength, DefaultMaxArrayLength,
+ DefaultMaxBytesPerRead, DefaultMaxNameTableCharCount
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets the type to which the XML will be deserialized.
+
+ The declared type.
+ The type to which the XML will be deserialized.
+
+
+
+ Called during deserialization to get the .
+
+ The from which to read.
+ The used to read the stream.
+ The that is to be deserialized.
+ The used during deserialization.
+
+
+
+ Called during deserialization to get the .
+
+ The from which to read.
+ The used to read the stream.
+ The used during deserialization.
+
+
+
+ Called during deserialization to get the .
+
+ The used during deserialization.
+
+
+
+ Gets the cached serializer or creates and caches the serializer for the given type.
+
+ The instance.
+
+
+
+ This class handles serialization of objects
+ to XML using
+
+
+
+
+ Initializes a new instance of
+ with default .
+
+
+
+
+ Initializes a new instance of
+ with default .
+
+ The .
+
+
+
+ Initializes a new instance of .
+
+ The settings to be used by the .
+
+
+
+ Initializes a new instance of
+
+ The settings to be used by the .
+ The .
+
+
+
+ Gets the list of to
+ provide the wrapping type for serialization.
+
+
+
+
+ Gets the settings to be used by the XmlWriter.
+
+
+
+
+ Gets the type to be serialized.
+
+ The original type to be serialized
+ The original or wrapped type provided by any .
+
+
+
+
+
+
+ Create a new instance of for the given object type.
+
+ The type of object for which the serializer should be created.
+ A new instance of
+
+
+
+ Creates a new instance of using the given and
+ .
+
+
+ The underlying which the should write to.
+
+
+ The .
+
+ A new instance of .
+
+
+
+ Creates a new instance of using the given and
+ .
+
+ The formatter context associated with the call.
+
+ The underlying which the should write to.
+
+
+ The .
+
+ A new instance of
+
+
+
+
+
+
+ Serializes value using the passed in and .
+
+ The serializer used to serialize the .
+ The writer used by the serializer
+ to serialize the .
+ The value to be serialized.
+
+
+
+ Gets the cached serializer or creates and caches the serializer for the given type.
+
+ The instance.
+
+
+
+ An for .
+
+
+
+
+
+
+
+ Extension methods for adding XML formatters to MVC.
+
+
+
+
+ Adds configuration of for the application.
+
+ The .
+ The which need to be configured.
+
+
+
+ Adds the XML DataContractSerializer formatters to MVC.
+
+ The .
+ The .
+
+
+
+ Adds the XML DataContractSerializer formatters to MVC.
+
+ The .
+ The which need to be configured.
+ The .
+
+
+
+ Adds the XML Serializer formatters to MVC.
+
+ The .
+ The .
+
+
+
+ Adds the XML Serializer formatters to MVC.
+
+ The .
+ The which need to be configured.
+ The .
+
+
+
+ Extension methods for adding XML formatters to MVC.
+
+
+
+
+ Adds configuration of for the application.
+
+ The .
+ The which need to be configured.
+ The .
+
+
+
+ Adds the XML DataContractSerializer formatters to MVC.
+
+ The .
+ The .
+
+
+
+ Adds the XML DataContractSerializer formatters to MVC.
+
+ The .
+ The which need to be configured.
+ The .
+
+
+
+ Adds the XML Serializer formatters to MVC.
+
+ The .
+ The .
+
+
+
+ Adds the XML Serializer formatters to MVC.
+
+ The .
+ The which need to be configured.
+ /// The .
+
+
+
+ A implementation which will add the
+ data contract serializer formatters to .
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+
+
+
+ Adds the data contract serializer formatters to .
+
+ The .
+
+
+
+ A implementation which will add the
+ XML serializer formatters to .
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+
+
+
+ Adds the XML serializer formatters to .
+
+ The .
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.Razor.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.Razor.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e49e8064df8439c252f5a75ad8bf0ab8e14f753f
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.Razor.xml
@@ -0,0 +1,1956 @@
+
+
+
+ Microsoft.AspNetCore.Mvc.Razor
+
+
+
+
+ Configures an assembly as a .
+
+
+
+
+ Gets the sequence of instances that are created by this instance of .
+
+ Applications may use this method to get the same behavior as this factory produces during MVC's default part discovery.
+
+
+ The .
+ The sequence of instances.
+
+
+
+
+
+
+ An for compiled Razor assemblies.
+
+
+
+
+ Initializes a new instance of .
+
+ The
+
+
+
+ Gets the .
+
+
+
+
+
+
+
+ Configures an that contains controllers, as well as Razor views and Pages.
+
+ Combines the results of and
+ . This part factory
+ may be used if Razor views or Razor Pages are compiled in to with other types including controllers.
+
+
+
+
+
+
+
+
+ Exposes one or more instances from an .
+
+
+
+
+ Gets a sequence of instances.
+
+
+
+
+ Represents a compiled Razor View or Page.
+
+
+
+
+ Creates a new .
+
+
+
+
+ Creates a new .
+
+ The .
+
+
+
+ Creates a new . At least one of or
+ must be non-null.
+
+ The .
+ The .
+
+
+
+ The normalized application relative path of the view.
+
+
+
+
+ Gets or sets the decorating the view.
+
+
+ May be null.
+
+
+
+
+ instances that indicate when this result has expired.
+
+
+
+
+ Gets the descriptor for this view.
+
+
+
+
+ Gets the type of the compiled item.
+
+
+
+
+ Represents a that creates instances
+ from razor files in the file system.
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+
+
+
+
+
+
+ Caches the result of runtime compilation of Razor files for the duration of the application lifetime.
+
+
+
+
+
+
+
+ Represents a view compiler.
+
+
+
+
+ Compile a view at the specified path.
+
+ The relative path to the view.
+ A .
+
+
+
+ Provides a .
+
+
+
+
+ Gets a .
+
+ The view compiler.
+
+
+
+ This class is replaced by RazorCompiledItem and will not be used by the runtime.
+
+
+
+
+ This class is replaced by RazorCompiledItem and will not be used by the runtime.
+
+ The path.
+ The viewtype.
+
+
+
+ Gets the path of the view.
+
+
+
+
+ Gets the view type.
+
+
+
+
+ A feature that contains view descriptors.
+
+
+
+
+ A list of .
+
+
+
+
+ Default implementation for .
+
+
+
+
+ Initializes a new instance.
+
+
+ The used to create tag helper instances.
+
+
+
+
+
+
+
+ Represents a deferred write operation in a .
+
+
+
+
+ Creates a new instance of .
+
+ The asynchronous delegate to invoke when
+ is called.
+ Calls to result in a blocking invocation of
+ .
+
+
+
+ Gets the asynchronous delegate to invoke when is called.
+
+
+
+
+ Method invoked to produce content from the .
+
+ The instance to write to.
+ The to encode the content.
+
+
+
+ Provides version hash for a specified file.
+
+
+
+
+ Default implementation of .
+
+
+
+
+
+
+
+ This API supports the MVC's infrastructure and is not intended to be used
+ directly from your code. This API may change in future releases.
+
+
+
+
+ This API supports the MVC's infrastructure and is not intended to be used
+ directly from your code. This API may change in future releases.
+
+
+
+
+ Specifies that the attributed property should be bound using request services.
+
+ This attribute is used as the backing attribute for the @inject
+ Razor directive.
+
+
+
+
+
+ Gets or sets the object that specifies the key of the service to inject.
+
+
+
+
+ Represents properties and methods that are used by for execution.
+
+
+
+
+ Gets or sets the view context of the rendering view.
+
+
+
+
+ Gets or sets the body content.
+
+
+
+
+ Gets or sets a flag that determines if the layout of this page is being rendered.
+
+
+ Sections defined in a page are deferred and executed as part of the layout page.
+ When this flag is set, all write operations performed by the page are part of a
+ section being rendered.
+
+
+
+
+ Gets the application base relative path to the page.
+
+
+
+
+ Gets or sets the path of a layout page.
+
+
+
+
+ Gets or sets the sections that can be rendered by this page.
+
+
+
+
+ Gets the sections that are defined by this page.
+
+
+
+
+ Renders the page and writes the output to the .
+
+ A task representing the result of executing the page.
+
+
+
+ Verifies that all sections defined in were rendered, or
+ the body was rendered if no sections were defined.
+
+ if one or more sections were not rendered or if no sections were
+ defined and the body was not rendered.
+
+
+
+ Provides methods to activate properties on a instance.
+
+
+
+
+ When implemented in a type, activates an instantiated page.
+
+ The page to activate.
+ The for the executing view.
+
+
+
+ Defines methods that are used for creating instances at a given path.
+
+
+
+
+ Creates a factory for the specified path.
+
+ The path to locate the page.
+ The instance.
+
+
+
+ An used to render pages that use the Razor syntax.
+
+
+
+
+ Finds the page with the given using view locations and information from the
+ .
+
+ The .
+ The name or path of the page.
+ The of locating the page.
+
+ Use when the absolute or relative
+ path of the page is known.
+ .
+
+
+
+
+ Gets the page with the given , relative to
+ unless is already absolute.
+
+ The absolute path to the currently-executing page, if any.
+ The path to the page.
+ The of locating the page.
+ .
+
+
+
+ Converts the given to be absolute, relative to
+ unless is already absolute.
+
+ The absolute path to the currently-executing page, if any.
+ The path to the page.
+
+ The combination of and if
+ is a relative path. The value (unchanged)
+ otherwise.
+
+
+
+
+ Provides methods to create a tag helper.
+
+
+
+
+ Creates an .
+
+ The type.
+ The for the executing view.
+ The tag helper.
+
+
+
+ Provides methods to create and initialize tag helpers.
+
+
+
+
+ Creates a new tag helper for the specified .
+
+ for the executing view.
+ The tag helper.
+
+
+
+ Initializes an before it's executed.
+
+ The type.
+
+
+
+ Initializes the .
+
+ The to initialize.
+ The for the executing view.
+
+
+
+ Specifies the contracts for a view location expander that is used by instances to
+ determine search paths for a view.
+
+
+ Individual s are invoked in two steps:
+ (1) is invoked and each expander
+ adds values that it would later consume as part of
+ .
+ The populated values are used to determine a cache key - if all values are identical to the last time
+ was invoked, the cached result
+ is used as the view location.
+ (2) If no result was found in the cache or if a view was not found at the cached location,
+ is invoked to determine
+ all potential paths for a view.
+
+
+
+
+ Invoked by a to determine the values that would be consumed by this instance
+ of . The calculated values are used to determine if the view location
+ has changed since the last time it was located.
+
+ The for the current view location
+ expansion operation.
+
+
+
+ Invoked by a to determine potential locations for a view.
+
+ The for the current view location
+ expansion operation.
+ The sequence of view locations to expand.
+ A list of expanded view locations.
+
+
+
+ A that adds the language as an extension prefix to view names. Language
+ that is getting added as extension prefix comes from .
+
+
+ For the default case with no areas, views are generated with the following patterns (assuming controller is
+ "Home", action is "Index" and language is "en")
+ Views/Home/en/Action
+ Views/Home/Action
+ Views/Shared/en/Action
+ Views/Shared/Action
+
+
+
+
+ Instantiates a new instance.
+
+
+
+
+ Instantiates a new instance.
+
+ The .
+
+
+
+
+
+
+
+
+
+ Specifies the localized view format for .
+
+
+
+
+ Locale is a subfolder under which the view exists.
+
+
+ Home/Views/en-US/Index.chtml
+
+
+
+
+ Locale is part of the view name as a suffix.
+
+
+ Home/Views/Index.en-US.chtml
+
+
+
+
+ Represents properties and methods that are needed in order to render a view that uses Razor syntax.
+
+
+
+
+ An representing the current request execution.
+
+
+
+
+ In a Razor layout page, renders the portion of a content page that is not within a named section.
+
+ The HTML content to render.
+
+
+
+ In a Razor layout page, ignores rendering the portion of a content page that is not within a named section.
+
+
+
+
+ Creates a named content section in the page that can be invoked in a Layout page using
+ or .
+
+ The name of the section to create.
+ The to execute when rendering the section.
+
+
+
+ Returns a value that indicates whether the specified section is defined in the content page.
+
+ The section name to search for.
+ true if the specified section is defined in the content page; otherwise, false.
+
+
+
+ In layout pages, renders the content of the section named .
+
+ The name of the section to render.
+ An empty .
+ The method writes to the and the value returned is a token
+ value that allows the Write (produced due to @RenderSection(..)) to succeed. However the
+ value does not represent the rendered content.
+
+
+
+ In layout pages, renders the content of the section named .
+
+ The section to render.
+ Indicates if this section must be rendered.
+ An empty .
+ The method writes to the and the value returned is a token
+ value that allows the Write (produced due to @RenderSection(..)) to succeed. However the
+ value does not represent the rendered content.
+
+
+
+ In layout pages, asynchronously renders the content of the section named .
+
+ The section to render.
+
+ A that on completion returns an empty .
+
+ The method writes to the and the value returned is a token
+ value that allows the Write (produced due to @RenderSection(..)) to succeed. However the
+ value does not represent the rendered content.
+
+
+
+ In layout pages, asynchronously renders the content of the section named .
+
+ The section to render.
+ Indicates the section must be registered
+ (using @section) in the page.
+
+ A that on completion returns an empty .
+
+ The method writes to the and the value returned is a token
+ value that allows the Write (produced due to @RenderSection(..)) to succeed. However the
+ value does not represent the rendered content.
+ if is true and the section
+ was not registered using the @section in the Razor page.
+
+
+
+ In layout pages, ignores rendering the content of the section named .
+
+ The section to ignore.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+
+
+
+ Represents properties and methods that are needed in order to render a view that uses Razor syntax.
+
+
+
+
+
+
+
+
+
+
+ Gets the that the page is writing output to.
+
+
+ Gets the that the page is writing output to.
+
+
+
+
+
+
+
+
+
+
+ Gets the dynamic view data dictionary.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets or sets a instance used to instrument the page execution.
+
+
+
+
+ Gets the to use when this
+ handles non- C# expressions.
+
+
+
+
+ Gets the of the current logged in user.
+
+
+
+
+ Gets the from the .
+
+ Returns null if is null.
+
+
+
+
+
+
+ Format an error message about using an indexer when the tag helper property is null.
+
+ Name of the HTML attribute associated with the indexer.
+ Full name of the tag helper .
+ Dictionary property in the tag helper.
+ An error message about using an indexer when the tag helper property is null.
+
+
+
+ Creates and activates a .
+
+ A type.
+ The activated .
+
+ must have a parameterless constructor.
+
+
+
+
+ Starts a new writing scope and optionally overrides within that scope.
+
+
+ The to use when this handles
+ non- C# expressions. If null, does not change .
+
+
+ All writes to the or after calling this method will
+ be buffered until is called.
+
+
+
+
+ Ends the current writing scope that was started by calling .
+
+ The buffered .
+
+
+
+ Starts a new scope for writing attribute values.
+
+
+ All writes to the or after calling this method will
+ be buffered until is called.
+ The content will be buffered using a shared within this
+ Nesting of and method calls
+ is not supported.
+
+
+
+
+ Ends the current writing scope that was started by calling .
+
+ The content buffered by the shared of this .
+
+ This method assumes that there will be no nesting of
+ and method calls.
+
+
+
+
+ Puts a text writer on the stack.
+
+
+
+
+
+ Return a text writer from the stack.
+
+ The text writer.
+
+
+
+ Returns a href for the given content path.
+
+ The content path.
+ The href for the contentPath.
+
+
+
+ Creates a named content section in the page that can be invoked in a Layout page using
+ RenderSection or RenderSectionAsync
+
+ The name of the section to create.
+ The delegate to execute when rendering the section.
+ This is a temporary placeholder method to support ASP.NET Core 2.0.0 editor code generation.
+
+
+
+ Creates a named content section in the page that can be invoked in a Layout page using
+ RenderSection or RenderSectionAsync
+
+ The name of the section to create.
+ The to execute when rendering the section.
+
+
+
+ Writes the specified with HTML encoding to .
+
+ The to write.
+
+
+
+ Writes the specified with HTML encoding to .
+
+ The to write.
+
+
+
+ Writes the specified without HTML encoding to .
+
+ The to write.
+
+
+
+ Writes the specified without HTML encoding to .
+
+ The to write.
+
+
+
+ Begins writing out an attribute.
+
+ The name.
+ The prefix.
+ The prefix offset.
+ The suffix.
+ The suffix offset.
+ The attribute values count.
+
+
+
+ Writes out an attribute value.
+
+ The prefix.
+ The prefix offset.
+ The value.
+ The value offset.
+ The value length.
+ Whether the attribute is a literal.
+
+
+
+ Ends writing an attribute.
+
+
+
+
+ Begins adding html attribute values.
+
+ The .
+ The name of the attribute.
+ The number of attribute values.
+ The .
+
+
+
+ Add an html attribute value.
+
+ The prefix.
+ The prefix offset.
+ The attribute value.
+ The value offset.
+ The value length.
+ Whether the attribute is a literal.
+
+
+
+ Ends adding html attribute values.
+
+ The .
+
+
+
+ Invokes on and
+ on the response stream, writing out any buffered content to the .
+
+ A that represents the asynchronous flush operation and on
+ completion returns an empty .
+ The value returned is a token value that allows FlushAsync to work directly in an HTML
+ section. However the value does not represent the rendered content.
+ This method also writes out headers, so any modifications to headers must be done before
+ is called. For example, call to send
+ antiforgery cookie token and X-Frame-Options header to client before this method flushes headers out.
+
+
+
+
+ Sets antiforgery cookie and X-Frame-Options header on the response.
+
+ An empty .
+ Call this method to send antiforgery cookie token and X-Frame-Options header to client
+ before flushes the headers.
+
+
+
+
+
+
+
+
+
+
+
+
+ Result of .
+
+
+
+
+ Initializes a new instance of with the
+ specified factory.
+
+ The factory.
+ The .
+
+
+
+ The factory.
+
+ This property is null when is false.
+
+
+
+ Gets the .
+
+
+
+
+ Gets a value that determines if the page was successfully located.
+
+
+
+
+ Represents the properties and methods that are needed in order to render a view that uses Razor syntax.
+
+ The type of the view data model.
+
+
+
+ Gets the Model property of the property.
+
+
+
+
+ Gets or sets the dictionary for view data.
+
+
+
+
+ Result of locating a .
+
+
+
+
+ Initializes a new instance of for a successful discovery.
+
+ The name of the page that was found.
+ The located .
+
+
+
+ Initializes a new instance of for an unsuccessful discovery.
+
+ The name of the page that was not found.
+ The locations that were searched.
+
+
+
+ Gets the name or the path of the page being located.
+
+
+
+
+ Gets the if found.
+
+ This property is null if the page was not found.
+
+
+
+ Gets the locations that were searched when could not be found.
+
+ This property is null if the page was found.
+
+
+
+ Default implementation for that executes one or more
+ as parts of its execution.
+
+
+
+
+ Initializes a new instance of
+
+ The used to locate Layout pages.
+ The used to activate pages.
+ The sequence of instances executed as _ViewStarts.
+
+ The instance to execute.
+ The HTML encoder.
+ The .
+
+
+
+
+
+
+ Gets instance that the views executes on.
+
+
+
+
+ Gets the sequence of _ViewStart instances that are executed by this view.
+
+
+
+
+
+
+
+ Default implementation of .
+
+
+ For ViewResults returned from controllers, views should be located in
+
+ by default. For the controllers in an area, views should exist in
+ .
+
+
+
+
+ The view extension
+
+
+
+
+ Initializes a new instance of the .
+
+
+
+
+ A cache for results of view lookups.
+
+
+
+
+ Gets the case-normalized route value for the specified route .
+
+ The .
+ The route key to lookup.
+ The value corresponding to the key.
+
+ The casing of a route value in is determined by the client.
+ This making constructing paths for view locations in a case sensitive file system unreliable. Using the
+ to get route values
+ produces consistently cased results.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Provides programmatic configuration for the .
+
+
+
+
+ Gets a used by the .
+
+
+
+
+ Gets the locations where will search for views.
+
+
+
+ The locations of the views returned from controllers that do not belong to an area.
+ Locations are format strings (see ) which may contain
+ the following format items:
+
+
+ -
+ {0} - Action Name
+
+ -
+ {1} - Controller Name
+
+
+
+ The values for these locations are case-sensitive on case-sensitive file systems.
+ For example, the view for the Test action of HomeController should be located at
+ /Views/Home/Test.cshtml. Locations such as /views/home/test.cshtml would not be discovered.
+
+
+
+
+
+ Gets the locations where will search for views within an
+ area.
+
+
+
+ The locations of the views returned from controllers that belong to an area.
+ Locations are format strings (see ) which may contain
+ the following format items:
+
+
+ -
+ {0} - Action Name
+
+ -
+ {1} - Controller Name
+
+ -
+ {2} - Area Name
+
+
+
+ The values for these locations are case-sensitive on case-sensitive file systems.
+ For example, the view for the Test action of HomeController under Admin area should
+ be located at /Areas/Admin/Views/Home/Test.cshtml.
+ Locations such as /areas/admin/views/home/test.cshtml would not be discovered.
+
+
+
+
+
+ Gets the locations where will search for views (such as layouts and partials)
+ when searched from the context of rendering a Razor Page.
+
+
+
+ Locations are format strings (see ) which may contain
+ the following format items:
+
+
+ -
+ {0} - View Name
+
+ -
+ {1} - Page Name
+
+
+
+ work in tandem with a view location expander to perform hierarchical
+ path lookups. For instance, given a Page like /Account/Manage/Index using /Pages as the root, the view engine
+ will search for views in the following locations:
+
+ /Pages/Account/Manage/{0}.cshtml
+ /Pages/Account/{0}.cshtml
+ /Pages/{0}.cshtml
+ /Pages/Shared/{0}.cshtml
+ /Views/Shared/{0}.cshtml
+
+
+
+
+
+ Gets the locations where will search for views (such as layouts and partials)
+ when searched from the context of rendering a Razor Page within an area.
+
+
+
+ Locations are format strings (see ) which may contain
+ the following format items:
+
+
+ -
+ {0} - View Name
+
+ -
+ {1} - Page Name
+
+ -
+ {2} - Area Name
+
+
+
+ work in tandem with a view location expander to perform hierarchical
+ path lookups. For instance, given a Page like /Areas/Account/Pages/Manage/User.cshtml using /Areas as the area pages root and
+ /Pages as the root, the view engine will search for views in the following locations:
+
+ /Areas/Accounts/Pages/Manage/{0}.cshtml
+ /Areas/Accounts/Pages/{0}.cshtml
+ /Areas/Accounts/Pages/Shared/{0}.cshtml
+ /Areas/Accounts/Views/Shared/{0}.cshtml
+ /Pages/Shared/{0}.cshtml
+ /Views/Shared/{0}.cshtml
+
+
+
+
+
+ A delegate for RenderAsync.
+
+
+
+
+
+ A that retrieves tag helpers as services from the request's
+ .
+
+
+
+
+
+
+
+ The default implementation of the .
+
+
+
+
+ Creates a new .
+
+ The collection of s.
+
+
+
+
+
+
+
+
+
+ Creates a .
+
+ The initialization delegate.
+
+
+
+
+
+
+ A targeting the <body> HTML element.
+
+
+
+
+ Creates a new .
+
+ The which contains the collection
+ of s.
+ The .
+
+
+
+ A targeting the <head> HTML element.
+
+
+
+
+ Creates a new .
+
+ The which contains the collection
+ of s.
+ The .
+
+
+
+ An implementation of this interface provides the collection of s
+ that will be used by s.
+
+
+
+
+ Gets the collection of s that will be used by
+ s.
+
+
+
+
+ Provides methods to activate properties of s.
+
+
+
+
+ Activates properties of the .
+
+ The for the executing view.
+ The to activate properties of.
+
+
+
+ Default implementation of .
+
+
+
+
+
+
+
+ Initializes and processes the s added to the
+ in the specified order.
+
+
+
+
+ Creates a new and orders the
+ the collection of s in .
+
+ The which contains the collection
+ of s.
+ The .
+ The are ordered after the
+ creation of the to position the s
+ added from controllers and views correctly.
+
+
+
+ Activates the property of all the .
+
+
+
+
+ The .
+
+
+
+
+
+
+
+
+
+
+ The list of tag helper types in an MVC application. The can be populated
+ using the that is available during startup at
+ and or at a later stage by requiring the
+ as a dependency in a component.
+
+
+
+
+ Gets the list of tag helper types in an MVC application.
+
+
+
+
+ An for the .
+
+
+
+
+
+
+
+ Include a part.
+
+ The part to include.
+ True if included.
+
+
+
+ Include a type.
+
+ The type to include.
+ True if included.
+
+
+
+ implementation targeting elements containing attributes with URL expected values.
+
+ Resolves URLs starting with '~/' (relative to the application's 'webroot' setting) that are not
+ targeted by other s. Runs prior to other s to ensure
+ application-relative URLs are resolved.
+
+
+
+ Creates a new .
+
+ The .
+ The .
+
+
+
+
+
+
+ The .
+
+
+
+
+ The .
+
+
+
+
+ The .
+
+
+
+
+
+
+
+ Resolves and updates URL values starting with '~/' (relative to the application's 'webroot' setting) for
+ 's whose
+ is .
+
+ The attribute name used to lookup values to resolve.
+ The .
+
+
+
+ Tries to resolve the given value relative to the application's 'webroot' setting.
+
+ The URL to resolve.
+ Absolute URL beginning with the application's virtual root. null if
+ could not be resolved.
+ true if the could be resolved; false otherwise.
+
+
+
+ Tries to resolve the given value relative to the application's 'webroot' setting.
+
+ The URL to resolve.
+
+ Absolute URL beginning with the application's virtual root. null if could
+ not be resolved.
+
+ true if the could be resolved; false otherwise.
+
+
+
+ An item in .
+
+
+
+
+ Initializes a new instance of .
+
+ The factory.
+ The application relative path of the .
+
+
+
+ Gets the application relative path of the
+
+
+
+
+ Gets the factory.
+
+
+
+
+ Key for entries in .
+
+
+
+
+ Initializes a new instance of .
+
+ The view name or path.
+ Determines if the page being found is the main page for an action.
+
+
+
+ Initializes a new instance of .
+
+ The view name.
+ The controller name.
+ The area name.
+ The page name.
+ Determines if the page being found is the main page for an action.
+ Values from instances.
+
+
+
+ Gets the view name.
+
+
+
+
+ Gets the controller name.
+
+
+
+
+ Gets the area name.
+
+
+
+
+ Gets the page name.
+
+
+
+
+ Determines if the page being found is the main page for an action.
+
+
+
+
+ Gets the values populated by instances.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Result of view location cache lookup.
+
+
+
+
+ Initializes a new instance of
+ for a view that was successfully found at the specified location.
+
+ The for the found view.
+ s for applicable _ViewStarts.
+
+
+
+ Initializes a new instance of for a
+ failed view lookup.
+
+ Locations that were searched.
+
+
+
+ for the located view.
+
+ Uninitialized when is false.
+
+
+
+ s for applicable _ViewStarts.
+
+ null if is false.
+
+
+
+ The sequence of locations that were searched.
+
+
+ When is true this includes all paths that were search prior to finding
+ a view at . When is false, this includes
+ all search paths.
+
+
+
+
+ Gets a value that indicates whether the view was successfully found.
+
+
+
+
+ A context for containing information for .
+
+
+
+
+ Initializes a new instance of .
+
+ The for the current executing action.
+ The view name.
+ The controller name.
+ The area name.
+ The page name.
+ Determines if the page being found is the main page for an action.
+
+
+
+ Gets the for the current executing action.
+
+
+
+
+ Gets the view name.
+
+
+
+
+ Gets the controller name.
+
+
+
+
+ Gets the page name. This will be the value of the page route value when rendering a Page from the
+ Razor Pages framework. This value will be null if rendering a view as the result of a controller.
+
+
+
+
+ Gets the area name.
+
+
+
+
+ Determines if the page being found is the main page for an action.
+
+
+
+
+ Gets or sets the that is populated with values as part of
+ .
+
+
+
+ Value cannot be null or empty.
+
+
+ One or more compilation failures occurred:
+
+
+ '{0}' cannot be invoked when a Layout page is set to be executed.
+
+
+ '{0}' cannot be invoked when a Layout page is set to be executed.
+
+
+ The layout view '{0}' could not be located. The following locations were searched:{1}
+
+
+ The layout view '{0}' could not be located. The following locations were searched:{1}
+
+
+ Layout page '{0}' cannot be rendered after '{1}' has been invoked.
+
+
+ Layout page '{0}' cannot be rendered after '{1}' has been invoked.
+
+
+ There is no active writing scope to end.
+
+
+ The {0} operation cannot be performed while inside a writing scope in '{1}'.
+
+
+ The {0} operation cannot be performed while inside a writing scope in '{1}'.
+
+
+ {0} invocation in '{1}' is invalid. {0} can only be called from a layout page.
+
+
+ {0} invocation in '{1}' is invalid. {0} can only be called from a layout page.
+
+
+ {0} has not been called for the page at '{1}'. To ignore call {2}().
+
+
+ {0} has not been called for the page at '{1}'. To ignore call {2}().
+
+
+ Section '{0}' is already defined.
+
+
+ Section '{0}' is already defined.
+
+
+ {0} invocation in '{1}' is invalid. The section '{2}' has already been rendered.
+
+
+ {0} invocation in '{1}' is invalid. The section '{2}' has already been rendered.
+
+
+ The layout page '{0}' cannot find the section '{1}' in the content page '{2}'.
+
+
+ The layout page '{0}' cannot find the section '{1}' in the content page '{2}'.
+
+
+ The following sections have been defined but have not been rendered by the page at '{0}': '{1}'. To ignore an unrendered section call {2}("sectionName").
+
+
+ The following sections have been defined but have not been rendered by the page at '{0}': '{1}'. To ignore an unrendered section call {2}("sectionName").
+
+
+ '{0} must be set to access '{1}'.
+
+
+ '{0} must be set to access '{1}'.
+
+
+ Generated Code
+
+
+ Unable to perform '{0}' assignment. Tag helper property '{1}.{2}' must not be null.
+
+
+ Unable to perform '{0}' assignment. Tag helper property '{1}.{2}' must not be null.
+
+
+ Unexpected return value from '{1}.{2}' for URL '{0}'. If the '{1}' service has been overridden, change '{2}' to replace only the '~/' prefix. Otherwise, add the following directive to the Razor page to disable URL resolution relative to the application's ' ...
+
+
+ Unexpected return value from '{1}.{2}' for URL '{0}'. If the '{1}' service has been overridden, change '{2}' to replace only the '~/' prefix. Otherwise, add the following directive to the Razor page to disable URL resolution relative to the application's ' ...
+
+
+ A circular layout reference was detected when rendering '{0}'. The layout page '{1}' has already been rendered.
+
+
+ A circular layout reference was detected when rendering '{0}'. The layout page '{1}' has already been rendered.
+
+
+ One or more compilation references may be missing. If you're seeing this in a published application, set '{0}' to true in your project file to ensure files in the refs directory are published.
+
+
+ One or more compilation references may be missing. If you're seeing this in a published application, set '{0}' to true in your project file to ensure files in the refs directory are published.
+
+
+ '{0}' cannot be empty. These locations are required to locate a view for rendering.
+
+
+ '{0}' cannot be empty. These locations are required to locate a view for rendering.
+
+
+ Nesting of TagHelper attribute writing scopes is not supported.
+
+
+ '{0}.{1}' must not be empty. At least one '{2}' is required to locate a view for rendering.
+
+
+ '{0}.{1}' must not be empty. At least one '{2}' is required to locate a view for rendering.
+
+
+ Path must begin with a forward slash '/'.
+
+
+ The property '{0}' of '{1}' must not be null.
+
+
+ The property '{0}' of '{1}' must not be null.
+
+
+ The following precompiled view paths differ only in case, which is not supported:
+
+
+ The debug type specified in the dependency context could be parsed. The debug type value '{0}' is not supported.
+
+
+ The debug type specified in the dependency context could be parsed. The debug type value '{0}' is not supported.
+
+
+ At least one of the '{0}' or '{1}' values must be non-null.
+
+
+ At least one of the '{0}' or '{1}' values must be non-null.
+
+
+ Views implementing '{0}' are not supported.
+
+
+ Views implementing '{0}' are not supported.
+
+
+
+ An that occurs before a view page.
+
+
+
+
+ The name of the event.
+
+
+
+
+ Initializes a new instance of .
+
+ The page.
+ The view context.
+ The action.
+ The http context.
+
+
+
+ The .
+
+
+
+
+ The .
+
+
+
+
+ The .
+
+
+
+
+ The .
+
+
+
+
+
+
+
+
+
+
+ An that occurs after a view page.
+
+
+
+
+ The name of the event.
+
+
+
+
+ Initializes a new instance of .
+
+ The page.
+ The view context.
+ The action.
+ The http context.
+
+
+
+ The .
+
+
+
+
+ The .
+
+
+
+
+ The .
+
+
+
+
+ The .
+
+
+
+
+
+
+
+
+
+
+ Extensions methods for configuring MVC via an .
+
+
+
+
+ Configures a set of for the application.
+
+ The .
+ An action to configure the .
+ The .
+
+
+
+ Registers tag helpers as services and replaces the existing
+ with an .
+
+ The instance this method extends.
+ The instance this method extends.
+
+
+
+ Adds an initialization callback for a given .
+
+
+ The callback will be invoked on any instance before the
+ method is called.
+
+ The type of being initialized.
+ The instance this method extends.
+ An action to initialize the .
+ The instance this method extends.
+
+
+
+ Static class that adds RazorViewEngine methods to .
+
+
+
+
+ Registers Razor view engine services.
+
+ The .
+ The .
+
+
+
+ Registers Razor view engine services.
+
+ The .
+ A setup action that configures the .
+ The .
+
+
+
+ Registers discovered tag helpers as services and changes the existing
+ for an .
+
+ The instance this method extends.
+ The instance this method extends.
+
+
+
+ Adds an initialization callback for a given .
+
+
+ The callback will be invoked on any instance before the
+ method is called.
+
+ The type of being initialized.
+ The instance this method extends.
+ An action to initialize the .
+ The instance this method extends.
+
+
+
+ Configures to use .
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+
+
+
+ Configures to use .
+
+ The to configure.
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.RazorPages.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.RazorPages.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7f22baec88946f87c2123da8d1aba15ebcc23eee
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.RazorPages.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.TagHelpers.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.TagHelpers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..211da635d0647bf35da73f1b0279f608351fbe8d
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.TagHelpers.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.ViewFeatures.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.ViewFeatures.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d03374098e8ca522bbeb1651f0abb733cbd7c930
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.ViewFeatures.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3386a1e31a2e5ba8e9c905ae928defce9310b40c
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Mvc.xml
@@ -0,0 +1,181 @@
+
+
+
+ Microsoft.AspNetCore.Mvc
+
+
+
+
+ Extension methods for setting up MVC services in an .
+
+
+
+
+ Adds MVC services to the specified .
+
+ The to add services to.
+ An that can be used to further configure the MVC services.
+
+
+
+ Adds MVC services to the specified .
+
+ The to add services to.
+ An to configure the provided .
+ An that can be used to further configure the MVC services.
+
+
+
+ Adds services for controllers to the specified . This method will not
+ register services used for views or pages.
+
+ The to add services to.
+ An that can be used to further configure the MVC services.
+
+
+ This method configures the MVC services for the commonly used features with controllers for an API. This
+ combines the effects of ,
+ ,
+ ,
+ ,
+ ,
+ and .
+
+
+ To add services for controllers with views call
+ on the resulting builder.
+
+
+ To add services for pages call
+ on the resulting builder.
+
+
+
+
+
+ Adds services for controllers to the specified . This method will not
+ register services used for views or pages.
+
+ The to add services to.
+ An to configure the provided .
+ An that can be used to further configure the MVC services.
+
+
+ This method configures the MVC services for the commonly used features with controllers for an API. This
+ combines the effects of ,
+ ,
+ ,
+ ,
+ ,
+ and .
+
+
+ To add services for controllers with views call
+ on the resulting builder.
+
+
+ To add services for pages call
+ on the resulting builder.
+
+
+
+
+
+ Adds services for controllers to the specified . This method will not
+ register services used for pages.
+
+ The to add services to.
+ An that can be used to further configure the MVC services.
+
+
+ This method configures the MVC services for the commonly used features with controllers with views. This
+ combines the effects of ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ and .
+
+
+ To add services for pages call .
+
+
+
+
+
+ Adds services for controllers to the specified . This method will not
+ register services used for pages.
+
+ The to add services to.
+ An to configure the provided .
+ An that can be used to further configure the MVC services.
+
+
+ This method configures the MVC services for the commonly used features with controllers with views. This
+ combines the effects of ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ ,
+ and .
+
+
+ To add services for pages call .
+
+
+
+
+
+ Adds services for pages to the specified .
+
+ The to add services to.
+ An that can be used to further configure the MVC services.
+
+
+ This method configures the MVC services for the commonly used features for pages. This
+ combines the effects of ,
+ ,
+ ,
+ ,
+ and .
+
+
+ To add services for controllers for APIs call .
+
+
+ To add services for controllers with views call .
+
+
+
+
+
+ Adds services for pages to the specified .
+
+ The to add services to.
+ An to configure the provided .
+ An that can be used to further configure the MVC services.
+
+
+ This method configures the MVC services for the commonly used features for pages. This
+ combines the effects of ,
+ ,
+ ,
+ ,
+ and .
+
+
+ To add services for controllers for APIs call .
+
+
+ To add services for controllers with views call .
+
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.OutputCaching.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.OutputCaching.dll
new file mode 100644
index 0000000000000000000000000000000000000000..90bf3425e2b26f513e7ac049f328bd417ee96853
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.OutputCaching.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.RateLimiting.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.RateLimiting.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b3189d51cc3f24ec387d5befeb1fcf33f3b5cfe3
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.RateLimiting.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Razor.Runtime.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Razor.Runtime.dll
new file mode 100644
index 0000000000000000000000000000000000000000..25bf86ab024bf9392b8df85a3f3d3862d1a76661
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Razor.Runtime.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.ResponseCaching.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.ResponseCaching.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c7c248f844811e8ff422845e326477f0c386fb54
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.ResponseCaching.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.ResponseCompression.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.ResponseCompression.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a7bc577b5fee52ca55c25cecf5cef06643ee5d1c
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.ResponseCompression.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Rewrite.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Rewrite.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b5aa88e6e6490de4c57c81cc737787c2bad5a537
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Rewrite.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Routing.Abstractions.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Routing.Abstractions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a6b89aa1079de8464ae56bbe242ff452decb87ce
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Routing.Abstractions.xml
@@ -0,0 +1,595 @@
+
+
+
+ Microsoft.AspNetCore.Routing.Abstractions
+
+
+
+
+ Defines the contract that a class must implement to transform route values while building
+ a URI.
+
+
+
+
+ Transforms the specified route value to a string for inclusion in a URI.
+
+ The route value to transform.
+ The transformed value.
+
+
+
+ A marker interface for types that are associated with route parameters.
+
+
+
+
+ Defines the contract that a class must implement in order to check whether a URL parameter
+ value is valid for a constraint.
+
+
+
+
+ Determines whether the URL parameter contains a valid value for this constraint.
+
+ An object that encapsulates information about the HTTP request.
+ The router that this constraint belongs to.
+ The name of the parameter that is being checked.
+ A dictionary that contains the parameters for the URL.
+
+ An object that indicates whether the constraint check is being performed
+ when an incoming request is being handled or when a URL is being generated.
+
+ true if the URL parameter contains a valid value; otherwise, false.
+
+
+
+ Defines a contract for a handler of a route.
+
+
+
+
+ Gets a to handle the request, based on the provided
+ .
+
+ The associated with the current request.
+ The associated with the current routing match.
+
+ A , or null if the handler cannot handle this request.
+
+
+
+
+ Interface for implementing a router.
+
+
+
+
+ Asynchronously routes based on the current .
+
+ A instance.
+
+
+
+ Returns the URL that is associated with the route details provided in
+
+ A instance.
+ A object. Can be null.
+
+
+
+ A feature interface for routing functionality.
+
+
+
+
+ Gets or sets the associated with the current request.
+
+
+
+
+ Defines a contract to generate absolute and related URIs based on endpoint routing.
+
+
+
+ Generating URIs in endpoint routing occurs in two phases. First, an address is bound to a list of
+ endpoints that match the address. Secondly, each endpoint's RoutePattern is evaluated, until
+ a route pattern that matches the supplied values is found. The resulting output is combined with
+ the other URI parts supplied to the link generator and returned.
+
+
+ The methods provided by the type are general infrastructure, and support
+ the standard link generator functionality for any type of address. The most convenient way to use
+ is through extension methods that perform operations for a specific
+ address type.
+
+
+
+
+
+ Generates a URI with an absolute path based on the provided values and .
+
+ The address type.
+ The associated with the current request.
+ The address value. Used to resolve endpoints.
+ The route values. Used to expand parameters in the route template.
+ The values associated with the current request. Optional.
+
+ An optional URI path base. Prepended to the path in the resulting URI. If not provided, the value of will be used.
+
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+
+ Generates a URI with an absolute path based on the provided values.
+
+ The address type.
+ The address value. Used to resolve endpoints.
+ The route values. Used to expand parameters in the route template.
+ An optional URI path base. Prepended to the path in the resulting URI.
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+
+ Generates an absolute URI based on the provided values and .
+
+ The address type.
+ The associated with the current request.
+ The address value. Used to resolve endpoints.
+ The route values. Used to expand parameters in the route template.
+ The values associated with the current request. Optional.
+
+ The URI scheme, applied to the resulting URI. Optional. If not provided, the value of will be used.
+
+
+ The URI host/authority, applied to the resulting URI. Optional. If not provided, the value will be used.
+ See the remarks section for details about the security implications of the .
+
+
+ An optional URI path base. Prepended to the path in the resulting URI. If not provided, the value of will be used.
+
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+ The value of should be a trusted value. Relying on the value of the current request
+ can allow untrusted input to influence the resulting URI unless the Host header has been validated.
+ See the deployment documentation for instructions on how to properly validate the Host header in
+ your deployment environment.
+
+
+
+
+
+ Generates an absolute URI based on the provided values.
+
+ The address type.
+ The address value. Used to resolve endpoints.
+ The route values. Used to expand parameters in the route template.
+ The URI scheme, applied to the resulting URI.
+
+ The URI host/authority, applied to the resulting URI.
+ See the remarks section for details about the security implications of the .
+
+ An optional URI path base. Prepended to the path in the resulting URI.
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ An absolute URI, or null.
+
+
+ The value of should be a trusted value. Relying on the value of the current request
+ can allow untrusted input to influence the resulting URI unless the Host header has been validated.
+ See the deployment documentation for instructions on how to properly validate the Host header in
+ your deployment environment.
+
+
+
+
+
+ Configures options for generated URLs.
+
+
+
+
+ Gets or sets a value indicating whether all generated paths URLs are lowercase.
+ Use to configure the behavior for query strings.
+
+
+
+
+ Gets or sets a value indicating whether a generated query strings are lowercase.
+ This property will be false unless is also true.
+
+
+
+
+ Gets or sets a value indicating whether a trailing slash should be appended to the generated URLs.
+
+
+
+
+ A context object for .
+
+
+
+
+ Creates a new instance of for the provided .
+
+ The associated with the current request.
+
+
+
+ Gets or sets the handler for the request. An should set
+ when it matches.
+
+
+
+
+ Gets the associated with the current request.
+
+
+
+
+ Gets or sets the associated with the current context.
+
+
+
+
+ Information about the current routing path.
+
+
+
+
+ Creates a new instance of instance.
+
+
+
+
+ Creates a new instance of instance with values copied from .
+
+ The other instance to copy.
+
+
+
+ Creates a new instance of instance with the specified values.
+
+ The values.
+
+
+
+ Gets the data tokens produced by routes on the current routing path.
+
+
+
+
+ Gets the list of instances on the current routing path.
+
+
+
+
+ Gets the values produced by routes on the current routing path.
+
+
+
+
+
+ Creates a snapshot of the current state of the before appending
+ to , merging into
+ , and merging into .
+
+
+ Call to restore the state of this
+ to the state at the time of calling
+ .
+
+
+
+ An to append to . If null, then
+ will not be changed.
+
+
+ A to merge into . If null, then
+ will not be changed.
+
+
+ A to merge into . If null, then
+ will not be changed.
+
+ A that captures the current state.
+
+
+
+ A snapshot of the state of a instance.
+
+
+
+
+ Creates a new instance of for .
+
+ The .
+ The data tokens.
+ The routers.
+ The route values.
+
+
+
+ Restores the to the captured state.
+
+
+
+
+ Indicates whether ASP.NET routing is processing a URL from an HTTP request or generating a URL.
+
+
+
+
+ A URL from a client is being processed.
+
+
+
+
+ A URL is being created based on the route definition.
+
+
+
+
+ Extension methods for related to routing.
+
+
+
+
+ Gets the associated with the provided .
+
+ The associated with the current request.
+ The .
+
+
+
+ Gets a route value from associated with the provided
+ .
+
+ The associated with the current request.
+ The key of the route value.
+ The corresponding route value, or null.
+
+
+
+ A context for virtual path generation operations.
+
+
+
+
+ Creates a new instance of .
+
+ The associated with the current request.
+ The set of route values associated with the current request.
+ The set of new values provided for virtual path generation.
+
+
+
+ Creates a new instance of .
+
+ The associated with the current request.
+ The set of route values associated with the current request.
+ The set of new values provided for virtual path generation.
+ The name of the route to use for virtual path generation.
+
+
+
+ Gets the set of route values associated with the current request.
+
+
+
+
+ Gets the associated with the current request.
+
+
+
+
+ Gets the name of the route to use for virtual path generation.
+
+
+
+
+ Gets or sets the set of new values provided for virtual path generation.
+
+
+
+
+ Represents information about the route and virtual path that are the result of
+ generating a URL with the ASP.NET routing middleware.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The object that is used to generate the URL.
+ The generated URL.
+
+
+
+ Initializes a new instance of the class.
+
+ The object that is used to generate the URL.
+ The generated URL.
+ The collection of custom values.
+
+
+
+ Gets the collection of custom values for the .
+
+
+
+
+ Gets or sets the that was used to generate the URL.
+
+
+
+
+ Gets or sets the URL that was generated from the .
+
+
+
+
+ Initializes a fast .
+ This constructor does not cache the helper. For caching, use .
+
+
+
+
+ Gets the backing .
+
+
+
+
+ Gets (or sets in derived types) the property name.
+
+
+
+
+ Gets the property value getter.
+
+
+
+
+ Gets the property value setter.
+
+
+
+
+ Returns the property value for the specified .
+
+ The object whose property value will be returned.
+ The property value.
+
+
+
+ Sets the property value for the specified .
+
+ The object whose property value will be set.
+ The property value.
+
+
+
+ Creates and caches fast property helpers that expose getters for every public get property on the
+ specified type.
+
+ The type to extract property accessors for.
+ A cached array of all public properties of the specified type.
+
+
+
+
+
+ Creates and caches fast property helpers that expose getters for every non-hidden get property
+ on the specified type.
+
+
+ excludes properties defined on base types that have been
+ hidden by definitions using the new keyword.
+
+
+ The type to extract property accessors for.
+
+ A cached array of all public properties of the specified type.
+
+
+
+
+ Creates a single fast property getter. The result is not cached.
+
+ propertyInfo to extract the getter for.
+ a fast getter.
+
+ This method is more memory efficient than a dynamically compiled lambda, and about the
+ same speed.
+
+
+
+
+ Creates a single fast property getter which is safe for a null input object. The result is not cached.
+
+ propertyInfo to extract the getter for.
+ a fast getter.
+
+ This method is more memory efficient than a dynamically compiled lambda, and about the
+ same speed.
+
+
+
+
+ Creates a single fast property setter for reference types. The result is not cached.
+
+ propertyInfo to extract the setter for.
+ a fast getter.
+
+ This method is more memory efficient than a dynamically compiled lambda, and about the
+ same speed. This only works for reference types.
+
+
+
+
+ Given an object, adds each instance property with a public get method as a key and its
+ associated value to a dictionary.
+
+ If the object is already an instance, then a copy
+ is returned.
+
+
+ The implementation of PropertyHelper will cache the property accessors per-type. This is
+ faster when the same type is used multiple times with ObjectToDictionary.
+
+
+
+
+
+ Creates and caches fast property helpers that expose getters for every non-hidden get property
+ on the specified type.
+
+
+ excludes properties defined on base types that have been
+ hidden by definitions using the new keyword.
+
+
+ The type to extract property accessors for.
+ The cache to store results in. Use to use the default cache. Use to avoid caching.
+ The cache to store results in. Use if the calling type does not have its own independent cache. Use to avoid caching.
+
+ A cached array of all public properties of the specified type.
+
+
+
+
+ Creates and caches fast property helpers that expose getters for every public get property on the
+ specified type.
+
+ The type to extract property accessors for.
+ The cache to store results in. Use to use the default cache. Use to avoid caching.
+ A cached array of all public properties of the specified type.
+
+
+
+
+ Invoked as part of contract for hot reload.
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Routing.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Routing.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a538fe73fb30298cd9788ba16e37ca6d41b3e22b
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Routing.xml
@@ -0,0 +1,5882 @@
+
+
+
+ Microsoft.AspNetCore.Routing
+
+
+
+
+ Helper type for avoiding allocations while building arrays.
+
+ The element type.
+
+
+
+ Initializes the with a specified capacity.
+
+ The capacity of the array to allocate.
+
+
+
+ Gets the number of items this instance can store without re-allocating,
+ or 0 if the backing array is null.
+
+
+
+ Gets the current underlying array.
+
+
+
+ Gets the number of items in the array currently in use.
+
+
+
+
+ Gets or sets the item at a certain index in the array.
+
+ The index into the array.
+
+
+
+ Adds an item to the backing array, resizing it if necessary.
+
+ The item to add.
+
+
+
+ Gets the first item in this builder.
+
+
+
+
+ Gets the last item in this builder.
+
+
+
+
+ Creates an array from the contents of this builder.
+
+
+ Do not call this method twice on the same builder.
+
+
+
+
+ Adds an item to the backing array, without checking if there is room.
+
+ The item to add.
+
+ Use this method if you know there is enough space in the
+ for another item, and you are writing performance-sensitive code.
+
+
+
+
+ Provides methods used for invoking the route endpoint
+ infrastructure with custom funcs for populating metadata
+ and creating request delegates. Intended to be consumed from
+ the RequestDeleatgeGenerator only.
+
+
+
+
+ Registers an endpoint with custom functions for constructing
+ a request delegate for its handler and populating metadata for
+ the endpoint. Intended for consumption in the RequestDelegateGenerator.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ The set of supported HTTP methods.
+ A delegate for populating endpoint metadata.
+ A delegate for constructing a RequestDelegate.
+
+
+
+
+ Represents an whose values come from a collection of instances.
+
+
+
+
+ Instantiates a object from .
+
+ An collection of objects.
+ A .
+
+
+
+ Returns the collection of instances associated with the object.
+
+
+
+
+ Gets a used to signal invalidation of cached instances.
+
+ The .
+
+
+
+ Returns a read-only collection of instances.
+
+
+
+
+
+
+
+
+
+
+ Constrains a route parameter to contain only lowercase or uppercase letters A through Z in the English alphabet.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+
+
+ Pattern:
+ ^[A-Za-z]*$
+ Explanation:
+
+ ○ Match if at the beginning of the string.
+ ○ Match a character in the set [A-Za-z] atomically any number of times.
+ ○ Match if at the end of the string or if before an ending newline.
+
+
+
+
+
+ Constrains a route parameter to represent only Boolean values.
+
+
+
+
+
+
+
+ Constrains a route by several child constraints.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The child constraints that must match for this constraint to match.
+
+
+
+ Gets the child constraints that must match for this constraint to match.
+
+
+
+
+
+
+
+ Constrains a route parameter to represent only values.
+
+
+ This constraint tries to parse strings by using all of the formats returned by the
+ CultureInfo.InvariantCulture.DateTimeFormat.GetAllDateTimePatterns() method.
+ For a sample on how to list all formats which are considered, please visit
+ http://msdn.microsoft.com/en-us/library/aszyst2c(v=vs.110).aspx
+
+
+
+
+
+
+
+ Constrains a route parameter to represent only decimal values.
+
+
+
+
+
+
+
+ Constrains a route parameter to represent only 64-bit floating-point values.
+
+
+
+
+
+
+
+ Constrains a route parameter to represent only file name values. Does not validate that
+ the route value contains valid file system characters, or that the value represents
+ an actual file on disk.
+
+
+
+ This constraint can be used to disambiguate requests for static files versus dynamic
+ content served from the application.
+
+
+ This constraint determines whether a route value represents a file name by examining
+ the last URL Path segment of the value (delimited by /). The last segment
+ must contain the dot (.) character followed by one or more non-(.) characters.
+
+
+ If the route value does not contain a / then the entire value will be interpreted
+ as the last segment.
+
+
+ The does not attempt to validate that the value contains
+ a legal file name for the current operating system.
+
+
+ The does not attempt to validate that the value represents
+ an actual file on disk.
+
+
+
+
+ Examples of route values that will be matched as file names
+ description
+
+ -
+ /a/b/c.txt
+ Final segment contains a . followed by other characters.
+
+ -
+ /hello.world.txt
+ Final segment contains a . followed by other characters.
+
+ -
+ hello.world.txt
+ Final segment contains a . followed by other characters.
+
+ -
+ .gitignore
+ Final segment contains a . followed by other characters.
+
+
+
+
+ Examples of route values that will be rejected as non-file-names
+ description
+
+ -
+ /a/b/c
+ Final segment does not contain a ..
+
+ -
+ /a/b.d/c
+ Final segment does not contain a ..
+
+ -
+ /a/b.d/c/
+ Final segment is empty.
+
+ -
+
+ Value is empty
+
+
+
+
+
+
+
+
+
+
+ Constrains a route parameter to represent only 32-bit floating-point values.
+
+
+
+
+
+
+
+ Constrains a route parameter to represent only values.
+ Matches values specified in any of the five formats "N", "D", "B", "P", or "X",
+ supported by Guid.ToString(string) and Guid.ToString(String, IFormatProvider) methods.
+
+
+
+
+
+
+
+ Constrains the HTTP method of request or a route.
+
+
+
+
+ Creates a new instance of that accepts the HTTP methods specified
+ by .
+
+ The allowed HTTP methods.
+
+
+
+ Gets the HTTP methods allowed by the constraint.
+
+
+
+
+
+
+
+ Constrains a route parameter to represent only 32-bit integer values.
+
+
+
+
+
+
+
+ Constrains a route parameter to be a string of a given length or within a given range of lengths.
+
+
+
+
+ Initializes a new instance of the class that constrains
+ a route parameter to be a string of a given length.
+
+ The length of the route parameter.
+
+
+
+ Initializes a new instance of the class that constrains
+ a route parameter to be a string of a given length.
+
+ The minimum length allowed for the route parameter.
+ The maximum length allowed for the route parameter.
+
+
+
+ Gets the minimum length allowed for the route parameter.
+
+
+
+
+ Gets the maximum length allowed for the route parameter.
+
+
+
+
+
+
+
+ Constrains a route parameter to represent only 64-bit integer values.
+
+
+
+
+
+
+
+ Constrains a route parameter to be a string with a maximum length.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The maximum length allowed for the route parameter.
+
+
+
+ Gets the maximum length allowed for the route parameter.
+
+
+
+
+
+
+
+ Constrains a route parameter to be an integer with a maximum value.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The maximum value allowed for the route parameter.
+
+
+
+ Gets the maximum allowed value of the route parameter.
+
+
+
+
+
+
+
+ Constrains a route parameter to be a string with a minimum length.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The minimum length allowed for the route parameter.
+
+
+
+ Gets the minimum length allowed for the route parameter.
+
+
+
+
+
+
+
+ Constrains a route parameter to be a long with a minimum value.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The minimum value allowed for the route parameter.
+
+
+
+ Gets the minimum allowed value of the route parameter.
+
+
+
+
+
+
+
+ Constrains a route parameter to represent only non-file-name values. Does not validate that
+ the route value contains valid file system characters, or that the value represents
+ an actual file on disk.
+
+
+
+ This constraint can be used to disambiguate requests for dynamic content versus
+ static files served from the application.
+
+
+ This constraint determines whether a route value represents a file name by examining
+ the last URL Path segment of the value (delimited by /). The last segment
+ must contain the dot (.) character followed by one or more non-(.) characters.
+
+
+ If the route value does not contain a / then the entire value will be interpreted
+ as a the last segment.
+
+
+ The does not attempt to validate that the value contains
+ a legal file name for the current operating system.
+
+
+
+
+ Examples of route values that will be matched as non-file-names
+ description
+
+ -
+ /a/b/c
+ Final segment does not contain a ..
+
+ -
+ /a/b.d/c
+ Final segment does not contain a ..
+
+ -
+ /a/b.d/c/
+ Final segment is empty.
+
+ -
+
+ Value is empty
+
+
+
+
+ Examples of route values that will be rejected as file names
+ description
+
+ -
+ /a/b/c.txt
+ Final segment contains a . followed by other characters.
+
+ -
+ /hello.world.txt
+ Final segment contains a . followed by other characters.
+
+ -
+ hello.world.txt
+ Final segment contains a . followed by other characters.
+
+ -
+ .gitignore
+ Final segment contains a . followed by other characters.
+
+
+
+
+
+
+
+
+
+
+ Defines a constraint on an optional parameter. If the parameter is present, then it is constrained by InnerConstraint.
+
+
+
+
+ Creates a new instance given the .
+
+
+
+
+
+ Gets the associated with the optional parameter.
+
+
+
+
+
+
+
+ Constraints a route parameter to be an integer within a given range of values.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The minimum value.
+ The maximum value.
+ The minimum value should be less than or equal to the maximum value.
+
+
+
+ Gets the minimum allowed value of the route parameter.
+
+
+
+
+ Gets the maximum allowed value of the route parameter.
+
+
+
+
+
+
+
+ Represents a regex constraint which can be used as an inlineConstraint.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The regular expression pattern to match.
+
+
+
+ Constrains a route parameter to match a regular expression.
+
+
+
+
+ Constructor for a given a .
+
+ A instance to use as a constraint.
+
+
+
+ Constructor for a given a .
+
+ A string containing the regex pattern.
+
+
+
+ Gets the regular expression used in the route constraint.
+
+
+
+
+
+
+
+ Constraints a route parameter that must have a value.
+
+
+ This constraint is primarily used to enforce that a non-parameter value is present during
+ URL generation.
+
+
+
+
+
+
+
+ Constrains a route parameter to contain only a specified string.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The constraint value to match.
+
+
+
+
+
+
+ Metadata that defines data tokens for an . This metadata
+ type provides data tokens value for associated
+ with an endpoint.
+
+
+
+
+ Constructor for a new given .
+
+ The data tokens.
+
+
+
+ Get the data tokens.
+
+
+
+
+
+
+
+ Provides a collection of instances.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The instances that the data source will return.
+
+
+
+ Initializes a new instance of the class.
+
+ The instances that the data source will return.
+
+
+
+ Gets a used to signal invalidation of cached
+ instances.
+
+ The .
+
+
+
+ Returns a read-only collection of instances.
+
+
+
+
+ The default implementation of . Resolves constraints by parsing
+ a constraint key and constraint arguments, using a map to resolve the constraint type, and calling an
+ appropriate constructor for the constraint type.
+
+
+
+
+ Initializes a new instance of the class.
+
+ Accessor for containing the constraints of interest.
+ The to get service arguments from.
+
+
+
+
+ A typical constraint looks like the following
+ "exampleConstraint(arg1, arg2, 12)".
+ Here if the type registered for exampleConstraint has a single constructor with one argument,
+ The entire string "arg1, arg2, 12" will be treated as a single argument.
+ In all other cases arguments are split at comma.
+
+
+
+
+ Provides a collection of instances.
+
+
+
+
+ Gets a used to signal invalidation of cached
+ instances.
+
+ The .
+
+
+
+ Returns a read-only collection of instances.
+
+
+
+
+ Get the instances for this given the specified and .
+
+ Details about how the returned instances should be grouped and a reference to application services.
+
+ Returns a read-only collection of instances given the specified group and .
+
+
+
+
+ Specifies the endpoint group name in .
+
+
+
+
+ Initializes an instance of the .
+
+ The endpoint group name.
+
+
+
+
+
+
+ Specifies the endpoint name in .
+
+
+ Endpoint names must be unique within an application, and can be used to unambiguously
+ identify a desired endpoint for URI generation using
+
+
+
+
+ Initializes an instance of the EndpointNameAttribute.
+
+ The endpoint name.
+
+
+
+
+
+
+ Specifies an endpoint name in .
+
+
+ Endpoint names must be unique within an application, and can be used to unambiguously
+ identify a desired endpoint for URI generation using .
+
+
+
+
+ Creates a new instance of with the provided endpoint name.
+
+ The endpoint name.
+
+
+
+ Gets the endpoint name.
+
+
+
+
+
+
+
+ Indicates that this should not be included in the generated API metadata.
+
+
+
+
+
+
+ >
+
+
+
+ Attribute for providing host metdata that is used during routing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The host used during routing.
+ Host should be Unicode rather than punycode, and may have a port.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The hosts used during routing.
+ Hosts should be Unicode rather than punycode, and may have a port.
+ An empty collection means any host will be accepted.
+
+
+
+
+ Returns a read-only collection of hosts used during routing.
+ Hosts will be Unicode rather than punycode, and may have a port.
+ An empty collection means any host will be accepted.
+
+
+
+
+
+
+
+ Represents HTTP method metadata used during routing.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The HTTP methods used during routing.
+ An empty collection means any HTTP method will be accepted.
+
+
+
+
+ Initializes a new instance of the class.
+
+
+ The HTTP methods used during routing.
+ An empty collection means any HTTP method will be accepted.
+
+ A value indicating whether routing accepts CORS preflight requests.
+
+
+
+ Returns a value indicating whether the associated endpoint should accept CORS preflight requests.
+
+
+
+
+ Returns a read-only collection of HTTP methods used during routing.
+ An empty collection means any HTTP method will be accepted.
+
+
+
+
+
+
+
+ Metadata that defines data tokens for an . This metadata
+ type provides data tokens value for associated
+ with an endpoint.
+
+
+
+
+ Get the data tokens.
+
+
+
+
+ A metadata interface that can be used to specify that the associated
+ will be dynamically replaced during matching.
+
+
+
+ and related derived interfaces signal to
+ implementations that an has dynamic behavior
+ and thus cannot have its characteristics cached.
+
+
+ Using dynamic endpoints can be useful because the default matcher implementation does not
+ supply extensibility for how URLs are processed. Routing implementations that have dynamic
+ behavior can apply their dynamic logic after URL processing, by replacing a endpoints as
+ part of a .
+
+
+
+
+
+ Returns a value that indicates whether the associated endpoint has dynamic matching
+ behavior.
+
+
+
+
+ Defines a contract to find endpoints based on the provided address.
+
+ The address type to look up endpoints.
+
+
+
+ Finds endpoints based on the provided .
+
+ The information used to look up endpoints.
+ A collection of .
+
+
+
+ Defines a contract used to specify an endpoint group name in .
+
+
+
+
+ Gets the endpoint group name.
+
+
+
+
+ Defines a contract use to specify an endpoint name in .
+
+
+ Endpoint names must be unique within an application, and can be used to unambiguously
+ identify a desired endpoint for URI generation using .
+
+
+
+
+ Gets the endpoint name.
+
+
+
+
+ Defines a contract for a route builder in an application. A route builder specifies the routes for
+ an application.
+
+
+
+
+ Creates a new .
+
+ The new .
+
+
+
+ Gets the used to resolve services for routes.
+
+
+
+
+ Gets the endpoint data sources configured in the builder.
+
+
+
+
+ Indicates whether or not that API explorer data should be emitted for this endpoint.
+
+
+
+
+ Gets a value indicating whether OpenAPI
+ data should be excluded for this endpoint. If ,
+ API metadata is not emitted.
+
+
+
+
+ Represents host metadata used during routing.
+
+
+
+
+ Returns a read-only collection of hosts used during routing.
+ Hosts will be Unicode rather than punycode, and may have a port.
+ An empty collection means any host will be accepted.
+
+
+
+
+ Represents HTTP method metadata used during routing.
+
+
+
+
+ Returns a value indicating whether the associated endpoint should accept CORS preflight requests.
+
+
+
+
+ Returns a read-only collection of HTTP methods used during routing.
+ An empty collection means any HTTP method will be accepted.
+
+
+
+
+ Defines an abstraction for resolving inline constraints as instances of .
+
+
+
+
+ Resolves the inline constraint.
+
+ The inline constraint to resolve.
+ The the inline constraint was resolved to.
+
+
+
+ An interface for an with a name.
+
+
+
+
+ The name of the router. Can be null.
+
+
+
+
+ Contains methods for parsing processing constraints from a route definition.
+
+
+
+
+ Parses a string representing the provided into a .
+
+ A string representation of the route parameter.
+ A instance.
+
+
+
+
+ A singleton service that can be used to write the route table as a state machine
+ in GraphViz DOT language .
+
+
+ You can use to visualize the results.
+
+
+ This type has no support contract, and may be removed or changed at any time in
+ a future release.
+
+
+
+
+
+ Constructor for a given .
+
+ The to add services to.
+
+
+
+ Displays a graph representation of in DOT.
+
+ The to extract routes from.
+ The to which the content is written.
+
+
+
+ Defines a contract for a route builder in an application. A route builder specifies the routes for
+ an application.
+
+
+
+
+ Gets the .
+
+
+
+
+ Gets or sets the default that is used as a handler if an
+ is added to the list of routes but does not specify its own.
+
+
+
+
+ Gets the sets the used to resolve services for routes.
+
+
+
+
+ Gets the routes configured in the builder.
+
+
+
+
+ Builds an that routes the routes specified in the property.
+
+
+
+
+ Interface for a router that supports appending new routes.
+
+
+
+
+ Appends the collection of routes defined in .
+
+ A instance.
+
+
+
+ Represents metadata used during link generation to find
+ the associated endpoint using route name.
+
+
+
+
+ Gets the route name. Can be .
+
+
+
+
+ Represents metadata used during link generation. If is true
+ the associated endpoint will not be used for link generation.
+
+
+
+
+ Gets a value indicating whether the associated endpoint should be used for link generation.
+
+
+
+
+ Metadata used to prevent URL matching. If is true the
+ associated endpoint will not be considered for URL matching.
+
+
+
+
+ Gets a value indicating whether the associated endpoint should be used for URL matching.
+
+
+
+
+ Extension methods for using with and endpoint name.
+
+
+
+
+ Generates a URI with an absolute path based on the provided values.
+
+ The .
+ The associated with the current request.
+ The endpoint name. Used to resolve endpoints.
+ The route values. Used to expand parameters in the route template. Optional.
+
+ An optional URI path base. Prepended to the path in the resulting URI. If not provided, the value of will be used.
+
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+
+ Generates a URI with an absolute path based on the provided values.
+
+ The .
+ The associated with the current request.
+ The endpoint name. Used to resolve endpoints.
+ The route values. Used to expand parameters in the route template. Optional.
+
+ An optional URI path base. Prepended to the path in the resulting URI. If not provided, the value of will be used.
+
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+
+ Generates a URI with an absolute path based on the provided values.
+
+ The .
+ The endpoint name. Used to resolve endpoints.
+ The route values. Used to expand parameters in the route template. Optional.
+ An optional URI path base. Prepended to the path in the resulting URI.
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+
+ Generates a URI with an absolute path based on the provided values.
+
+ The .
+ The endpoint name. Used to resolve endpoints.
+ The route values. Used to expand parameters in the route template. Optional.
+ An optional URI path base. Prepended to the path in the resulting URI.
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+
+ Generates an absolute URI based on the provided values.
+
+ The .
+ The associated with the current request.
+ The endpoint name. Used to resolve endpoints.
+ The route values. Used to expand parameters in the route template. Optional.
+
+ The URI scheme, applied to the resulting URI. Optional. If not provided, the value of will be used.
+
+
+ The URI host/authority, applied to the resulting URI. Optional. If not provided, the value will be used.
+ See the remarks section for details about the security implications of the .
+
+
+ An optional URI path base. Prepended to the path in the resulting URI. If not provided, the value of will be used.
+
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+ The value of should be a trusted value. Relying on the value of the current request
+ can allow untrusted input to influence the resulting URI unless the Host header has been validated.
+ See the deployment documentation for instructions on how to properly validate the Host header in
+ your deployment environment.
+
+
+
+
+
+ Generates an absolute URI based on the provided values.
+
+ The .
+ The associated with the current request.
+ The endpoint name. Used to resolve endpoints.
+ The route values. Used to expand parameters in the route template. Optional.
+
+ The URI scheme, applied to the resulting URI. Optional. If not provided, the value of will be used.
+
+
+ The URI host/authority, applied to the resulting URI. Optional. If not provided, the value will be used.
+ See the remarks section for details about the security implications of the .
+
+
+ An optional URI path base. Prepended to the path in the resulting URI. If not provided, the value of will be used.
+
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+ The value of should be a trusted value. Relying on the value of the current request
+ can allow untrusted input to influence the resulting URI unless the Host header has been validated.
+ See the deployment documentation for instructions on how to properly validate the Host header in
+ your deployment environment.
+
+
+
+
+
+ Generates an absolute URI based on the provided values.
+
+ The .
+ The endpoint name. Used to resolve endpoints.
+ The route values. Used to expand parameters in the route template. Optional.
+ The URI scheme, applied to the resulting URI.
+
+ The URI host/authority, applied to the resulting URI.
+ See the remarks section for details about the security implications of the .
+
+ An optional URI path base. Prepended to the path in the resulting URI.
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ An absolute URI, or null.
+
+
+ The value of should be a trusted value. Relying on the value of the current request
+ can allow untrusted input to influence the resulting URI unless the Host header has been validated.
+ See the deployment documentation for instructions on how to properly validate the Host header in
+ your deployment environment.
+
+
+
+
+
+ Generates an absolute URI based on the provided values.
+
+ The .
+ The endpoint name. Used to resolve endpoints.
+ The route values. Used to expand parameters in the route template.
+ The URI scheme, applied to the resulting URI.
+
+ The URI host/authority, applied to the resulting URI.
+ See the remarks section for details about the security implications of the .
+
+ An optional URI path base. Prepended to the path in the resulting URI.
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ An absolute URI, or null.
+
+
+ The value of should be a trusted value. Relying on the value of the current request
+ can allow untrusted input to influence the resulting URI unless the Host header has been validated.
+ See the deployment documentation for instructions on how to properly validate the Host header in
+ your deployment environment.
+
+
+
+
+
+ Extension methods for using with .
+
+
+
+
+ Generates a URI with an absolute path based on the provided values.
+
+ The .
+ The associated with the current request.
+ The route name. Used to resolve endpoints. Optional.
+ The route values. Used to resolve endpoints and expand parameters in the route template. Optional.
+
+ An optional URI path base. Prepended to the path in the resulting URI. If not provided, the value of will be used.
+
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+
+ Generates a URI with an absolute path based on the provided values.
+
+ The .
+ The associated with the current request.
+ The route name. Used to resolve endpoints. Optional.
+ The route values. Used to resolve endpoints and expand parameters in the route template. Optional.
+
+ An optional URI path base. Prepended to the path in the resulting URI. If not provided, the value of will be used.
+
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+
+ Generates a URI with an absolute path based on the provided values.
+
+ The .
+ The route name. Used to resolve endpoints. Optional.
+ The route values. Used to resolve endpoints and expand parameters in the route template. Optional.
+ An optional URI path base. Prepended to the path in the resulting URI.
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+
+ Generates a URI with an absolute path based on the provided values.
+
+ The .
+ The route name. Used to resolve endpoints. Optional.
+ The route values. Used to resolve endpoints and expand parameters in the route template. Optional.
+ An optional URI path base. Prepended to the path in the resulting URI.
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+
+ Generates an absolute URI based on the provided values.
+
+ The .
+ The associated with the current request.
+ The route name. Used to resolve endpoints. Optional.
+ The route values. Used to resolve endpoints and expand parameters in the route template. Optional.
+
+ The URI scheme, applied to the resulting URI. Optional. If not provided, the value of will be used.
+
+
+ The URI host/authority, applied to the resulting URI. Optional. If not provided, the value will be used.
+ See the remarks section for details about the security implications of the .
+
+
+ An optional URI path base. Prepended to the path in the resulting URI. If not provided, the value of will be used.
+
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+ The value of should be a trusted value. Relying on the value of the current request
+ can allow untrusted input to influence the resulting URI unless the Host header has been validated.
+ See the deployment documentation for instructions on how to properly validate the Host header in
+ your deployment environment.
+
+
+
+
+
+ Generates an absolute URI based on the provided values.
+
+ The .
+ The associated with the current request.
+ The route name. Used to resolve endpoints. Optional.
+ The route values. Used to resolve endpoints and expand parameters in the route template. Optional.
+
+ The URI scheme, applied to the resulting URI. Optional. If not provided, the value of will be used.
+
+
+ The URI host/authority, applied to the resulting URI. Optional. If not provided, the value will be used.
+ See the remarks section for details about the security implications of the .
+
+
+ An optional URI path base. Prepended to the path in the resulting URI. If not provided, the value of will be used.
+
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ A URI with an absolute path, or null.
+
+
+ The value of should be a trusted value. Relying on the value of the current request
+ can allow untrusted input to influence the resulting URI unless the Host header has been validated.
+ See the deployment documentation for instructions on how to properly validate the Host header in
+ your deployment environment.
+
+
+
+
+
+ Generates an absolute URI based on the provided values.
+
+ The .
+ The route name. Used to resolve endpoints. Optional.
+ The route values. Used to resolve endpoints and expand parameters in the route template. Optional.
+ The URI scheme, applied to the resulting URI.
+
+ The URI host/authority, applied to the resulting URI.
+ See the remarks section for details about the security implications of the .
+
+ An optional URI path base. Prepended to the path in the resulting URI.
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ An absolute URI, or null.
+
+
+ The value of should be a trusted value. Relying on the value of the current request
+ can allow untrusted input to influence the resulting URI unless the Host header has been validated.
+ See the deployment documentation for instructions on how to properly validate the Host header in
+ your deployment environment.
+
+
+
+
+
+ Generates an absolute URI based on the provided values.
+
+ The .
+ The route name. Used to resolve endpoints. Optional.
+ The route values. Used to resolve endpoints and expand parameters in the route template.
+ The URI scheme, applied to the resulting URI.
+
+ The URI host/authority, applied to the resulting URI.
+ See the remarks section for details about the security implications of the .
+
+ An optional URI path base. Prepended to the path in the resulting URI.
+ An optional URI fragment. Appended to the resulting URI.
+
+ An optional . Settings on provided object override the settings with matching
+ names from RouteOptions.
+
+ An absolute URI, or null.
+
+
+ The value of should be a trusted value. Relying on the value of the current request
+ can allow untrusted input to influence the resulting URI unless the Host header has been validated.
+ See the deployment documentation for instructions on how to properly validate the Host header in
+ your deployment environment.
+
+
+
+
+
+ Defines a contract to parse URIs using information from routing.
+
+
+
+
+ Attempts to parse the provided using the route pattern
+ specified by the matching .
+
+ The address type.
+ The address value. Used to resolve endpoints.
+ The URI path to parse.
+
+ A with the parsed values if parsing is successful;
+ otherwise null.
+
+
+
+ will attempt to first resolve
+ instances that match and then use the route
+ pattern associated with each endpoint to parse the URL path.
+
+
+ The parsing operation will fail and return null if either no endpoints are found or none
+ of the route patterns match the provided URI path.
+
+
+
+
+
+ Extension methods for using with an endpoint name.
+
+
+
+
+ Attempts to parse the provided using the route pattern
+ specified by the matching .
+
+ The .
+ The endpoint name. Used to resolve endpoints.
+ The URI path to parse.
+
+ A with the parsed values if parsing is successful;
+ otherwise null.
+
+
+
+ will attempt to first resolve
+ instances that match and then use the route
+ pattern associated with each endpoint to parse the URL path.
+
+
+ The parsing operation will fail and return null if either no endpoints are found or none
+ of the route patterns match the provided URI path.
+
+
+
+
+
+ An exception which indicates multiple matches in endpoint selection.
+
+
+
+
+ Represents a set of candidates that have been matched
+ by the routing system. Used by implementations of
+ and .
+
+
+
+
+
+ Initializes a new instances of the class with the provided ,
+ , and .
+
+
+ The constructor is provided to enable unit tests of implementations of
+ and .
+
+
+ The list of endpoints, sorted in descending priority order.
+ The list of instances.
+ The list of endpoint scores. .
+
+
+
+ Gets the count of candidates in the set.
+
+
+
+
+ Gets the associated with the candidate
+ at .
+
+ The candidate index.
+
+ A reference to the . The result is returned by reference.
+
+
+
+
+ Gets a value which indicates where the is considered
+ a valid candidate for the current request.
+
+ The candidate index.
+
+ true if the candidate at position is considered valid
+ for the current request, otherwise false.
+
+
+
+
+ Sets the validity of the candidate at the provided index.
+
+ The candidate index.
+
+ The value to set. If true the candidate is considered valid for the current request.
+
+
+
+
+ Replaces the at the provided with the
+ provided .
+
+ The candidate index.
+
+ The to replace the original at
+ the . If is null. the candidate will be marked
+ as invalid.
+
+
+ The to replace the original at
+ the .
+
+
+
+
+ Replaces the at the provided with the
+ provided .
+
+ The candidate index.
+
+ The list of endpoints to replace the original at
+ the . If is empty, the candidate will be marked
+ as invalid.
+
+
+ The endpoint comparer used to order the endpoints. Can be retrieved from the service provider as
+ type .
+
+
+
+ This method supports replacing a dynamic endpoint with a collection of endpoints, and relying on
+ implementations to disambiguate further.
+
+
+ The endpoint being replace should have a unique score value. The score is the combination of route
+ patter precedence, order, and policy metadata evaluation. A dynamic endpoint will not function
+ correctly if other endpoints exist with the same score.
+
+
+
+
+
+ The state associated with a candidate in a .
+
+
+
+
+ Gets the .
+
+
+
+
+ Gets the score of the within the current
+ .
+
+
+
+ Candidates within a set are ordered in priority order and then assigned a
+ sequential score value based on that ordering. Candiates with the same
+ score are considered to have equal priority.
+
+
+ The score values are used in the to determine
+ whether a set of matching candidates is an ambiguous match.
+
+
+
+
+
+ Gets associated with the
+ and the current request.
+
+
+
+
+ A comparer that can order instances based on implementations of
+ . The implementation can be retrieved from the service
+ provider and provided to .
+
+
+
+
+ A base class for implementations that use
+ a specific type of metadata from for comparison.
+ Useful for implementing .
+
+
+ The type of metadata to compare. Typically this is a type of metadata related
+ to the application concern being handled.
+
+
+
+
+ A default instance of the .
+
+
+
+
+ Compares two objects and returns a value indicating whether one is less than, equal to,
+ or greater than the other.
+
+ The first object to compare.
+ The second object to compare.
+
+ An implementation of this method must return a value less than zero if
+ x is less than y, zero if x is equal to y, or a value greater than zero if x is
+ greater than y.
+
+
+
+
+ Gets the metadata of type from the provided endpoint.
+
+ The .
+ The instance or null.
+
+
+
+ Compares two instances.
+
+ The first object to compare.
+ The second object to compare.
+
+ An implementation of this method must return a value less than zero if
+ x is less than y, zero if x is equal to y, or a value greater than zero if x is
+ greater than y.
+
+
+ The base-class implementation of this method will compare metadata based on whether
+ or not they are null. The effect of this is that when endpoints are being
+ compared, the endpoint that defines an instance of
+ will be considered higher priority.
+
+
+
+
+ A service that is responsible for the final selection
+ decision. To use a custom register an implementation
+ of in the dependency injection container as a singleton.
+
+
+
+
+ Asynchronously selects an from the .
+
+ The associated with the current request.
+ The .
+ A that completes asynchronously once endpoint selection is complete.
+
+ An should assign the endpoint by calling
+
+ and setting once an endpoint is selected.
+
+
+
+
+ A that implements filtering and selection by
+ the host header of a request.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ An that implements filtering and selection by
+ the HTTP method of a request.
+
+
+
+
+ For framework use only.
+
+
+
+
+ For framework use only.
+
+
+
+
+ For framework use only.
+
+
+
+
+
+
+
+ For framework use only.
+
+
+
+
+
+
+ For framework use only.
+
+
+
+
+
+
+
+ A marker interface for parameter policies that can be shared.
+
+
+
+
+ A interface that can be implemented to sort
+ endpoints. Implementations of must
+ inherit from and should be registered in
+ the dependency injection container as singleton services of type .
+
+
+
+ Candidates in a are sorted based on their priority. Defining
+ a adds an additional criterion to the sorting
+ operation used to order candidates.
+
+
+ As an example, the implementation of implements
+ to ensure that endpoints matching specific HTTP
+ methods are sorted with a higher priority than endpoints without a specific HTTP method
+ requirement.
+
+
+
+
+
+ Gets an that will be used to sort the endpoints.
+
+
+
+
+ A interface that can implemented to filter endpoints
+ in a . Implementations of must
+ inherit from and should be registered in
+ the dependency injection container as singleton services of type .
+
+
+
+
+ Returns a value that indicates whether the applies
+ to any endpoint in .
+
+ The set of candidate values.
+
+ true if the policy applies to any endpoint in , otherwise false.
+
+
+
+
+ Applies the policy to the .
+
+
+ The associated with the current request.
+
+ The .
+
+
+ Implementations of should implement this method
+ and filter the set of candidates in the by setting
+ to false where desired.
+
+
+ To signal an error condition, the should assign the endpoint by
+ calling
+ and setting to an
+ value that will produce the desired error when executed.
+
+
+
+
+
+ Holds current character when processing a character at a time.
+
+
+
+
+ Holds current character when processing 4 characters at a time.
+
+
+
+
+ Used to covert casing. See comments where it's used.
+
+
+
+
+ Used to covert casing. See comments where it's used.
+
+
+
+
+ Holds a 'ref byte' reference to the current character (in bytes).
+
+
+
+
+ Holds the relevant portion of the path as a Span[byte].
+
+
+
+
+ Label to goto that will return the default destination (not a match).
+
+
+
+
+ Label to goto that will return a sentinel value for non-ascii text.
+
+
+
+
+ - Add[ref byte]
+
+
+
+
+ - As[char, byte]
+
+
+
+
+
+
+
+
+
+ - GetReference[char]
+
+
+
+
+ - ReadUnaligned[ulong]
+
+
+
+
+ - ReadUnaligned[ushort]
+
+
+
+
+ Implements an interface for a matcher policy with support for generating graph representations of the endpoints.
+
+
+
+
+ Evaluates if the policy matches any of the endpoints provided in .
+
+ A list of .
+ if the policy applies to any of the provided .
+
+
+
+ Generates a graph that representations the relationship between endpoints and hosts.
+
+ A list of .
+ A graph representing the relationship between endpoints and hosts.
+
+
+
+ Constructs a jump table given the a set of .
+
+ The default destination for lookups.
+ A list of .
+ A instance.
+
+
+
+ Defines the contract that a class must implement in order to check if a literal value is valid for a given constraint.
+
+ When a parameter implements this interface, the router is able to optimize away some paths from the route table that don't match this constraint.
+
+
+
+
+
+ Determines whether the given can match the constraint.
+
+ The parameter name we are currently evaluating.
+ The literal to test the constraint against.
+ true if the literal contains a valid value; otherwise, false.
+
+
+
+ An interface for components that can select an given the current request, as part
+ of the execution of .
+
+
+
+
+ Attempts to asynchronously select an for the current request.
+
+ The associated with the current request.
+ A which represents the asynchronous completion of the operation.
+
+
+
+ Supports retrieving endpoints that fulfill a certain matcher policy.
+
+
+
+
+ Returns the destination for a given in the current jump table.
+
+ The associated with the current request.
+
+
+
+ Represents an entry in a .
+
+
+
+
+ Constructs a new instance.
+
+ Represents the match heuristic of the policy.
+
+
+
+
+ Gets the object used to represent the match heuristic. Can be a host, HTTP method, etc.
+ depending on the matcher policy.
+
+
+
+
+ Gets the destination of the current entry.
+
+
+
+
+ Represents an edge in a matcher policy graph.
+
+
+
+
+ Constructs a new instance.
+
+ Represents the match heuristic of the policy.
+ Represents the endpoints that match the policy
+
+
+
+ Gets the endpoints that match the policy defined by .
+
+
+
+
+ Gets the object used to represent the match heuristic. Can be a host, HTTP method, etc.
+ depending on the matcher policy.
+
+
+
+
+ Defines a policy that applies behaviors to the URL matcher. Implementations
+ of and related interfaces must be registered
+ in the dependency injection container as singleton services of type
+ .
+
+
+ implementations can implement the following
+ interfaces , ,
+ and .
+
+
+
+
+ Gets a value that determines the order the should
+ be applied. Policies are applied in ascending numeric value of the
+ property.
+
+
+
+
+ Returns a value that indicates whether the provided contains
+ one or more dynamic endpoints.
+
+ The set of endpoints.
+ true if a dynamic endpoint is found; otherwise returns false.
+
+
+ The presence of signifies that an endpoint that may be replaced
+ during processing by an .
+
+
+ An implementation of should also implement
+ and use its implementation when a node contains a dynamic endpoint.
+ implementations rely on caching of data based on a static set of endpoints. This
+ is not possible when endpoints are replaced dynamically.
+
+
+
+
+
+ Defines an abstraction for resolving inline parameter policies as instances of .
+
+
+
+
+ Creates a parameter policy.
+
+ The parameter the parameter policy is being created for.
+ The inline text to resolve.
+ The for the parameter.
+
+
+
+ Creates a parameter policy.
+
+ The parameter the parameter policy is being created for.
+ An existing parameter policy.
+ The for the parameter.
+
+
+
+ Creates a parameter policy.
+
+ The parameter the parameter policy is being created for.
+ The reference to resolve.
+ The for the parameter.
+
+
+
+ Represents a parsed route template with default values and constraints.
+ Use to create
+ instances. Instances of are immutable.
+
+
+
+
+ A marker object that can be used in to designate that
+ any non-null or non-empty value is required.
+
+
+ is only use in routing is in .
+ is not valid as a route value, and will convert to the null/empty string.
+
+
+
+
+ Gets the set of default values for the route pattern.
+ The keys of are the route parameter names.
+
+
+
+
+ Gets the set of parameter policy references for the route pattern.
+ The keys of are the route parameter names.
+
+
+
+
+ Gets a collection of route values that must be provided for this route pattern to be considered
+ applicable.
+
+
+
+ allows a framework to substitute route values into a parameterized template
+ so that the same route template specification can be used to create multiple route patterns.
+
+ This example shows how a route template can be used with required values to substitute known
+ route values for parameters.
+
+ Route Template: "{controller=Home}/{action=Index}/{id?}"
+ Route Values: { controller = "Store", action = "Index" }
+
+
+ A route pattern produced in this way will match and generate URL paths like: /Store,
+ /Store/Index, and /Store/Index/17.
+
+
+
+
+
+
+ Gets the precedence value of the route pattern for URL matching.
+
+
+ Precedence is a computed value based on the structure of the route pattern
+ used for building URL matching data structures.
+
+
+
+
+ Gets the precedence value of the route pattern for URL generation.
+
+
+ Precedence is a computed value based on the structure of the route pattern
+ used for building URL generation data structures.
+
+
+
+
+ Gets the raw text supplied when parsing the route pattern. May be null.
+
+
+
+
+ Gets the list of route parameters.
+
+
+
+
+ Gets the list of path segments.
+
+
+
+
+ Gets the parameter matching the given name.
+
+ The name of the parameter to match.
+ The matching parameter or null if no parameter matches the given name.
+
+
+
+ An exception that is thrown for error constructing a .
+
+
+
+
+ Creates a new instance of .
+
+ The route pattern as raw text.
+ The exception message.
+
+
+
+ Gets the route pattern associated with this exception.
+
+
+
+
+ Populates a with the data needed to serialize the target object.
+
+ The to populate with data.
+ The destination () for this serialization.
+
+
+
+ Contains factory methods for creating and related types.
+ Use to parse a route pattern in
+ string format.
+
+
+
+
+ Creates a from its string representation.
+
+ The route pattern string to parse.
+ The .
+
+
+
+ Creates a from its string representation along
+ with provided default values and parameter policies.
+
+ The route pattern string to parse.
+
+ Additional default values to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the parsed route pattern.
+
+
+ Additional parameter policies to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the parsed route pattern.
+ Multiple policies can be specified for a key by providing a collection as the value.
+
+ The .
+
+
+
+ Creates a from its string representation along
+ with provided default values and parameter policies.
+
+ The route pattern string to parse.
+
+ Additional default values to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the parsed route pattern.
+
+
+ Additional parameter policies to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the parsed route pattern.
+ Multiple policies can be specified for a key by providing a collection as the value.
+
+ The .
+
+
+
+ Creates a from its string representation along
+ with provided default values and parameter policies.
+
+ The route pattern string to parse.
+
+ Additional default values to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the parsed route pattern.
+
+
+ Additional parameter policies to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the parsed route pattern.
+ Multiple policies can be specified for a key by providing a collection as the value.
+
+
+ Route values that can be substituted for parameters in the route pattern. See remarks on .
+
+ The .
+
+
+
+ Creates a from its string representation along
+ with provided default values and parameter policies.
+
+ The route pattern string to parse.
+
+ Additional default values to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the parsed route pattern.
+
+
+ Additional parameter policies to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the parsed route pattern.
+ Multiple policies can be specified for a key by providing a collection as the value.
+
+
+ Route values that can be substituted for parameters in the route pattern. See remarks on .
+
+ The .
+
+
+
+ Creates a new instance of from a collection of segments.
+
+ The collection of segments.
+ The .
+
+
+
+ Creates a new instance of from a collection of segments.
+
+ The raw text to associate with the route pattern. May be null.
+ The collection of segments.
+ The .
+
+
+
+ Creates a from a collection of segments along
+ with provided default values and parameter policies.
+
+
+ Additional default values to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+
+
+ Additional parameter policies to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+ Multiple policies can be specified for a key by providing a collection as the value.
+
+ The collection of segments.
+ The .
+
+
+
+ Creates a from a collection of segments along
+ with provided default values and parameter policies.
+
+
+ Additional default values to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+
+
+ Additional parameter policies to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+ Multiple policies can be specified for a key by providing a collection as the value.
+
+ The collection of segments.
+ The .
+
+
+
+ Creates a from a collection of segments along
+ with provided default values and parameter policies.
+
+ The raw text to associate with the route pattern. May be null.
+
+ Additional default values to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+
+
+ Additional parameter policies to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+ Multiple policies can be specified for a key by providing a collection as the value.
+
+ The collection of segments.
+ The .
+
+
+
+ Creates a from a collection of segments along
+ with provided default values and parameter policies.
+
+ The raw text to associate with the route pattern. May be null.
+
+ Additional default values to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+
+
+ Additional parameter policies to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+ Multiple policies can be specified for a key by providing a collection as the value.
+
+ The collection of segments.
+ The .
+
+
+
+ Creates a new instance of from a collection of segments.
+
+ The collection of segments.
+ The .
+
+
+
+ Creates a new instance of from a collection of segments.
+
+ The raw text to associate with the route pattern. May be null.
+ The collection of segments.
+ The .
+
+
+
+ Creates a from a collection of segments along
+ with provided default values and parameter policies.
+
+
+ Additional default values to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+
+
+ Additional parameter policies to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+ Multiple policies can be specified for a key by providing a collection as the value.
+
+ The collection of segments.
+ The .
+
+
+
+ Creates a from a collection of segments along
+ with provided default values and parameter policies.
+
+
+ Additional default values to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+
+
+ Additional parameter policies to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+ Multiple policies can be specified for a key by providing a collection as the value.
+
+ The collection of segments.
+ The .
+
+
+
+ Creates a from a collection of segments along
+ with provided default values and parameter policies.
+
+ The raw text to associate with the route pattern.
+
+ Additional default values to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+
+
+ Additional parameter policies to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+ Multiple policies can be specified for a key by providing a collection as the value.
+
+ The collection of segments.
+ The .
+
+
+
+ Creates a from a collection of segments along
+ with provided default values and parameter policies.
+
+ The raw text to associate with the route pattern.
+
+ Additional default values to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+
+
+ Additional parameter policies to associated with the route pattern. May be null.
+ The provided object will be converted to key-value pairs using
+ and then merged into the route pattern.
+ Multiple policies can be specified for a key by providing a collection as the value.
+
+ The collection of segments.
+ The .
+
+
+
+ String policy references are infered to be regex constraints. Creating them is moved here to its own method so apps can
+ trim away the regex dependency when RoutePatternFactory.Parse(string) is used. This is the method typically used by the various Map methods.
+
+
+
+
+ Creates a from the provided collection
+ of parts.
+
+ The collection of parts.
+ The .
+
+
+
+ Creates a from the provided collection
+ of parts.
+
+ The collection of parts.
+ The .
+
+
+
+ Creates a from the provided text
+ content.
+
+ The text content.
+ The .
+
+
+
+ Creates a from the provided text
+ content.
+
+ The text content.
+ The .
+
+
+
+ Creates a from the provided parameter name.
+
+ The parameter name.
+ The .
+
+
+
+ Creates a from the provided parameter name
+ and default value.
+
+ The parameter name.
+ The parameter default value. May be null.
+ The .
+
+
+
+ Creates a from the provided parameter name
+ and default value, and parameter kind.
+
+ The parameter name.
+ The parameter default value. May be null.
+ The parameter kind.
+ The .
+
+
+
+ Creates a from the provided parameter name
+ and default value, parameter kind, and parameter policies.
+
+ The parameter name.
+ The parameter default value. May be null.
+ The parameter kind.
+ The parameter policies to associated with the parameter.
+ The .
+
+
+
+ Creates a from the provided parameter name
+ and default value, parameter kind, and parameter policies.
+
+ The parameter name.
+ The parameter default value. May be null.
+ The parameter kind.
+ The parameter policies to associated with the parameter.
+ The .
+
+
+
+ Creates a from the provided contraint.
+
+
+ The constraint object, which must be of type
+ or . If the constraint object is a
+ then it will be transformed into an instance of .
+
+ The .
+
+
+
+ Creates a from the provided constraint.
+
+
+ The constraint object.
+
+ The .
+
+
+
+ Creates a from the provided constraint.
+
+
+ The constraint text, which will be resolved by .
+
+ The .
+
+
+
+ Creates a from the provided object.
+
+
+ The parameter policy object.
+
+ The .
+
+
+
+ Creates a from the provided object.
+
+
+ The parameter policy text, which will be resolved by .
+
+ The .
+
+
+
+ Creates a that combines the specified patterns.
+
+ A string representing the first part of the route.
+ A stirng representing the second part of the route.
+ The combined .
+
+
+
+
+
+ Represents a literal text part of a route pattern. Instances of
+ are immutable.
+
+
+
+
+ Gets the text content.
+
+
+
+
+ Defines the kinds of instances.
+
+
+
+
+ The of a standard parameter
+ without optional or catch all behavior.
+
+
+
+
+ The of an optional parameter.
+
+
+
+
+ The of a catch-all parameter.
+
+
+
+
+ Represents a parameter part in a route pattern. Instances of
+ are immutable.
+
+
+
+
+ Gets the list of parameter policies associated with this parameter.
+
+
+
+
+ Gets the value indicating if slashes in current parameter's value should be encoded.
+
+
+
+
+ Gets the default value of this route parameter. May be null.
+
+
+
+
+ Returns true if this part is a catch-all parameter.
+ Otherwise returns false.
+
+
+
+
+ Returns true if this part is an optional parameter.
+ Otherwise returns false.
+
+
+
+
+ Gets the of this parameter.
+
+
+
+
+ Gets the parameter name.
+
+
+
+
+ The parsed representation of a policy in a parameter. Instances
+ of are immutable.
+
+
+
+
+ Gets the constraint text.
+
+
+
+
+ Gets a pre-existing that was used to construct this reference.
+
+
+
+
+ Represents a part of a route pattern.
+
+
+
+
+ Gets the of this part.
+
+
+
+
+ Returns true if this part is literal text. Otherwise returns false.
+
+
+
+
+ Returns true if this part is a route parameter. Otherwise returns false.
+
+
+
+
+ Returns true if this part is an optional separator. Otherwise returns false.
+
+
+
+
+ Defines the kinds of instances.
+
+
+
+
+ The of a .
+
+
+
+
+ The of a .
+
+
+
+
+ The of a .
+
+
+
+
+ Represents a path segment in a route pattern. Instances of are
+ immutable.
+
+
+ Route patterns are made up of URL path segments, delimited by /. A
+ contains a group of
+ that represent the structure of a segment
+ in a route pattern.
+
+
+
+
+ Returns true if the segment contains a single part;
+ otherwise returns false.
+
+
+
+
+ Gets the list of parts in this segment.
+
+
+
+
+ Represents an optional separator part of a route pattern. Instances of
+ are immutable.
+
+
+
+ An optional separator is a literal text delimiter that appears between
+ two parameter parts in the last segment of a route pattern. The only separator
+ that is recognized is ..
+
+
+
+ In the route pattern /{controller}/{action}/{id?}.{extension?}
+ the . character is an optional separator.
+
+
+
+ An optional separator character does not need to present in the URL path
+ of a request for the route pattern to match.
+
+
+
+
+
+ Gets the text content of the part.
+
+
+
+
+ A singleton service that provides transformations on .
+
+
+
+
+ Attempts to substitute the provided into the provided
+ .
+
+ The original .
+ The required values to substitute.
+
+ A new if substitution succeeds, otherwise null.
+
+
+
+ Substituting required values into a route pattern is intended for us with a general-purpose
+ parameterize route specification that can match many logical endpoints. Calling
+ can produce a derived route pattern
+ for each set of route values that corresponds to an endpoint.
+
+
+ The substitution process considers default values and implementations
+ when examining a required value. will
+ return null if any required value cannot be substituted.
+
+
+
+
+
+ Attempts to substitute the provided into the provided
+ .
+
+ The original .
+ The required values to substitute.
+
+ A new if substitution succeeds, otherwise null.
+
+
+
+ Substituting required values into a route pattern is intended for us with a general-purpose
+ parameterize route specification that can match many logical endpoints. Calling
+ can produce a derived route pattern
+ for each set of route values that corresponds to an endpoint.
+
+
+ The substitution process considers default values and implementations
+ when examining a required value. will
+ return null if any required value cannot be substituted.
+
+
+
+
+
+ Provides extension methods for adding new handlers to a .
+
+
+
+
+ Adds a route to the for the given , and
+ .
+
+ The .
+ The route template.
+ The route handler.
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the for the given , and
+ .
+
+ The .
+ The route template.
+ The action to apply to the .
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP DELETE requests for the given
+ , and .
+
+ The .
+ The route template.
+ The route handler.
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP DELETE requests for the given
+ , and .
+
+ The .
+ The route template.
+ The action to apply to the .
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP DELETE requests for the given
+ , and .
+
+ The .
+ The route template.
+ The route handler.
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP GET requests for the given
+ , and .
+
+ The .
+ The route template.
+ The route handler.
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP GET requests for the given
+ , and .
+
+ The .
+ The route template.
+ The action to apply to the .
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP GET requests for the given
+ , and .
+
+ The .
+ The route template.
+ The route handler.
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP POST requests for the given
+ , and .
+
+ The .
+ The route template.
+ The route handler.
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP POST requests for the given
+ , and .
+
+ The .
+ The route template.
+ The action to apply to the .
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP POST requests for the given
+ , and .
+
+ The .
+ The route template.
+ The route handler.
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP PUT requests for the given
+ , and .
+
+ The .
+ The route template.
+ The route handler.
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP PUT requests for the given
+ , and .
+
+ The .
+ The route template.
+ The action to apply to the .
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP PUT requests for the given
+ , and .
+
+ The .
+ The route template.
+ The route handler.
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP requests for the given
+ , , and .
+
+ The .
+ The HTTP verb allowed by the route.
+ The route template.
+ The route handler.
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP requests for the given
+ , , and .
+
+ The .
+ The HTTP verb allowed by the route.
+ The route template.
+ The route handler.
+ A reference to the after this operation has completed.
+
+
+
+ Adds a route to the that only matches HTTP requests for the given
+ , , and .
+
+ The .
+ The HTTP verb allowed by the route.
+ The route template.
+ The action to apply to the .
+ A reference to the after this operation has completed.
+
+
+
+ Represents an instance of a route.
+
+
+
+
+ Constructs a new instance.
+
+ An instance associated with the component.
+ A string representation of the route template.
+ An used for resolving inline constraints.
+
+
+
+ Constructs a new instance.
+
+ An instance associated with the component.
+ A string representation of the route template.
+ The default values for parameters in the route.
+ The constraints for the route.
+ The data tokens for the route.
+ An used for resolving inline constraints.
+
+
+
+ Constructs a new instance.
+
+ An instance associated with the component.
+ The name of the route.
+ A string representation of the route template.
+ The default values for parameters in the route.
+ The constraints for the route.
+ The data tokens for the route.
+ An used for resolving inline constraints.
+
+
+
+ Gets a string representation of the route template.
+
+
+
+
+
+
+
+
+
+
+ Base class implementation of an .
+
+
+
+
+ Creates a new instance.
+
+ The route template.
+ The name of the route.
+ An used for resolving inline constraints.
+ The default values for parameters in the route.
+ The constraints for the route.
+ The data tokens for the route.
+
+
+
+ Gets the set of constraints associated with each route.
+
+
+
+
+ Gets the resolver used for resolving inline constraints.
+
+
+
+
+ Gets the data tokens associated with the route.
+
+
+
+
+ Gets the default values for each route parameter.
+
+
+
+
+
+
+
+ Gets the associated with the route.
+
+
+
+
+ Executes asynchronously whenever routing occurs.
+
+ A instance.
+
+
+
+ Executes whenever a virtual path is derived from a .
+
+ A instance.
+ A instance.
+
+
+
+
+
+
+
+
+
+ Extracts constatins from a given .
+
+ An used for resolving inline constraints.
+ A instance.
+ A collection of constraints on the route template.
+
+
+
+ Gets the default values for parameters in a templates.
+
+ A instance.
+ A collection of defaults for each parameter.
+
+
+
+
+
+
+ Provides support for specifying routes in an application.
+
+
+
+
+ Constructs a new instance given an .
+
+ An instance.
+
+
+
+ Constructs a new instance given an
+ and .
+
+ An instance.
+ The default used if a new route is added without a handler.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Supports managing a collection for multiple routes.
+
+
+
+
+ Gets the route at a given index.
+
+ The route at the given index.
+
+
+
+ Gets the total number of routes registered in the collection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A builder for produding a mapping of keys to see .
+
+
+ allows iterative building a set of route constraints, and will
+ merge multiple entries for the same key.
+
+
+
+
+ Creates a new instance of instance.
+
+ The .
+ The display name (for use in error messages).
+
+
+
+ Builds a mapping of constraints.
+
+ An of the constraints.
+
+
+
+ Adds a constraint instance for the given key.
+
+ The key.
+
+ The constraint instance. Must either be a string or an instance of .
+
+
+ If the is a string, it will be converted to a .
+
+ For example, the string Product[0-9]+ will be converted to the regular expression
+ ^(Product[0-9]+). See for more details.
+
+
+
+
+ Adds a constraint for the given key, resolved by the .
+
+ The key.
+ The text to be resolved by .
+
+ The can create instances
+ based on . See to register
+ custom constraint types.
+
+
+
+
+ Sets the given key as optional.
+
+ The key.
+
+
+
+ Use to evaluate if all route parameter values match their constraints.
+
+
+
+
+ Determines if match the provided .
+
+ The constraints for the route.
+ The route parameter values extracted from the matched route.
+ The associated with the current request.
+ The router that this constraint belongs to.
+
+ Indicates whether the constraint check is performed
+ when the incoming request is handled or when a URL is generated.
+
+ The .
+ if the all route values match their constraints.
+
+
+
+ The exception that is thrown for invalid routes or constraints.
+
+
+
+
+ Initializes a new instance of the class with a specified error message.
+
+ The message that describes the error.
+
+
+
+ Initializes a new instance of the class with a specified error message
+ and a reference to the inner exception that is the cause of this exception.
+
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception.
+
+
+
+ Represents an that can be used in URL matching or URL generation.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The delegate used to process requests for the endpoint.
+ The to use in URL matching.
+ The order assigned to the endpoint.
+
+ The or metadata associated with the endpoint.
+
+ The informational display name of the endpoint.
+
+
+
+ Gets the order value of endpoint.
+
+
+ The order value provides absolute control over the priority
+ of an endpoint. Endpoints with a lower numeric value of order have higher priority.
+
+
+
+
+ Gets the associated with the endpoint.
+
+
+
+
+ Supports building a new .
+
+
+
+
+ Gets or sets the associated with this endpoint.
+
+
+
+
+ Gets or sets the order assigned to the endpoint.
+
+
+
+
+ Constructs a new instance.
+
+ The delegate used to process requests for the endpoint.
+ The to use in URL matching.
+ The order assigned to the endpoint.
+
+
+
+
+
+
+ A builder for defining groups of endpoints with a common prefix that implements both the
+ and interfaces. This can be used to add endpoints with the prefix defined by
+
+ and to customize those endpoints using conventions.
+
+
+
+
+ Represents the information accessible to .
+
+
+
+
+ Gets the which should prefix the of all instances
+ returned by the call to . This accounts for nested groups and gives the full group prefix
+ not just the prefix supplied to the innermost call to .
+
+
+
+
+ Gets all conventions added to ancestor instances returned from
+ via . These should be applied in order when building every
+ returned from .
+
+
+
+
+ Gets all conventions added to ancestor instances returned from
+ via . These should be applied in LIFO order when building every
+ returned from .
+
+
+
+
+ Gets the instance used to access application services.
+
+
+
+
+ Supports implementing a handler that executes for a given route.
+
+
+
+
+ Constructs a new instance.
+
+ The delegate used to process requests.
+
+
+
+
+
+
+
+
+
+
+
+
+ Options for controlling the behavior of
+ and similar methods.
+
+
+
+
+ Controls whether endpoints should throw a in addition to
+ writing a log when handling invalid requests.
+
+
+ Defaults to .
+
+
+
+
+ Metadata used during link generation to find the associated endpoint using route name.
+
+
+
+
+ Creates a new instance of with the provided route name.
+
+ The route name. Can be .
+
+
+
+ Gets the route name. Can be .
+
+
+
+
+
+
+
+ Represents the configurable options on a route.
+
+
+
+
+ Gets a collection of instances configured with routing.
+
+
+
+
+ Gets or sets a value indicating whether all generated paths URLs are lowercase.
+ Use to configure the behavior for query strings.
+
+
+
+
+ Gets or sets a value indicating whether a generated query strings are lowercase.
+ This property will not be used unless is also true.
+
+
+
+
+ Gets or sets a value indicating whether a trailing slash should be appended to the generated URLs.
+
+
+
+
+ Gets or sets a value that indicates if the check for unhandled security endpoint metadata is suppressed.
+
+ Endpoints can be associated with metadata such as authorization, or CORS, that needs to be
+ handled by a specific middleware to be actionable. If the middleware is not configured, such
+ metadata will go unhandled.
+
+
+ When , prior to the execution of the endpoint, routing will verify that
+ all known security-specific metadata has been handled.
+ Setting this property to suppresses this check.
+
+
+ Defaults to .
+
+ This check exists as a safeguard against accidental insecure configuration. You may suppress
+ this check if it does not match your application's requirements.
+
+
+
+
+ Gets or sets a collection of constraints on the current route.
+
+
+
+
+ ensures that types are added to the constraint map in a trimmer safe way.
+ This API allows reading the map without encountering a trimmer warning within the framework.
+
+
+
+
+ Adds or overwrites the parameter policy with the associated route pattern token.
+
+ The parameter policy type.
+ The route token used to apply the parameter policy.
+
+
+
+ Adds or overwrites the parameter policy with the associated route pattern token.
+
+ The route token used to apply the parameter policy.
+ The parameter policy type.
+ Throws an exception if the type is not an .
+
+
+
+ An implementation that compares objects as-if
+ they were route value strings.
+
+
+ Values that are are not strings are converted to strings using
+ Convert.ToString(x, CultureInfo.InvariantCulture). null values are converted
+ to the empty string.
+
+ strings are compared using .
+
+
+
+
+ A default instance of the .
+
+
+
+
+
+
+
+
+
+
+ An address of route name and values.
+
+
+
+
+ Gets or sets the route name.
+
+
+
+
+ Gets or sets the route values that are explicitly specified.
+
+
+
+
+ Gets or sets ambient route values from the current HTTP request.
+
+
+
+
+
+
+
+ A feature for routing functionality.
+
+
+
+
+
+
+
+ A marker class used to determine if all the routing services were added
+ to the before routing is configured.
+
+
+
+
+ Provides extension methods for to add short circuited endpoints.
+
+
+
+
+ Adds a to the that matches HTTP requests (all verbs)
+ for the specified prefixes.
+
+ The to add the route to.
+ The status code to set in the response.
+ An array of route prefixes to be short circuited.
+ A that can be used to further customize the endpoint.
+
+
+
+ Represents metadata used during link generation. If is true
+ the associated endpoint will not be used for link generation.
+
+
+
+
+ Gets a value indicating whether the assocated endpoint should be used for link generation.
+
+
+
+
+
+
+
+ Metadata used to prevent URL matching. If is true the
+ associated endpoint will not be considered for URL matching.
+
+
+
+
+ Gets a value indicating whether the associated endpoint should be used for URL matching.
+
+
+
+
+
+
+
+ The parsed representation of an inline constraint in a route parameter.
+
+
+
+
+ Creates a new instance of .
+
+ The constraint text.
+
+
+
+ Creates a new instance given a .
+
+ A instance.
+
+
+
+ Gets the constraint text.
+
+
+
+
+ Computes precedence for a route template.
+
+
+
+
+ Compute the precedence for matching a provided url
+
+
+ e.g.: /api/template == 1.1
+ /api/template/{id} == 1.13
+ /api/{id:int} == 1.2
+ /api/template/{id:int} == 1.12
+
+ The to compute precedence for.
+ A representing the route's precedence.
+
+
+
+ Compute the precedence for generating a url.
+
+
+ e.g.: /api/template == 5.5
+ /api/template/{id} == 5.53
+ /api/{id:int} == 5.4
+ /api/template/{id:int} == 5.54
+
+ The to compute precedence for.
+ A representing the route's precedence.
+
+
+
+ Represents the template for a route.
+
+
+
+
+ Constructs a new instance given .
+
+ A instance.
+
+
+
+ Constructs a a new instance given the string
+ and a list of . Computes the parameters in the route template.
+
+ A string representation of the route template.
+ A list of .
+
+
+
+ Gets the string representation of the route template.
+
+
+
+
+ Gets the list of that represent that parameters defined in the route template.
+
+
+
+
+ Gets the list of that compromise the route template.
+
+
+
+
+ Gets the at a given index.
+
+ The index of the element to retrieve.
+ A instance.
+
+
+
+ Gets the parameter matching the given name.
+
+ The name of the parameter to match.
+ The matching parameter or null if no parameter matches the given name.
+
+
+
+ Converts the to the equivalent
+
+
+ A .
+
+
+
+ Supports processing and binding parameter values in a route template.
+
+
+
+
+ Creates a new instance of .
+
+ The .
+ The .
+ The to bind values to.
+ The default values for .
+
+
+
+ Creates a new instance of .
+
+ The .
+ The .
+ The to bind values to.
+ The default values for . Optional.
+ Keys used to determine if the ambient values apply. Optional.
+
+ A list of (, ) pairs to evaluate when producing a URI.
+
+
+
+
+ Generates the parameter values in the route.
+
+ The values associated with the current request.
+ The route values to process.
+ A instance. Can be null.
+
+
+
+ Processes the constraints **if** they were passed in to the TemplateBinder constructor.
+
+ The associated with the current request.
+ A dictionary that contains the parameters for the route.
+ The name of the parameter.
+ The constraint object.
+ if constraints were processed succesfully and false otherwise.
+
+
+
+ Returns a string representation of the URI associated with the route.
+
+ A dictionary that contains the parameters for the route.
+ The string representation of the route.
+
+
+
+ Compares two objects for equality as parts of a case-insensitive path.
+
+ An object to compare.
+ An object to compare.
+ True if the object are equal, otherwise false.
+
+
+
+ A factory used to create instances.
+
+
+
+
+ Creates a new from the provided and
+ .
+
+ The route template.
+ A collection of extra default values that do not appear in the route template.
+ A .
+
+
+
+ Creates a new from the provided .
+
+ The .
+ A .
+
+
+
+ Supports matching paths to route templates and extracting parameter values.
+
+
+
+
+ Creates a new instance given a and .
+
+ The to compare against.
+ The default values for parameters in the .
+
+
+
+ Gets the default values for parameters in the .
+
+
+
+
+ Gets the to match against.
+
+
+
+
+ Evaluates if the provided matches the . Populates
+ with parameter values.
+
+ A representing the route to match.
+ A to populate with parameter values.
+ if matches .
+
+
+
+ Provides methods for parsing route template strings.
+
+
+
+
+ Creates a for a given string.
+
+ A string representation of the route template.
+ A instance.
+
+
+
+ Represents a part of a route template segment.
+
+
+
+
+ Constructs a new instance.
+
+
+
+
+ Constructs a new instance given a .
+
+ A instance representing the route part.
+
+
+
+ Create a representing a literal route part.
+
+ The text of the literate route part.
+ A instance.
+
+
+
+ Creates a representing a parameter part.
+
+ The name of the parameter.
+ if the parameter is a catch-all parameter.
+ if the parameter is an optional parameter.
+ The default value of the parameter.
+ A collection of constraints associated with the parameter.
+ A instance.
+
+
+
+ if the route part is is a catch-all part (e.g. /*).
+
+
+
+
+ if the route part is represents a literal value.
+
+
+
+
+ if the route part represents a parameterized value.
+
+
+
+
+ if the route part represents an optional part.
+
+
+
+
+ if the route part represents an optional seperator.
+
+
+
+
+ The name of the route parameter. Can be null.
+
+
+
+
+ The textual representation of the route parameter. Can be null. Used to represent route seperators and literal parts.
+
+
+
+
+ The default value for route parameters. Can be null.
+
+
+
+
+ The constraints associates with a route parameter.
+
+
+
+
+ Creates a for the route part designated by the .
+
+ A instance.
+
+
+
+ Represents a segment of a route template.
+
+
+
+
+ Constructs a new instance.
+
+
+
+
+ Constructs a new instance given another .
+
+ A instance.
+
+
+
+ if the segment contains a single entry.
+
+
+
+
+ Gets the list of individual parts in the template segment.
+
+
+
+
+ Returns a for the template segment.
+
+ A instance.
+
+
+
+ The values used as inputs for constraints and link generation.
+
+
+
+
+ The set of values that will appear in the URL.
+
+
+
+
+ The set of values that that were supplied for URL generation.
+
+
+ This combines implicit (ambient) values from the of the current request
+ (if applicable), explictly provided values, and default values for parameters that appear in
+ the route template.
+
+ Implicit (ambient) values which are invalidated due to changes in values lexically earlier in the
+ route template are excluded from this set.
+
+
+
+
+ A candidate route to match incoming URLs in a .
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Used to build an . Represents a URL template tha will be used to match incoming
+ request URLs.
+
+
+
+
+ Gets or sets the route constraints.
+
+
+
+
+ Gets or sets the route defaults.
+
+
+
+
+ Gets or sets the to invoke when this entry matches.
+
+
+
+
+ Gets or sets the order of the entry.
+
+
+ Entries are ordered first by (ascending) then by (descending).
+
+
+
+
+ Gets or sets the precedence of the entry.
+
+
+ Entries are ordered first by (ascending) then by (descending).
+
+
+
+
+ Gets or sets the name of the route.
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ A candidate match for link generation in a .
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Used to build a . Represents a URL template that will be used to generate
+ outgoing URLs.
+
+
+
+
+ Gets or sets the route constraints.
+
+
+
+
+ Gets or sets the route defaults.
+
+
+
+
+ The to invoke when this entry matches.
+
+
+
+
+ Gets or sets the order of the entry.
+
+
+ Entries are ordered first by (ascending) then by (descending).
+
+
+
+
+ Gets or sets the precedence of the template for link generation. A greater value of
+ means that an entry is considered first.
+
+
+ Entries are ordered first by (ascending) then by (descending).
+
+
+
+
+ Gets or sets the name of the route.
+
+
+
+
+ Gets or sets the set of values that must be present for link genration.
+
+
+
+
+ Gets or sets the .
+
+
+
+
+ Gets or sets the data that is associated with this entry.
+
+
+
+
+ Builder for instances.
+
+
+
+
+ Initializes a new instance of .
+
+ The .
+ The .
+ The .
+
+
+
+ Adds a new inbound route to the .
+
+ The for handling the route.
+ The of the route.
+ The route name.
+ The route order.
+ The .
+
+
+
+ Adds a new outbound route to the .
+
+ The for handling the link generation.
+ The of the route.
+ The containing the route values.
+ The route name.
+ The route order.
+ The .
+
+
+
+ Gets the list of .
+
+
+
+
+ Gets the list of .
+
+
+
+
+ Builds a with the
+ and defined in this .
+
+ The .
+
+
+
+ Builds a with the
+ and defined in this .
+
+ The version of the .
+ The .
+
+
+
+ Removes all and from this
+ .
+
+
+
+
+ An implementation for attribute routing.
+
+
+
+
+ Key used by routing and action selection to match an attribute
+ route entry to a group of action descriptors.
+
+
+
+
+ Creates a new instance of .
+
+ The list of that contains the route entries.
+ The set of .
+ The .
+ The .
+ The instance.
+ The instance used
+ in .
+ The version of this route.
+
+
+
+ Gets the version of this route.
+
+
+
+
+
+
+
+
+
+
+ A node in a .
+
+
+
+
+ Initializes a new instance of .
+
+ The length of the path to this node in the .
+
+
+
+ Gets the length of the path to this node in the .
+
+
+
+
+ Gets or sets a value indicating whether this node represents a catch all segment.
+
+
+
+
+ Gets the list of matching route entries associated with this node.
+
+
+ These entries are sorted by precedence then template.
+
+
+
+
+ Gets the literal segments following this segment.
+
+
+
+
+ Gets or sets the representing
+ parameter segments with constraints following this segment in the .
+
+
+
+
+ Gets or sets the representing
+ parameter segments following this segment in the .
+
+
+
+
+ Gets or sets the representing
+ catch all parameter segments with constraints following this segment in the .
+
+
+
+
+ Gets or sets the representing
+ catch all parameter segments following this segment in the .
+
+
+
+
+ A tree part of a .
+
+
+
+
+ Initializes a new instance of .
+
+ The order associated with routes in this .
+
+
+
+ Gets the order of the routes associated with this .
+
+
+
+
+ Gets the root of the .
+
+
+
+ Value must be greater than or equal to {0}.
+
+
+ Value must be greater than or equal to {0}.
+
+
+ The value for argument '{0}' should be less than or equal to the value for the argument '{1}'.
+
+
+ The value for argument '{0}' should be less than or equal to the value for the argument '{1}'.
+
+
+ The '{0}' property of '{1}' must not be null.
+
+
+ The '{0}' property of '{1}' must not be null.
+
+
+ The supplied route name '{0}' is ambiguous and matched more than one route.
+
+
+ The supplied route name '{0}' is ambiguous and matched more than one route.
+
+
+ A default handler must be set on the {0}.
+
+
+ A default handler must be set on the {0}.
+
+
+ The constructor to use for activating the constraint type '{0}' is ambiguous. Multiple constructors were found with the following number of parameters: {1}.
+
+
+ The constructor to use for activating the constraint type '{0}' is ambiguous. Multiple constructors were found with the following number of parameters: {1}.
+
+
+ Could not find a constructor for constraint type '{0}' with the following number of parameters: {1}.
+
+
+ Could not find a constructor for constraint type '{0}' with the following number of parameters: {1}.
+
+
+ The constraint type '{0}' which is mapped to constraint key '{1}' must implement the '{2}' interface.
+
+
+ The constraint type '{0}' which is mapped to constraint key '{1}' must implement the '{2}' interface.
+
+
+ A path segment that contains more than one section, such as a literal section or a parameter, cannot contain a catch-all parameter.
+
+
+ The route parameter '{0}' has both an inline default value and an explicit default value specified. A route parameter cannot contain an inline default value when a default value is specified explicitly. Consider removing one of them.
+
+
+ The route parameter '{0}' has both an inline default value and an explicit default value specified. A route parameter cannot contain an inline default value when a default value is specified explicitly. Consider removing one of them.
+
+
+ A path segment cannot contain two consecutive parameters. They must be separated by a '/' or by a literal string.
+
+
+ The route template separator character '/' cannot appear consecutively. It must be separated by either a parameter or a literal value.
+
+
+ A catch-all parameter cannot be marked optional.
+
+
+ An optional parameter cannot have default value.
+
+
+ A catch-all parameter can only appear as the last segment of the route template.
+
+
+ The literal section '{0}' is invalid. Literal sections cannot contain the '?' character.
+
+
+ The literal section '{0}' is invalid. Literal sections cannot contain the '?' character.
+
+
+ The route parameter name '{0}' is invalid. Route parameter names must be non-empty and cannot contain these characters: '{{', '}}', '/'. The '?' character marks a parameter as optional, and can occur only at the end of the parameter. The '*' character mark ...
+
+
+ The route parameter name '{0}' is invalid. Route parameter names must be non-empty and cannot contain these characters: '{{', '}}', '/'. The '?' character marks a parameter as optional, and can occur only at the end of the parameter. The '*' character mark ...
+
+
+ The route template cannot start with a '~' character unless followed by a '/'.
+
+
+ There is an incomplete parameter in the route template. Check that each '{' character has a matching '}' character.
+
+
+ The route parameter name '{0}' appears more than one time in the route template.
+
+
+ The route parameter name '{0}' appears more than one time in the route template.
+
+
+ The constraint entry '{0}' - '{1}' on the route '{2}' must have a string value or be of a type which implements '{3}'.
+
+
+ The constraint entry '{0}' - '{1}' on the route '{2}' must have a string value or be of a type which implements '{3}'.
+
+
+ The constraint entry '{0}' - '{1}' on the route '{2}' could not be resolved by the constraint resolver of type '{3}'.
+
+
+ The constraint entry '{0}' - '{1}' on the route '{2}' could not be resolved by the constraint resolver of type '{3}'.
+
+
+ In a route parameter, '{' and '}' must be escaped with '{{' and '}}'.
+
+
+ In the segment '{0}', the optional parameter '{1}' is preceded by an invalid segment '{2}'. Only a period (.) can precede an optional parameter.
+
+
+ In the segment '{0}', the optional parameter '{1}' is preceded by an invalid segment '{2}'. Only a period (.) can precede an optional parameter.
+
+
+ An optional parameter must be at the end of the segment. In the segment '{0}', optional parameter '{1}' is followed by '{2}'.
+
+
+ An optional parameter must be at the end of the segment. In the segment '{0}', optional parameter '{1}' is followed by '{2}'.
+
+
+ Two or more routes named '{0}' have different templates.
+
+
+ Two or more routes named '{0}' have different templates.
+
+
+ Unable to find the required services. Please add all the required services by calling '{0}.{1}' inside the call to '{2}' in the application startup code.
+
+
+ Unable to find the required services. Please add all the required services by calling '{0}.{1}' inside the call to '{2}' in the application startup code.
+
+
+ An error occurred while creating the route with name '{0}' and template '{1}'.
+
+
+ An error occurred while creating the route with name '{0}' and template '{1}'.
+
+
+ The request matched multiple endpoints. Matches: {0}{0}{1}
+
+
+ The request matched multiple endpoints. Matches: {0}{0}{1}
+
+
+ Value cannot be null or empty.
+
+
+ The collection cannot be empty.
+
+
+ The constraint entry '{0}' - '{1}' must have a string value or be of a type which implements '{2}'.
+
+
+ The constraint entry '{0}' - '{1}' must have a string value or be of a type which implements '{2}'.
+
+
+ Invalid constraint '{0}'. A constraint must be of type 'string' or '{1}'.
+
+
+ Invalid constraint '{0}'. A constraint must be of type 'string' or '{1}'.
+
+
+ Invalid constraint '{0}' for parameter '{1}'. A constraint must be of type 'string', '{2}', or '{3}'.
+
+
+ Invalid constraint '{0}' for parameter '{1}'. A constraint must be of type 'string', '{2}', or '{3}'.
+
+
+ The constraint reference '{0}' could not be resolved to a type. Register the constraint type with '{1}.{2}'.
+
+
+ The constraint reference '{0}' could not be resolved to a type. Register the constraint type with '{1}.{2}'.
+
+
+ Invalid constraint type '{0}' registered as '{1}'. A constraint type must either implement '{2}', or inherit from '{3}'.
+
+
+ Invalid constraint type '{0}' registered as '{1}'. A constraint type must either implement '{2}', or inherit from '{3}'.
+
+
+ Endpoints with endpoint name '{0}':
+
+
+ Endpoints with endpoint name '{0}':
+
+
+ The following endpoints with a duplicate endpoint name were found.
+
+
+ No media type found for format '{0}'.
+
+
+ No media type found for format '{0}'.
+
+
+ MapGroup does not support mutating RouteEndpointBuilder.RoutePattern from '{0}' to '{1}' via conventions.
+
+
+ MapGroup does not support mutating RouteEndpointBuilder.RoutePattern from '{0}' to '{1}' via conventions.
+
+
+ MapGroup does not support custom Endpoint type '{0}'. Only RouteEndpoints can be grouped.
+
+
+ MapGroup does not support custom Endpoint type '{0}'. Only RouteEndpoints can be grouped.
+
+
+ MapGroup cannot build a pattern for '{0}' because the 'RoutePattern.{1}' dictionary key '{2}' has multiple values.
+
+
+ MapGroup cannot build a pattern for '{0}' because the 'RoutePattern.{1}' dictionary key '{2}' has multiple values.
+
+
+ Conventions cannot be added after building the endpoint.
+
+
+ This RequestDelegate cannot be called before the final endpoint is built.
+
+
+ A route parameter uses the regex constraint, which isn't registered. If this application was configured using CreateSlimBuilder(...) or AddRoutingCore(...) then this constraint is not registered by default. To use the regex constraint, configure route opti ...
+
+
+
+ Extension methods for adding to a route handler.
+
+
+
+
+ Registers a filter onto the route handler.
+
+ The .
+ The to register.
+ A that can be used to further customize the route handler.
+
+
+
+ Registers a filter of type onto the route handler.
+
+ The type of the to configure.
+ The type of the to register.
+ The .
+ A that can be used to further customize the route handler.
+
+
+
+ Registers a filter of type onto the route handler.
+
+ The type of the to register.
+ The .
+ A that can be used to further customize the route handler.
+
+
+
+ Registers a filter of type onto the route handler.
+
+ The type of the to register.
+ The .
+ A that can be used to further customize the route handler.
+
+
+
+ Registers a filter given a delegate onto the route handler.
+
+ The .
+ A method representing the core logic of the filter.
+ A that can be used to further customize the route handler.
+
+
+
+ Register a filter given a delegate representing the filter factory.
+
+ The .
+ A method representing the logic for constructing the filter.
+ A that can be used to further customize the route handler.
+
+
+
+ Extension methods for adding that is
+ meant to be consumed by OpenAPI libraries.
+
+
+
+
+ Adds the to for all endpoints
+ produced by .
+
+ The .
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds the to for all endpoints
+ produced by .
+
+ The .
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds an to for all endpoints
+ produced by .
+
+ The type of the response.
+ The .
+ The response status code. Defaults to .
+ The response content type. Defaults to "application/json".
+ Additional response content types the endpoint produces for the supplied status code.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds an to for all endpoints
+ produced by .
+
+ The .
+ The response status code.
+ The type of the response. Defaults to null.
+ The response content type. Defaults to "application/json" if responseType is not null, otherwise defaults to null.
+ Additional response content types the endpoint produces for the supplied status code.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds an with a type
+ to for all endpoints produced by .
+
+ The .
+ The response status code.
+ The response content type. Defaults to "application/problem+json".
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds an with a type
+ to for all endpoints produced by .
+
+ The .
+ The response status code. Defaults to .
+ The response content type. Defaults to "application/problem+json".
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds the to for all endpoints
+ produced by .
+
+
+ The OpenAPI specification supports a tags classification to categorize operations
+ into related groups. These tags are typically included in the generated specification
+ and are typically used to group operations by tags in the UI.
+
+ The .
+ A collection of tags to be associated with the endpoint.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds the to for all endpoints
+ produced by .
+
+
+ The OpenAPI specification supports a tags classification to categorize operations
+ into related groups. These tags are typically included in the generated specification
+ and are typically used to group operations by tags in the UI.
+
+ The .
+ A collection of tags to be associated with the endpoint.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds to for all endpoints
+ produced by .
+
+ The type of the request body.
+ The .
+ The request content type that the endpoint accepts.
+ The list of additional request content types that the endpoint accepts.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds to for all endpoints
+ produced by .
+
+ The type of the request body.
+ The .
+ Sets a value that determines if the request body is optional.
+ The request content type that the endpoint accepts.
+ The list of additional request content types that the endpoint accepts.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds to for all endpoints
+ produced by .
+
+ The .
+ The type of the request body.
+ The request content type that the endpoint accepts.
+ The list of additional request content types that the endpoint accepts.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds to for all endpoints
+ produced by .
+
+ The .
+ The type of the request body.
+ Sets a value that determines if the request body is optional.
+ The request content type that the endpoint accepts.
+ The list of additional request content types that the endpoint accepts.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds to for all endpoints
+ produced by .
+
+ The .
+ A string representing a detailed description of the endpoint.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds to for all endpoints
+ produced by .
+
+ The .
+ A string representing a brief description of the endpoint.
+ A that can be used to further customize the endpoint.
+
+
+
+ A media type value.
+
+
+
+
+ Initializes a instance.
+
+ The with the media type.
+
+
+
+ Initializes a instance.
+
+ The with the media type.
+
+
+
+ Initializes a instance.
+
+ The with the media type.
+ The offset in the where the parsing starts.
+ The length of the media type to parse if provided.
+
+
+
+ Gets the type of the .
+
+
+ For the media type "application/json", this property gives the value "application".
+
+
+
+
+ Gets whether this matches all types.
+
+
+
+
+ Gets the subtype of the .
+
+
+ For the media type "application/vnd.example+json", this property gives the value
+ "vnd.example+json".
+
+
+
+
+ Gets the subtype of the , excluding any structured syntax suffix.
+
+
+ For the media type "application/vnd.example+json", this property gives the value
+ "vnd.example".
+
+
+
+
+ Gets the structured syntax suffix of the if it has one.
+
+
+ For the media type "application/vnd.example+json", this property gives the value
+ "json".
+
+
+
+
+ Gets whether this matches all subtypes.
+
+
+ For the media type "application/*", this property is true.
+
+
+ For the media type "application/json", this property is false.
+
+
+
+
+ Gets whether this matches all subtypes, ignoring any structured syntax suffix.
+
+
+ For the media type "application/*+json", this property is true.
+
+
+ For the media type "application/vnd.example+json", this property is false.
+
+
+
+
+ Gets the of the if it has one.
+
+
+
+
+ Gets the charset parameter of the if it has one.
+
+
+
+
+ Determines whether the current contains a wildcard.
+
+
+ true if this contains a wildcard; otherwise false.
+
+
+
+
+ Determines whether the current is a subset of the
+ .
+
+ The set .
+
+ true if this is a subset of ; otherwise false.
+
+
+
+
+ Gets the parameter of the media type.
+
+ The name of the parameter to retrieve.
+
+ The for the given if found; otherwise
+ null.
+
+
+
+
+ Gets the parameter of the media type.
+
+ The name of the parameter to retrieve.
+
+ The for the given if found; otherwise
+ null.
+
+
+
+
+ Gets the last parameter of the media type.
+
+ The name of the parameter to retrieve.
+ The value for the last parameter
+
+ if parsing succeeded.
+
+
+
+
+ Get an encoding for a mediaType.
+
+ The mediaType.
+ The encoding.
+
+
+
+ Get an encoding for a mediaType.
+
+ The mediaType.
+ The encoding.
+
+
+
+ Provides extension methods for to add endpoints.
+
+
+
+
+ Creates a for defining endpoints all prefixed with the specified .
+
+ The to add the group to.
+ The pattern that prefixes all routes in this group.
+
+ A that is both an and an .
+ The same builder can be used to add endpoints with the given , and to customize those endpoints using conventions.
+
+
+
+
+ Creates a for defining endpoints all prefixed with the specified .
+
+ The to add the group to.
+ The pattern that prefixes all routes in this group.
+
+ A that is both an and an .
+ The same builder can be used to add endpoints with the given , and to customize those endpoints using conventions.
+
+
+
+
+ Adds a to the that matches HTTP GET requests
+ for the specified pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP POST requests
+ for the specified pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP PUT requests
+ for the specified pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP DELETE requests
+ for the specified pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP PATCH requests
+ for the specified pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP requests
+ for the specified HTTP methods and pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ HTTP methods that the endpoint will match.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP requests
+ for the specified pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP requests
+ for the specified pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP GET requests
+ for the specified pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP POST requests
+ for the specified pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP PUT requests
+ for the specified pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP DELETE requests
+ for the specified pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP PATCH requests
+ for the specified pattern.
+
+ The to add the route to.
+ The route pattern.
+ The executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP requests
+ for the specified HTTP methods and pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ HTTP methods that the endpoint will match.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP requests
+ for the specified pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a to the that matches HTTP requests
+ for the specified pattern.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+
+ Adds a specialized to the that will match
+ requests for non-file-names with the lowest possible priority.
+
+ The to add the route to.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+ is intended to handle cases where URL path of
+ the request does not contain a file name, and no other endpoint has matched. This is convenient for routing
+ requests for dynamic content to a SPA framework, while also allowing requests for non-existent files to
+ result in an HTTP 404.
+
+
+ registers an endpoint using the pattern
+ {*path:nonfile}. The order of the registered endpoint will be int.MaxValue.
+
+
+
+
+
+ Adds a specialized to the that will match
+ the provided pattern with the lowest possible priority.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+ is intended to handle cases where no
+ other endpoint has matched. This is convenient for routing requests to a SPA framework.
+
+
+ The order of the registered endpoint will be int.MaxValue.
+
+
+ This overload will use the provided verbatim. Use the :nonfile route constraint
+ to exclude requests for static files.
+
+
+
+
+
+ Contains extensions for configuring routing on an .
+
+
+
+
+ Adds a middleware to the specified .
+
+ The to add the middleware to.
+ A reference to this instance after the operation has completed.
+
+
+ A call to must be followed by a call to
+ for the same
+ instance.
+
+
+ The defines a point in the middleware pipeline where routing decisions are
+ made, and an is associated with the . The
+ defines a point in the middleware pipeline where the current is executed. Middleware between
+ the and may observe or change the
+ associated with the .
+
+
+
+
+
+ Adds a middleware to the specified
+ with the instances built from configured .
+ The will execute the associated with the current
+ request.
+
+ The to add the middleware to.
+ An to configure the provided .
+ A reference to this instance after the operation has completed.
+
+
+ A call to must be preceded by a call to
+ for the same
+ instance.
+
+
+ The defines a point in the middleware pipeline where routing decisions are
+ made, and an is associated with the . The
+ defines a point in the middleware pipeline where the current is executed. Middleware between
+ the and may observe or change the
+ associated with the .
+
+
+
+
+
+ Contains extension methods for .
+
+
+
+
+ The default route pattern used by fallback routing. {*path:nonfile}
+
+
+
+
+ Adds a specialized to the that will match
+ requests for non-file-names with the lowest possible priority.
+
+ The to add the route to.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+ is intended to handle cases where URL path of
+ the request does not contain a file name, and no other endpoint has matched. This is convenient for routing
+ requests for dynamic content to a SPA framework, while also allowing requests for non-existent files to
+ result in an HTTP 404.
+
+
+ registers an endpoint using the pattern
+ {*path:nonfile}. The order of the registered endpoint will be int.MaxValue.
+
+
+
+
+
+ Adds a specialized to the that will match
+ the provided pattern with the lowest possible priority.
+
+ The to add the route to.
+ The route pattern.
+ The delegate executed when the endpoint is matched.
+ A that can be used to further customize the endpoint.
+
+
+ is intended to handle cases where no
+ other endpoint has matched. This is convenient for routing requests to a SPA framework.
+
+
+ The order of the registered endpoint will be int.MaxValue.
+
+
+ This overload will use the provided verbatim. Use the :nonfile route constraint
+ to exclude requests for static files.
+
+
+
+
+
+ Builds conventions that will be used for customization of MapAction instances.
+
+
+
+
+ Instantiates a new given multiple
+ instances.
+
+ A sequence of instances.
+
+
+
+ Adds the specified convention to the builder. Conventions are used to customize instances.
+
+ The convention to add to the builder.
+
+
+
+
+
+
+ Extension methods for adding the middleware to an .
+
+
+
+
+ Adds a middleware to the specified with the specified .
+
+ The to add the middleware to.
+ The to use for routing requests.
+ A reference to this instance after the operation has completed.
+
+
+
+ Adds a middleware to the specified
+ with the built from configured .
+
+ The to add the middleware to.
+ An to configure the provided .
+ A reference to this instance after the operation has completed.
+
+
+
+ Extension methods for adding routing metadata to endpoint instances using .
+
+
+
+
+ Requires that endpoints match one of the specified hosts during routing.
+
+ The to add the metadata to.
+
+ The hosts used during routing.
+ Hosts should be Unicode rather than punycode, and may have a port.
+ An empty collection means any host will be accepted.
+
+ A reference to this instance after the operation has completed.
+
+
+
+ Sets the to the provided for all
+ builders created by .
+
+ The .
+ The display name.
+ The .
+
+
+
+ Sets the using the provided for all
+ builders created by .
+
+ The .
+ A delegate that produces the display name for each .
+ The .
+
+
+
+ Adds the provided metadata to for all builders
+ produced by .
+
+ The .
+ A collection of metadata items.
+ The .
+
+
+
+ Adds the to the Metadata collection for all endpoints produced
+ on the target given the .
+ The on the endpoint is used for link generation and
+ is treated as the operation ID in the given endpoint's OpenAPI specification.
+
+ The .
+ The endpoint name.
+ The .
+
+
+
+ Sets the for all endpoints produced
+ on the target given the .
+ The on the endpoint is used to set the endpoint's
+ GroupName in the OpenAPI specification.
+
+ The .
+ The endpoint group name.
+ The .
+
+
+
+ Sets the to the provided for all
+ builders created by .
+
+ The .
+ The order assigned to the endpoint.
+ The .
+
+
+
+ Disables anti-forgery token validation for all endpoints produced on
+ the target .
+
+ The .
+ The .
+
+
+
+ Configures for all endpoints produced
+ on the target .
+
+ The .
+ The maximum number of elements allowed in a form collection. Defaults to >.
+ The maximum depth allowed when recursively mapping form data. Defaults to 64.
+ The maximum size of the buffer used to read form data keys. Defaults to
+ The .
+
+
+
+ Configures for all endpoints produced
+ on the target .
+
+ The .
+ Enables full request body buffering. Defaults to false.
+ Configures how many bytes of the body will be buffered in memory. Defaults to 65,536 bytes, which is approximately 64KB.
+ Limit for the total number of bytes that will be buffered. Defaults to 128MB.
+ Limit for the number of form entries to allow. Defaults to .
+ Limit on the length of individual keys. Defaults to .
+ Limit on the length of individual form values. Defaults to .
+ Limit for the length of the boundary identifier. Defaults to 128 bytes.
+ Limit for the number of headers to allow in each multipart section. Defaults to .
+ Limit for the total length of the header keys and values in each multipart section. Defaults to .
+ Limit for the length of each multipart body. Defaults to 134,217,728 bytes, which is approximately 128MB.
+ The .
+
+
+
+ Provides extension methods for to add routes.
+
+
+
+
+ Adds a route to the with the specified name and template.
+
+ The to add the route to.
+ The name of the route.
+ The URL pattern of the route.
+ A reference to this instance after the operation has completed.
+
+
+
+ Adds a route to the with the specified name, template, and default values.
+
+ The to add the route to.
+ The name of the route.
+ The URL pattern of the route.
+
+ An object that contains default values for route parameters. The object's properties represent the names
+ and values of the default values.
+
+ A reference to this instance after the operation has completed.
+
+
+
+ Adds a route to the with the specified name, template, default values, and
+ constraints.
+
+ The to add the route to.
+ The name of the route.
+ The URL pattern of the route.
+
+ An object that contains default values for route parameters. The object's properties represent the names
+ and values of the default values.
+
+
+ An object that contains constraints for the route. The object's properties represent the names and values
+ of the constraints.
+
+ A reference to this instance after the operation has completed.
+
+
+
+ Adds a route to the with the specified name, template, default values, and
+ data tokens.
+
+ The to add the route to.
+ The name of the route.
+ The URL pattern of the route.
+
+ An object that contains default values for route parameters. The object's properties represent the names
+ and values of the default values.
+
+
+ An object that contains constraints for the route. The object's properties represent the names and values
+ of the constraints.
+
+
+ An object that contains data tokens for the route. The object's properties represent the names and values
+ of the data tokens.
+
+ A reference to this instance after the operation has completed.
+
+
+
+ Middleware responsible for routing.
+
+
+
+
+ Constructs a new instance with a given .
+
+ The delegate representing the remaining middleware in the request pipeline.
+ The .
+ The to use for routing requests.
+
+
+
+ Evaluates the handler associated with the
+ derived from .
+
+ A instance.
+
+
+
+ Short circuit extension methods for .
+
+
+
+
+ Short circuit the endpoint(s).
+ The execution of the endpoint will happen in UseRouting middleware instead of UseEndpoint.
+
+ The endpoint convention builder.
+ The status code to set in the response.
+ The original convention builder parameter.
+
+
+
+ Contains extension methods to .
+
+
+
+
+ Adds services required for routing requests.
+
+ The to add the services to.
+ The so that additional calls can be chained.
+
+
+
+ Adds services required for routing requests. This is similar to
+ except that it
+ excludes certain options that can be opted in separately, if needed.
+
+ The to add the services to.
+ The so that additional calls can be chained.
+
+
+
+ Adds services required for routing requests.
+
+ The to add the services to.
+ The routing options to configure the middleware with.
+ The so that additional calls can be chained.
+
+
+
+ Initializes a fast .
+ This constructor does not cache the helper. For caching, use .
+
+
+
+
+ Gets the backing .
+
+
+
+
+ Gets (or sets in derived types) the property name.
+
+
+
+
+ Gets the property value getter.
+
+
+
+
+ Gets the property value setter.
+
+
+
+
+ Returns the property value for the specified .
+
+ The object whose property value will be returned.
+ The property value.
+
+
+
+ Sets the property value for the specified .
+
+ The object whose property value will be set.
+ The property value.
+
+
+
+ Creates and caches fast property helpers that expose getters for every public get property on the
+ specified type.
+
+ The type to extract property accessors for.
+ A cached array of all public properties of the specified type.
+
+
+
+
+
+ Creates and caches fast property helpers that expose getters for every non-hidden get property
+ on the specified type.
+
+
+ excludes properties defined on base types that have been
+ hidden by definitions using the new keyword.
+
+
+ The type to extract property accessors for.
+
+ A cached array of all public properties of the specified type.
+
+
+
+
+ Creates a single fast property getter. The result is not cached.
+
+ propertyInfo to extract the getter for.
+ a fast getter.
+
+ This method is more memory efficient than a dynamically compiled lambda, and about the
+ same speed.
+
+
+
+
+ Creates a single fast property getter which is safe for a null input object. The result is not cached.
+
+ propertyInfo to extract the getter for.
+ a fast getter.
+
+ This method is more memory efficient than a dynamically compiled lambda, and about the
+ same speed.
+
+
+
+
+ Creates a single fast property setter for reference types. The result is not cached.
+
+ propertyInfo to extract the setter for.
+ a fast getter.
+
+ This method is more memory efficient than a dynamically compiled lambda, and about the
+ same speed. This only works for reference types.
+
+
+
+
+ Given an object, adds each instance property with a public get method as a key and its
+ associated value to a dictionary.
+
+ If the object is already an instance, then a copy
+ is returned.
+
+
+ The implementation of PropertyHelper will cache the property accessors per-type. This is
+ faster when the same type is used multiple times with ObjectToDictionary.
+
+
+
+
+
+ Creates and caches fast property helpers that expose getters for every non-hidden get property
+ on the specified type.
+
+
+ excludes properties defined on base types that have been
+ hidden by definitions using the new keyword.
+
+
+ The type to extract property accessors for.
+ The cache to store results in. Use to use the default cache. Use to avoid caching.
+ The cache to store results in. Use if the calling type does not have its own independent cache. Use to avoid caching.
+
+ A cached array of all public properties of the specified type.
+
+
+
+
+ Creates and caches fast property helpers that expose getters for every public get property on the
+ specified type.
+
+ The type to extract property accessors for.
+ The cache to store results in. Use to use the default cache. Use to avoid caching.
+ A cached array of all public properties of the specified type.
+
+
+
+
+ Invoked as part of contract for hot reload.
+
+
+
+
+ Checks to see if a given type is compiler generated.
+
+ The compiler will annotate either the target type or the declaring type
+ with the CompilerGenerated attribute. We walk up the declaring types until
+ we find a CompilerGenerated attribute or declare the type as not compiler
+ generated otherwise.
+
+
+ The type to evaluate.
+ if is compiler generated.
+
+
+
+ Checks to see if a given method is compiler generated.
+
+ The method to evaluate.
+ if is compiler generated.
+
+
+
+ Parses generated local function name out of a generated method name. This code is a stop-gap and exists to address the issues with extracting
+ original method names from generated local functions. See https://github.com/dotnet/roslyn/issues/55651 for more info.
+
+
+
+
+ Tries to get non-compiler-generated name of function. This parses generated local function names out of a generated method name if possible.
+
+
+
+ Custom -derived type for the GetAlphaRouteRegex method.
+
+
+ Cached, thread-safe singleton instance.
+
+
+ Initializes the instance.
+
+
+ Provides a factory for creating instances to be used by methods on .
+
+
+ Creates an instance of a used by methods on .
+
+
+ Provides the runner that contains the custom logic implementing the specified regular expression.
+
+
+ Scan the starting from base.runtextstart for the next match.
+ The text being scanned by the regular expression.
+
+
+ Search starting from base.runtextpos for the next location a match could possibly start.
+ The text being scanned by the regular expression.
+ true if a possible match was found; false if no more matches are possible.
+
+
+ Determine whether at base.runtextpos is a match for the regular expression.
+ The text being scanned by the regular expression.
+ true if the regular expression matches at the current position; otherwise, false.
+
+
+ Helper methods used by generated -derived implementations.
+
+
+ Default timeout value set in , or if none was set.
+
+
+ Whether is non-infinite.
+
+
+ Supports searching for characters in or not in "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.HttpSys.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.HttpSys.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7069bfe3c288264b90b8806dbd258878f5a56779
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.HttpSys.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.IIS.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.IIS.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d4e75cd47bdf0a85ca13943e2c295a9ebfc0ffa3
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.IIS.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.IISIntegration.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.IISIntegration.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bb3352ef94c69698434ddb5975f232ec2023b542
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.IISIntegration.xml
@@ -0,0 +1,118 @@
+
+
+
+ Microsoft.AspNetCore.Server.IISIntegration
+
+
+
+
+ String constants used to configure IIS Out-Of-Process.
+
+
+
+
+ Default authentication scheme, which is "Windows".
+
+
+
+
+ Default negotiate string, which is "Negotiate".
+
+
+
+
+ Default NTLM string, which is "NTLM".
+
+
+
+
+ The to add IISIntegration to apps.
+
+
+ This API isn't meant to be used by user code.
+
+
+
+
+ Adds IISIntegration into the middleware pipeline.
+
+ The .
+
+
+
+ The middleware that enables IIS Out-Of-Process to work.
+
+
+
+
+ The middleware that enables IIS Out-Of-Process to work.
+
+ The next middleware in the pipeline.
+ The .
+ The configuration for this middleware.
+ A token used to coordinate with the ASP.NET Core Module.
+ The .
+ The .
+
+
+
+ The middleware that enables IIS Out-Of-Process to work.
+
+ The next middleware in the pipeline.
+ The .
+ The configuration for this middleware.
+ A token used to coordinate with the ASP.NET Core Module.
+ Whether websockets are supported by IIS.
+ The .
+ The .
+
+
+
+ Invoke the middleware.
+
+ The .
+ A that represents the asynchronous operation.
+
+
+
+ Options to configure IIS Out-Of-Process.
+
+
+
+
+ If true the middleware should set HttpContext.User. If false the middleware will only provide an
+ identity when explicitly requested by the AuthenticationScheme.
+ Note Windows Authentication must also be enabled in IIS for this to work.
+
+
+
+
+ Sets the display name shown to users on login pages. The default is null.
+
+
+
+
+ Used to indicate if the authentication handler should be registered. This is only done if ANCM indicates
+ IIS has a non-anonymous authentication enabled, or for back compat with ANCMs that did not provide this information.
+
+
+
+
+ Populates the ITLSConnectionFeature if the MS-ASPNETCORE-CLIENTCERT request header is present.
+
+
+
+
+ Extension methods for the IIS Out-Of-Process.
+
+
+
+
+ Configures the port and base path the server should listen on when running behind AspNetCoreModule.
+ The app will also be configured to capture startup errors.
+
+
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1477ecb0f4d113d53decdd5eacf6be06ed700f9b
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.xml
@@ -0,0 +1,218 @@
+
+
+
+ Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes
+
+
+
+
+ Options for named pipe based transports.
+
+
+
+
+ The number of listener queues used to accept name pipe connections.
+
+
+ Defaults to rounded down and clamped between 1 and 16.
+
+
+
+
+ Gets or sets the maximum unconsumed incoming bytes the transport will buffer.
+
+ A value of or 0 disables backpressure entirely allowing unlimited buffering.
+ Unlimited server buffering is a security risk given untrusted clients.
+
+
+
+ Defaults to 1 MiB.
+
+
+
+
+ Gets or sets the maximum outgoing bytes the transport will buffer before applying write backpressure.
+
+ A value of or 0 disables backpressure entirely allowing unlimited buffering.
+ Unlimited server buffering is a security risk given untrusted clients.
+
+
+
+ Defaults to 64 KiB.
+
+
+
+
+ Gets or sets a value that indicates that the pipe can only be connected to by a client created by
+ the same user account.
+
+ On Windows, a value of true verifies both the user account and elevation level.
+
+
+
+ Defaults to true.
+
+
+
+
+ Gets or sets the security information that determines the access control and audit security for pipes.
+
+
+
+
+ extension methods to configure the Named Pipes transport to be used by Kestrel.
+
+
+
+
+ Specify Named Pipes as the transport to be used by Kestrel.
+
+ The to configure.
+ The .
+
+
+
+ Specify Named Pipes as the transport to be used by Kestrel.
+
+ The to configure.
+ A callback to configure transport options.
+ The .
+
+
+
+ Used to allocate and distribute re-usable blocks of memory.
+
+
+
+
+ This default value passed in to Rent to use the default value for the pool.
+
+
+
+
+ Block tracking object used by the byte buffer memory pool. A slab is a large allocation which is divided into smaller blocks. The
+ individual blocks are then treated as independent array segments.
+
+
+
+
+ Back-reference to the memory pool which this block was allocated from. It may only be returned to this pool.
+
+
+
+
+ This object cannot be instantiated outside of the static Create method
+
+
+
+
+ Wraps an array allocated in the pinned object heap in a reusable block of managed memory
+
+
+
+
+ Back-reference to the memory pool which this block was allocated from. It may only be returned to this pool.
+
+
+
+
+ Used to allocate and distribute re-usable blocks of memory.
+
+
+
+
+ The size of a block. 4096 is chosen because most operating systems use 4k pages.
+
+
+
+
+ Max allocation block size for pooled blocks,
+ larger values can be leased but they will be disposed after use rather than returned to the pool.
+
+
+
+
+ The size of a block. 4096 is chosen because most operating systems use 4k pages.
+
+
+
+
+ Thread-safe collection of blocks which are currently in the pool. A slab will pre-allocate all of the block tracking objects
+ and add them to this collection. When memory is requested it is taken from here first, and when it is returned it is re-added.
+
+
+
+
+ This is part of implementing the IDisposable pattern.
+
+
+
+
+ This default value passed in to Rent to use the default value for the pool.
+
+
+
+
+ Called to return a block to the pool. Once Return has been called the memory no longer belongs to the caller, and
+ Very Bad Things will happen if the memory is read of modified subsequently. If a caller fails to call Return and the
+ block tracking object is garbage collected, the block tracking object's finalizer will automatically re-create and return
+ a new tracking object into the pool. This will only happen if there is a bug in the server, however it is necessary to avoid
+ leaving "dead zones" in the slab due to lost block tracking objects.
+
+ The block to return. It must have been acquired by calling Lease on the same memory pool instance.
+
+
+
+ Allocator that manages blocks of unmanaged memory.
+
+
+
+
+ The default block size for the allocator.
+
+
+ This size assumes a common page size and provides an accommodation
+ for the pointer chain used to track allocated blocks.
+
+
+
+
+ Instantiate an instance.
+
+ The unmanaged memory block size in bytes.
+
+
+
+ Allocate the requested amount of space from the allocator.
+
+ The type requested
+ The count in units
+ A pointer to the reserved memory.
+
+ The allocated memory is uninitialized.
+
+
+
+
+ Allocate the requested amount of space from the allocator.
+
+ The type requested
+ The count in units
+ A Span to the reserved memory.
+
+ The allocated memory is uninitialized.
+
+
+
+
+ Get pointer to bytes for the supplied string in UTF-8.
+
+ The string
+ The length of the returned byte buffer.
+ A pointer to the buffer of bytes
+
+
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7fe44dd083facb608584fa896c3719308de13ebb
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Session.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Session.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3f4edc52d6bd3f96d0ef018016512227e7079b51
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.Session.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.SignalR.Core.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.SignalR.Core.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9f219f1d872b5d34cc63f36adf0d2d663887e62e
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.SignalR.Core.xml
@@ -0,0 +1,2195 @@
+
+
+
+ Microsoft.AspNetCore.SignalR.Core
+
+
+
+
+ Extension methods for .
+
+
+
+
+ Invokes a method on the connection(s) represented by the instance.
+ Does not wait for a response from the receiver.
+
+ The
+ The name of the method to invoke.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection(s) represented by the instance.
+ Does not wait for a response from the receiver.
+
+ The
+ The name of the method to invoke.
+ The first argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection(s) represented by the instance.
+ Does not wait for a response from the receiver.
+
+ The
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection(s) represented by the instance.
+ Does not wait for a response from the receiver.
+
+ The
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection(s) represented by the instance.
+ Does not wait for a response from the receiver.
+
+ The
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The fourth argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection(s) represented by the instance.
+ Does not wait for a response from the receiver.
+
+ The
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The fourth argument.
+ The fifth argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection(s) represented by the instance.
+ Does not wait for a response from the receiver.
+
+ The
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The fourth argument.
+ The fifth argument.
+ The sixth argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection(s) represented by the instance.
+ Does not wait for a response from the receiver.
+
+ The
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The fourth argument.
+ The fifth argument.
+ The sixth argument.
+ The seventh argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection(s) represented by the instance.
+ Does not wait for a response from the receiver.
+
+ The
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The fourth argument.
+ The fifth argument.
+ The sixth argument.
+ The seventh argument.
+ The eighth argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection(s) represented by the instance.
+ Does not wait for a response from the receiver.
+
+ The
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The fourth argument.
+ The fifth argument.
+ The sixth argument.
+ The seventh argument.
+ The eighth argument.
+ The ninth argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection(s) represented by the instance.
+ Does not wait for a response from the receiver.
+
+ The
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The fourth argument.
+ The fifth argument.
+ The sixth argument.
+ The seventh argument.
+ The eighth argument.
+ The ninth argument.
+ The tenth argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection represented by the instance and waits for a response.
+
+ The .
+ The name of the method to invoke.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection represented by the instance and waits for a response.
+
+ The .
+ The name of the method to invoke.
+ The first argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection represented by the instance and waits for a response.
+
+ The .
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection represented by the instance and waits for a response.
+
+ The .
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection represented by the instance and waits for a response.
+
+ The .
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The fourth argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection represented by the instance and waits for a response.
+
+ The .
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The fourth argument.
+ The fifth argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection represented by the instance and waits for a response.
+
+ The .
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The fourth argument.
+ The fifth argument.
+ The sixth argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection represented by the instance and waits for a response.
+
+ The
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The fourth argument.
+ The fifth argument.
+ The sixth argument.
+ The seventh argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection represented by the instance and waits for a response.
+
+ The .
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The fourth argument.
+ The fifth argument.
+ The sixth argument.
+ The seventh argument.
+ The eighth argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection represented by the instance and waits for a response.
+
+ The .
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The fourth argument.
+ The fifth argument.
+ The sixth argument.
+ The seventh argument.
+ The eighth argument.
+ The ninth argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ Invokes a method on the connection represented by the instance and waits for a response.
+
+ The .
+ The name of the method to invoke.
+ The first argument.
+ The second argument.
+ The third argument.
+ The fourth argument.
+ The fifth argument.
+ The sixth argument.
+ The seventh argument.
+ The eighth argument.
+ The ninth argument.
+ The tenth argument.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ A default in-memory lifetime manager abstraction for instances.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The logger.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The default provider for getting the user ID from a connection.
+ This provider gets the user ID from the connection's name identifier claim.
+
+
+
+
+
+
+
+ A base class for SignalR hubs that use dynamic to represent client invocations.
+
+
+
+
+ Gets or sets an object that can be used to invoke methods on the clients connected to this hub.
+
+
+
+
+ A class that provides dynamic access to connections, including the one that sent the current invocation.
+
+
+
+
+ Initializes a new instance of the class.
+
+ A wrapped that is used to invoke methods.
+
+
+
+ Gets an object that can be used to invoke methods on all clients connected to the hub.
+
+ An object that can be used to invoke methods on the specified user.
+
+
+
+ Gets an object that can be used to invoke methods on all clients connected to the hub excluding the specified connections.
+
+ A collection of connection IDs to exclude.
+ An object that can be used to invoke methods on the specified user.
+
+
+
+ Gets an object that can be used to invoke methods on the connection which triggered the current invocation.
+
+
+
+
+ Gets an object that can be used to invoke methods on the specified connection.
+
+ The connection ID.
+ An object that can be used to invoke methods.
+
+
+
+ Gets an object that can be used to invoke methods on the specified connections.
+
+ The connection IDs.
+ An object that can be used to invoke methods.
+
+
+
+ Gets an object that can be used to invoke methods on all connections in the specified group.
+
+ The group name.
+ An object that can be used to invoke methods.
+
+
+
+ Gets an object that can be used to invoke methods on all connections in all of the specified groups.
+
+ The group names.
+ An object that can be used to invoke methods on the specified user.
+
+
+
+ Gets an object that can be used to invoke methods on all connections in the specified group excluding the specified connections.
+
+ The group name.
+ A collection of connection IDs to exclude.
+ An object that can be used to invoke methods.
+
+
+
+ Gets an object that can be used to invoke methods on connections in a group other than the caller.
+
+ An object that can be used to invoke methods.
+
+
+
+ Gets an object that can be used to invoke methods on connections other than the caller.
+
+
+
+
+ Gets an object that can be used to invoke methods on all connections associated with the specified user.
+
+ The user ID.
+ An object that can be used to invoke methods.
+
+
+
+ Gets an object that can be used to invoke methods on all connections associated with all of the specified users.
+
+ The user IDs.
+ An object that can be used to invoke methods.
+
+
+
+ A base class for a SignalR hub.
+
+
+
+
+ Gets or sets an object that can be used to invoke methods on the clients connected to this hub.
+
+
+
+
+ Gets or sets the hub caller context.
+
+
+
+
+ Gets or sets the group manager.
+
+
+
+
+ Called when a new connection is established with the hub.
+
+ A that represents the asynchronous connect.
+
+
+
+ Called when a connection with the hub is terminated.
+
+ A that represents the asynchronous disconnect.
+
+
+
+ Releases all resources currently used by this instance.
+
+ true if this method is being invoked by the method,
+ otherwise false.
+
+
+
+
+
+
+ A context abstraction for accessing information about the hub caller connection.
+
+
+
+
+ Gets the connection ID.
+
+
+
+
+ Gets the user identifier.
+
+
+
+
+ Gets the user.
+
+
+
+
+ Gets a key/value collection that can be used to share data within the scope of this connection.
+
+
+
+
+ Gets the collection of HTTP features available on the connection.
+
+
+
+
+ Gets a that notifies when the connection is aborted.
+
+
+
+
+ Aborts the connection.
+
+
+
+
+ Extension methods for .
+
+
+
+
+ Gets a that can be used to invoke methods on all clients connected to the hub excluding the specified connection.
+
+ The abstraction that provides access to connections.
+ The first connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all clients connected to the hub excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to exclude.
+ The second connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all clients connected to the hub excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to exclude.
+ The second connection to exclude.
+ The third connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all clients connected to the hub excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to exclude.
+ The second connection to exclude.
+ The third connection to exclude.
+ The fourth connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all clients connected to the hub excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to exclude.
+ The second connection to exclude.
+ The third connection to exclude.
+ The fourth connection to exclude.
+ The fifth connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all clients connected to the hub excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to exclude.
+ The second connection to exclude.
+ The third connection to exclude.
+ The fourth connection to exclude.
+ The fifth connection to exclude.
+ The sixth connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all clients connected to the hub excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to exclude.
+ The second connection to exclude.
+ The third connection to exclude.
+ The fourth connection to exclude.
+ The fifth connection to exclude.
+ The sixth connection to exclude.
+ The seventh connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all clients connected to the hub excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to exclude.
+ The second connection to exclude.
+ The third connection to exclude.
+ The fourth connection to exclude.
+ The fifth connection to exclude.
+ The sixth connection to exclude.
+ The seventh connection to exclude.
+ The eighth connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all clients connected to the hub excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The connection IDs to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to include.
+ The second connection to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to include.
+ The second connection to include.
+ The third connection to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to include.
+ The second connection to include.
+ The third connection to include.
+ The fourth connection to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to include.
+ The second connection to include.
+ The third connection to include.
+ The fourth connection to include.
+ The fifth connection to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to include.
+ The second connection to include.
+ The third connection to include.
+ The fourth connection to include.
+ The fifth connection to include.
+ The sixth connection to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to include.
+ The second connection to include.
+ The third connection to include.
+ The fourth connection to include.
+ The fifth connection to include.
+ The sixth connection to include.
+ The seventh connection to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on the specified connections.
+
+ The abstraction that provides access to connections.
+ The first connection to include.
+ The second connection to include.
+ The third connection to include.
+ The fourth connection to include.
+ The fifth connection to include.
+ The sixth connection to include.
+ The seventh connection to include.
+ The eighth connection to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on the specified connections.
+
+ The abstraction that provides access to connections.
+ The connection IDs.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in all of the specified groups.
+
+ The abstraction that provides access to connections.
+ The first group to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in all of the specified groups.
+
+ The abstraction that provides access to connections.
+ The first group to include.
+ The second group to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in all of the specified groups.
+
+ The abstraction that provides access to connections.
+ The first group to include.
+ The second group to include.
+ The third group to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in all of the specified groups.
+
+ The abstraction that provides access to connections.
+ The first group to include.
+ The second group to include.
+ The third group to include.
+ The fourth group to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in all of the specified groups.
+
+ The abstraction that provides access to connections.
+ The first group to include.
+ The second group to include.
+ The third group to include.
+ The fourth group to include.
+ The fifth group to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in all of the specified groups.
+
+ The abstraction that provides access to connections.
+ The first group to include.
+ The second group to include.
+ The third group to include.
+ The fourth group to include.
+ The fifth group to include.
+ The sixth group to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in all of the specified groups.
+
+ The abstraction that provides access to connections.
+ The first group to include.
+ The second group to include.
+ The third group to include.
+ The fourth group to include.
+ The fifth group to include.
+ The sixth group to include.
+ The seventh group to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in all of the specified groups.
+
+ The abstraction that provides access to connections.
+ The first group to include.
+ The second group to include.
+ The third group to include.
+ The fourth group to include.
+ The fifth group to include.
+ The sixth group to include.
+ The seventh group to include.
+ The eighth group to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in all of the specified groups.
+
+ The abstraction that provides access to connections.
+ The group names.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in the specified group excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The group name.
+ The first connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in the specified group excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The group name.
+ The first connection to exclude.
+ The second connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in the specified group excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The group name.
+ The first connection to exclude.
+ The second connection to exclude.
+ The third connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in the specified group excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The group name.
+ The first connection to exclude.
+ The second connection to exclude.
+ The third connection to exclude.
+ The fourth connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in the specified group excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The group name.
+ The first connection to exclude.
+ The second connection to exclude.
+ The third connection to exclude.
+ The fourth connection to exclude.
+ The fifth connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in the specified group excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The group name.
+ The first connection to exclude.
+ The second connection to exclude.
+ The third connection to exclude.
+ The fourth connection to exclude.
+ The fifth connection to exclude.
+ The sixth connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in the specified group excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The group name.
+ The first connection to exclude.
+ The second connection to exclude.
+ The third connection to exclude.
+ The fourth connection to exclude.
+ The fifth connection to exclude.
+ The sixth connection to exclude.
+ The seventh connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in the specified group excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The group name.
+ The first connection to exclude.
+ The second connection to exclude.
+ The third connection to exclude.
+ The fourth connection to exclude.
+ The fifth connection to exclude.
+ The sixth connection to exclude.
+ The seventh connection to exclude.
+ The eighth connection to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections in the specified group excluding the specified connections.
+
+ The abstraction that provides access to connections.
+ The group name.
+ The connection IDs to exclude.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections associated with all of the specified users.
+
+ The abstraction that provides access to connections.
+ The first user to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections associated with all of the specified users.
+
+ The abstraction that provides access to connections.
+ The first user to include.
+ The second user to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections associated with all of the specified users.
+
+ The abstraction that provides access to connections.
+ The first user to include.
+ The second user to include.
+ The third user to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections associated with all of the specified users.
+
+ The abstraction that provides access to connections.
+ The first user to include.
+ The second user to include.
+ The third user to include.
+ The fourth user to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections associated with all of the specified users.
+
+ The abstraction that provides access to connections.
+ The first user to include.
+ The second user to include.
+ The third user to include.
+ The fourth user to include.
+ The fifth user to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections associated with all of the specified users.
+
+ The abstraction that provides access to connections.
+ The first user to include.
+ The second user to include.
+ The third user to include.
+ The fourth user to include.
+ The fifth user to include.
+ The sixth user to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections associated with all of the specified users.
+
+ The abstraction that provides access to connections.
+ The first user to include.
+ The second user to include.
+ The third user to include.
+ The fourth user to include.
+ The fifth user to include.
+ The sixth user to include.
+ The seventh user to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections associated with all of the specified users.
+
+ The abstraction that provides access to connections.
+ The first user to include.
+ The second user to include.
+ The third user to include.
+ The fourth user to include.
+ The fifth user to include.
+ The sixth user to include.
+ The seventh user to include.
+ The eighth user to include.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Gets a that can be used to invoke methods on all connections associated with all of the specified users.
+
+ The abstraction that provides access to connections.
+ The user IDs.
+ A representing the methods that can be invoked on the clients.
+
+
+
+ Encapsulates all information about an individual connection to a SignalR Hub.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The underlying .
+ The logger factory.
+ The options to configure the HubConnectionContext.
+
+
+
+ Gets a that notifies when the connection is aborted.
+
+
+
+
+ Gets the ID for this connection.
+
+
+
+
+ Gets the user for this connection.
+
+
+
+
+ Gets the collection of features available on this connection.
+
+
+
+
+ Gets a key/value collection that can be used to share data within the scope of this connection.
+
+
+
+
+ Gets or sets the user identifier for this connection.
+
+
+
+
+ Gets the protocol used by this connection.
+
+
+
+
+ Write a to the connection.
+
+ The being written.
+ Cancels the in progress write.
+ A that represents the completion of the write. If the write throws this task will still complete successfully.
+
+
+
+ This method is designed to support the framework and is not intended to be used by application code. Writes a pre-serialized message to the
+ connection.
+
+ The serialization cache to use.
+ The token to monitor for cancellation requests. The default value is .
+
+
+
+
+ Aborts the connection.
+
+
+
+ This API supports the logging infrastructure and is not intended to be used directly from your code. It is subject to change in the future.
+
+
+
+ Options used to configure .
+
+
+
+
+ Gets or sets the interval used to send keep alive pings to connected clients.
+
+
+
+
+ Gets or sets the time window clients have to send a message before the server closes the connection.
+
+
+
+
+ Gets or sets the max buffer size for client upload streams.
+
+
+
+
+ Gets or sets the maximum message size the client can send.
+
+
+
+
+ Gets or sets the maximum parallel hub method invocations.
+
+
+
+
+ Gets or sets the maximum bytes to buffer per connection when using stateful reconnect.
+
+
+
+
+ Handles incoming connections and implements the SignalR Hub Protocol.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The hub lifetime manager.
+ The protocol resolver used to resolve the protocols between client and server.
+ The global options used to initialize hubs.
+ Hub specific options used to initialize hubs. These options override the global options.
+ The logger factory.
+ The user ID provider used to get the user ID from a hub connection.
+ The service scope factory.
+ This class is typically created via dependency injection.
+
+
+
+
+
+
+ Stores s by ID.
+
+
+ This API is meant for internal usage.
+
+
+
+
+ Get the by connection ID.
+
+ The ID of the connection.
+ The connection for the , null if there is no connection.
+
+
+
+ The number of connections in the store.
+
+
+
+
+ Add a to the store.
+
+ The connection to add.
+
+
+
+ Removes a from the store.
+
+ The connection to remove.
+
+
+
+ Gets an enumerator over the connection store.
+
+ The over the connections.
+
+
+
+ An over the
+
+
+
+
+ Constructs the over the .
+
+ The store of connections to enumerate over.
+
+
+
+ The current connection the enumerator is on.
+
+
+
+
+ Disposes the enumerator.
+
+
+
+
+ Moves the enumerator to the next value.
+
+ True if there is another connection. False if there are no more connections.
+
+
+
+ Resets the enumerator to the beginning.
+
+
+
+
+ Context for a Hub invocation.
+
+
+
+
+ Instantiates a new instance of the class.
+
+ Context for the active Hub connection and caller.
+ The specific to the scope of this Hub method invocation.
+ The instance of the Hub.
+ The for the Hub method being invoked.
+ The arguments provided by the client.
+
+
+
+ Gets the context for the active Hub connection and caller.
+
+
+
+
+ Gets the Hub instance.
+
+
+
+
+ Gets the name of the Hub method being invoked.
+
+
+
+
+ Gets the arguments provided by the client.
+
+
+
+
+ The specific to the scope of this Hub method invocation.
+
+
+
+
+ The for the Hub method being invoked.
+
+
+
+
+ Context for the hub lifetime events and .
+
+
+
+
+ Instantiates a new instance of the class.
+
+ Context for the active Hub connection and caller.
+ The specific to the scope of this Hub method invocation.
+ The instance of the Hub.
+
+
+
+ Gets the context for the active Hub connection and caller.
+
+
+
+
+ Gets the Hub instance.
+
+
+
+
+ The specific to the scope of this Hub method invocation.
+
+
+
+
+ A lifetime manager abstraction for instances.
+
+
+
+
+ Called when a connection is started.
+
+ The connection.
+ A that represents the asynchronous connect.
+
+
+
+ Called when a connection is finished.
+
+ The connection.
+ A that represents the asynchronous disconnect.
+
+
+
+ Sends an invocation message to all hub connections.
+
+ The invocation method name.
+ The invocation arguments.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous send.
+
+
+
+ Sends an invocation message to all hub connections excluding the specified connections.
+
+ The invocation method name.
+ The invocation arguments.
+ A collection of connection IDs to exclude.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous send.
+
+
+
+ Sends an invocation message to the specified connection.
+
+ The connection ID.
+ The invocation method name.
+ The invocation arguments.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous send.
+
+
+
+ Sends an invocation message to the specified connections.
+
+ The connection IDs.
+ The invocation method name.
+ The invocation arguments.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous send.
+
+
+
+ Sends an invocation message to the specified group.
+
+ The group name.
+ The invocation method name.
+ The invocation arguments.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous send.
+
+
+
+ Sends an invocation message to the specified groups.
+
+ The group names.
+ The invocation method name.
+ The invocation arguments.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous send.
+
+
+
+ Sends an invocation message to the specified group excluding the specified connections.
+
+ The group name.
+ The invocation method name.
+ The invocation arguments.
+ A collection of connection IDs to exclude.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous send.
+
+
+
+ Sends an invocation message to the specified user.
+
+ The user ID.
+ The invocation method name.
+ The invocation arguments.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous send.
+
+
+
+ Sends an invocation message to the specified users.
+
+ The user IDs.
+ The invocation method name.
+ The invocation arguments.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous send.
+
+
+
+ Adds a connection to the specified group.
+
+ The connection ID to add to a group.
+ The group name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous add.
+
+
+
+ Removes a connection from the specified group.
+
+ The connection ID to remove from a group.
+ The group name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous remove.
+
+
+
+ Sends an invocation message to the specified connection and waits for a response.
+
+ The type of the response expected.
+ The connection ID.
+ The invocation method name.
+ The invocation arguments.
+ The token to monitor for cancellation requests. It is recommended to set a max wait for expecting a result.
+ The response from the connection.
+
+
+
+ Sets the connection result for an in progress call.
+
+ The connection ID.
+ The result from the connection.
+ A that represents the result being set or being forwarded to another server.
+
+
+
+ Tells implementations what the expected type from a connection result is.
+
+ The ID of the in progress invocation.
+ The type the connection is expected to send. Or if the result is intended for another server.
+
+
+
+
+ Metadata that describes the information associated with a specific endpoint.
+
+
+
+
+ Constructs the of the given type.
+
+ The of the .
+
+
+
+ The type of .
+
+
+
+
+ Customizes the name of a hub method.
+
+
+
+
+ The customized name of the hub method.
+
+
+
+
+ Initializes a new instance of class.
+
+ The customized name of the hub method.
+
+
+
+ Options used to configure hub instances.
+
+
+
+
+ Gets or sets the interval used by the server to timeout incoming handshake requests by clients. The default timeout is 15 seconds.
+
+
+
+
+ Gets or sets the interval used by the server to send keep alive pings to connected clients. The default interval is 15 seconds.
+
+
+
+
+ Gets or sets the time window clients have to send a message before the server closes the connection. The default timeout is 30 seconds.
+
+
+
+
+ Gets or sets a collection of supported hub protocol names.
+
+
+
+
+ Gets or sets the maximum message size of a single incoming hub message. The default is 32KB.
+
+
+
+
+ Gets or sets a value indicating whether detailed error messages are sent to the client.
+ Detailed error messages include details from exceptions thrown on the server.
+
+
+
+
+ Gets or sets the max buffer size for client upload streams. The default size is 10.
+
+
+
+
+ By default a client is only allowed to invoke a single Hub method at a time.
+ Changing this property will allow clients to invoke multiple methods at the same time before queueing.
+
+
+
+
+ When , determines if a Hub method parameter will be injected from the DI container.
+ Parameters can be explicitly marked with an attribute that implements with or without this option set.
+
+
+ False by default. Hub method arguments will be resolved from a DI container if possible.
+
+
+
+
+ Gets or sets the maximum bytes to buffer per connection when using stateful reconnect.
+
+ Defaults to 100,000 bytes.
+
+
+
+ Methods to add 's to Hubs.
+
+
+
+
+ Adds an instance of an to the .
+
+ The options to add a filter to.
+ The filter instance to add to the options.
+
+
+
+ Adds an type to the that will be resolved via DI or type activated.
+
+ The type that will be added to the options.
+ The options to add a filter to.
+
+
+
+ Adds an type to the that will be resolved via DI or type activated.
+
+ The options to add a filter to.
+ The type that will be added to the options.
+
+
+
+ Class to configure the .
+
+
+
+
+ Constructs the with a list of protocols added to Dependency Injection.
+
+ The list of s that are from Dependency Injection.
+
+
+
+ Configures the default values of the .
+
+ The to configure.
+
+
+
+ Class to configure the for a specific .
+
+ The type to configure.
+
+
+
+ Constructs the options configuration class.
+
+ The global from Dependency Injection.
+
+
+
+ Configures the default values of the .
+
+ The options to configure.
+
+
+
+ Options used to configure the specified hub type instances. These options override globally set options.
+
+ The hub type to configure.
+
+
+
+ A base class for a strongly typed SignalR hub.
+
+ The type of client.
+
+
+
+ Gets or sets a that can be used to invoke methods on the clients connected to this hub.
+
+
+
+
+ A proxy abstraction for invoking hub methods.
+
+
+
+
+ Invokes a method on the connection(s) represented by the instance.
+ Does not wait for a response from the receiver.
+
+ Name of the method to invoke.
+ A collection of arguments to pass to the client.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous invoke.
+
+
+
+ A manager abstraction for adding and removing connections from groups.
+
+
+
+
+ Adds a connection to the specified group.
+
+ The connection ID to add to a group.
+ The group name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous add.
+
+
+
+ Removes a connection from the specified group.
+
+ The connection ID to remove from a group.
+ The group name.
+ The token to monitor for cancellation requests. The default value is .
+ A that represents the asynchronous remove.
+
+
+
+ A activator abstraction.
+
+ The hub type.
+
+
+
+ Creates a hub.
+
+ The created hub.
+
+
+
+ Releases the specified hub.
+
+ The hub to release.
+
+
+
+ A clients caller abstraction for a hub.
+
+
+
+
+ Gets a proxy that can be used to invoke methods on a single client connected to the hub and receive results.
+
+ The connection ID.
+ A client caller.
+
+
+
+ Gets a proxy that can be used to invoke methods on the calling client and receive results.
+
+ A client caller.
+
+
+
+ An abstraction that provides access to client connections, including the one that sent the current invocation.
+
+ The client caller type.
+
+
+
+ Gets a caller to the connection which triggered the current invocation.
+
+
+
+
+ Gets a caller to all connections except the one which triggered the current invocation.
+
+
+
+
+ Gets a caller to all connections in the specified group, except the one which triggered the current invocation.
+
+ A client caller.
+
+
+
+ An abstraction that provides access to client connections.
+
+
+
+
+ Gets a proxy that can be used to invoke methods on a single client connected to the hub and receive results.
+
+ The connection ID.
+ A client caller.
+
+
+
+ An abstraction that provides access to client connections.
+
+ The client invoker type.
+
+
+
+ Gets a that can be used to invoke methods on all clients connected to the hub.
+
+ A client caller.
+
+
+
+ Gets a that can be used to invoke methods on all clients connected to the hub excluding the specified client connections.
+
+ A collection of connection IDs to exclude.
+ A client caller.
+
+
+
+ Gets a that can be used to invoke methods on the specified client connection.
+
+ The connection ID.
+ A client caller.
+
+
+
+ Gets a that can be used to invoke methods on the specified client connections.
+
+ The connection IDs.
+ A client caller.
+
+
+
+ Gets a that can be used to invoke methods on all connections in the specified group.
+
+ The group name.
+ A client caller.
+
+
+
+ Gets a that can be used to invoke methods on all connections in all of the specified groups.
+
+ The group names.
+ A client caller.
+
+
+
+ Gets a that can be used to invoke methods on all connections in the specified group excluding the specified connections.
+
+ The group name.
+ A collection of connection IDs to exclude.
+ A client caller.
+
+
+
+ Gets a that can be used to invoke methods on all connections associated with the specified user.
+
+ The user ID.
+ A client caller.
+
+
+
+ Gets a that can be used to invoke methods on all connections associated with all of the specified users.
+
+ The user IDs.
+ A client caller.
+
+
+
+ A context abstraction for a hub.
+
+
+
+
+ Gets a that can be used to invoke methods on clients connected to the hub.
+
+
+
+
+ Gets a that can be used to add and remove connections to named groups.
+
+
+
+
+ A context abstraction for a hub.
+
+
+
+
+ Gets a that can be used to invoke methods on clients connected to the hub.
+
+
+
+
+ Gets a that can be used to add and remove connections to named groups.
+
+
+
+
+ A context abstraction for a hub.
+
+
+
+
+ Gets a that can be used to invoke methods on clients connected to the hub.
+
+
+
+
+ Gets a that can be used to add and remove connections to named groups.
+
+
+
+
+ The filter abstraction for hub method invocations.
+
+
+
+
+ Allows handling of all Hub method invocations.
+
+ The context for the method invocation that holds all the important information about the invoke.
+ The next filter to run, and for the final one, the Hub invocation.
+ Returns the result of the Hub method invoke.
+
+
+
+ Allows handling of the method.
+
+ The context for OnConnectedAsync.
+ The next filter to run, and for the final one, the Hub invocation.
+
+
+
+
+ Allows handling of the method.
+
+ The context for OnDisconnectedAsync.
+ The exception, if any, for the connection closing.
+ The next filter to run, and for the final one, the Hub invocation.
+
+
+
+
+ A resolver abstraction for working with instances.
+
+
+
+
+ Gets a collection of all available hub protocols.
+
+
+
+
+ Gets the hub protocol with the specified name, if it is allowed by the specified list of supported protocols.
+
+ The protocol name.
+ A collection of supported protocols.
+ A matching or null if no matching protocol was found.
+
+
+
+ A context for accessing information about the hub caller from their connection.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A small dictionary optimized for utf8 string lookup via spans. Adapted from https://github.com/dotnet/runtime/blob/4ed596ef63e60ce54cfb41d55928f0fe45f65cf3/src/libraries/System.Linq.Parallel/src/System/Linq/Parallel/Utils/HashLookup.cs.
+
+
+
+
+ A builder abstraction for configuring SignalR servers.
+
+
+
+
+ A proxy abstraction for invoking hub methods on the client and getting a result.
+
+
+
+
+ Invokes a method on the connection represented by the instance and waits for a result.
+
+
+ Name of the method to invoke.
+ A collection of arguments to pass to the client.
+ The token to monitor for cancellation requests. It is recommended to set a max wait for expecting a result.
+ A that represents the asynchronous invoke and wait for a client result.
+
+
+
+ A provider abstraction for configuring the "User ID" for a connection.
+
+ is used by to invoke connections associated with a user.
+
+
+
+ Gets the user ID for the specified connection.
+
+ The connection to get the user ID for.
+ The user ID for the specified connection.
+
+
+
+ Represents a serialization cache for a single message.
+
+
+
+
+ Gets the hub message for the serialization cache.
+
+
+
+
+ Initializes a new instance of the class.
+
+ A collection of already serialized messages to cache.
+
+
+
+ Initializes a new instance of the class.
+
+ The hub message for the cache. This will be serialized with an in to get the message's serialized representation.
+
+
+
+ Gets the serialized representation of the using the specified .
+
+ The protocol used to create the serialized representation.
+ The serialized representation of the .
+
+
+
+ Represents a serialized message.
+
+
+
+
+ Gets the protocol of the serialized message.
+
+
+
+
+ Gets the serialized representation of the message.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The protocol of the serialized message.
+ The serialized representation of the message.
+
+
+
+ Extension methods for .
+
+
+
+
+ Configure the connection to host the specified type.
+
+ The type to host on the connection.
+ The connection to configure.
+ The same instance of the for chaining.
+
+
+
+ Creates a new stream and returns the ChannelReader for it as an object.
+
+
+
+ Throws an if is null.
+ The reference type argument to validate as non-null.
+ The name of the parameter with which corresponds.
+
+
+
+ Extension methods for .
+
+
+
+
+ Adds the minimum essential SignalR services to the specified . Additional services
+ must be added separately using the returned from this method.
+
+ The to add services to.
+ An that can be used to further configure the SignalR services.
+
+
+
+ Helper related to generic interface definitions and implementing classes.
+
+
+
+
+ Determine whether is or implements a closed generic
+ created from .
+
+ The of interest.
+ The open generic to match. Usually an interface.
+
+ The closed generic created from that
+ is or implements. null if the two s have no such
+ relationship.
+
+
+ This method will return if is
+ typeof(KeyValuePair{,}), and is
+ typeof(KeyValuePair{string, object}).
+
+
+
+
+ Executes the configured method on . This can be used whether or not
+ the configured method is asynchronous.
+
+
+ Even if the target method is asynchronous, it's desirable to invoke it using Execute rather than
+ ExecuteAsync if you know at compile time what the return type is, because then you can directly
+ "await" that value (via a cast), and then the generated code will be able to reference the
+ resulting awaitable as a value-typed variable. If you use ExecuteAsync instead, the generated
+ code will have to treat the resulting awaitable as a boxed object, because it doesn't know at
+ compile time what type it would be.
+
+ The object whose method is to be executed.
+ Parameters to pass to the method.
+ The method return value.
+
+
+
+ Executes the configured method on . This can only be used if the configured
+ method is asynchronous.
+
+
+ If you don't know at compile time the type of the method's returned awaitable, you can use ExecuteAsync,
+ which supplies an awaitable-of-object. This always works, but can incur several extra heap allocations
+ as compared with using Execute and then using "await" on the result value typecasted to the known
+ awaitable type. The possible extra heap allocations are for:
+
+ 1. The custom awaitable (though usually there's a heap allocation for this anyway, since normally
+ it's a reference type, and you normally create a new instance per call).
+ 2. The custom awaiter (whether or not it's a value type, since if it's not, you need a new instance
+ of it, and if it is, it will have to be boxed so the calling code can reference it as an object).
+ 3. The async result value, if it's a value type (it has to be boxed as an object, since the calling
+ code doesn't know what type it's going to be).
+
+ The object whose method is to be executed.
+ Parameters to pass to the method.
+ An object that you can "await" to get the method return value.
+
+
+
+ Provides a common awaitable structure that can
+ return, regardless of whether the underlying value is a System.Task, an FSharpAsync, or an
+ application-defined custom awaitable.
+
+
+
+
+ Helper for detecting whether a given type is FSharpAsync`1, and if so, supplying
+ an for mapping instances of that type to a C# awaitable.
+
+
+ The main design goal here is to avoid taking a compile-time dependency on
+ FSharp.Core.dll, because non-F# applications wouldn't use it. So all the references
+ to FSharp types have to be constructed dynamically at runtime.
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9654392862c846d2af493444195e6d49e21fa518
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.SignalR.Protocols.Json.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.SignalR.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.SignalR.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b746504dc36efc92e36c138e8c94714d5ffb00ce
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.SignalR.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.StaticFiles.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.StaticFiles.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5dc0df40fae6c28784b06b74b3f01412f1c2c13b
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.StaticFiles.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.WebSockets.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.WebSockets.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1de1f580fe726bd20c7dbec57a379cee085562be
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.AspNetCore.WebSockets.xml
@@ -0,0 +1,172 @@
+
+
+
+ Microsoft.AspNetCore.WebSockets
+
+
+
+
+ Extends the class with additional properties.
+
+
+
+
+
+
+
+ This property is obsolete and has no effect.
+
+
+
+
+ The interval to send pong frames. This is a heart-beat that keeps the connection alive.
+
+
+
+
+ Validates the Sec-WebSocket-Key request header
+
+
+
+
+
+
+ Used in ASP.NET Core to wrap a WebSocket with its associated HttpContext so that when the WebSocket is aborted
+ the underlying HttpContext is aborted. All other methods are delegated to the underlying WebSocket.
+
+
+
+
+ The maximum length that this extension can have, assuming that we're not using extra white space.
+
+ "permessage-deflate; client_max_window_bits=15; client_no_context_takeover; server_max_window_bits=15; server_no_context_takeover"
+
+
+
+
+ Enables accepting WebSocket requests by adding a
+ to the if the request is a valid WebSocket request.
+
+
+
+
+ Creates a new instance of the .
+
+ The next middleware in the pipeline.
+ The configuration options.
+ An instance used to create loggers.
+
+
+
+ Processes a request to determine if it is a WebSocket request, and if so,
+ sets the on the .
+
+ The representing the request.
+ The that represents the completion of the middleware pipeline.
+
+
+
+ Extension method for to add WebSockets configuration.
+
+
+
+
+ Extension method for to add WebSockets configuration.
+
+ The service collection to add WebSockets specific configuration to.
+ The configuration callback to setup .
+
+
+
+
+ extension methods to add and configure .
+
+
+
+
+ Adds the to the request pipeline.
+
+
+ The to configure.
+
+
+ The .
+
+
+
+
+ Adds the to the request pipeline.
+
+
+ The to configure.
+
+
+ The to be used for the .
+
+
+ The .
+
+
+
+
+ Configuration options for the WebSocketMiddleware.
+
+
+
+
+ Constructs the class with default values.
+
+
+
+
+ Gets or sets the frequency at which to send Ping/Pong keep-alive control frames.
+ The default is two minutes.
+
+
+
+
+ Gets or sets the size of the protocol buffer used to receive and parse frames.
+ The default is 4kb.
+
+
+
+
+ Set the Origin header values allowed for WebSocket requests to prevent Cross-Site WebSocket Hijacking.
+ By default all Origins are allowed.
+
+
+
+
+ Get a pinnable reference to the builder.
+ Does not ensure there is a null char after
+ This overload is pattern matched in the C# 7.3+ compiler so you can omit
+ the explicit method call, and write eg "fixed (char* c = builder)"
+
+
+
+
+ Get a pinnable reference to the builder.
+
+ Ensures that the builder has a null char after
+
+
+ Returns the underlying storage of the builder.
+
+
+
+ Returns a span around the contents of the builder.
+
+ Ensures that the builder has a null char after
+
+
+
+ Resize the internal buffer either by doubling current buffer size or
+ by adding to
+ whichever is greater.
+
+
+ Number of chars requested beyond current position.
+
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Caching.Abstractions.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Caching.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7dd7c66f1ca80e3514e21d97eb264c0c17cc149b
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Caching.Abstractions.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.Binder.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.Binder.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bded0da16110f126b02e047f25336b7325dde52f
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.Binder.xml
@@ -0,0 +1,185 @@
+
+
+
+ Microsoft.Extensions.Configuration.Binder
+
+
+
+
+ Options class used by the .
+
+
+
+
+ When false (the default), the binder will only attempt to set public properties.
+ If true, the binder will attempt to set all non read-only properties.
+
+
+
+
+ When false (the default), no exceptions are thrown when trying to convert a value or when a configuration
+ key is found for which the provided model object does not have an appropriate property which matches the key's name.
+ When true, an is thrown with a description
+ of the error.
+
+
+
+
+ Static helper class that allows binding strongly typed objects to configuration values.
+
+
+
+
+ Attempts to bind the configuration instance to a new instance of type T.
+ If this configuration section has a value, that will be used.
+ Otherwise binding by matching property names against configuration keys recursively.
+
+ The type of the new instance to bind.
+ The configuration instance to bind.
+ The new instance of T if successful, default(T) otherwise.
+
+
+
+ Attempts to bind the configuration instance to a new instance of type T.
+ If this configuration section has a value, that will be used.
+ Otherwise binding by matching property names against configuration keys recursively.
+
+ The type of the new instance to bind.
+ The configuration instance to bind.
+ Configures the binder options.
+ The new instance of T if successful, default(T) otherwise.
+
+
+
+ Attempts to bind the configuration instance to a new instance of type T.
+ If this configuration section has a value, that will be used.
+ Otherwise binding by matching property names against configuration keys recursively.
+
+ The configuration instance to bind.
+ The type of the new instance to bind.
+ The new instance if successful, null otherwise.
+
+
+
+ Attempts to bind the configuration instance to a new instance of type T.
+ If this configuration section has a value, that will be used.
+ Otherwise binding by matching property names against configuration keys recursively.
+
+ The configuration instance to bind.
+ The type of the new instance to bind.
+ Configures the binder options.
+ The new instance if successful, null otherwise.
+
+
+
+ Attempts to bind the given object instance to the configuration section specified by the key by matching property names against configuration keys recursively.
+
+ The configuration instance to bind.
+ The key of the configuration section to bind.
+ The object to bind.
+
+
+
+ Attempts to bind the given object instance to configuration values by matching property names against configuration keys recursively.
+
+ The configuration instance to bind.
+ The object to bind.
+
+
+
+ Attempts to bind the given object instance to configuration values by matching property names against configuration keys recursively.
+
+ The configuration instance to bind.
+ The object to bind.
+ Configures the binder options.
+
+
+
+ Extracts the value with the specified key and converts it to type T.
+
+ The type to convert the value to.
+ The configuration.
+ The key of the configuration section's value to convert.
+ The converted value.
+
+
+
+ Extracts the value with the specified key and converts it to type T.
+
+ The type to convert the value to.
+ The configuration.
+ The key of the configuration section's value to convert.
+ The default value to use if no value is found.
+ The converted value.
+
+
+
+ Extracts the value with the specified key and converts it to the specified type.
+
+ The configuration.
+ The type to convert the value to.
+ The key of the configuration section's value to convert.
+ The converted value.
+
+
+
+ Extracts the value with the specified key and converts it to the specified type.
+
+ The configuration.
+ The type to convert the value to.
+ The key of the configuration section's value to convert.
+ The default value to use if no value is found.
+ The converted value.
+
+
+ Throws an if is null.
+ The reference type argument to validate as non-null.
+ The name of the parameter with which corresponds.
+
+
+
+ Throws either an or an
+ if the specified string is or whitespace respectively.
+
+ String to be checked for or whitespace.
+ The name of the parameter being checked.
+ The original value of .
+
+
+ Cannot create instance of type '{0}' because it is either abstract or an interface.
+
+
+ Cannot create instance of type '{0}' because one or more parameters cannot be bound to. Constructor parameters cannot be declared as in, out, or ref. Invalid parameters are: '{1}'
+
+
+ Cannot create instance of type '{0}' because one or more parameters cannot be bound to. Constructor parameters must have corresponding properties. Fields are not supported. Missing properties are: '{1}'
+
+
+ Failed to convert configuration value at '{0}' to type '{1}'.
+
+
+ Failed to create instance of type '{0}'.
+
+
+ '{0}' was set and binding has failed. The likely cause is an invalid configuration value.
+
+
+ '{0}' was set on the provided {1}, but the following properties were not found on the instance of {2}: {3}
+
+
+ Cannot create instance of type '{0}' because it is missing a public instance constructor.
+
+
+ Cannot create instance of type '{0}' because it has multiple public parameterized constructors.
+
+
+ Cannot create instance of type '{0}' because one or more parameters are unnamed.
+
+
+ Cannot create instance of type '{0}' because parameter '{1}' has no matching config. Each parameter in the constructor that does not have a default value must have a corresponding config entry.
+
+
+ Cannot create instance of type '{0}' because multidimensional arrays are not supported.
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..34cf33942e064a5f7322301d51945fe9d68ad031
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.FileExtensions.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.Ini.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.Ini.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e0131b046370e2dbd4f43abe746ebb8ea3680516
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.Ini.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.KeyPerFile.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.KeyPerFile.xml
new file mode 100644
index 0000000000000000000000000000000000000000..60d6d952cdbb9fe4094f90501f0a5e804955ecba
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.KeyPerFile.xml
@@ -0,0 +1,133 @@
+
+
+
+ Microsoft.Extensions.Configuration.KeyPerFile
+
+
+
+
+ Extension methods for registering with .
+
+
+
+
+ Adds configuration using files from a directory. File names are used as the key,
+ file contents are used as the value.
+
+ The to add to.
+ The path to the directory.
+ The .
+
+
+
+ Adds configuration using files from a directory. File names are used as the key,
+ file contents are used as the value.
+
+ The to add to.
+ The path to the directory.
+ Whether the directory is optional.
+ The .
+
+
+
+ Adds configuration using files from a directory. File names are used as the key,
+ file contents are used as the value.
+
+ The to add to.
+ The path to the directory.
+ Whether the directory is optional.
+ Whether the configuration should be reloaded if the files are changed, added or removed.
+ The .
+
+
+
+ Adds configuration using files from a directory. File names are used as the key,
+ file contents are used as the value.
+
+ The to add to.
+ Configures the source.
+ The .
+
+
+
+ A that uses a directory's files as configuration key/values.
+
+
+
+
+ Initializes a new instance.
+
+ The settings.
+
+
+
+ Loads the configuration values.
+
+
+
+
+ Generates a string representing this provider name and relevant details.
+
+ The configuration name.
+
+
+
+
+
+
+ An used to configure .
+
+
+
+
+ Constructor;
+
+
+
+
+ The FileProvider whos root "/" directory files will be used as configuration data.
+
+
+
+
+ Files that start with this prefix will be excluded.
+ Defaults to "ignore.".
+
+
+
+
+ Used to determine if a file should be ignored using its name.
+ Defaults to using the IgnorePrefix.
+
+
+
+
+ If false, will throw if the directory doesn't exist.
+
+
+
+
+ Determines whether the source will be loaded if the underlying file changes.
+
+
+
+
+ Number of milliseconds that reload will wait before calling Load. This helps
+ avoid triggering reload before a file is completely written. Default is 250.
+
+
+
+
+ The delimiter used to separate individual keys in a path.
+
+ Default is __.
+
+
+
+ Builds the for this source.
+
+ The .
+ A
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.UserSecrets.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.UserSecrets.dll
new file mode 100644
index 0000000000000000000000000000000000000000..24a5b2bdc935e62b5597bbb8a029d61f4a2c252b
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.UserSecrets.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.dll
new file mode 100644
index 0000000000000000000000000000000000000000..13022394aa0980a5271da0f65009200789c40e4e
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Configuration.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1213d04185a544501e1411ad74fc4e1823600893
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml
@@ -0,0 +1,2112 @@
+
+
+
+ Microsoft.Extensions.DependencyInjection.Abstractions
+
+
+
+
+ Helper code for the various activator services.
+
+
+
+
+ Instantiate a type with constructor arguments provided directly and/or from an .
+
+ The service provider used to resolve dependencies
+ The type to activate
+ Constructor arguments not provided by the .
+ An activated object of type instanceType
+
+
+
+ Create a delegate that will instantiate a type with constructor arguments provided directly
+ and/or from an .
+
+ The type to activate
+
+ The types of objects, in order, that will be passed to the returned function as its second parameter
+
+
+ A factory that will instantiate instanceType using an
+ and an argument array containing objects matching the types defined in argumentTypes
+
+
+
+
+ Create a delegate that will instantiate a type with constructor arguments provided directly
+ and/or from an .
+
+ The type to activate
+
+ The types of objects, in order, that will be passed to the returned function as its second parameter
+
+
+ A factory that will instantiate type T using an
+ and an argument array containing objects matching the types defined in argumentTypes
+
+
+
+
+ Instantiate a type with constructor arguments provided directly and/or from an .
+
+ The type to activate
+ The service provider used to resolve dependencies
+ Constructor arguments not provided by the .
+ An activated object of type T
+
+
+
+ Retrieve an instance of the given type from the service provider. If one is not found then instantiate it directly.
+
+ The type of the service
+ The service provider used to resolve dependencies
+ The resolved service or created instance
+
+
+
+ Retrieve an instance of the given type from the service provider. If one is not found then instantiate it directly.
+
+ The service provider
+ The type of the service
+ The resolved service or created instance
+
+
+
+ For consistency with the expression-based factory, throw NullReferenceException.
+
+
+
+
+ Marks the constructor to be used when activating type using .
+
+
+
+
+ An implementation that implements .
+
+
+
+
+ Initializes a new instance of the struct.
+ Wraps an instance of .
+
+ The instance to wrap.
+
+
+
+
+
+
+
+
+
+
+
+
+ Extension methods for adding and removing services to an .
+
+
+
+
+ Adds the specified to the .
+
+ The .
+ The to add.
+ A reference to the current instance of .
+
+
+
+ Adds a sequence of to the .
+
+ The .
+ The s to add.
+ A reference to the current instance of .
+
+
+
+ Adds the specified to the if the
+ service type hasn't already been registered.
+
+ The .
+ The to add.
+
+
+
+ Adds the specified to the if the
+ service type hasn't already been registered.
+
+ The .
+ The s to add.
+
+
+
+ Adds the specified as a service
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+
+
+
+ Adds the specified as a service
+ with the implementation
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The implementation type of the service.
+
+
+
+ Adds the specified as a service
+ using the factory specified in
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The factory that creates the service.
+
+
+
+ Adds the specified as a service
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The .
+
+
+
+ Adds the specified as a service
+ implementation type specified in
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The .
+
+
+
+ Adds the specified as a service
+ using the factory specified in
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The .
+ The factory that creates the service.
+
+
+
+ Adds the specified as a service
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+
+
+
+ Adds the specified as a service
+ with the implementation
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The implementation type of the service.
+
+
+
+ Adds the specified as a service
+ using the factory specified in
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The factory that creates the service.
+
+
+
+ Adds the specified as a service
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The .
+
+
+
+ Adds the specified as a service
+ implementation type specified in
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The .
+
+
+
+ Adds the specified as a service
+ using the factory specified in
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The .
+ The factory that creates the service.
+
+
+
+ Adds the specified as a service
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+
+
+
+ Adds the specified as a service
+ with the implementation
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The implementation type of the service.
+
+
+
+ Adds the specified as a service
+ using the factory specified in
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The factory that creates the service.
+
+
+
+ Adds the specified as a service
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The .
+
+
+
+ Adds the specified as a service
+ implementation type specified in
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The .
+
+
+
+ Adds the specified as a service
+ with an instance specified in
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The .
+ The instance of the service to add.
+
+
+
+ Adds the specified as a service
+ using the factory specified in
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The .
+ The factory that creates the service.
+
+
+
+ Adds a if an existing descriptor with the same
+ and an implementation that does not already exist
+ in .
+
+ The .
+ The .
+
+ Use when registering a service implementation of a
+ service type that
+ supports multiple registrations of the same service type. Using
+ is not idempotent and can add
+ duplicate
+ instances if called twice. Using
+ will prevent registration
+ of multiple implementation types.
+
+
+
+
+ Adds the specified s if an existing descriptor with the same
+ and an implementation that does not already exist
+ in .
+
+ The .
+ The s.
+
+ Use when registering a service
+ implementation of a service type that
+ supports multiple registrations of the same service type. Using
+ is not idempotent and can add
+ duplicate
+ instances if called twice. Using
+ will prevent registration
+ of multiple implementation types.
+
+
+
+
+ Removes the first service in with the same service type
+ as and adds to the collection.
+
+ The .
+ The to replace with.
+ The for chaining.
+
+
+
+ Removes all services of type in .
+
+ The .
+ The for chaining.
+
+
+
+ Removes all services of type in .
+
+ The .
+ The service type to remove.
+ The for chaining.
+
+
+
+ Adds the specified as a service
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The service key.
+
+
+
+ Adds the specified as a service
+ with the implementation
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The service key.
+ The implementation type of the service.
+
+
+
+ Adds the specified as a service
+ using the factory specified in
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The service key.
+ The factory that creates the service.
+
+
+
+ Adds the specified as a service
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The .
+ The service key.
+
+
+
+ Adds the specified as a service
+ implementation type specified in
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The .
+ The service key.
+
+
+
+ Adds the specified as a service
+ using the factory specified in
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The .
+ The service key.
+ The factory that creates the service.
+
+
+
+ Adds the specified as a service
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The service key.
+
+
+
+ Adds the specified as a service
+ with the implementation
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The service key.
+ The implementation type of the service.
+
+
+
+ Adds the specified as a service
+ using the factory specified in
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The service key.
+ The factory that creates the service.
+
+
+
+ Adds the specified as a service
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The .
+ The service key.
+
+
+
+ Adds the specified as a service
+ implementation type specified in
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The .
+ The service key.
+
+
+
+ Adds the specified as a service
+ using the factory specified in
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The .
+ The factory that creates the service.
+ The service key.
+
+
+
+ Adds the specified as a service
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The service key.
+
+
+
+ Adds the specified as a service
+ with the implementation
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The service key.
+ The implementation type of the service.
+
+
+
+ Adds the specified as a service
+ using the factory specified in
+ to the if the service type hasn't already been registered.
+
+ The .
+ The type of the service to register.
+ The service key.
+ The factory that creates the service.
+
+
+
+ Adds the specified as a service
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The .
+ The service key.
+
+
+
+ Adds the specified as a service
+ implementation type specified in
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The .
+ The service key.
+
+
+
+ Adds the specified as a service
+ with an instance specified in
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The .
+ The service key.
+ The instance of the service to add.
+
+
+
+ Adds the specified as a service
+ using the factory specified in
+ to the if the service type hasn't already been registered.
+
+ The type of the service to add.
+ The .
+ The service key.
+ The factory that creates the service.
+
+
+
+ Removes all services of type in .
+
+ The .
+ The service key.
+ The for chaining.
+
+
+
+ Removes all services of type in .
+
+ The .
+ The service type to remove.
+ The service key.
+ The for chaining.
+
+
+
+ Indicates that the parameter should be bound using the keyed service registered with the specified key.
+
+
+
+
+ Creates a new instance.
+
+ The key of the keyed service to bind to.
+
+
+
+ The key of the keyed service to bind to.
+
+
+
+
+ IKeyedServiceProvider is a service provider that can be used to retrieve services using a key in addition
+ to a type.
+
+
+
+
+ Gets the service object of the specified type.
+
+ An object that specifies the type of service object to get.
+ An object that specifies the key of service object to get.
+ A service object of type serviceType. -or- null if there is no service object of type serviceType.
+
+
+
+ Gets service of type from the implementing
+ this interface.
+
+ An object that specifies the type of service object to get.
+ The of the service.
+ A service object of type .
+ Throws an exception if the cannot create the object.
+
+
+
+ Statics for use with .
+
+
+
+
+ Represents a key that matches any key.
+
+
+
+
+ Specifies the contract for a collection of service descriptors.
+
+
+
+
+ Provides an extension point for creating a container specific builder and an .
+
+
+
+
+ Creates a container builder from an .
+
+ The collection of services
+ A container builder that can be used to create an .
+
+
+
+ Creates an from the container builder.
+
+ The container builder
+ An
+
+
+
+ Optional service used to determine if the specified type with the specified service key is available
+ from the .
+
+
+
+
+ Determines if the specified service type with the specified service key is available from the
+ .
+
+ An object that specifies the type of service object to test.
+ The of the service.
+ true if the specified service is a available, false if it is not.
+
+
+
+ Optional service used to determine if the specified type is available from the .
+
+
+
+
+ Determines if the specified service type is available from the .
+
+ An object that specifies the type of service object to test.
+ true if the specified service is a available, false if it is not.
+
+
+
+ The method ends the scope lifetime. Once Dispose
+ is called, any scoped services that have been resolved from
+ will be
+ disposed.
+
+
+
+
+ The used to resolve dependencies from the scope.
+
+
+
+
+ A factory for creating instances of , which is used to create
+ services within a scope.
+
+
+
+
+ Create an which
+ contains an used to resolve dependencies from a
+ newly created scope.
+
+
+ An controlling the
+ lifetime of the scope. Once this is disposed, any scoped services that have been resolved
+ from the
+ will also be disposed.
+
+
+
+
+ Optional contract used by
+ to resolve services if supported by .
+
+
+
+
+ Gets service of type from the implementing
+ this interface.
+
+ An object that specifies the type of service object to get.
+ A service object of type .
+ Throws an exception if the cannot create the object.
+
+
+
+ The result of .
+
+ The to get service arguments from.
+ Additional constructor arguments.
+ The instantiated type.
+
+
+
+ The result of . A delegate to specify a factory method to call to instantiate an instance of type `T`
+
+ The type of the instance being returned
+ The to get service arguments from.
+ Additional constructor arguments.
+ An instance of T
+
+
+
+ Default implementation of .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Makes this collection read-only.
+
+
+ After the collection is marked as read-only, any further attempt to modify it throws an .
+
+
+
+
+ Extension methods for adding services to an .
+
+
+ Extension methods for adding services to an .
+
+
+
+
+ Adds a transient service of the type specified in with an
+ implementation of the type specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register.
+ The implementation type of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a transient service of the type specified in with a
+ factory specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a transient service of the type specified in with an
+ implementation type specified in to the
+ specified .
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The to add the service to.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a transient service of the type specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register and the implementation to use.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a transient service of the type specified in to the
+ specified .
+
+ The type of the service to add.
+ The to add the service to.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a transient service of the type specified in with a
+ factory specified in to the
+ specified .
+
+ The type of the service to add.
+ The to add the service to.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a transient service of the type specified in with an
+ implementation type specified in using the
+ factory specified in to the
+ specified .
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The to add the service to.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a scoped service of the type specified in with an
+ implementation of the type specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register.
+ The implementation type of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a scoped service of the type specified in with a
+ factory specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a scoped service of the type specified in with an
+ implementation type specified in to the
+ specified .
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The to add the service to.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a scoped service of the type specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register and the implementation to use.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a scoped service of the type specified in to the
+ specified .
+
+ The type of the service to add.
+ The to add the service to.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a scoped service of the type specified in with a
+ factory specified in to the
+ specified .
+
+ The type of the service to add.
+ The to add the service to.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a scoped service of the type specified in with an
+ implementation type specified in using the
+ factory specified in to the
+ specified .
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The to add the service to.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in with an
+ implementation of the type specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register.
+ The implementation type of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in with a
+ factory specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in with an
+ implementation type specified in to the
+ specified .
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The to add the service to.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register and the implementation to use.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in to the
+ specified .
+
+ The type of the service to add.
+ The to add the service to.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in with a
+ factory specified in to the
+ specified .
+
+ The type of the service to add.
+ The to add the service to.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in with an
+ implementation type specified in using the
+ factory specified in to the
+ specified .
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The to add the service to.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in with an
+ instance specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register.
+ The instance of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in with an
+ instance specified in to the
+ specified .
+
+ The to add the service to.
+ The instance of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a transient service of the type specified in with an
+ implementation of the type specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register.
+ The of the service.
+ The implementation type of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a transient service of the type specified in with a
+ factory specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register.
+ The of the service.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a transient service of the type specified in with an
+ implementation type specified in to the
+ specified .
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The to add the service to.
+ The of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a transient service of the type specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register and the implementation to use.
+ The of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a transient service of the type specified in to the
+ specified .
+
+ The type of the service to add.
+ The to add the service to.
+ The of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a transient service of the type specified in with a
+ factory specified in to the
+ specified .
+
+ The type of the service to add.
+ The to add the service to.
+ The of the service.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a transient service of the type specified in with an
+ implementation type specified in using the
+ factory specified in to the
+ specified .
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The to add the service to.
+ The of the service.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a scoped service of the type specified in with an
+ implementation of the type specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register.
+ The of the service.
+ The implementation type of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a scoped service of the type specified in with a
+ factory specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register.
+ The of the service.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a scoped service of the type specified in with an
+ implementation type specified in to the
+ specified .
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The to add the service to.
+ The of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a scoped service of the type specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register and the implementation to use.
+ The of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a scoped service of the type specified in to the
+ specified .
+
+ The type of the service to add.
+ The to add the service to.
+ The of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a scoped service of the type specified in with a
+ factory specified in to the
+ specified .
+
+ The type of the service to add.
+ The to add the service to.
+ The of the service.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a scoped service of the type specified in with an
+ implementation type specified in using the
+ factory specified in to the
+ specified .
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The to add the service to.
+ The of the service.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in with an
+ implementation of the type specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register.
+ The of the service.
+ The implementation type of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in with a
+ factory specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register.
+ The of the service.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in with an
+ implementation type specified in to the
+ specified .
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The to add the service to.
+ The of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register and the implementation to use.
+ The of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in to the
+ specified .
+
+ The type of the service to add.
+ The to add the service to.
+ The of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in with a
+ factory specified in to the
+ specified .
+
+ The type of the service to add.
+ The to add the service to.
+ The of the service.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in with an
+ implementation type specified in using the
+ factory specified in to the
+ specified .
+
+ The type of the service to add.
+ The type of the implementation to use.
+ The to add the service to.
+ The of the service.
+ The factory that creates the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in with an
+ instance specified in to the
+ specified .
+
+ The to add the service to.
+ The type of the service to register.
+ The of the service.
+ The instance of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Adds a singleton service of the type specified in with an
+ instance specified in to the
+ specified .
+
+ The to add the service to.
+ The of the service.
+ The instance of the service.
+ A reference to this instance after the operation has completed.
+
+
+
+
+ Describes a service with its service type, implementation, and lifetime.
+
+
+
+
+ Initializes a new instance of with the specified .
+
+ The of the service.
+ The implementing the service.
+ The of the service.
+
+
+
+ Initializes a new instance of with the specified .
+
+ The of the service.
+ The of the service.
+ The implementing the service.
+ The of the service.
+
+
+
+ Initializes a new instance of with the specified
+ as a .
+
+ The of the service.
+ The instance implementing the service.
+
+
+
+ Initializes a new instance of with the specified
+ as a .
+
+ The of the service.
+ The of the service.
+ The instance implementing the service.
+
+
+
+ Initializes a new instance of with the specified .
+
+ The of the service.
+ A factory used for creating service instances.
+ The of the service.
+
+
+
+ Initializes a new instance of with the specified .
+
+ The of the service.
+ The of the service.
+ A factory used for creating service instances.
+ The of the service.
+
+
+
+ Gets the of the service.
+
+
+
+
+ Get the key of the service, if applicable.
+
+
+
+
+ Gets the of the service.
+
+
+
+
+ Gets the that implements the service.
+
+
+
+
+ Gets the that implements the service.
+
+
+
+
+ Gets the instance that implements the service.
+
+
+
+
+ Gets the instance that implements the service.
+
+
+
+
+ Gets the factory used for creating service instances.
+
+
+
+
+ Gets the factory used for creating Keyed service instances.
+
+
+
+
+ Indicates whether the service is a keyed service.
+
+
+
+
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ The of the service.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ and
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ and
+ and the lifetime.
+
+ The type of the service.
+ The of the service.
+ The type of the implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ ,
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ ,
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ The of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ The of the service.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ and
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ and
+ and the lifetime.
+
+ The type of the service.
+ The of the service.
+ The type of the implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ ,
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ ,
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ The of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ The of the service.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ and
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ and
+ and the lifetime.
+
+ The type of the service.
+ The of the service.
+ The type of the implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ ,
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ ,
+ and the lifetime.
+
+ The type of the service.
+ The type of the implementation.
+ The of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The of the service.
+ A factory to create new instances of the service implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The instance of the implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The of the service.
+ The instance of the implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The instance of the implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and the lifetime.
+
+ The type of the service.
+ The of the service.
+ The instance of the implementation.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and .
+
+ The type of the service.
+ The type of the implementation.
+ The lifetime of the service.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and .
+
+ The type of the service.
+ The of the service.
+ The type of the implementation.
+ The lifetime of the service.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and .
+
+ The type of the service.
+ A factory to create new instances of the service implementation.
+ The lifetime of the service.
+ A new instance of .
+
+
+
+ Creates an instance of with the specified
+ , ,
+ and .
+
+ The type of the service.
+ The of the service.
+ A factory to create new instances of the service implementation.
+ The lifetime of the service.
+ A new instance of .
+
+
+
+ ServiceKeyAttribute can be specified on a parameter to inject the key that was used for
+ registration/resolution.
+
+
+
+
+ Specifies the lifetime of a service in an .
+
+
+
+
+ Specifies that a single instance of the service will be created.
+
+
+
+
+ Specifies that a new instance of the service will be created for each scope.
+
+
+ In ASP.NET Core applications a scope is created around each server request.
+
+
+
+
+ Specifies that a new instance of the service will be created every time it is requested.
+
+
+
+
+ Extension methods for getting services from an .
+
+
+
+
+ Get service of type from the .
+
+ The type of service object to get.
+ The to retrieve the service object from.
+ An object that specifies the key of service object to get.
+ A service object of type or null if there is no such service.
+
+
+
+ Get service of type from the .
+
+ The to retrieve the service object from.
+ An object that specifies the type of service object to get.
+ An object that specifies the key of service object to get.
+ A service object of type .
+ There is no service of type .
+
+
+
+ Get service of type from the .
+
+ The type of service object to get.
+ The to retrieve the service object from.
+ An object that specifies the key of service object to get.
+ A service object of type .
+ There is no service of type .
+
+
+
+ Get an enumeration of services of type from the .
+
+ The type of service object to get.
+ The to retrieve the services from.
+ An object that specifies the key of service object to get.
+ An enumeration of services of type .
+
+
+
+ Get an enumeration of services of type from the .
+
+ The to retrieve the services from.
+ An object that specifies the type of service object to get.
+ An object that specifies the key of service object to get.
+ An enumeration of services of type .
+
+
+
+ Extension methods for getting services from an .
+
+
+
+
+ Get service of type from the .
+
+ The type of service object to get.
+ The to retrieve the service object from.
+ A service object of type or null if there is no such service.
+
+
+
+ Get service of type from the .
+
+ The to retrieve the service object from.
+ An object that specifies the type of service object to get.
+ A service object of type .
+ There is no service of type .
+
+
+
+ Get service of type from the .
+
+ The type of service object to get.
+ The to retrieve the service object from.
+ A service object of type .
+ There is no service of type .
+
+
+
+ Get an enumeration of services of type from the .
+
+ The type of service object to get.
+ The to retrieve the services from.
+ An enumeration of services of type .
+
+
+
+ Get an enumeration of services of type from the .
+
+ The to retrieve the services from.
+ An object that specifies the type of service object to get.
+ An enumeration of services of type .
+
+
+
+ Creates a new that can be used to resolve scoped services.
+
+ The to create the scope from.
+ A that can be used to resolve scoped services.
+
+
+
+ Creates a new that can be used to resolve scoped services.
+
+ The to create the scope from.
+ An that can be used to resolve scoped services.
+
+
+
+ Creates a new that can be used to resolve scoped services.
+
+ The to create the scope from.
+ An that can be used to resolve scoped services.
+
+
+ Throws an if is null.
+ The reference type argument to validate as non-null.
+ The name of the parameter with which corresponds.
+
+
+
+ Throws either an or an
+ if the specified string is or whitespace respectively.
+
+ String to be checked for or whitespace.
+ The name of the parameter being checked.
+ The original value of .
+
+
+ Multiple constructors accepting all given argument types have been found in type '{0}'. There should only be one applicable constructor.
+
+
+ Unable to resolve service for type '{0}' while attempting to activate '{1}'.
+
+
+ A suitable constructor for type '{0}' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor.
+
+
+ No service for type '{0}' has been registered.
+
+
+ The service collection cannot be modified because it is read-only.
+
+
+ Implementation type cannot be '{0}' because it is indistinguishable from other services registered for '{1}'.
+
+
+ Multiple constructors were marked with {0}.
+
+
+ Constructor marked with {0} does not accept all given argument types.
+
+
+ Instances of abstract classes cannot be created.
+
+
+ Multiple constructors for type '{0}' were found with length {1}.
+
+
+ Unable to resolve service for type '{0}' while attempting to activate '{1}'.
+
+
+ A suitable constructor for type '{0}' could not be located. Ensure the type is concrete and all parameters of a public constructor are either registered as services or passed as arguments. Also ensure no extraneous arguments are provided.
+
+
+ Multiple constructors accepting all given argument types have been found in type '{0}'. There should only be one applicable constructor.
+
+
+ This service provider doesn't support keyed services.
+
+
+ This service descriptor is keyed. Your service provider may not support keyed services.
+
+
+ This service descriptor is not keyed.
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.DependencyInjection.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.DependencyInjection.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a7089eb323614a92f0333a2dc441757b70428469
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.DependencyInjection.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d8df97d7a8e56c88ce877e1a30a4b3003c9a8b05
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Diagnostics.Abstractions.xml
@@ -0,0 +1,336 @@
+
+
+
+ Microsoft.Extensions.Diagnostics.Abstractions
+
+
+
+
+ Represents a type used to configure the metrics system by registering IMetricsListeners and using rules
+ to determine which metrics are enabled.
+
+
+
+
+ The application . This is used by extension methods to register services.
+
+
+
+
+ Represents a type used to listen to metrics emitted from the system.
+
+
+
+
+ The name of the listener. This is used to identify the listener in the rules configuration.
+
+
+
+
+ Called once by the runtime to provide a used to pull for fresh metrics data.
+
+ A that can be called to request current metrics.
+
+
+
+ Called when a new instrument is created and enabled by a matching rule.
+
+ The new .
+ Listener state associated with this instrument. This will be returned to
+ and .
+ Returns true if the listener wants to subscribe to this instrument, otherwise false.
+
+
+
+ Called when a instrument is disabled by the producer or a rules change.
+
+ The being disabled.
+ The original listener state returned by .
+
+
+
+ Called once to get the that will be used to process measurements.
+
+ The .
+
+
+
+ A set of parameters used to determine which instruments are enabled for which listeners. Unspecified
+ parameters match anything.
+
+
+ The most specific rule that matches a given instrument will be used. The priority of parameters is as follows:
+ - MeterName, either an exact match, or the longest prefix match. See .
+ - InstrumentName, an exact match. .
+ - ListenerName, an exact match. .
+ - Scopes
+
+ The or prefix.
+ The .
+ The .
+ The 's to consider.
+ Enables or disabled the matched instrument for this listener.
+
+
+
+ A set of parameters used to determine which instruments are enabled for which listeners. Unspecified
+ parameters match anything.
+
+
+ The most specific rule that matches a given instrument will be used. The priority of parameters is as follows:
+ - MeterName, either an exact match, or the longest prefix match. See .
+ - InstrumentName, an exact match. .
+ - ListenerName, an exact match. .
+ - Scopes
+
+ The or prefix.
+ The .
+ The .
+ The 's to consider.
+ Enables or disabled the matched instrument for this listener.
+
+
+
+ The , either an exact match or the longest prefix match. Only full segment matches are considered.
+ All meters are matched if this is null.
+
+
+
+
+ The , an exact match.
+ All instruments for the given meter are matched if this is null.
+
+
+
+
+ The , an exact match.
+ All listeners are matched if this is null.
+
+
+
+
+ The . This is used to distinguish between meters created via constructors ()
+ and those created via Dependency Injection with ()."/>.
+
+
+
+
+ Indicates if the instrument should be enabled for the listener.
+
+
+
+
+ An interface registered with each IMetricsListener using . The listener
+ can call to receive the current set of measurements for enabled observable instruments.
+
+
+
+
+ Requests that the current set of metrics for enabled instruments be sent to the listener's 's.
+
+
+
+
+ A set of supported measurement types. If a listener does not support a given type, the measurement will be skipped.
+
+
+
+
+ A for . If null, byte measurements will be skipped.
+
+
+
+
+ A for . If null, short measurements will be skipped.
+
+
+
+
+ A for . If null, int measurements will be skipped.
+
+
+
+
+ A for . If null, long measurements will be skipped.
+
+
+
+
+ A for . If null, float measurements will be skipped.
+
+
+
+
+ A for . If null, double measurements will be skipped.
+
+
+
+
+ A for . If null, decimal measurements will be skipped.
+
+
+
+
+ This is used by to distinguish between meters created via constructors ()
+ and those created via Dependency Injection with ()."/>.
+
+
+
+
+ No scope is specified. This should not be used.
+
+
+
+
+ Indicates instances created via constructors.
+
+
+
+
+ Indicates instances created via Dependency Injection with .
+
+
+
+
+ Extension methods for to add or clear registrations, and to enable or disable metrics.
+
+
+ Extension methods for to add or clear registrations, and to enable or disable metrics.
+
+
+
+
+ Registers a new of type .
+
+ The implementation type of the listener.
+ The .
+ Returns the original for chaining.
+
+
+
+ Registers a new instance.
+
+ The implementation type of the listener.
+ The .
+ Returns the original for chaining.
+
+
+
+ Removes all registrations from the dependency injection container.
+
+ The .
+ Returns the original for chaining.
+
+
+
+ Enables all 's for the given meter, for all registered 's.
+
+ The .
+ The or prefix. A null value matches all meters.
+ The original for chaining.
+
+
+
+ Enables a specified for the given and .
+
+ The .
+ The or prefix. A null value matches all meters.
+ The . A null value matches all instruments.
+ The .Name. A null value matches all listeners.
+ Indicates which 's to consider. Default to all scopes.
+ The original for chaining.
+
+
+
+ Enables all 's for the given meter, for all registered 's.
+
+ The .
+ The or prefix. A null value matches all meters.
+ The original for chaining.
+
+
+
+ Enables a specified for the given and .
+
+ The .
+ The or prefix. A null value matches all meters.
+ The . A null value matches all instruments.
+ The .Name. A null value matches all listeners.
+ Indicates which 's to consider. Default to all scopes.
+ The original for chaining.
+
+
+
+ Disables all 's for the given meter, for all registered 's.
+
+ The .
+ The or prefix. A null value matches all meters.
+ The original for chaining.
+
+
+
+ Disables a specified for the given and .
+
+ The .
+ The or prefix. A null value matches all meters.
+ The . A null value matches all instruments.
+ The .Name. A null value matches all listeners.
+ Indicates which 's to consider. Default to all scopes.
+ The original for chaining.
+
+
+
+ Disables all 's for the given meter, for all registered 's.
+
+ The .
+ The or prefix. A null value matches all meters.
+ The original for chaining.
+
+
+
+ Disables a specified for the given and .
+
+ The .
+ The or prefix. A null value matches all meters.
+ The . A null value matches all instruments.
+ The .Name. A null value matches all listeners.
+ Indicates which 's to consider. Default to all scopes.
+ The original for chaining.
+
+
+
+ Options for configuring the metrics system.
+
+
+
+
+ A list of 's that identify which metrics, instruments, and listeners are enabled.
+
+
+
+
+ Pretty print a type name.
+
+ The .
+ true to print a fully qualified name.
+ true to include generic parameter names.
+ true to include generic parameters.
+ Character to use as a delimiter in nested type names
+ The pretty printed type name.
+
+
+ Throws an if is null.
+ The reference type argument to validate as non-null.
+ The name of the parameter with which corresponds.
+
+
+
+ Throws either an or an
+ if the specified string is or whitespace respectively.
+
+ String to be checked for or whitespace.
+ The name of the parameter being checked.
+ The original value of .
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..25bea06265f489ef3e58693a33ad6277c86110a0
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Diagnostics.HealthChecks.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Diagnostics.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Diagnostics.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ded53252565e97b9ef47e1fd93d6f15e637a041b
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Diagnostics.xml
@@ -0,0 +1,110 @@
+
+
+
+ Microsoft.Extensions.Diagnostics
+
+
+
+
+ Used to retrieve the metrics configuration for any listener name.
+
+
+
+
+ Gets the configuration for the given listener.
+
+ The name of listener.
+ The configuration for this listener type.
+
+
+
+ Extensions for for enabling metrics based on .
+
+
+
+
+ Reads metrics configuration from the provided section and configures
+ which 's, 's, and 's are enabled.
+
+ The .
+ The section to load.
+ The original for chaining.
+
+
+
+ Constants for the Console metrics listener.
+
+
+
+
+ The name of the listener used in configuration and enabling instruments.
+
+
+
+
+ IMetricsBuilder extension methods for console output.
+
+
+
+
+ Enables console output for metrics for debugging purposes. This is not recommended for production use.
+
+ The metrics builder.
+ The original metrics builder for chaining.
+
+
+
+ Extension methods for setting up metrics services in an .
+
+
+
+
+ Adds metrics services to the specified .
+
+ The to add services to.
+ The so that additional calls can be chained.
+
+
+
+ Adds metrics services to the specified .
+
+ The to add services to.
+ A callback to configure the .
+ The so that additional calls can be chained.
+
+
+
+ Compares two tag collections for equality.
+
+ The first collection of tags. it has to be a sorted List
+ The second collection of tags. This one doesn't have to be sorted nor be specific collection type
+ True if the two collections are equal, false otherwise
+
+ This method is used to compare two collections of tags for equality. The first collection is expected to be a sorted array
+ of tags. The second collection can be any collection of tags.
+ we avoid the allocation of a new array by using the second collection as is and not converting it to an array. the reason
+ is we call this every time we try to create a meter or instrument and we don't want to allocate a new array every time.
+
+
+
+ Throws an if is null.
+ The reference type argument to validate as non-null.
+ The name of the parameter with which corresponds.
+
+
+
+ Throws either an or an
+ if the specified string is or whitespace respectively.
+
+ String to be checked for or whitespace.
+ The name of the parameter being checked.
+ The original value of .
+
+
+ The meter factory does not allow a custom scope value when creating a meter.
+
+
+ Only one wildcard character is allowed in category name.
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.FileProviders.Composite.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.FileProviders.Composite.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4422eddbe0e4d2f84c7f202f6d903f667a385722
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.FileProviders.Composite.xml
@@ -0,0 +1,94 @@
+
+
+
+ Microsoft.Extensions.FileProviders.Composite
+
+
+
+
+ Represents the result of a call composition of
+ for a list of and a path.
+
+
+
+
+ Creates a new instance of to represents the result of a call composition of
+ .
+
+ The list of for which the results have to be composed.
+ The path.
+
+
+
+ Creates an enumerator for all files in all providers given.
+ Ensures each item in the collection is distinct.
+
+ An enumerator over all files in all given providers
+
+
+
+ True if any given providers exists
+
+
+
+
+ Looks up files using a collection of .
+
+
+
+
+ Initializes a new instance of the class using a collection of file provider.
+
+ The collection of
+
+
+
+ Initializes a new instance of the class using a collection of file provider.
+
+ The collection of
+
+
+
+ Locates a file at the given path.
+
+ The path that identifies the file.
+ The file information. Caller must check Exists property. This will be the first existing returned by the provided or a not found if no existing files is found.
+
+
+
+ Enumerate a directory at the given path, if any.
+
+ The path that identifies the directory
+ Contents of the directory. Caller must check Exists property.
+ The content is a merge of the contents of the provided .
+ When there is multiple with the same Name property, only the first one is included on the results.
+
+
+
+ Creates a for the specified .
+
+ Filter string used to determine what files or folders to monitor. Example: **/*.cs, *.*, subFolder/**/*.cshtml.
+ An that is notified when a file matching is added, modified or deleted.
+ The change token will be notified when one of the change token returned by the provided will be notified.
+
+
+
+ Gets the list of configured instances.
+
+
+
+ Throws an if is null.
+ The reference type argument to validate as non-null.
+ The name of the parameter with which corresponds.
+
+
+
+ Throws either an or an
+ if the specified string is or whitespace respectively.
+
+ String to be checked for or whitespace.
+ The name of the parameter being checked.
+ The original value of .
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.FileProviders.Embedded.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.FileProviders.Embedded.xml
new file mode 100644
index 0000000000000000000000000000000000000000..89e90ce08cd50175dbde072604deb02e51a16b9c
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.FileProviders.Embedded.xml
@@ -0,0 +1,189 @@
+
+
+
+ Microsoft.Extensions.FileProviders.Embedded
+
+
+
+
+ Looks up files using embedded resources in the specified assembly.
+ This file provider is case sensitive.
+
+
+
+
+ Initializes a new instance of the class using the specified
+ assembly with the base namespace defaulting to the assembly name.
+
+ The assembly that contains the embedded resources.
+
+
+
+ Initializes a new instance of the class using the specified
+ assembly and base namespace.
+
+ The assembly that contains the embedded resources.
+ The base namespace that contains the embedded resources.
+
+
+
+ Locates a file at the given path.
+
+ The path that identifies the file.
+
+ The file information. Caller must check Exists property. A if the file could
+ not be found.
+
+
+
+
+ Enumerate a directory at the given path, if any.
+ This file provider uses a flat directory structure. Everything under the base namespace is considered to be one
+ directory.
+
+ The path that identifies the directory
+
+ Contents of the directory. Caller must check Exists property. A if no
+ resources were found that match
+
+
+
+
+ Embedded files do not change.
+
+ This parameter is ignored
+ A
+
+
+
+ Is the character a valid first Everett identifier character?
+
+
+
+
+ Is the character a valid Everett identifier character?
+
+
+
+
+ Make a folder subname into an Everett-compatible identifier
+
+
+
+
+ Make a folder name into an Everett-compatible identifier
+
+
+
+
+ This method is provided for compatibility with Everett which used to convert parts of resource names into
+ valid identifiers
+
+
+
+
+ Represents a file embedded in an assembly.
+
+
+
+
+ Initializes a new instance of for an assembly using as the base
+
+ The assembly that contains the embedded resource
+ The path to the embedded resource
+ An arbitrary name for this instance
+ The to use for
+
+
+
+ Always true.
+
+
+
+
+ The length, in bytes, of the embedded resource
+
+
+
+
+ Always null.
+
+
+
+
+ The name of embedded file
+
+
+
+
+ The time, in UTC, when the was created
+
+
+
+
+ Always false.
+
+
+
+
+
+
+
+ An embedded file provider that uses a manifest compiled in the assembly to
+ reconstruct the original paths of the embedded files when they were embedded
+ into the assembly.
+
+
+
+
+ Initializes a new instance of .
+
+ The assembly containing the embedded files.
+
+
+
+ Initializes a new instance of .
+
+ The assembly containing the embedded files.
+ The relative path from the root of the manifest to use as root for the provider.
+
+
+
+ Initializes a new instance of .
+
+ The assembly containing the embedded files.
+ The relative path from the root of the manifest to use as root for the provider.
+ The LastModified date to use on the instances
+ returned by this .
+
+
+
+ Initializes a new instance of .
+
+ The assembly containing the embedded files.
+ The relative path from the root of the manifest to use as root for the provider.
+ The name of the embedded resource containing the manifest.
+ The LastModified date to use on the instances
+ returned by this .
+
+
+
+ Gets the for this provider.
+
+
+
+
+
+
+
+
+
+
+
+
+ Throws an if is null.
+ The reference type argument to validate as non-null.
+ The name of the parameter with which corresponds.
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.FileProviders.Physical.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.FileProviders.Physical.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b770f707f0a50befd43149a5f651f458d695ba86
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.FileProviders.Physical.xml
@@ -0,0 +1,412 @@
+
+
+
+ Microsoft.Extensions.FileProviders.Physical
+
+
+
+
+ Specifies filtering behavior for files or directories.
+
+
+
+
+ Equivalent to DotPrefixed | Hidden | System. Exclude files and directories when the name begins with a period, or has either or is set on .
+
+
+
+
+ Exclude files and directories when the name begins with period.
+
+
+
+
+ Exclude files and directories when is set on .
+
+
+
+
+ Exclude files and directories when is set on .
+
+
+
+
+ Do not exclude any files.
+
+
+
+
+ Represents a directory on a physical filesystem
+
+
+
+
+ Initializes an instance of that wraps an instance of
+
+ The directory
+
+
+
+
+
+
+ Always equals -1.
+
+
+
+
+
+
+
+
+
+
+ The time when the directory was last written to.
+
+
+
+
+ Always true.
+
+
+
+
+ Always throws an exception because read streams are not support on directories.
+
+ Always thrown
+ Never returns
+
+
+
+ Represents a file on a physical filesystem
+
+
+
+
+ Initializes an instance of that wraps an instance of
+
+ The
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Always false.
+
+
+
+
+
+
+
+
+ A file watcher that watches a physical filesystem for changes.
+
+
+ Triggers events on when files are created, change, renamed, or deleted.
+
+
+
+
+
+ Initializes an instance of that watches files in .
+ Wraps an instance of
+
+ Root directory for the watcher
+ The wrapped watcher that is watching
+
+ True when the watcher should use polling to trigger instances of
+ created by
+
+
+
+
+ Initializes an instance of that watches files in .
+ Wraps an instance of
+
+ Root directory for the watcher
+ The wrapped watcher that is watching
+
+ True when the watcher should use polling to trigger instances of
+ created by
+
+ Specifies which files or directories are excluded. Notifications of changes to are not raised to these.
+
+
+
+
+ Creates an instance of for all files and directories that match the
+
+
+
+ Globbing patterns are relative to the root directory given in the constructor
+ . Globbing patterns
+ are interpreted by .
+
+
+ A globbing pattern for files and directories to watch
+ A change token for all files that match the filter
+ When is null
+
+
+
+ Disposes the provider. Change tokens may not trigger after the provider is disposed.
+
+
+
+
+ Disposes the provider.
+
+ true is invoked from .
+
+
+
+
+ A change token that polls for file system changes.
+
+
+ This change token does not raise any change callbacks. Callers should watch for to turn
+ from false to true
+ and dispose the token after this happens.
+
+
+
+ Polling occurs every 4 seconds.
+
+
+
+
+ Initializes a new instance of that polls the specified file for changes as
+ determined by .
+
+ The to poll
+
+
+
+ Always false.
+
+
+
+
+ True when the file has changed since the change token was created. Once the file changes, this value is always true
+
+
+ Once true, the value will always be true. Change tokens should not re-used once expired. The caller should discard this
+ instance once it sees is true.
+
+
+
+
+ Does not actually register callbacks.
+
+ This parameter is ignored
+ This parameter is ignored
+ A disposable object that noops when disposed
+
+
+
+ A polling based for wildcard patterns.
+
+
+
+
+ Initializes a new instance of .
+
+ The root of the file system.
+ The pattern to watch.
+
+
+
+
+
+
+
+
+
+ Gets the last write time of the file at the specified .
+
+ The root relative path.
+ The that the file was last modified.
+
+
+
+ Represents the contents of a physical file directory
+
+
+
+
+ Initializes an instance of
+
+ The directory
+
+
+
+ Initializes an instance of
+
+ The directory
+ Specifies which files or directories are excluded from enumeration.
+
+
+
+
+
+
+
+
+
+ Looks up files using the on-disk file system
+
+
+ When the environment variable "DOTNET_USE_POLLING_FILE_WATCHER" is set to "1" or "true", calls to
+ will use .
+
+
+
+
+ Initializes a new instance of a PhysicalFileProvider at the given root directory.
+
+ The root directory. This should be an absolute path.
+
+
+
+ Initializes a new instance of a PhysicalFileProvider at the given root directory.
+
+ The root directory. This should be an absolute path.
+ Specifies which files or directories are excluded.
+
+
+
+ Gets or sets a value that determines if this instance of
+ uses polling to determine file changes.
+
+ By default, uses to listen to file change events
+ for . is ineffective in some scenarios such as mounted drives.
+ Polling is required to effectively watch for file changes.
+
+ .
+
+
+ The default value of this property is determined by the value of environment variable named DOTNET_USE_POLLING_FILE_WATCHER.
+ When true or 1, this property defaults to true; otherwise false.
+
+
+
+
+ Gets or sets a value that determines if this instance of
+ actively polls for file changes.
+
+ When , returned by will actively poll for file changes
+ ( will be ) instead of being passive.
+
+
+ This property is only effective when is set.
+
+
+
+ The default value of this property is determined by the value of environment variable named DOTNET_USE_POLLING_FILE_WATCHER.
+ When true or 1, this property defaults to true; otherwise false.
+
+
+
+
+ Disposes the provider. Change tokens may not trigger after the provider is disposed.
+
+
+
+
+ Disposes the provider.
+
+ true is invoked from .
+
+
+
+ The root directory for this instance.
+
+
+
+
+ Locate a file at the given path by directly mapping path segments to physical directories.
+
+ A path under the root directory
+ The file information. Caller must check property.
+
+
+
+ Enumerate a directory at the given path, if any.
+
+ A path under the root directory. Leading slashes are ignored.
+
+ Contents of the directory. Caller must check property. if
+ is absolute, if the directory does not exist, or has invalid
+ characters.
+
+
+
+
+ Creates a for the specified .
+ Globbing patterns are interpreted by .
+
+
+ Filter string used to determine what files or folders to monitor. Example: **/*.cs, *.*,
+ subFolder/**/*.cshtml.
+
+
+ An that is notified when a file matching is added,
+ modified or deleted. Returns a if has invalid filter
+ characters or if is an absolute path or outside the root directory specified in the
+ constructor .
+
+
+
+ Throws an if is null.
+ The reference type argument to validate as non-null.
+ The name of the parameter with which corresponds.
+
+
+
+ Throws either an or an
+ if the specified string is or whitespace respectively.
+
+ String to be checked for or whitespace.
+ The name of the parameter being checked.
+ The original value of .
+
+
+ Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.
+
+
+ Non-negative number required.
+
+
+ The fileSystemWatcher parameter must be non-null when pollForChanges is false.
+
+
+ Cannot create a stream for a directory.
+
+
+ Cannot modify {0} once file watcher has been initialized.
+
+
+ The hash algorithm name cannot be null or empty.
+
+
+ Unexpected type of FileSystemInfo
+
+
+ The type '{0}' is not supported on this platform, use polling instead.
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ef999df5dd0ac47b18fc77ff25324888d64d8d53
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4b4b698c7ee6b792ce8b3084bfae6385b894401a
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Hosting.Abstractions.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Identity.Core.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Identity.Core.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f4d803e9e4ff9c176186c95706e9f93bbe8157c9
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Identity.Core.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Identity.Stores.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Identity.Stores.dll
new file mode 100644
index 0000000000000000000000000000000000000000..86e84a93782fc0923c94c3e154ca84662ef400f0
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Identity.Stores.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Localization.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Localization.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6ac251767dea32be079a0d251ad62333a0720ce3
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Localization.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.Abstractions.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b403bf4416fbc2ff1a795b852a64ebdf906ce254
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.Abstractions.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.Configuration.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.Configuration.dll
new file mode 100644
index 0000000000000000000000000000000000000000..55f9a91746c5ae88219a4a0d36bf2e48e54057fa
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.Configuration.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.Debug.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.Debug.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e9918287df1187424f7a69a35662c7d1e60a2ec6
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.Debug.xml
@@ -0,0 +1,108 @@
+
+
+
+ Microsoft.Extensions.Logging.Debug
+
+
+
+
+ A logger that writes messages in the debug output window only when a debugger is attached.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The name of the logger.
+
+
+
+
+
+
+
+
+
+
+
+
+ The provider for the .
+
+
+
+
+
+
+
+
+
+
+ Extension methods for the class.
+
+
+
+
+ Adds a debug logger that is enabled for .Information or higher.
+
+ The extension method argument.
+ The minimum to be logged. This parameter is no longer honored and will be ignored.
+
+
+
+ Adds a debug logger that is enabled as defined by the filter function.
+
+ The extension method argument.
+ The function used to filter events based on the log level. This parameter is no longer honored and will be ignored.
+
+
+
+ Adds a debug logger that is enabled for s of minLevel or higher.
+
+ The extension method argument.
+
+
+
+ Adds a debug logger named 'Debug' to the factory.
+
+ The extension method argument.
+
+
+
+ Scope provider that does nothing.
+
+
+
+
+ Returns a cached instance of .
+
+
+
+
+
+
+
+
+
+
+ An empty scope without any logic
+
+
+
+
+
+
+ Throws an if is null.
+ The reference type argument to validate as non-null.
+ The name of the parameter with which corresponds.
+
+
+
+ Throws either an or an
+ if the specified string is or whitespace respectively.
+
+ String to be checked for or whitespace.
+ The name of the parameter being checked.
+ The original value of .
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.EventLog.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.EventLog.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d869037ff725821cfb23464453c6cc044f47f9de
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.EventLog.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.EventSource.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.EventSource.dll
new file mode 100644
index 0000000000000000000000000000000000000000..369d9ec17f37bb69f709d46d55f16ecd130fccf0
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.EventSource.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.TraceSource.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.TraceSource.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e158c88747bf32a6583f32a0fbc17e676b4843ff
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.TraceSource.xml
@@ -0,0 +1,155 @@
+
+
+
+ Microsoft.Extensions.Logging.TraceSource
+
+
+
+
+ Extension methods for setting up on a .
+
+
+
+
+ Adds a logger that writes to .
+
+ The to use.
+ The to use.
+ The to use.
+ The so that additional calls can be chained.
+
+
+
+ Adds a logger that writes to .
+
+ The to use.
+ The to use.
+ The so that additional calls can be chained.
+
+
+
+ Adds a logger that writes to .
+
+ The to use.
+ The name of the to use.
+ The to use.
+ The so that additional calls can be chained.
+
+
+
+ Adds a logger that writes to .
+
+ The to use.
+ The name of the to use.
+ The so that additional calls can be chained.
+
+
+
+ Adds a logger that writes to .
+
+ The to use.
+ The name of the to use.
+ The so that additional calls can be chained.
+
+
+
+ Adds a logger that writes to .
+
+ The to use.
+ The name of the to use.
+ The to use.
+ The so that additional calls can be chained.
+
+
+
+ Adds a logger that writes to .
+
+ The to use.
+ The to use.
+ The so that additional calls can be chained.
+
+
+
+ Adds a logger that writes to .
+
+ The to use.
+ The to use.
+ The to use.
+ The so that additional calls can be chained.
+
+
+
+ A logger that writes a trace source log message.
+
+
+
+
+ Initializes a new instance of the class.
+
+ trace source
+
+
+
+
+
+
+ Provides an ILoggerFactory based on System.Diagnostics.TraceSource.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The to use.
+
+
+
+ Initializes a new instance of the class.
+
+ The to use.
+ The to use.
+
+
+
+ Creates a new for the given component name.
+
+ The name of the to add.
+ The that was created.
+
+
+
+
+
+
+ Provides an IDisposable that represents a logical operation scope based on System.Diagnostics LogicalOperationStack
+
+
+
+
+ Pushes state onto the LogicalOperationStack by calling
+
+
+ The state.
+
+
+
+ Pops a state off the LogicalOperationStack by calling
+
+
+
+
+ Throws an if is null.
+ The reference type argument to validate as non-null.
+ The name of the parameter with which corresponds.
+
+
+
+ Throws either an or an
+ if the specified string is or whitespace respectively.
+
+ String to be checked for or whitespace.
+ The name of the parameter being checked.
+ The original value of .
+
+
+
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d051b1a42782a3fd8d5cd67d83af567845fea3c1
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Logging.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.ObjectPool.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.ObjectPool.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9843a4b1dc8e0282358bac717efcf5c4cf0eb9f4
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.ObjectPool.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..90c84787d7ccef7cfc751ab4f2ab047e55ca7f0c
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Primitives.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..10d2208ee5accdaa0c1905a8b8457d2bab2678bf
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.Primitives.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.WebEncoders.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.WebEncoders.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8a744700bdb49a4b30a15e0d1cdc94a175be45d2
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Extensions.WebEncoders.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Net.Http.Headers.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Net.Http.Headers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2581606fa646e01883f7f739233fdffcd2662e4e
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Net.Http.Headers.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.EventLog.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.EventLog.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a3e39dec970cbbf84877f81da55f8a50ec4b378f
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.EventLog.xml
@@ -0,0 +1,2249 @@
+
+
+
+ System.Diagnostics.EventLog
+
+
+
+ Provides data for the event.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified event log entry.
+ An that represents the entry that was written.
+
+
+ Gets the event log entry that was written to the log.
+ An that represents the entry that was written to the event log.
+
+
+ Represents the method that will handle the event of an .
+ The source of the event.
+ An that contains the event data.
+
+
+ Represents a placeholder (bookmark) within an event stream. You can use the placeholder to mark a position and return to this position in a stream of events. An instance of this object can be obtained from an object, in which case it corresponds to the position of that event record.
+
+
+ Creates a bookmark that identifies an event in a channel.
+ An XML string that represents the bookmark.
+
+
+ Gets the XML string that represents the bookmark.
+
+
+ Represents a keyword for an event. Keywords are defined in an event provider and are used to group the event with other similar events (based on the usage of the events).
+
+
+ Gets the localized name of the keyword.
+ A string that contains a localized name for this keyword.
+
+
+ Gets the non-localized name of the keyword.
+ A string that contains the non-localized name of this keyword.
+
+
+ Gets the numeric value associated with the keyword.
+ The numeric value associated with the keyword.
+
+
+ Contains an event level that is defined in an event provider. The level signifies the severity of the event.
+
+
+ Gets the localized name for the event level. The name describes what severity level of events this level is used for.
+ A string that contains the localized name for the event level.
+
+
+ Gets the non-localized name of the event level.
+ A string that contains the non-localized name of the event level.
+
+
+ Gets the numeric value of the event level.
+ The numeric value of the event level.
+
+
+ Contains static information and configuration settings for an event log. Many of the configurations settings were defined by the event provider that created the log.
+
+
+ Initializes a new object by specifying the local event log for which to get information and configuration settings.
+ The name of the local event log for which to get information and configuration settings.
+
+
+ Initializes a new object by specifying the name of the log for which to get information and configuration settings. The log can be on the local computer or a remote computer, based on the event log session specified.
+ The name of the event log for which to get information and configuration settings.
+ The event log session used to determine the event log service that the specified log belongs to. The session is either connected to the event log service on the local computer or a remote computer.
+
+
+ Releases all the resources used by this object.
+
+
+ Releases the unmanaged resources used by this object, and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Saves the configuration settings that.
+
+
+ Gets a value that indicates whether the event log is a classic event log. A classic event log is one that has its events defined in an .mc file instead of a manifest (.xml file) used by the event provider.
+
+ if the event log is a classic log; otherwise, .
+
+
+ Gets or sets a value that indicates whether the event log is enabled or disabled. An enabled log is one in which events can be logged, and a disabled log is one in which events cannot be logged.
+
+ if the log is enabled; otherwise, .
+
+
+ Gets or sets the file directory path to the location of the file where the events are stored for the log.
+ A string that contains the path to the event log file.
+
+
+ Gets an value that specifies whether the event log is an application, system, or custom event log.
+ One of the enumeration values.
+
+
+ Gets or sets an value that determines how events are handled when the event log becomes full.
+ One of the enumeration values.
+
+
+ Gets the name of the event log.
+ The name of the event log.
+
+
+ Gets an value that determines the type of the event log.
+ One of the enumeration values.
+
+
+ Gets or sets the maximum size, in bytes, that the event log file is allowed to be. When the file reaches this maximum size, it is considered full.
+ The maximum size, in bytes, that the event log file is allowed to be.
+
+
+ Gets the name of the event provider that created this event log.
+ The name of the event provider that created this event log.
+
+
+ Gets the size of the buffer that the event provider uses for publishing events to the log.
+ The size of the buffer that the event provider uses for publishing events to the log. It can be .
+
+
+ Gets the control globally unique identifier (GUID) for the event log if the log is a debug log. If this log is not a debug log, this value is .
+ A GUID value, or if the log is not a debug log.
+
+
+ Gets or sets the keyword mask used by the event provider.
+ The keyword mask used by the event provider, or if the event provider did not define any keywords.
+
+
+ Gets the maximum latency time used by the event provider when publishing events to the log.
+ The maximum latency time used by the event provider when publishing events to the log, or if no latency time was specified by the event provider.
+
+
+ Gets or sets the maximum event level (which defines the severity of the event) that is allowed to be logged in the event log. This value is defined by the event provider.
+ The maximum event level that is allowed to be logged in the event log, or if the maximum event level was not defined in the event provider.
+
+
+ Gets the maximum number of buffers used by the event provider to publish events to the event log.
+ The maximum number of buffers used by the event provider to publish events to the event log. This value can be .
+
+
+ Gets the minimum number of buffers used by the event provider to publish events to the event log.
+ The minimum number of buffers used by the event provider to publish events to the event log. This value can be .
+
+
+ Gets an enumerable collection of the names of all the event providers that can publish events to this event log.
+ An enumerable collection of strings that contain the event provider names.
+
+
+ Gets or sets the security descriptor of the event log. The security descriptor defines the users and groups of users that can read and write to the event log.
+ A string that contains the security descriptor for the event log.
+
+
+ Represents the base class for all the exceptions that are thrown when an error occurs while reading event log related information.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the error code for the exception.
+ The error code for the error that occurred while reading or configuring event log related information.
+
+
+ Initializes a new instance of the class with serialized data.
+ The object that holds the serialized object data about the exception being thrown.
+ The object that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class by specifying the error message that describes the current exception.
+ The error message that describes the current exception.
+
+
+ Initializes a new instance of the class with an error message and inner exception.
+ The error message that describes the current exception.
+ The Exception instance that caused the current exception.
+
+
+ Sets the SerializationInfo object with information about the exception.
+ The object that holds the serialized object data about the exception thrown.
+ The object that contains contextual information about the source or destination.
+
+
+ Gets the error message that describes the current exception.
+ Returns a string that contains the error message that describes the current exception.
+
+
+ Allows you to access the run-time properties of active event logs and event log files. These properties include the number of events in the log, the size of the log, a value that determines whether the log is full, and the last time the log was written to or accessed.
+
+
+ Gets the file attributes of the log file associated with the log.
+ Returns an integer value. This value can be null.
+
+
+ Gets the time that the log file associated with the event log was created.
+ Returns a object. This value can be null.
+
+
+ Gets the size of the file, in bytes, associated with the event log.
+ Returns a long value.
+
+
+ Gets a Boolean value that determines whether the log file has reached its maximum size (the log is full).
+ Returns if the log is full, and returns if the log is not full.
+
+
+ Gets the last time the log file associated with the event log was accessed.
+ Returns a object. This value can be null.
+
+
+ Gets the last time data was written to the log file associated with the event log.
+ Returns a object. This value can be null.
+
+
+ Gets the number of the oldest event record in the event log.
+ Returns a long value that represents the number of the oldest event record in the event log. This value can be null.
+
+
+ Gets the number of event records in the event log.
+ Returns a long value that represents the number of event records in the event log. This value can be null.
+
+
+ Represents the exception thrown when an event provider publishes invalid data in an event.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialized data.
+ The object that holds the serialized object data about the exception thrown.
+ The object that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class by specifying the error message that describes the current exception.
+ The error message that describes the current exception.
+
+
+ Initializes a new instance of the class with an error message and inner exception.
+ The error message that describes the current exception.
+ The Exception instance that caused the current exception.
+
+
+ Defines the default access permissions for the event log. The Application and System values indicate that the log shares the access control list (ACL) with the appropriate Windows log (the Application or System event logs) and share the Event Tracing for Windows (ETW) session with other logs of the same isolation. All channels with Custom isolation use a private ETW session.
+
+
+ The log shares the access control list with the Application event log and shares the ETW session with other logs that have Application isolation.
+
+
+ The event log is a custom event log that uses its own private ETW session.
+
+
+ The log shares the access control list with the System event log and shares the ETW session with other logs that have System isolation.
+
+
+ Represents a link between an event provider and an event log that the provider publishes events into. This object cannot be instantiated.
+
+
+ Gets the localized name of the event log.
+ Returns a string that contains the localized name of the event log.
+
+
+ Gets a Boolean value that determines whether the event log is imported, rather than defined in the event provider. An imported event log is defined in a different provider.
+ Returns if the event log is imported by the event provider, and returns if the event log is not imported by the event provider.
+
+
+ Gets the non-localized name of the event log associated with this object.
+ Returns a string that contains the non-localized name of the event log associated with this object.
+
+
+ Determines the behavior for the event log service handles an event log when the log reaches its maximum allowed size (when the event log is full).
+
+
+ Archive the log when full, do not overwrite events. The log is automatically archived when necessary. No events are overwritten.
+
+
+ New events continue to be stored when the log file is full. Each new incoming event replaces the oldest event in the log.
+
+
+ Do not overwrite events. Clear the log manually rather than automatically.
+
+
+ Represents the exception that is thrown when a requested event log (usually specified by the name of the event log or the path to the event log file) does not exist.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialized data.
+ The object that holds the serialized object data about the exception thrown.
+ The object that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class by specifying the error message that describes the current exception.
+ The error message that describes the current exception.
+
+
+ Initializes a new instance of the class with an error message and inner exception.
+ The error message that describes the current exception.
+ The Exception instance that caused the current exception.
+
+
+ Contains an array of strings that represent XPath queries for elements in the XML representation of an event, which is based on the Event Schema. The queries in this object are used to extract values from the event.
+
+
+ Initializes a new class instance.
+ XPath queries used to extract values from the XML representation of the event.
+
+
+ Releases all the resources used by this object.
+
+
+ Releases the unmanaged resources used by this object, and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Represents the exception that is thrown when a specified event provider name references a disabled event provider. A disabled event provider cannot publish events.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialized data.
+ The object that holds the serialized object data about the exception thrown.
+ The object that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class by specifying the error message that describes the current exception.
+ The error message that describes the current exception.
+
+
+ Initializes a new instance of the class with an error message and inner exception.
+ The error message that describes the current exception.
+ The Exception instance that caused the current exception.
+
+
+ Represents a query for events in an event log and the settings that define how the query is executed and on what computer the query is executed on.
+
+
+ Initializes a new instance of the class by specifying the target of the query. The target can be an active event log or a log file.
+ The name of the event log to query, or the path to the event log file to query.
+ Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file.
+
+
+ Initializes a new instance of the class by specifying the target of the query and the event query. The target can be an active event log or a log file.
+ The name of the event log to query, or the path to the event log file to query.
+ Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file.
+ The event query used to retrieve events that match the query conditions.
+
+
+ Gets or sets the Boolean value that determines whether to read events from the newest event in an event log to the oldest event in the log.
+ Returns if events are read from the newest event in the log to the oldest event, and returns if events are read from the oldest event in the log to the newest event.
+
+
+ Gets or sets the session that access the Event Log service on the local computer or a remote computer. This object can be set to access a remote event log by creating a object or an object with this object.
+ Returns an object.
+
+
+ Gets or sets a Boolean value that determines whether this query will continue to retrieve events when the query has an error.
+
+ indicates that the query will continue to retrieve events even if the query fails for some logs, and indicates that this query will not continue to retrieve events when the query fails.
+
+
+ Enables you to read events from an event log based on an event query. The events that are read by this object are returned as objects.
+
+
+ Initializes a new instance of the class by specifying an event query.
+ The event query used to retrieve events.
+
+
+ Initializes a new instance of the class by specifying an event query and a bookmark that is used as starting position for the query.
+ The event query used to retrieve events.
+ The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events logged after the bookmark event will be returned by the query.
+
+
+ Initializes a new instance of the class by specifying an active event log to retrieve events from.
+ The name of the event log to retrieve events from.
+
+
+ Initializes a new instance of the class by specifying the name of an event log to retrieve events from or the path to a log file to retrieve events from.
+ The name of the event log to retrieve events from, or the path to the event log file to retrieve events from.
+ Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file.
+
+
+ Cancels the current query operation.
+
+
+ Releases all the resources used by this object.
+
+
+ Releases the unmanaged resources used by this object, and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Reads the next event that is returned from the event query in this object.
+ Returns an object.
+
+
+ Reads the next event that is returned from the event query in this object.
+ The maximum time to allow the read operation to run before canceling the operation.
+ Returns an object.
+
+
+ Changes the position in the event stream where the next event that is read will come from by specifying a bookmark event. No events logged before the bookmark event will be retrieved.
+ The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events that have been logged after the bookmark event will be returned by the query.
+
+
+ Changes the position in the event stream where the next event that is read will come from by specifying a bookmark event and an offset number of events from the bookmark. No events logged before the bookmark plus the offset will be retrieved.
+ The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events that have been logged after the bookmark event will be returned by the query.
+ The offset number of events to change the position of the bookmark.
+
+
+ Changes the position in the event stream where the next event that is read will come from by specifying a starting position and an offset from the starting position. No events logged before the starting position plus the offset will be retrieved.
+ A value from the enumeration defines where in the stream of events to start querying for events.
+ The offset number of events to add to the origin.
+
+
+ Gets or sets the number of events retrieved from the stream of events on every read operation.
+ Returns an integer value.
+
+
+ Gets the status of each event log or log file associated with the event query in this object.
+ Returns a list of objects that each contain status information about an event log associated with the event query in this object.
+
+
+ Represents an exception that is thrown when an error occurred while reading, querying, or subscribing to the events in an event log.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialized data.
+ The object that holds the serialized object data about the exception thrown.
+ The object that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class by specifying the error message that describes the current exception.
+ The error message that describes the current exception.
+
+
+ Initializes a new instance of the class with an error message and inner exception.
+ The error message that describes the current exception.
+ The Exception instance that caused the current exception.
+
+
+ Contains the properties of an event instance for an event that is received from an object. The event properties provide information about the event such as the name of the computer where the event was logged and the time that the event was created.
+
+
+ Releases the unmanaged resources used by this object, and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Gets the event message in the current locale.
+ Returns a string that contains the event message in the current locale.
+
+
+ Gets the event message, replacing variables in the message with the specified values.
+ The values used to replace variables in the event message. Variables are represented by %n, where n is a number.
+ Returns a string that contains the event message in the current locale.
+
+
+ Gets the enumeration of the values of the user-supplied event properties, or the results of XPath-based data if the event has XML representation.
+ Selects the property values to return.
+ Returns a list of objects.
+
+
+ Gets the XML representation of the event. All of the event properties are represented in the event's XML. The XML conforms to the event schema.
+ Returns a string that contains the XML representation of the event.
+
+
+ Gets the globally unique identifier (GUID) for the activity in process for which the event is involved. This allows consumers to group related activities.
+ Returns a GUID value.
+
+
+ Gets a placeholder (bookmark) that corresponds to this event. This can be used as a placeholder in a stream of events.
+ Returns a object.
+
+
+ Gets the name of the event log or the event log file in which the event is stored.
+ Returns a string that contains the name of the event log or the event log file in which the event is stored.
+
+
+ Gets the identifier for this event. All events with this identifier value represent the same type of event.
+ Returns an integer value. This value can be null.
+
+
+ Gets the keyword mask of the event. Get the value of the property to get the name of the keywords used in this mask.
+ Returns a long value. This value can be null.
+
+
+ Gets the display names of the keywords used in the keyword mask for this event.
+ Returns an enumerable collection of strings that contain the display names of the keywords used in the keyword mask for this event.
+
+
+ Gets the level of the event. The level signifies the severity of the event. For the name of the level, get the value of the property.
+ Returns a byte value. This value can be null.
+
+
+ Gets the display name of the level for this event.
+ Returns a string that contains the display name of the level for this event.
+
+
+ Gets the name of the event log where this event is logged.
+ Returns a string that contains a name of the event log that contains this event.
+
+
+ Gets the name of the computer on which this event was logged.
+ Returns a string that contains the name of the computer on which this event was logged.
+
+
+ Gets a list of query identifiers that this event matches. This event matches a query if the query would return this event.
+ Returns an enumerable collection of integer values.
+
+
+ Gets the opcode of the event. The opcode defines a numeric value that identifies the activity or a point within an activity that the application was performing when it raised the event. For the name of the opcode, get the value of the property.
+ Returns a short value. This value can be null.
+
+
+ Gets the display name of the opcode for this event.
+ Returns a string that contains the display name of the opcode for this event.
+
+
+ Gets the process identifier for the event provider that logged this event.
+ Returns an integer value. This value can be null.
+
+
+ Gets the user-supplied properties of the event.
+ Returns a list of objects.
+
+
+ Gets the globally unique identifier (GUID) of the event provider that published this event.
+ Returns a GUID value. This value can be null.
+
+
+ Gets the name of the event provider that published this event.
+ Returns a string that contains the name of the event provider that published this event.
+
+
+ Gets qualifier numbers that are used for event identification.
+ Returns an integer value. This value can be null.
+
+
+ Gets the event record identifier of the event in the log.
+ Returns a long value. This value can be null.
+
+
+ Gets a globally unique identifier (GUID) for a related activity in a process for which an event is involved.
+ Returns a GUID value. This value can be null.
+
+
+ Gets a task identifier for a portion of an application or a component that publishes an event. A task is a 16-bit value with 16 top values reserved. This type allows any value between 0x0000 and 0xffef to be used. For the name of the task, get the value of the property.
+ Returns an integer value. This value can be null.
+
+
+ Gets the display name of the task for the event.
+ Returns a string that contains the display name of the task for the event.
+
+
+ Gets the thread identifier for the thread that the event provider is running in.
+ Returns an integer value. This value can be null.
+
+
+ Gets the time, in format, that the event was created.
+ Returns a value. The value can be null.
+
+
+ Gets the security descriptor of the user whose context is used to publish the event.
+ Returns a value.
+
+
+ Gets the version number for the event.
+ Returns a byte value. This value can be null.
+
+
+ Used to access the Event Log service on the local computer or a remote computer so you can manage and gather information about the event logs and event providers on the computer.
+
+
+ Initializes a new object, establishes a connection with the local Event Log service.
+
+
+ Initializes a new object, and establishes a connection with the Event Log service on the specified computer. The credentials (user name and password) of the user who calls the method is used for the credentials to access the remote computer.
+ The name of the computer on which to connect to the Event Log service.
+
+
+ Initializes a new object, and establishes a connection with the Event Log service on the specified computer. The specified credentials (user name and password) are used for the credentials to access the remote computer.
+ The name of the computer on which to connect to the Event Log service.
+ The domain of the specified user.
+ The user name used to connect to the remote computer.
+ The password used to connect to the remote computer.
+ The type of connection to use for the connection to the remote computer.
+
+
+ Cancels any operations (such as reading an event log or subscribing to an event log) that are currently active for the Event Log service that this session object is connected to.
+
+
+ Clears events from the specified event log.
+ The name of the event log to clear all the events from.
+
+
+ Clears events from the specified event log, and saves the cleared events to the specified file.
+ The name of the event log to clear all the events from.
+ The path to the file in which the cleared events will be saved. The file should end in .evtx.
+
+
+ Releases all the resources used by this object.
+
+
+ Releases the unmanaged resources used by this object, and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Exports events into an external log file. The events are stored without the event messages.
+ The name of the event log to export events from, or the path to the event log file to export events from.
+ Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file.
+ The query used to select the events to export. Only the events returned from the query will be exported.
+ The path to the log file (ends in .evtx) in which the exported events will be stored after this method is executed.
+
+
+ Exports events into an external log file. A flag can be set to indicate that the method will continue exporting events even if the specified query fails for some logs. The events are stored without the event messages.
+ The name of the event log to export events from, or the path to the event log file to export events from.
+ Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file.
+ The query used to select the events to export. Only the events returned from the query will be exported.
+ The path to the log file (ends in .evtx) in which the exported events will be stored after this method is executed.
+
+ indicates that the method will continue exporting events even if the specified query fails for some logs, and indicates that this method will not continue to export events when the specified query fails.
+
+
+ Exports events and their messages into an external log file.
+ The name of the event log to export events from, or the path to the event log file to export events from.
+ Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file.
+ The query used to select the events to export. Only the events returned from the query will be exported.
+ The path to the log file (ends in .evtx) in which the exported events will be stored after this method is executed.
+
+
+ Exports events and their messages into an external log file. A flag can be set to indicate that the method will continue exporting events even if the specified query fails for some logs. The event messages are exported in the specified language.
+ The name of the event log to export events from, or the path to the event log file to export events from.
+ Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file.
+ The query used to select the events to export. Only the events returned from the query will be exported.
+ The path to the log file (ends in .evtx) in which the exported events will be stored after this method is executed.
+
+ indicates that the method will continue exporting events even if the specified query fails for some logs, and indicates that this method will not continue to export events when the specified query fails.
+ The culture that specifies which language that the exported event messages will be in.
+
+
+ Gets an object that contains runtime information for the specified event log.
+ The name of the event log to get information about, or the path to the event log file to get information about.
+ Specifies whether the string used in the path parameter specifies the name of an event log, or the path to an event log file.
+ An object that contains information about the specified log.
+
+
+ Gets an enumerable collection of all the event log names that are registered with the Event Log service.
+ An enumerable collection of strings that contain the event log names.
+
+
+ Gets an enumerable collection of all the event provider names that are registered with the Event Log service. An event provider is an application that publishes events to an event log.
+ An enumerable collection of strings that contain the event provider names.
+
+
+ Gets a static predefined session object that is connected to the Event Log service on the local computer.
+ A predefined session object that is connected to the Event Log service on the local computer.
+
+
+ Contains the status code or error code for a specific event log. This status can be used to determine if the event log is available for an operation.
+
+
+ Gets the name of the event log for which the status code is obtained.
+ The name of the event log for which the status code is obtained.
+
+
+ Gets the status code or error code for the event log. This status or error is the result of a read or subscription operation on the event log.
+ The status code or error code for the event log.
+
+
+ Defines the type of events that are logged in an event log. Each log can only contain one type of event.
+
+
+ These events are primarily for end users, administrators, and support. The events that are found in the Administrative type logs indicate a problem and a well-defined solution that an administrator can act on. An example of an administrative event is an event that occurs when an application fails to connect to a printer.
+
+
+ Events in an analytic event log are published in high volume. They describe program operation and indicate problems that cannot be handled by user intervention.
+
+
+ Events in a debug type event log are used solely by developers to diagnose a problem for debugging.
+
+
+ Events in an operational type event log are used for analyzing and diagnosing a problem or occurrence. They can be used to trigger tools or tasks based on the problem or occurrence. An example of an operational event is an event that occurs when a printer is added or removed from a system.
+
+
+ Allows you to subscribe to incoming events. Each time a desired event is published to an event log, the event is raised, and the method that handles this event will be executed.
+
+
+ Allows setting a delegate (event handler method) that gets called every time an event is published that matches the criteria specified in the event query for this object.
+
+
+ Initializes a new instance of the class by specifying an event query.
+ Specifies a query for the event subscription. When an event is logged that matches the criteria expressed in the query, then the event is raised.
+
+
+ Initializes a new instance of the class by specifying an event query and a bookmark that is used as starting position for the query.
+ Specifies a query for the event subscription. When an event is logged that matches the criteria expressed in the query, then the event is raised.
+ The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events that have been logged after the bookmark event will be returned by the query.
+
+
+ Initializes a new instance of the class by specifying an event query, a bookmark that is used as starting position for the query, and a Boolean value that determines whether to read the events that already exist in the event log.
+ Specifies a query for the event subscription. When an event is logged that matches the criteria expressed in the query, then the event is raised.
+ The bookmark (placeholder) used as a starting position in the event log or stream of events. Only events that have been logged after the bookmark event will be returned by the query.
+ A Boolean value that determines whether to read the events that already exist in the event log. If this value is , then the existing events are read and if this value is , then the existing events are not read.
+
+
+ Initializes a new instance of the class by specifying the name or path to an event log.
+ The path or name of the event log monitor for events. If any event is logged in this event log, then the event is raised.
+
+
+ Releases all the resources used by this object.
+
+
+ Releases the unmanaged resources used by this object, and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Gets or sets a value that indicates whether this object starts delivering events to the event delegate.
+
+ when this object can deliver events to the event delegate; when this object has stopped delivery.
+
+
+ Contains the metadata (properties and settings) for an event that is defined in an event provider.
+
+
+ Gets the description template associated with the event using the current thread locale for the description language.
+ A string that contains the description template associated with the event.
+
+
+ Gets the identifier of the event that is defined in the event provider.
+ The event identifier.
+
+
+ Gets the keywords associated with the event that is defined in the event provider.
+ An enumerable collection of the keywords associated with the event.
+
+
+ Gets the level associated with the event that is defined in the event provider. The level defines the severity of the event.
+ The level associated with the event.
+
+
+ Gets a link to the event log that receives this event when the provider publishes this event.
+ A link to the event log.
+
+
+ Gets the opcode associated with this event that is defined by an event provider. The opcode defines a numeric value that identifies the activity or a point within an activity that the application was performing when it raised the event.
+ The opcode associated with this event.
+
+
+ Gets the task associated with the event. A task identifies a portion of an application or a component that publishes an event.
+ The task associated with the event.
+
+
+ Gets the template string for the event. Templates are used to describe data that is used by a provider when an event is published. Templates optionally specify XML that provides the structure of an event. The XML allows values that the event publisher provides to be inserted during the rendering of an event.
+ A string that contains the template for the event.
+
+
+ Gets the version of the event that qualifies the event identifier.
+ A byte value that contains the version of the event.
+
+
+ Contains an event opcode that is defined in an event provider. An opcode defines a numeric value that identifies the activity or a point within an activity that the application was performing when it raised the event.
+
+
+ Gets the localized name for an event opcode.
+ The localized name for an event opcode.
+
+
+ Gets the non-localized name for an event opcode.
+ The non-localized name for an event opcode.
+
+
+ Gets the numeric value associated with the event opcode.
+ The numeric value associated with the event opcode.
+
+
+ Contains the value of an event property that is specified by the event provider when the event is published.
+
+
+ Gets the value of the event property that is specified by the event provider when the event is published.
+ The value of the event property.
+
+
+ Defines the properties of an event instance for an event that is received from an object. The event properties provide information about the event such as the name of the computer where the event was logged and the time the event was created. This class is an abstract class. The class implements this class.
+
+
+ Initializes a new instance of the class.
+
+
+ Releases all the resources used by this object.
+
+
+ Releases the unmanaged resources used by this object, and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Gets the event message in the current locale.
+ Returns a string that contains the event message in the current locale.
+
+
+ Gets the event message, replacing variables in the message with the specified values.
+ The values used to replace variables in the event message. Variables are represented by %n, where n is a number.
+ Returns a string that contains the event message in the current locale.
+
+
+ Gets the XML representation of the event. All of the event properties are represented in the event XML. The XML conforms to the event schema.
+ Returns a string that contains the XML representation of the event.
+
+
+ Gets the globally unique identifier (GUID) for the activity in process for which the event is involved. This allows consumers to group related activities.
+ Returns a GUID value.
+
+
+ Gets a placeholder (bookmark) that corresponds to this event. This can be used as a placeholder in a stream of events.
+ Returns a object.
+
+
+ Gets the identifier for this event. All events with this identifier value represent the same type of event.
+ Returns an integer value. This value can be null.
+
+
+ Gets the keyword mask of the event. Get the value of the property to get the name of the keywords used in this mask.
+ Returns a long value. This value can be null.
+
+
+ Gets the display names of the keywords used in the keyword mask for this event.
+ Returns an enumerable collection of strings that contain the display names of the keywords used in the keyword mask for this event.
+
+
+ Gets the level of the event. The level signifies the severity of the event. For the name of the level, get the value of the property.
+ Returns a byte value. This value can be null.
+
+
+ Gets the display name of the level for this event.
+ Returns a string that contains the display name of the level for this event.
+
+
+ Gets the name of the event log where this event is logged.
+ Returns a string that contains a name of the event log that contains this event.
+
+
+ Gets the name of the computer on which this event was logged.
+ Returns a string that contains the name of the computer on which this event was logged.
+
+
+ Gets the opcode of the event. The opcode defines a numeric value that identifies the activity or a point within an activity that the application was performing when it raised the event. For the name of the opcode, get the value of the property.
+ Returns a short value. This value can be null.
+
+
+ Gets the display name of the opcode for this event.
+ Returns a string that contains the display name of the opcode for this event.
+
+
+ Gets the process identifier for the event provider that logged this event.
+ Returns an integer value. This value can be null.
+
+
+ Gets the user-supplied properties of the event.
+ Returns a list of objects.
+
+
+ Gets the globally unique identifier (GUID) of the event provider that published this event.
+ Returns a GUID value. This value can be null.
+
+
+ Gets the name of the event provider that published this event.
+ Returns a string that contains the name of the event provider that published this event.
+
+
+ Gets qualifier numbers that are used for event identification.
+ Returns an integer value. This value can be null.
+
+
+ Gets the event record identifier of the event in the log.
+ Returns a long value. This value can be null.
+
+
+ Gets a globally unique identifier (GUID) for a related activity in a process for which an event is involved.
+ Returns a GUID value. This value can be null.
+
+
+ Gets a task identifier for a portion of an application or a component that publishes an event. A task is a 16-bit value with 16 top values reserved. This type allows any value between 0x0000 and 0xffef to be used. To obtain the task name, get the value of the property.
+ Returns an integer value. This value can be null.
+
+
+ Gets the display name of the task for the event.
+ Returns a string that contains the display name of the task for the event.
+
+
+ Gets the thread identifier for the thread that the event provider is running in.
+ Returns an integer value. This value can be null.
+
+
+ Gets the time, in format, that the event was created.
+ Returns a value. The value can be null.
+
+
+ Gets the security descriptor of the user whose context is used to publish the event.
+ Returns a value.
+
+
+ Gets the version number for the event.
+ Returns a byte value. This value can be null.
+
+
+ When the event is raised, an instance of this object is passed to the delegate method that handles the event. This object contains the event that was published to the event log or the exception that occurred when the event subscription failed.
+
+
+ Gets the exception that occurred when the event subscription failed. The exception has a description of why the subscription failed.
+ The exception that occurred when the event subscription failed.
+
+
+ Gets the event record that is published to the event log. This event matches the criteria from the query specified in the event subscription.
+ The event record.
+
+
+ Contains an event task that is defined in an event provider. The task identifies a portion of an application or a component that publishes an event. A task is a 16-bit value with 16 top values reserved.
+
+
+ Gets the localized name for the event task.
+ The localized name for the event task.
+
+
+ Gets the event globally unique identifier (GUID) associated with the task.
+ The event GUID associated with the task.
+
+
+ Gets the non-localized name of the event task.
+ The non-localized name of the event task.
+
+
+ Gets the numeric value associated with the task.
+ The numeric value associated with the task.
+
+
+ Specifies that a string contains a name of an event log or the file system path to an event log file.
+
+
+ A path parameter contains the file system path to an event log file.
+
+
+ A path parameter contains the name of the event log.
+
+
+ Contains static information about an event provider, such as the name and id of the provider, and the collection of events defined in the provider.
+
+
+ Initializes a new instance of the class by specifying the name of the provider that you want to retrieve information about.
+ The name of the event provider that you want to retrieve information about.
+
+
+ Initializes a new instance of the class by specifying the name of the provider that you want to retrieve information about, the event log service that the provider is registered with, and the language that you want to return the information in.
+ The name of the event provider that you want to retrieve information about.
+ The object that specifies whether to get the provider information from a provider on the local computer or a provider on a remote computer.
+ The culture that specifies the language that the information should be returned in.
+
+
+ Releases all the resources used by this object.
+
+
+ Releases the unmanaged resources used by this object, and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Gets the localized name of the event provider.
+ Returns a string that contains the localized name of the event provider.
+
+
+ Gets an enumerable collection of objects, each of which represents an event that is defined in the provider.
+ Returns an enumerable collection of objects.
+
+
+ Gets the base of the URL used to form help requests for the events in this event provider.
+ Returns a value.
+
+
+ Gets the globally unique identifier (GUID) for the event provider.
+ Returns the GUID value for the event provider.
+
+
+ Gets an enumerable collection of objects, each of which represent an event keyword that is defined in the event provider.
+ Returns an enumerable collection of objects.
+
+
+ Gets an enumerable collection of objects, each of which represent a level that is defined in the event provider.
+ Returns an enumerable collection of objects.
+
+
+ Gets an enumerable collection of objects, each of which represent a link to an event log that is used by the event provider.
+ Returns an enumerable collection of objects.
+
+
+ Gets the path of the file that contains the message table resource that has the strings associated with the provider metadata.
+ Returns a string that contains the path of the provider message file.
+
+
+ Gets the unique name of the event provider.
+ Returns a string that contains the unique name of the event provider.
+
+
+ Gets an enumerable collection of objects, each of which represent an opcode that is defined in the event provider.
+ Returns an enumerable collection of objects.
+
+
+ Gets the path of the file that contains the message table resource that has the strings used for parameter substitutions in event descriptions.
+ Returns a string that contains the path of the file that contains the message table resource that has the strings used for parameter substitutions in event descriptions.
+
+
+ Gets the path to the file that contains the metadata associated with the provider.
+ Returns a string that contains the path to the file that contains the metadata associated with the provider.
+
+
+ Gets an enumerable collection of objects, each of which represent a task that is defined in the event provider.
+ Returns an enumerable collection of objects.
+
+
+ Defines values for the type of authentication used during a Remote Procedure Call (RPC) login to a server. This login occurs when you create a object that specifies a connection to a remote computer.
+
+
+ Use the default authentication method during RPC login. The default authentication is equivalent to Negotiate.
+
+
+ Use Kerberos authentication during RPC login.
+
+
+ Use the Negotiate authentication method during RPC login. This allows the client application to select the most appropriate authentication method (NTLM or Kerberos) for the situation.
+
+
+ Use Windows NT LAN Manager (NTLM) authentication during RPC login.
+
+
+ Defines the standard keywords that are attached to events by the event provider. For more information about keywords, see .
+
+
+ Attached to all failed security audit events. This keyword should only be used for events in the Security log.
+
+
+ Attached to all successful security audit events. This keyword should only be used for events in the Security log.
+
+
+ Attached to transfer events where the related Activity ID (Correlation ID) is a computed value and is not guaranteed to be unique (not a real GUID).
+
+
+ Attached to transfer events where the related Activity ID (Correlation ID) is a computed value and is not guaranteed to be unique (not a real GUID).
+
+
+ Attached to events which are raised using the RaiseEvent function.
+
+
+ This value indicates that no filtering on keyword is performed when the event is published.
+
+
+ Attached to all response time events.
+
+
+ Attached to all Service Quality Mechanism (SQM) events.
+
+
+ Attached to all Windows Diagnostic Infrastructure (WDI) context events.
+
+
+ Attached to all Windows Diagnostic Infrastructure (WDI) diagnostic events.
+
+
+ Defines the standard event levels that are used in the Event Log service. The level defines the severity of the event. Custom event levels can be defined beyond these standard levels. For more information about levels, see .
+
+
+ This level corresponds to critical errors, which is a serious error that has caused a major failure.
+
+
+ This level corresponds to normal errors that signify a problem.
+
+
+ This level corresponds to informational events or messages that are not errors. These events can help trace the progress or state of an application.
+
+
+ This value indicates that not filtering on the level is done during the event publishing.
+
+
+ This level corresponds to lengthy events or messages.
+
+
+ This level corresponds to warning events. For example, an event that gets published because a disk is nearing full capacity is a warning event.
+
+
+ Defines the standard opcodes that are attached to events by the event provider. For more information about opcodes, see .
+
+
+ An event with this opcode is a trace collection start event.
+
+
+ An event with this opcode is a trace collection stop event.
+
+
+ An event with this opcode is an extension event.
+
+
+ An event with this opcode is an informational event.
+
+
+ An event with this opcode is published when one activity in an application receives data.
+
+
+ An event with this opcode is published after an activity in an application replies to an event.
+
+
+ An event with this opcode is published after an activity in an application resumes from a suspended state. The event should follow an event with the Suspend opcode.
+
+
+ An event with this opcode is published when one activity in an application transfers data or system resources to another activity.
+
+
+ An event with this opcode is published when an application starts a new transaction or activity. This can be embedded into another transaction or activity when multiple events with the Start opcode follow each other without an event with a Stop opcode.
+
+
+ An event with this opcode is published when an activity or a transaction in an application ends. The event corresponds to the last unpaired event with a Start opcode.
+
+
+ An event with this opcode is published when an activity in an application is suspended.
+
+
+ Defines the standard tasks that are attached to events by the event provider. For more information about tasks, see .
+
+
+ No task is used to identify a portion of an application that publishes an event.
+
+
+ Represents language-neutral information for an event log entry.
+
+
+ Initializes a new instance of the class using the specified resource identifiers for the localized message and category text of the event entry.
+ A resource identifier that corresponds to a string defined in the message resource file of the event source.
+ A resource identifier that corresponds to a string defined in the category resource file of the event source, or zero to specify no category for the event.
+ The parameter is a negative value or a value larger than UInt32.MaxValue.
+
+ -or-
+
+ The parameter is a negative value or a value larger than UInt16.MaxValue.
+
+
+ Initializes a new instance of the class using the specified resource identifiers for the localized message and category text of the event entry and the specified event log entry type.
+ A resource identifier that corresponds to a string defined in the message resource file of the event source.
+ A resource identifier that corresponds to a string defined in the category resource file of the event source, or zero to specify no category for the event.
+ An value that indicates the event type.
+
+ is not a valid value.
+
+ is a negative value or a value larger than UInt32.MaxValue.
+
+ -or-
+
+ is a negative value or a value larger than UInt16.MaxValue.
+
+
+ Gets or sets the resource identifier that specifies the application-defined category of the event entry.
+ The property is set to a negative value or to a value larger than UInt16.MaxValue.
+ A numeric category value or resource identifier that corresponds to a string defined in the category resource file of the event source. The default is zero, which signifies that no category will be displayed for the event entry.
+
+
+ Gets or sets the event type of the event log entry.
+ The property is not set to a valid value.
+ An value that indicates the event entry type. The default value is .
+
+
+ Gets or sets the resource identifier that designates the message text of the event entry.
+ The property is set to a negative value or to a value larger than UInt32.MaxValue.
+ A resource identifier that corresponds to a string defined in the message resource file of the event source.
+
+
+ Provides interaction with Windows event logs.
+
+
+ Occurs when an entry is written to an event log on the local computer.
+
+
+ Initializes a new instance of the class. Does not associate the instance with any log.
+
+
+ Initializes a new instance of the class. Associates the instance with a log on the local computer.
+ The name of the log on the local computer.
+ The log name is .
+ The log name is invalid.
+
+
+ Initializes a new instance of the class. Associates the instance with a log on the specified computer.
+ The name of the log on the specified computer.
+ The computer on which the log exists.
+ The log name is .
+ The log name is invalid.
+
+ -or-
+
+ The computer name is invalid.
+
+
+ Initializes a new instance of the class. Associates the instance with a log on the specified computer and creates or assigns the specified source to the .
+ The name of the log on the specified computer.
+ The computer on which the log exists.
+ The source of event log entries.
+ The log name is .
+ The log name is invalid.
+
+ -or-
+
+ The computer name is invalid.
+
+
+ Begins the initialization of an used on a form or used by another component. The initialization occurs at runtime.
+
+ is already initialized.
+
+
+ Removes all entries from the event log.
+ The event log was not cleared successfully.
+
+ -or-
+
+ The log cannot be opened. A Windows error code is not available.
+ A value is not specified for the property. Make sure the log name is not an empty string.
+ The log does not exist.
+
+
+ Closes the event log and releases read and write handles.
+ The event log's read handle or write handle was not released successfully.
+
+
+ Establishes a valid event source for writing localized event messages, using the specified configuration properties for the event source and the corresponding event log.
+ The configuration properties for the event source and its target event log.
+ The computer name specified in is not valid.
+
+-or-
+
+ The source name specified in is .
+
+-or-
+
+ The log name specified in is not valid. Event log names must consist of printable characters and cannot include the characters '*', '?', or '\'.
+
+-or-
+
+ The log name specified in is not valid for user log creation. The Event log names AppEvent, SysEvent, and SecEvent are reserved for system use.
+
+-or-
+
+ The log name matches an existing event source name.
+
+-or-
+
+ The source name specified in results in a registry key path longer than 254 characters.
+
+-or-
+
+ The first 8 characters of the log name specified in are not unique.
+
+-or-
+
+ The source name specified in is already registered.
+
+-or-
+
+ The source name specified in matches an existing event log name.
+ The registry key for the event log could not be opened.
+
+ is .
+
+
+ Establishes the specified source name as a valid event source for writing entries to a log on the local computer. This method can also create a new custom log on the local computer.
+ The source name by which the application is registered on the local computer.
+ The name of the log the source's entries are written to. Possible values include Application, System, or a custom event log.
+
+ is an empty string ("") or .
+
+-or-
+
+ is not a valid event log name. Event log names must consist of printable characters, and cannot include the characters '*', '?', or '\'.
+
+-or-
+
+ is not valid for user log creation. The event log names AppEvent, SysEvent, and SecEvent are reserved for system use.
+
+-or-
+
+ The log name matches an existing event source name.
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+
+-or-
+
+ The first 8 characters of match the first 8 characters of an existing event log name.
+
+-or-
+
+ The source cannot be registered because it already exists on the local computer.
+
+-or-
+
+ The source name matches an existing event log name.
+ The registry key for the event log could not be opened on the local computer.
+
+
+ Establishes the specified source name as a valid event source for writing entries to a log on the specified computer. This method can also be used to create a new custom log on the specified computer.
+ The source by which the application is registered on the specified computer.
+ The name of the log the source's entries are written to. Possible values include Application, System, or a custom event log. If you do not specify a value, defaults to Application.
+ The name of the computer to register this event source with, or "." for the local computer.
+ The is not a valid computer name.
+
+-or-
+
+ is an empty string ("") or .
+
+-or-
+
+ is not a valid event log name. Event log names must consist of printable characters, and cannot include the characters '*', '?', or '\'.
+
+-or-
+
+ is not valid for user log creation. The event log names AppEvent, SysEvent, and SecEvent are reserved for system use.
+
+-or-
+
+ The log name matches an existing event source name.
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+
+-or-
+
+ The first 8 characters of match the first 8 characters of an existing event log name on the specified computer.
+
+-or-
+
+ The source cannot be registered because it already exists on the specified computer.
+
+-or-
+
+ The source name matches an existing event source name.
+ The registry key for the event log could not be opened on the specified computer.
+
+
+ Removes an event log from the local computer.
+ The name of the log to delete. Possible values include: Application, Security, System, and any custom event logs on the computer.
+
+ is an empty string ("") or .
+ The registry key for the event log could not be opened on the local computer.
+
+-or-
+
+ The log does not exist on the local computer.
+ The event log was not cleared successfully.
+
+ -or-
+
+ The log cannot be opened. A Windows error code is not available.
+
+
+ Removes an event log from the specified computer.
+ The name of the log to delete. Possible values include: Application, Security, System, and any custom event logs on the specified computer.
+ The name of the computer to delete the log from, or "." for the local computer.
+
+ is an empty string ("") or .
+
+-or-
+
+ is not a valid computer name.
+ The registry key for the event log could not be opened on the specified computer.
+
+-or-
+
+ The log does not exist on the specified computer.
+ The event log was not cleared successfully.
+
+ -or-
+
+ The log cannot be opened. A Windows error code is not available.
+
+
+ Removes the event source registration from the event log of the local computer.
+ The name by which the application is registered in the event log system.
+ The parameter does not exist in the registry of the local computer.
+
+-or-
+
+ You do not have write access on the registry key for the event log.
+
+
+ Removes the application's event source registration from the specified computer.
+ The name by which the application is registered in the event log system.
+ The name of the computer to remove the registration from, or "." for the local computer.
+ The parameter is invalid.
+
+-or-
+
+ The parameter does not exist in the registry of the specified computer.
+
+-or-
+
+ You do not have write access on the registry key for the event log.
+
+ cannot be deleted because in the registry, the parent registry key for does not contain a subkey with the same name.
+
+
+ Releases the unmanaged resources used by the , and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Ends the initialization of an used on a form or by another component. The initialization occurs at runtime.
+
+
+ Determines whether the log exists on the local computer.
+ The name of the log to search for. Possible values include: Application, Security, System, other application-specific logs (such as those associated with Active Directory), or any custom log on the computer.
+ The logName is or the value is empty.
+
+ if the log exists on the local computer; otherwise, .
+
+
+ Determines whether the log exists on the specified computer.
+ The log for which to search. Possible values include: Application, Security, System, other application-specific logs (such as those associated with Active Directory), or any custom log on the computer.
+ The name of the computer on which to search for the log, or "." for the local computer.
+ The parameter is an invalid format. Make sure you have used proper syntax for the computer on which you are searching.
+
+ -or-
+
+ The is or the value is empty.
+
+ if the log exists on the specified computer; otherwise, .
+
+
+ Searches for all event logs on the local computer and creates an array of objects that contain the list.
+ You do not have read access to the registry.
+
+ -or-
+
+ There is no event log service on the computer.
+ An array of type that represents the logs on the local computer.
+
+
+ Searches for all event logs on the given computer and creates an array of objects that contain the list.
+ The computer on which to search for event logs.
+ The parameter is an invalid computer name.
+ You do not have read access to the registry.
+
+ -or-
+
+ There is no event log service on the computer.
+ An array of type that represents the logs on the given computer.
+
+
+ Gets the name of the log to which the specified source is registered.
+ The name of the event source.
+ The name of the computer on which to look, or "." for the local computer.
+ The name of the log associated with the specified source in the registry.
+
+
+ Changes the configured behavior for writing new entries when the event log reaches its maximum file size.
+ The overflow behavior for writing new entries to the event log.
+ The minimum number of days each event log entry is retained. This parameter is used only if is set to .
+
+ is not a valid value.
+
+ is less than one, or larger than 365.
+ The value is not a valid log name.
+
+-or-
+
+ The registry key for the event log could not be opened on the target computer.
+
+
+ Specifies the localized name of the event log, which is displayed in the server Event Viewer.
+ The fully specified path to a localized resource file.
+ The resource identifier that indexes a localized string within the resource file.
+ The value is not a valid log name.
+
+-or-
+
+ The registry key for the event log could not be opened on the target computer.
+
+ is .
+
+
+ Determines whether an event source is registered on the local computer.
+ The name of the event source.
+
+ was not found, but some or all of the event logs could not be searched.
+
+ if the event source is registered on the local computer; otherwise, .
+
+
+ Determines whether an event source is registered on a specified computer.
+ The name of the event source.
+ The name the computer on which to look, or "." for the local computer.
+
+ is an invalid computer name.
+
+ was not found, but some or all of the event logs could not be searched.
+
+ if the event source is registered on the given computer; otherwise, .
+
+
+ Writes an information type entry, with the given message text, to the event log.
+ The string to write to the event log.
+ The property of the has not been set.
+
+ -or-
+
+ The method attempted to register a new event source, but the computer name in is not valid.
+
+-or-
+
+ The source is already registered for a different event log.
+
+-or-
+
+ The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+ The registry key for the event log could not be opened.
+ The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.
+
+
+ Writes an error, warning, information, success audit, or failure audit entry with the given message text to the event log.
+ The string to write to the event log.
+ One of the values.
+ The property of the has not been set.
+
+ -or-
+
+ The method attempted to register a new event source, but the computer name in is not valid.
+
+-or-
+
+ The source is already registered for a different event log.
+
+-or-
+
+ The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+
+ is not a valid .
+ The registry key for the event log could not be opened.
+ The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.
+
+
+ Writes an entry with the given message text and application-defined event identifier to the event log.
+ The string to write to the event log.
+ One of the values.
+ The application-specific identifier for the event.
+ The property of the has not been set.
+
+ -or-
+
+ The method attempted to register a new event source, but the computer name in is not valid.
+
+-or-
+
+ The source is already registered for a different event log.
+
+-or-
+
+ is less than zero or greater than UInt16.MaxValue.
+
+-or-
+
+ The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+ The registry key for the event log could not be opened.
+
+ is not a valid .
+ The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.
+
+
+ Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log.
+ The string to write to the event log.
+ One of the values.
+ The application-specific identifier for the event.
+ The application-specific subcategory associated with the message.
+ The property of the has not been set.
+
+ -or-
+
+ The method attempted to register a new event source, but the computer name in is not valid.
+
+-or-
+
+ The source is already registered for a different event log.
+
+-or-
+
+ is less than zero or greater than UInt16.MaxValue.
+
+-or-
+
+ The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+ The registry key for the event log could not be opened.
+
+ is not a valid .
+ The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.
+
+
+ Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log, and appends binary data to the message.
+ The string to write to the event log.
+ One of the values.
+ The application-specific identifier for the event.
+ The application-specific subcategory associated with the message.
+ An array of bytes that holds the binary data associated with the entry.
+ The property of the has not been set.
+
+ -or-
+
+ The method attempted to register a new event source, but the computer name in is not valid.
+
+-or-
+
+ The source is already registered for a different event log.
+
+-or-
+
+ is less than zero or greater than UInt16.MaxValue.
+
+-or-
+
+ The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+ The registry key for the event log could not be opened.
+
+ is not a valid .
+ The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.
+
+
+ Writes an information type entry with the given message text to the event log, using the specified registered event source.
+ The source by which the application is registered on the specified computer.
+ The string to write to the event log.
+ The value is an empty string ("").
+
+-or-
+
+ The value is .
+
+-or-
+
+ The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+ The registry key for the event log could not be opened.
+ The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.
+
+
+ Writes an error, warning, information, success audit, or failure audit entry with the given message text to the event log, using the specified registered event source.
+ The source by which the application is registered on the specified computer.
+ The string to write to the event log.
+ One of the values.
+ The value is an empty string ("").
+
+-or-
+
+ The value is .
+
+-or-
+
+ The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+ The registry key for the event log could not be opened.
+
+ is not a valid .
+ The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.
+
+
+ Writes an entry with the given message text and application-defined event identifier to the event log, using the specified registered event source.
+ The source by which the application is registered on the specified computer.
+ The string to write to the event log.
+ One of the values.
+ The application-specific identifier for the event.
+ The value is an empty string ("").
+
+-or-
+
+ The value is .
+
+-or-
+
+ is less than zero or greater than UInt16.MaxValue.
+
+-or-
+
+ The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+ The registry key for the event log could not be opened.
+
+ is not a valid .
+ The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.
+
+
+ Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log, using the specified registered event source. The can be used by the Event Viewer to filter events in the log.
+ The source by which the application is registered on the specified computer.
+ The string to write to the event log.
+ One of the values.
+ The application-specific identifier for the event.
+ The application-specific subcategory associated with the message.
+ The value is an empty string ("").
+
+-or-
+
+ The value is .
+
+-or-
+
+ is less than zero or greater than UInt16.MaxValue.
+
+-or-
+
+ The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+ The registry key for the event log could not be opened.
+
+ is not a valid .
+ The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.
+
+
+ Writes an entry with the given message text, application-defined event identifier, and application-defined category to the event log (using the specified registered event source) and appends binary data to the message.
+ The source by which the application is registered on the specified computer.
+ The string to write to the event log.
+ One of the values.
+ The application-specific identifier for the event.
+ The application-specific subcategory associated with the message.
+ An array of bytes that holds the binary data associated with the entry.
+ The value is an empty string ("").
+
+-or-
+
+ The value is .
+
+-or-
+
+ is less than zero or greater than UInt16.MaxValue.
+
+-or-
+
+ The message string is longer than 31,839 bytes (32,766 bytes on Windows operating systems before Windows Vista).
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+
+ is not a valid .
+ The registry key for the event log could not be opened.
+ The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.
+
+
+ Writes an event log entry with the given event data, message replacement strings, and associated binary data.
+ An instance that represents a localized event log entry.
+ An array of bytes that holds the binary data associated with the entry.
+ An array of strings to merge into the message text of the event log entry.
+ The property of the has not been set.
+
+ -or-
+
+ The method attempted to register a new event source, but the computer name in is not valid.
+
+-or-
+
+ The source is already registered for a different event log.
+
+-or-
+
+ is less than zero or greater than UInt16.MaxValue.
+
+-or-
+
+ has more than 256 elements.
+
+-or-
+
+ One of the elements is longer than 32766 bytes.
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+
+ is .
+ The registry key for the event log could not be opened.
+ The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.
+
+
+ Writes a localized entry to the event log.
+ An instance that represents a localized event log entry.
+ An array of strings to merge into the message text of the event log entry.
+ The property of the has not been set.
+
+ -or-
+
+ The method attempted to register a new event source, but the computer name in is not valid.
+
+-or-
+
+ The source is already registered for a different event log.
+
+-or-
+
+ is less than zero or greater than UInt16.MaxValue.
+
+-or-
+
+ has more than 256 elements.
+
+-or-
+
+ One of the elements is longer than 32766 bytes.
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+
+ is .
+ The registry key for the event log could not be opened.
+ The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.
+
+
+ Writes an event log entry with the given event data, message replacement strings, and associated binary data, and using the specified registered event source.
+ The name of the event source registered for the application on the specified computer.
+ An instance that represents a localized event log entry.
+ An array of bytes that holds the binary data associated with the entry.
+ An array of strings to merge into the message text of the event log entry.
+ The value is an empty string ("").
+
+-or-
+
+ The value is .
+
+-or-
+
+ is less than zero or greater than UInt16.MaxValue.
+
+-or-
+
+ has more than 256 elements.
+
+-or-
+
+ One of the elements is longer than 32766 bytes.
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+
+ is .
+ The registry key for the event log could not be opened.
+ The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.
+
+
+ Writes an event log entry with the given event data and message replacement strings, using the specified registered event source.
+ The name of the event source registered for the application on the specified computer.
+ An instance that represents a localized event log entry.
+ An array of strings to merge into the message text of the event log entry.
+ The value is an empty string ("").
+
+-or-
+
+ The value is .
+
+-or-
+
+ is less than zero or greater than UInt16.MaxValue.
+
+-or-
+
+ has more than 256 elements.
+
+-or-
+
+ One of the elements is longer than 32766 bytes.
+
+-or-
+
+ The source name results in a registry key path longer than 254 characters.
+
+ is .
+ The registry key for the event log could not be opened.
+ The operating system reported an error when writing the event entry to the event log. A Windows error code is not available.
+
+
+ Gets or sets a value indicating whether the receives event notifications.
+ The event log is on a remote computer.
+
+ if the receives notification when an entry is written to the log; otherwise, .
+
+
+ Gets the contents of the event log.
+ An holding the entries in the event log. Each entry is associated with an instance of the class.
+
+
+ Gets or sets the name of the log to read from or write to.
+ The name of the log. This can be Application, System, Security, or a custom log name. The default is an empty string ("").
+
+
+ Gets the event log's friendly name.
+ The specified does not exist in the registry for this computer.
+ A name that represents the event log in the system's event viewer.
+
+
+ Gets or sets the name of the computer on which to read or write events.
+ The computer name is invalid.
+ The name of the server on which the event log resides. The default is the local computer (".").
+
+
+ Gets or sets the maximum event log size in kilobytes.
+ The specified value is less than 64, or greater than 4194240, or not an even multiple of 64.
+ The value is not a valid log name.
+
+-or-
+
+ The registry key for the event log could not be opened on the target computer.
+ The maximum event log size in kilobytes. The default is 512, indicating a maximum file size of 512 kilobytes.
+
+
+ Gets the number of days to retain entries in the event log.
+ The number of days that entries in the event log are retained. The default value is 7.
+
+
+ Gets the configured behavior for storing new entries when the event log reaches its maximum log file size.
+ The value that specifies the configured behavior for storing new entries when the event log reaches its maximum log size. The default is .
+
+
+ Gets or sets the source name to register and use when writing to the event log.
+ The source name results in a registry key path longer than 254 characters.
+ The name registered with the event log as a source of entries. The default is an empty string ("").
+
+
+ Gets or sets the object used to marshal the event handler calls issued as a result of an entry written event.
+ The used to marshal event-handler calls issued as a result of an event on the event log.
+
+
+ Encapsulates a single record in the event log. This class cannot be inherited.
+
+
+ Performs a comparison between two event log entries.
+ The to compare.
+
+ if the objects are identical; otherwise, .
+
+
+ Populates a with the data needed to serialize the target object.
+ The to populate with data.
+ The destination (see ) for this serialization.
+
+
+ Gets the text associated with the property for this entry.
+ The space could not be allocated for one of the insertion strings associated with the category.
+ The application-specific category text.
+
+
+ Gets the category number of the event log entry.
+ The application-specific category number for this entry.
+
+
+ Gets the binary data associated with the entry.
+ An array of bytes that holds the binary data associated with the entry.
+
+
+ Gets the event type of this entry.
+ The event type that is associated with the entry in the event log.
+
+
+ Gets the application-specific event identifier for the current event entry.
+ The application-specific identifier for the event message.
+
+
+ Gets the index of this entry in the event log.
+ The index of this entry in the event log.
+
+
+ Gets the resource identifier that designates the message text of the event entry.
+ A resource identifier that corresponds to a string definition in the message resource file of the event source.
+
+
+ Gets the name of the computer on which this entry was generated.
+ The name of the computer that contains the event log.
+
+
+ Gets the localized message associated with this event entry.
+ The space could not be allocated for one of the insertion strings associated with the message.
+ The formatted, localized text for the message. This includes associated replacement strings.
+
+
+ Gets the replacement strings associated with the event log entry.
+ An array that holds the replacement strings stored in the event entry.
+
+
+ Gets the name of the application that generated this event.
+ The name registered with the event log as the source of this event.
+
+
+ Gets the local time at which this event was generated.
+ The local time at which this event was generated.
+
+
+ Gets the local time at which this event was written to the log.
+ The local time at which this event was written to the log.
+
+
+ Gets the name of the user who is responsible for this event.
+ Account information could not be obtained for the user's SID.
+ The security identifier (SID) that uniquely identifies a user or group.
+
+
+ Defines size and enumerators for a collection of instances.
+
+
+ Copies the elements of the to an array of instances, starting at a particular array index.
+ The one-dimensional array of instances that is the destination of the elements copied from the collection. The array must have zero-based indexing.
+ The zero-based index in the array at which copying begins.
+
+
+ Supports a simple iteration over the object.
+ An object that can be used to iterate over the collection.
+
+
+ Copies the elements of the collection to an , starting at a particular index.
+ The one-dimensional that is the destination of the elements that are copied from the collection. The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Gets the number of entries in the event log (that is, the number of elements in the collection).
+ The number of entries currently in the event log.
+
+
+ Gets an entry in the event log, based on an index that starts at 0 (zero).
+ The zero-based index that is associated with the event log entry.
+ The event log entry at the location that is specified by the parameter.
+
+
+ Gets a value that indicates whether access to the is synchronized (thread-safe).
+
+ if access to the collection is not synchronized (thread-safe).
+
+
+ Gets an object that can be used to synchronize access to the object.
+ An object that can be used to synchronize access to the collection.
+
+
+ Specifies the event type of an event log entry.
+
+
+ An error event. This indicates a significant problem the user should know about; usually a loss of functionality or data.
+
+
+ A failure audit event. This indicates a security event that occurs when an audited access attempt fails; for example, a failed attempt to open a file.
+
+
+ An information event. This indicates a significant, successful operation.
+
+
+ A success audit event. This indicates a security event that occurs when an audited access attempt is successful; for example, logging on successfully.
+
+
+ A warning event. This indicates a problem that is not immediately significant, but that may signify conditions that could cause future problems.
+
+
+ Provides a simple listener that directs tracing or debugging output to an .
+
+
+ Initializes a new instance of the class without a trace listener.
+
+
+ Initializes a new instance of the class using the specified event log.
+ The event log to write to.
+
+
+ Initializes a new instance of the class using the specified source.
+ The name of an existing event log source.
+
+
+ Closes the event log so that it no longer receives tracing or debugging output.
+
+
+ Writes trace information, a data object, and event information to the event log.
+ An object that contains the current process ID, thread ID, and stack trace information.
+ A name used to identify the output; typically the name of the application that generated the trace event.
+ One of the enumeration values that specifies the type of event that has caused the trace.
+ A numeric identifier for the event. The combination of and uniquely identifies an event.
+ A data object to write to the output file or stream.
+
+ is not specified.
+
+ -or-
+
+ The log entry string exceeds 32,766 characters.
+
+
+ Writes trace information, an array of data objects, and event information to the event log.
+ An object that contains the current process ID, thread ID, and stack trace information.
+ A name used to identify the output; typically the name of the application that generated the trace event.
+ One of the enumeration values that specifies the type of event that has caused the trace.
+ A numeric identifier for the event. The combination of and uniquely identifies an event.
+ An array of data objects.
+
+ is not specified.
+
+ -or-
+
+ The log entry string exceeds 32,766 characters.
+
+
+ Writes trace information, a message, and event information to the event log.
+ An object that contains the current process ID, thread ID, and stack trace information.
+ A name used to identify the output; typically the name of the application that generated the trace event.
+ One of the enumeration values that specifies the type of event that has caused the trace.
+ A numeric identifier for the event. The combination of and uniquely identifies an event.
+ The trace message.
+
+ is not specified.
+
+ -or-
+
+ The log entry string exceeds 32,766 characters.
+
+
+ Writes trace information, a formatted array of objects, and event information to the event log.
+ An object that contains the current process ID, thread ID, and stack trace information.
+ A name used to identify the output; typically the name of the application that generated the trace event.
+ One of the enumeration values that specifies the type of event that has caused the trace.
+ A numeric identifier for the event. The combination of and uniquely identifies an event.
+ A format string that contains zero or more format items that correspond to objects in the array.
+ An array containing zero or more objects to format.
+
+ is not specified.
+
+ -or-
+
+ The log entry string exceeds 32,766 characters.
+
+
+ Writes a message to the event log for this instance.
+ The message to write.
+
+ exceeds 32,766 characters.
+
+
+ Writes a message to the event log for this instance.
+ The message to write.
+
+ exceeds 32,766 characters.
+
+
+ Gets or sets the event log to write to.
+ The event log to write to.
+
+
+ Gets or sets the name of this .
+ The name of this trace listener.
+
+
+ Represents the configuration settings used to create an event log source on the local computer or a remote computer.
+
+
+ Initializes a new instance of the class with a specified event source and event log name.
+ The name to register with the event log as a source of entries.
+ The name of the log to which entries from the source are written.
+
+
+ Gets or sets the number of categories in the category resource file.
+ The property is set to a negative value or to a value larger than UInt16.MaxValue.
+ The number of categories in the category resource file. The default value is zero.
+
+
+ Gets or sets the path of the resource file that contains category strings for the source.
+ The path of the category resource file. The default is an empty string ("").
+
+
+ Gets or sets the name of the event log to which the source writes entries.
+ The name of the event log. This can be Application, System, or a custom log name. The default value is "Application."
+
+
+ Gets or sets the name of the computer on which to register the event source.
+ The computer name is invalid.
+ The name of the system on which to register the event source. The default is the local computer (".").
+
+
+ Gets or sets the path of the message resource file that contains message formatting strings for the source.
+ The path of the message resource file. The default is an empty string ("").
+
+
+ Gets or sets the path of the resource file that contains message parameter strings for the source.
+ The path of the parameter resource file. The default is an empty string ("").
+
+
+ Gets or sets the name to register with the event log as an event source.
+ The name to register with the event log as a source of entries. The default is an empty string ("").
+
+
+ Specifies how to handle entries in an event log that has reached its maximum file size.
+
+
+ Indicates that existing entries are retained when the event log is full and new entries are discarded.
+
+
+ Indicates that each new entry overwrites the oldest entry when the event log is full.
+
+
+ Indicates that new events overwrite events older than specified by the property value when the event log is full. New events are discarded if the event log is full and there are no events older than specified by the property value.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/System.Security.Cryptography.Xml.dll b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/System.Security.Cryptography.Xml.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9a874ec19f8a6cac465a53ec08553ebad05168c3
Binary files /dev/null and b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/System.Security.Cryptography.Xml.dll differ
diff --git a/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/System.Threading.RateLimiting.xml b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/System.Threading.RateLimiting.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2f324eeb6a220718708393e9bf75445d24571afe
--- /dev/null
+++ b/dotnet/packs/Microsoft.AspNetCore.App.Ref/8.0.8/ref/net8.0/System.Threading.RateLimiting.xml
@@ -0,0 +1,867 @@
+
+
+
+ System.Threading.RateLimiting
+
+
+
+
+ Acquires leases from rate limiters in the order given. If a lease fails to be acquired (throwing or IsAcquired == false)
+ then the already acquired leases are disposed in reverse order and the failing lease is returned or the exception is thrown to user code.
+
+
+
+
+ implementation that helps manage concurrent access to a resource.
+
+
+
+
+
+
+
+ Initializes the .
+
+ Options to specify the behavior of the .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Collects registrations to dispose outside the limiter lock to avoid deadlock.
+
+
+
+
+ Options to specify the behavior of a .
+
+
+
+
+ Maximum number of permits that can be leased concurrently.
+ Must be set to a value > 0 by the time these options are passed to the constructor of .
+
+
+
+
+ Determines the behaviour of when not enough resources can be leased.
+
+
+ by default.
+
+
+
+
+ Maximum number of permits that can be queued concurrently.
+ Must be set to a value >= 0 by the time these options are passed to the constructor of .
+
+
+
+
+ implementation that refreshes allowed permits in a window periodically.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes the .
+
+ Options to specify the behavior of the .
+
+
+
+
+
+
+
+
+
+
+
+
+ Attempts to replenish request counters in the window.
+
+
+ False if is enabled, otherwise true.
+ Does not reflect if counters were replenished.
+
+
+
+
+
+
+
+
+
+
+ Collects registrations to dispose outside the limiter lock to avoid deadlock.
+
+
+
+
+ Options to specify the behavior of a .
+
+
+
+
+ Specifies the time window that takes in the requests.
+ Must be set to a value greater than by the time these options are passed to the constructor of .
+
+
+
+
+ Specified whether the is automatically refresh counters or if someone else
+ will be calling to refresh counters.
+
+
+ by default.
+
+
+
+
+ Maximum number of permit counters that can be allowed in a window.
+ Must be set to a value > 0 by the time these options are passed to the constructor of .
+
+
+
+
+ Determines the behaviour of when not enough resources can be leased.
+
+
+ by default.
+
+
+
+
+ Maximum cumulative permit count of queued acquisition requests.
+ Must be set to a value >= 0 by the time these options are passed to the constructor of .
+
+
+
+
+ Contains some common metadata name-type pairs and helper method to create a metadata name.
+
+
+
+
+ Metadata put on a failed lease acquisition to specify when to retry acquiring a lease.
+ For example, used in which periodically replenishes leases.
+
+
+
+
+ Metadata put on a failed lease acquisition to specify the reason the lease failed.
+
+
+
+
+ Create a strongly-typed metadata name.
+
+ Type that the metadata will contain.
+ Name of the metadata.
+
+
+
+
+ A strongly-typed name of metadata that can be stored in a .
+
+ The type the metadata will be.
+
+
+
+ Constructs a object with the given name.
+
+ The name of the object.
+
+
+
+ Gets the name of the metadata.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Determines whether two are equal to each other.
+
+
+
+
+
+
+
+ Determines whether two are not equal to each other.
+
+
+
+
+
+
+
+ Contains methods to assist with creating a .
+
+
+
+
+ Method used to create a default implementation of .
+
+ The resource type that is being rate limited.
+ The type to distinguish partitions with.
+ Method called every time an Acquire or WaitAsync call is made to figure out what rate limiter to apply to the request.
+ If the matches a cached entry then the rate limiter previously used for that key is used. Otherwise, the factory is called to get a new rate limiter.
+ Optional to customize the comparison logic for .
+
+
+
+
+ Creates a single that wraps the passed in s.
+
+
+
+ Methods on the returned will iterate over the passed in in the order given.
+
+
+ will return the lowest value for ,
+ the inner-most limiter's ,
+ and the aggregate values for the rest of the properties from the .
+
+
+ s returned will aggregate metadata and for duplicates use the value of the first lease with the same metadata name.
+
+
+ The resource type that is being rate limited.
+ The s that will be called in order when acquiring resources.
+
+ is a null parameter.
+ is an empty array.
+
+
+
+ Represents a limiter type that users interact with to determine if an operation can proceed given a specific .
+
+ The resource type that is being limited.
+
+
+
+ Gets a snapshot of the statistics for the if available.
+
+ An instance of containing a snapshot of the statistics for a .
+
+
+
+ Fast synchronous attempt to acquire permits.
+
+
+ Set to 0 to get whether permits are exhausted.
+
+ The resource to limit.
+ Number of permits to try and acquire.
+ A successful or failed lease.
+
+
+
+
+ Method that implementations implement for .
+
+ The resource to limit.
+ Number of permits to try and acquire.
+
+
+
+
+ Wait until the requested permits are available or permits can no longer be acquired.
+
+
+ Set to 0 to wait until permits are replenished.
+
+ The resource to limit.
+ Number of permits to try and acquire.
+ Optional token to allow canceling a queued request for permits.
+ A task that completes when the requested permits are acquired or when the requested permits are denied.
+
+
+
+
+ Method that implementations implement for .
+
+ The resource to limit.
+ Number of permits to try and acquire.
+ Optional token to allow canceling a queued request for permits.
+ A task that completes when the requested permits are acquired or when the requested permits are denied.
+
+
+
+ Dispose method for implementations to write.
+
+
+
+
+
+ Disposes the RateLimiter. This completes any queued acquires with a failed lease.
+
+
+
+
+ DisposeAsync method for implementations to write.
+
+
+
+
+ Disposes the RateLimiter asynchronously.
+
+ ValueTask representing the completion of the disposal.
+
+
+
+ Translates PartitionedRateLimiter<TOuter> into the current
+ using the to translate to .
+
+ The type to translate into .
+ The function to be called every time a is passed to
+ PartitionedRateLimiter<TOuter>.Acquire(TOuter, int) or PartitionedRateLimiter<TOuter>.WaitAsync(TOuter, int, CancellationToken).
+
+ should be implemented in a thread-safe way.
+ Specifies whether the returned will dispose the wrapped .
+ A new PartitionedRateLimiter<TOuter> that translates
+ to and calls the inner .
+
+
+
+ Controls the behavior of when not enough resources can be leased.
+
+
+
+
+ Lease the oldest queued call.
+
+
+
+
+ Lease the newest queued call.
+
+
+
+
+ Represents a limiter type that users interact with to determine if an operation can proceed.
+
+
+
+
+ Gets a snapshot of the statistics if available.
+
+ An instance of containing a snapshot of the statistics.
+
+
+
+ Specifies how long the has had all permits available. Used by RateLimiter managers that may want to
+ clean up unused RateLimiters.
+
+
+ Returns when the is in use or is not ready to be idle.
+
+
+
+
+ Fast synchronous attempt to acquire permits.
+
+
+ Set to 0 to get whether permits are exhausted.
+
+ Number of permits to try and acquire.
+ A successful or failed lease.
+
+
+
+
+ Method that implementations implement for .
+
+ Number of permits to try and acquire.
+
+
+
+
+ Wait until the requested permits are available or permits can no longer be acquired.
+
+
+ Set to 0 to wait until permits are replenished.
+
+ Number of permits to try and acquire.
+ Optional token to allow canceling a queued request for permits.
+ A task that completes when the requested permits are acquired or when the requested permits are denied.
+
+
+
+
+ Method that implementations implement for .
+
+ Number of permits to try and acquire.
+ Optional token to allow canceling a queued request for permits.
+ A task that completes when the requested permits are acquired or when the requested permits are denied.
+
+
+
+ Dispose method for implementations to write.
+
+
+
+
+
+ Disposes the RateLimiter. This completes any queued acquires with a failed lease.
+
+
+
+
+ DisposeAsync method for implementations to write.
+
+
+
+
+ Disposes the RateLimiter asynchronously.
+
+ ValueTask representing the completion of the disposal.
+
+
+
+ Snapshot of statistics for a .
+
+
+
+
+ Initializes an instance of .
+
+
+
+
+ Gets the number of permits currently available for the .
+
+
+
+
+ Gets the number of queued permits for the .
+
+
+
+
+ Gets the total number of failed s returned.
+
+
+
+
+ Gets the total number of successful s returned.
+
+
+
+
+ Abstraction for leases returned by implementations.
+ A lease represents the success or failure to acquire a resource and contains potential metadata that is relevant to the acquisition operation.
+
+
+
+
+ Represents whether lease acquisition was successful.
+
+
+
+
+ Attempt to extract metadata for the lease.
+
+ The name of the metadata. Some common ones can be found in .
+ The metadata object if it exists.
+ True if the metadata exists, otherwise false.
+
+
+
+ Attempt to extract a strongly-typed metadata for the lease.
+
+ Type of the expected metadata.
+ The name of the strongly-typed metadata. Some common ones can be found in .
+ The strongly-typed metadata object if it exists.
+ True if the metadata exists, otherwise false.
+
+
+
+ Gets a list of the metadata names that are available on the lease.
+
+
+
+
+ Gets a list of all the metadata that is available on the lease.
+
+ List of key-value pairs of metadata name and metadata object.
+
+
+
+ Dispose the lease. This may free up space on the limiter implementation the lease came from.
+
+
+
+
+ Dispose method for implementations to write.
+
+
+
+
+
+ Contains methods used in to assist in the creation of partitions for your rate limiter.
+
+
+
+
+ Defines a partition with the given rate limiter factory.
+
+ The type to distinguish partitions with.
+
+ The should return a new instance of a rate limiter every time it is called.
+
+ The specific key for this partition. This will be used to check for an existing cached limiter before calling the .
+ The function called when a rate limiter for the given is needed. This should be a new instance of a rate limiter every time it is called.
+
+
+
+
+ Defines a partition with a with the given .
+
+ The type to distinguish partitions with.
+ The specific key for this partition. This will be used to check for an existing cached limiter before calling the .
+ The function called when a rate limiter for the given is needed. This can return the same instance of across different calls.
+
+
+
+
+ Defines a partition that will not have a rate limiter.
+ This means any calls to or will always succeed for the given .
+
+ The type to distinguish partitions with.
+ The specific key for this partition.
+
+
+
+
+ Defines a partition with a with the given .
+
+
+ Set to to save an allocation. This method will create a new options type and set to otherwise.
+
+ The type to distinguish partitions with.
+ The specific key for this partition.
+ The function called when a rate limiter for the given is needed. This can return the same instance of across different calls.
+
+
+
+
+ Defines a partition with a with the given .
+
+
+ Set to to save an allocation. This method will create a new options type and set to otherwise.
+
+ The type to distinguish partitions with.
+ The specific key for this partition.
+ The function called when a rate limiter for the given is needed. This can return the same instance of across different calls.
+
+
+
+
+ Defines a partition with a with the given .
+
+
+ Set to to save an allocation. This method will create a new options type and set to otherwise.
+
+ The type to distinguish partitions with.
+ The specific key for this partition.
+ The function called when a rate limiter for the given is needed. This can return the same instance of across different calls.
+
+
+
+
+ Type returned by methods to be used by to know what partitions are configured.
+
+ The type to distinguish partitions with.
+
+
+
+ Constructs the for use in .
+
+ The specific key for this partition.
+ The function called when a rate limiter for the given is needed.
+
+
+
+ The specific key for this partition.
+
+
+
+
+ The function called when a rate limiter for the given partitionKey is needed.
+
+
+
+
+ Abstraction that specifies that the implementation is capable of replenishing tokens.
+
+
+
+
+ Specifies how often the will replenish tokens.
+ If is then this is how often should be called.
+
+
+
+
+ Specifies if the is automatically replenishing
+ its tokens or if it expects an external source to regularly call .
+
+
+
+
+ Attempts to replenish tokens.
+
+
+ Generally returns if is enabled
+ or if no tokens were replenished. Otherwise .
+
+
+
+
+ implementation that replenishes permit counters periodically instead of via a release mechanism.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes the .
+
+ Options to specify the behavior of the .
+
+
+
+
+
+
+
+
+
+
+
+
+ Attempts to replenish request counters in a window.
+
+
+ False if is enabled, otherwise true.
+ Does not reflect if permits were replenished.
+
+
+
+
+
+
+
+
+
+
+ Collects registrations to dispose outside the limiter lock to avoid deadlock.
+
+
+
+
+ Options to specify the behavior of a .
+
+
+
+
+ Specifies the minimum period between replenishments.
+ Must be set to a value greater than by the time these options are passed to the constructor of .
+
+
+
+
+ Specifies the maximum number of segments a window is divided into.
+ Must be set to a value > 0 by the time these options are passed to the constructor of .
+
+
+
+
+ Specified whether the is automatically replenishing request counters or if someone else
+ will be calling to replenish tokens.
+
+
+ by default.
+
+
+
+
+ Maximum number of requests that can be served in a window.
+ Must be set to a value > 0 by the time these options are passed to the constructor of .
+
+
+
+
+ Determines the behaviour of when not enough resources can be leased.
+
+
+ by default.
+
+
+
+
+ Maximum cumulative permit count of queued acquisition requests.
+ Must be set to a value >= 0 by the time these options are passed to the constructor of .
+
+
+
+
+ implementation that replenishes tokens periodically instead of via a release mechanism.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Initializes the .
+
+ Options to specify the behavior of the .
+
+
+
+
+
+
+
+
+
+
+
+
+ Attempts to replenish the bucket.
+
+
+ if is enabled, otherwise .
+ Does not reflect if tokens were replenished.
+
+
+
+
+
+
+
+
+
+
+ Collects registrations to dispose outside the limiter lock to avoid deadlock.
+
+
+
+
+ Options to control the behavior of a .
+
+
+
+
+ Specifies the minimum period between replenishments.
+ Must be set to a value greater than by the time these options are passed to the constructor of .
+
+
+
+
+ Specifies the maximum number of tokens to restore each replenishment.
+ Must be set to a value > 0 by the time these options are passed to the constructor of .
+
+
+
+
+ Specified whether the is automatically replenishing tokens or if someone else
+ will be calling to replenish tokens.
+
+
+ by default.
+
+
+
+
+ Maximum number of tokens that can be in the bucket at any time.
+ Must be set to a value > 0 by the time these options are passed to the constructor of .
+
+
+
+
+ Determines the behaviour of when not enough resources can be leased.
+
+
+ by default.
+
+
+
+
+ Maximum cumulative token count of queued acquisition requests.
+ Must be set to a value >= 0 by the time these options are passed to the constructor of .
+
+
+
+ Provides a double-ended queue data structure.
+ Type of the data stored in the dequeue.
+
+
+ {0} token(s) exceeds the token limit of {1}.
+
+
+ {0} permit(s) exceeds the permit limit of {1}.
+
+
+ Over 49 days is not supported.
+
+
+ {0} must be set to a value greater than 0.
+
+
+ {0} must be set to a value greater than or equal to 0.
+
+
+ {0} must be set to a value greater than TimeSpan.Zero.
+
+
+
diff --git a/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/apphost b/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/apphost
new file mode 100644
index 0000000000000000000000000000000000000000..dd5b5b4f6f07ce93b1711e3c91518485383409af
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/apphost differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/coreclr_delegates.h b/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/coreclr_delegates.h
new file mode 100644
index 0000000000000000000000000000000000000000..550badf135097b4006871052c287f3002294797a
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/coreclr_delegates.h
@@ -0,0 +1,60 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+#ifndef __CORECLR_DELEGATES_H__
+#define __CORECLR_DELEGATES_H__
+
+#include
+
+#if defined(_WIN32)
+ #define CORECLR_DELEGATE_CALLTYPE __stdcall
+ #ifdef _WCHAR_T_DEFINED
+ typedef wchar_t char_t;
+ #else
+ typedef unsigned short char_t;
+ #endif
+#else
+ #define CORECLR_DELEGATE_CALLTYPE
+ typedef char char_t;
+#endif
+
+#define UNMANAGEDCALLERSONLY_METHOD ((const char_t*)-1)
+
+// Signature of delegate returned by coreclr_delegate_type::load_assembly_and_get_function_pointer
+typedef int (CORECLR_DELEGATE_CALLTYPE *load_assembly_and_get_function_pointer_fn)(
+ const char_t *assembly_path /* Fully qualified path to assembly */,
+ const char_t *type_name /* Assembly qualified type name */,
+ const char_t *method_name /* Public static method name compatible with delegateType */,
+ const char_t *delegate_type_name /* Assembly qualified delegate type name or null
+ or UNMANAGEDCALLERSONLY_METHOD if the method is marked with
+ the UnmanagedCallersOnlyAttribute. */,
+ void *reserved /* Extensibility parameter (currently unused and must be 0) */,
+ /*out*/ void **delegate /* Pointer where to store the function pointer result */);
+
+// Signature of delegate returned by load_assembly_and_get_function_pointer_fn when delegate_type_name == null (default)
+typedef int (CORECLR_DELEGATE_CALLTYPE *component_entry_point_fn)(void *arg, int32_t arg_size_in_bytes);
+
+typedef int (CORECLR_DELEGATE_CALLTYPE *get_function_pointer_fn)(
+ const char_t *type_name /* Assembly qualified type name */,
+ const char_t *method_name /* Public static method name compatible with delegateType */,
+ const char_t *delegate_type_name /* Assembly qualified delegate type name or null,
+ or UNMANAGEDCALLERSONLY_METHOD if the method is marked with
+ the UnmanagedCallersOnlyAttribute. */,
+ void *load_context /* Extensibility parameter (currently unused and must be 0) */,
+ void *reserved /* Extensibility parameter (currently unused and must be 0) */,
+ /*out*/ void **delegate /* Pointer where to store the function pointer result */);
+
+typedef int (CORECLR_DELEGATE_CALLTYPE *load_assembly_fn)(
+ const char_t *assembly_path /* Fully qualified path to assembly */,
+ void *load_context /* Extensibility parameter (currently unused and must be 0) */,
+ void *reserved /* Extensibility parameter (currently unused and must be 0) */);
+
+typedef int (CORECLR_DELEGATE_CALLTYPE *load_assembly_bytes_fn)(
+ const void *assembly_bytes /* Bytes of the assembly to load */,
+ size_t assembly_bytes_len /* Byte length of the assembly to load */,
+ const void *symbols_bytes /* Optional. Bytes of the symbols for the assembly */,
+ size_t symbols_bytes_len /* Optional. Byte length of the symbols for the assembly */,
+ void *load_context /* Extensibility parameter (currently unused and must be 0) */,
+ void *reserved /* Extensibility parameter (currently unused and must be 0) */);
+
+#endif // __CORECLR_DELEGATES_H__
diff --git a/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/hostfxr.h b/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/hostfxr.h
new file mode 100644
index 0000000000000000000000000000000000000000..a19636b9e3fd0831b19ae83958de4d5460b51afc
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/hostfxr.h
@@ -0,0 +1,366 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+#ifndef __HOSTFXR_H__
+#define __HOSTFXR_H__
+
+#include
+#include
+
+#if defined(_WIN32)
+ #define HOSTFXR_CALLTYPE __cdecl
+ #ifdef _WCHAR_T_DEFINED
+ typedef wchar_t char_t;
+ #else
+ typedef unsigned short char_t;
+ #endif
+#else
+ #define HOSTFXR_CALLTYPE
+ typedef char char_t;
+#endif
+
+enum hostfxr_delegate_type
+{
+ hdt_com_activation,
+ hdt_load_in_memory_assembly,
+ hdt_winrt_activation,
+ hdt_com_register,
+ hdt_com_unregister,
+ hdt_load_assembly_and_get_function_pointer,
+ hdt_get_function_pointer,
+ hdt_load_assembly,
+ hdt_load_assembly_bytes,
+};
+
+typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_main_fn)(const int argc, const char_t **argv);
+typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_main_startupinfo_fn)(
+ const int argc,
+ const char_t **argv,
+ const char_t *host_path,
+ const char_t *dotnet_root,
+ const char_t *app_path);
+typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_main_bundle_startupinfo_fn)(
+ const int argc,
+ const char_t** argv,
+ const char_t* host_path,
+ const char_t* dotnet_root,
+ const char_t* app_path,
+ int64_t bundle_header_offset);
+
+typedef void(HOSTFXR_CALLTYPE *hostfxr_error_writer_fn)(const char_t *message);
+
+//
+// Sets a callback which is to be used to write errors to.
+//
+// Parameters:
+// error_writer
+// A callback function which will be invoked every time an error is to be reported.
+// Or nullptr to unregister previously registered callback and return to the default behavior.
+// Return value:
+// The previously registered callback (which is now unregistered), or nullptr if no previous callback
+// was registered
+//
+// The error writer is registered per-thread, so the registration is thread-local. On each thread
+// only one callback can be registered. Subsequent registrations overwrite the previous ones.
+//
+// By default no callback is registered in which case the errors are written to stderr.
+//
+// Each call to the error writer is sort of like writing a single line (the EOL character is omitted).
+// Multiple calls to the error writer may occur for one failure.
+//
+// If the hostfxr invokes functions in hostpolicy as part of its operation, the error writer
+// will be propagated to hostpolicy for the duration of the call. This means that errors from
+// both hostfxr and hostpolicy will be reporter through the same error writer.
+//
+typedef hostfxr_error_writer_fn(HOSTFXR_CALLTYPE *hostfxr_set_error_writer_fn)(hostfxr_error_writer_fn error_writer);
+
+typedef void* hostfxr_handle;
+struct hostfxr_initialize_parameters
+{
+ size_t size;
+ const char_t *host_path;
+ const char_t *dotnet_root;
+};
+
+//
+// Initializes the hosting components for a dotnet command line running an application
+//
+// Parameters:
+// argc
+// Number of argv arguments
+// argv
+// Command-line arguments for running an application (as if through the dotnet executable).
+// Only command-line arguments which are accepted by runtime installation are supported, SDK/CLI commands are not supported.
+// For example 'app.dll app_argument_1 app_argument_2`.
+// parameters
+// Optional. Additional parameters for initialization
+// host_context_handle
+// On success, this will be populated with an opaque value representing the initialized host context
+//
+// Return value:
+// Success - Hosting components were successfully initialized
+// HostInvalidState - Hosting components are already initialized
+//
+// This function parses the specified command-line arguments to determine the application to run. It will
+// then find the corresponding .runtimeconfig.json and .deps.json with which to resolve frameworks and
+// dependencies and prepare everything needed to load the runtime.
+//
+// This function only supports arguments for running an application. It does not support SDK commands.
+//
+// This function does not load the runtime.
+//
+typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_initialize_for_dotnet_command_line_fn)(
+ int argc,
+ const char_t **argv,
+ const struct hostfxr_initialize_parameters *parameters,
+ /*out*/ hostfxr_handle *host_context_handle);
+
+//
+// Initializes the hosting components using a .runtimeconfig.json file
+//
+// Parameters:
+// runtime_config_path
+// Path to the .runtimeconfig.json file
+// parameters
+// Optional. Additional parameters for initialization
+// host_context_handle
+// On success, this will be populated with an opaque value representing the initialized host context
+//
+// Return value:
+// Success - Hosting components were successfully initialized
+// Success_HostAlreadyInitialized - Config is compatible with already initialized hosting components
+// Success_DifferentRuntimeProperties - Config has runtime properties that differ from already initialized hosting components
+// CoreHostIncompatibleConfig - Config is incompatible with already initialized hosting components
+//
+// This function will process the .runtimeconfig.json to resolve frameworks and prepare everything needed
+// to load the runtime. It will only process the .deps.json from frameworks (not any app/component that
+// may be next to the .runtimeconfig.json).
+//
+// This function does not load the runtime.
+//
+// If called when the runtime has already been loaded, this function will check if the specified runtime
+// config is compatible with the existing runtime.
+//
+// Both Success_HostAlreadyInitialized and Success_DifferentRuntimeProperties codes are considered successful
+// initializations. In the case of Success_DifferentRuntimeProperties, it is left to the consumer to verify that
+// the difference in properties is acceptable.
+//
+typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_initialize_for_runtime_config_fn)(
+ const char_t *runtime_config_path,
+ const struct hostfxr_initialize_parameters *parameters,
+ /*out*/ hostfxr_handle *host_context_handle);
+
+//
+// Gets the runtime property value for an initialized host context
+//
+// Parameters:
+// host_context_handle
+// Handle to the initialized host context
+// name
+// Runtime property name
+// value
+// Out parameter. Pointer to a buffer with the property value.
+//
+// Return value:
+// The error code result.
+//
+// The buffer pointed to by value is owned by the host context. The lifetime of the buffer is only
+// guaranteed until any of the below occur:
+// - a 'run' method is called for the host context
+// - properties are changed via hostfxr_set_runtime_property_value
+// - the host context is closed via 'hostfxr_close'
+//
+// If host_context_handle is nullptr and an active host context exists, this function will get the
+// property value for the active host context.
+//
+typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_property_value_fn)(
+ const hostfxr_handle host_context_handle,
+ const char_t *name,
+ /*out*/ const char_t **value);
+
+//
+// Sets the value of a runtime property for an initialized host context
+//
+// Parameters:
+// host_context_handle
+// Handle to the initialized host context
+// name
+// Runtime property name
+// value
+// Value to set
+//
+// Return value:
+// The error code result.
+//
+// Setting properties is only supported for the first host context, before the runtime has been loaded.
+//
+// If the property already exists in the host context, it will be overwritten. If value is nullptr, the
+// property will be removed.
+//
+typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_set_runtime_property_value_fn)(
+ const hostfxr_handle host_context_handle,
+ const char_t *name,
+ const char_t *value);
+
+//
+// Gets all the runtime properties for an initialized host context
+//
+// Parameters:
+// host_context_handle
+// Handle to the initialized host context
+// count
+// [in] Size of the keys and values buffers
+// [out] Number of properties returned (size of keys/values buffers used). If the input value is too
+// small or keys/values is nullptr, this is populated with the number of available properties
+// keys
+// Array of pointers to buffers with runtime property keys
+// values
+// Array of pointers to buffers with runtime property values
+//
+// Return value:
+// The error code result.
+//
+// The buffers pointed to by keys and values are owned by the host context. The lifetime of the buffers is only
+// guaranteed until any of the below occur:
+// - a 'run' method is called for the host context
+// - properties are changed via hostfxr_set_runtime_property_value
+// - the host context is closed via 'hostfxr_close'
+//
+// If host_context_handle is nullptr and an active host context exists, this function will get the
+// properties for the active host context.
+//
+typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_properties_fn)(
+ const hostfxr_handle host_context_handle,
+ /*inout*/ size_t * count,
+ /*out*/ const char_t **keys,
+ /*out*/ const char_t **values);
+
+//
+// Load CoreCLR and run the application for an initialized host context
+//
+// Parameters:
+// host_context_handle
+// Handle to the initialized host context
+//
+// Return value:
+// If the app was successfully run, the exit code of the application. Otherwise, the error code result.
+//
+// The host_context_handle must have been initialized using hostfxr_initialize_for_dotnet_command_line.
+//
+// This function will not return until the managed application exits.
+//
+typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_run_app_fn)(const hostfxr_handle host_context_handle);
+
+//
+// Gets a typed delegate from the currently loaded CoreCLR or from a newly created one.
+//
+// Parameters:
+// host_context_handle
+// Handle to the initialized host context
+// type
+// Type of runtime delegate requested
+// delegate
+// An out parameter that will be assigned the delegate.
+//
+// Return value:
+// The error code result.
+//
+// If the host_context_handle was initialized using hostfxr_initialize_for_runtime_config,
+// then all delegate types are supported.
+// If the host_context_handle was initialized using hostfxr_initialize_for_dotnet_command_line,
+// then only the following delegate types are currently supported:
+// hdt_load_assembly_and_get_function_pointer
+// hdt_get_function_pointer
+//
+typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_delegate_fn)(
+ const hostfxr_handle host_context_handle,
+ enum hostfxr_delegate_type type,
+ /*out*/ void **delegate);
+
+//
+// Closes an initialized host context
+//
+// Parameters:
+// host_context_handle
+// Handle to the initialized host context
+//
+// Return value:
+// The error code result.
+//
+typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_close_fn)(const hostfxr_handle host_context_handle);
+
+struct hostfxr_dotnet_environment_sdk_info
+{
+ size_t size;
+ const char_t* version;
+ const char_t* path;
+};
+
+typedef void(HOSTFXR_CALLTYPE* hostfxr_get_dotnet_environment_info_result_fn)(
+ const struct hostfxr_dotnet_environment_info* info,
+ void* result_context);
+
+struct hostfxr_dotnet_environment_framework_info
+{
+ size_t size;
+ const char_t* name;
+ const char_t* version;
+ const char_t* path;
+};
+
+struct hostfxr_dotnet_environment_info
+{
+ size_t size;
+
+ const char_t* hostfxr_version;
+ const char_t* hostfxr_commit_hash;
+
+ size_t sdk_count;
+ const struct hostfxr_dotnet_environment_sdk_info* sdks;
+
+ size_t framework_count;
+ const struct hostfxr_dotnet_environment_framework_info* frameworks;
+};
+
+//
+// Returns available SDKs and frameworks.
+//
+// Resolves the existing SDKs and frameworks from a dotnet root directory (if
+// any), or the global default location. If multi-level lookup is enabled and
+// the dotnet root location is different than the global location, the SDKs and
+// frameworks will be enumerated from both locations.
+//
+// The SDKs are sorted in ascending order by version, multi-level lookup
+// locations are put before private ones.
+//
+// The frameworks are sorted in ascending order by name followed by version,
+// multi-level lookup locations are put before private ones.
+//
+// Parameters:
+// dotnet_root
+// The path to a directory containing a dotnet executable.
+//
+// reserved
+// Reserved for future parameters.
+//
+// result
+// Callback invoke to return the list of SDKs and frameworks.
+// Structs and their elements are valid for the duration of the call.
+//
+// result_context
+// Additional context passed to the result callback.
+//
+// Return value:
+// 0 on success, otherwise failure.
+//
+// String encoding:
+// Windows - UTF-16 (pal::char_t is 2 byte wchar_t)
+// Unix - UTF-8 (pal::char_t is 1 byte char)
+//
+typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_get_dotnet_environment_info_fn)(
+ const char_t* dotnet_root,
+ void* reserved,
+ hostfxr_get_dotnet_environment_info_result_fn result,
+ void* result_context);
+
+#endif //__HOSTFXR_H__
diff --git a/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/libnethost.a b/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/libnethost.a
new file mode 100644
index 0000000000000000000000000000000000000000..75d650ca529b4ab9726dcedaa07adbbeeb47f4fe
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/libnethost.a
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3e1c5029e4a143dbb175a5dc70c1fcdf86ead5bb9087c76a887544ed960f1cee
+size 1031118
diff --git a/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/libnethost.so b/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/libnethost.so
new file mode 100644
index 0000000000000000000000000000000000000000..ea59ab62401abb8ca078ebcae02945702e989b6d
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/libnethost.so differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/nethost.h b/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/nethost.h
new file mode 100644
index 0000000000000000000000000000000000000000..eaca17535e7676e153afb7c58fae408fd6bd5eba
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/nethost.h
@@ -0,0 +1,99 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+#ifndef __NETHOST_H__
+#define __NETHOST_H__
+
+#include
+
+#ifdef _WIN32
+ #ifdef NETHOST_EXPORT
+ #define NETHOST_API __declspec(dllexport)
+ #else
+ // Consuming the nethost as a static library
+ // Shouldn't export attempt to dllimport.
+ #ifdef NETHOST_USE_AS_STATIC
+ #define NETHOST_API
+ #else
+ #define NETHOST_API __declspec(dllimport)
+ #endif
+ #endif
+
+ #define NETHOST_CALLTYPE __stdcall
+ #ifdef _WCHAR_T_DEFINED
+ typedef wchar_t char_t;
+ #else
+ typedef unsigned short char_t;
+ #endif
+#else
+ #ifdef NETHOST_EXPORT
+ #define NETHOST_API __attribute__((__visibility__("default")))
+ #else
+ #define NETHOST_API
+ #endif
+
+ #define NETHOST_CALLTYPE
+ typedef char char_t;
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// Parameters for get_hostfxr_path
+//
+// Fields:
+// size
+// Size of the struct. This is used for versioning.
+//
+// assembly_path
+// Path to the component's assembly.
+// If specified, hostfxr is located as if the assembly_path is the apphost
+//
+// dotnet_root
+// Path to directory containing the dotnet executable.
+// If specified, hostfxr is located as if an application is started using
+// 'dotnet app.dll', which means it will be searched for under the dotnet_root
+// path and the assembly_path is ignored.
+//
+struct get_hostfxr_parameters {
+ size_t size;
+ const char_t *assembly_path;
+ const char_t *dotnet_root;
+};
+
+//
+// Get the path to the hostfxr library
+//
+// Parameters:
+// buffer
+// Buffer that will be populated with the hostfxr path, including a null terminator.
+//
+// buffer_size
+// [in] Size of buffer in char_t units.
+// [out] Size of buffer used in char_t units. If the input value is too small
+// or buffer is nullptr, this is populated with the minimum required size
+// in char_t units for a buffer to hold the hostfxr path
+//
+// get_hostfxr_parameters
+// Optional. Parameters that modify the behaviour for locating the hostfxr library.
+// If nullptr, hostfxr is located using the environment variable or global registration
+//
+// Return value:
+// 0 on success, otherwise failure
+// 0x80008098 - buffer is too small (HostApiBufferTooSmall)
+//
+// Remarks:
+// The full search for the hostfxr library is done on every call. To minimize the need
+// to call this function multiple times, pass a large buffer (e.g. PATH_MAX).
+//
+NETHOST_API int NETHOST_CALLTYPE get_hostfxr_path(
+ char_t * buffer,
+ size_t * buffer_size,
+ const struct get_hostfxr_parameters *parameters);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // __NETHOST_H__
diff --git a/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/singlefilehost b/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/singlefilehost
new file mode 100644
index 0000000000000000000000000000000000000000..e5515a20b4a37476cc466e80240c5757f561764c
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Host.linux-x64/8.0.8/runtimes/linux-x64/native/singlefilehost
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4df85dbe17c4da09f8f44f6bbbe16249541da7d4f0722f4cd39bfe58cd1c8d20
+size 10985280
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Interop.ComInterfaceGenerator.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Interop.ComInterfaceGenerator.dll
new file mode 100644
index 0000000000000000000000000000000000000000..651ac6bee4ff97e22434c7e2bcedb088a238935b
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Interop.ComInterfaceGenerator.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Interop.JavaScript.JSImportGenerator.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Interop.JavaScript.JSImportGenerator.dll
new file mode 100644
index 0000000000000000000000000000000000000000..187bb0e256f672416c7119c85a34a0fe4b885467
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Interop.JavaScript.JSImportGenerator.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Interop.LibraryImportGenerator.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Interop.LibraryImportGenerator.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d15059d0c4368c0a26593b20306f85d3e7685b2b
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Interop.LibraryImportGenerator.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Interop.SourceGeneration.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Interop.SourceGeneration.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ec71da5992abedc076624e1ba542aa6fa70c2f9a
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/Microsoft.Interop.SourceGeneration.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/System.Text.Json.SourceGeneration.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/System.Text.Json.SourceGeneration.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b18b0bbf7e1d0dfc791631e7467e6a5f34f85db2
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/System.Text.Json.SourceGeneration.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/System.Text.RegularExpressions.Generator.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/System.Text.RegularExpressions.Generator.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c089f84020061dc21fc3bce92c0f960ef59ef30e
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/System.Text.RegularExpressions.Generator.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/Microsoft.Interop.ComInterfaceGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/Microsoft.Interop.ComInterfaceGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..18f14a67fc7bcbcf152abb9de01d7aae146a317c
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/Microsoft.Interop.ComInterfaceGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/Microsoft.Interop.LibraryImportGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/Microsoft.Interop.LibraryImportGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..53b660401e9b70c9c47a29826ea7ce126dcabccb
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/Microsoft.Interop.LibraryImportGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/Microsoft.Interop.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/Microsoft.Interop.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1189ee7b79842e2aa12c802a7a5a3efbd8ad9389
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/Microsoft.Interop.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/System.Text.Json.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/System.Text.Json.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c1a12602e475565778f65692b04f175f8cba7fcb
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/System.Text.Json.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/System.Text.RegularExpressions.Generator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/System.Text.RegularExpressions.Generator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4b91233dc831d3013825d394bcab9e7e750f1963
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/cs/System.Text.RegularExpressions.Generator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/Microsoft.Interop.ComInterfaceGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/Microsoft.Interop.ComInterfaceGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..64086cf80c94e801fc5144da8ddfb2e3cfe8a38f
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/Microsoft.Interop.ComInterfaceGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/Microsoft.Interop.LibraryImportGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/Microsoft.Interop.LibraryImportGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9a6c73c26d00cf7eacb349c5a86246dd54625e62
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/Microsoft.Interop.LibraryImportGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/Microsoft.Interop.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/Microsoft.Interop.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f80cb22c061709d2aa2197c1c34760a99ffe3e1c
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/Microsoft.Interop.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/System.Text.Json.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/System.Text.Json.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1892e4b7319d726afe694cbf41b6fce3a86b1f21
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/System.Text.Json.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/System.Text.RegularExpressions.Generator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/System.Text.RegularExpressions.Generator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..73e8780bd6ebd8e67c96f522dfaedee348419c82
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/de/System.Text.RegularExpressions.Generator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/Microsoft.Interop.ComInterfaceGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/Microsoft.Interop.ComInterfaceGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ef605b5b4d59d620d89ff49203bc258acb764651
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/Microsoft.Interop.ComInterfaceGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/Microsoft.Interop.LibraryImportGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/Microsoft.Interop.LibraryImportGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..690ef347408fc8641a9cf0e75f68212a43d17937
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/Microsoft.Interop.LibraryImportGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/Microsoft.Interop.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/Microsoft.Interop.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2857165bdf5b0bdafb063c4e1ea56f9342eb68fc
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/Microsoft.Interop.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/System.Text.Json.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/System.Text.Json.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..783609b200fe2313e16d727c32beceebcafcd743
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/System.Text.Json.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/System.Text.RegularExpressions.Generator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/System.Text.RegularExpressions.Generator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9fd9d616d77e769bef00ac45477cba5f9a661e0d
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/es/System.Text.RegularExpressions.Generator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/Microsoft.Interop.ComInterfaceGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/Microsoft.Interop.ComInterfaceGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2c6bf349968c225d4ee6659c079e6d0f1906a0f4
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/Microsoft.Interop.ComInterfaceGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/Microsoft.Interop.LibraryImportGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/Microsoft.Interop.LibraryImportGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cfb0a3423a1e0038be74ce86a5be5e9ac7d573e0
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/Microsoft.Interop.LibraryImportGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/Microsoft.Interop.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/Microsoft.Interop.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..460a033ec1760eb2581a82b84249accb125fb639
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/Microsoft.Interop.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/System.Text.Json.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/System.Text.Json.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bfe5fd055550e61b3d3fd8c635658c2ff1240d59
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/System.Text.Json.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/System.Text.RegularExpressions.Generator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/System.Text.RegularExpressions.Generator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..17e966a3d8b24f8a1e05b62a2b8ceb6cc664260e
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/fr/System.Text.RegularExpressions.Generator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/Microsoft.Interop.ComInterfaceGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/Microsoft.Interop.ComInterfaceGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4c3de3275fc747ee963791e6d5e168dc6422e016
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/Microsoft.Interop.ComInterfaceGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/Microsoft.Interop.LibraryImportGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/Microsoft.Interop.LibraryImportGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..99fde90a25f8eb45912db9384fd764e40762f16e
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/Microsoft.Interop.LibraryImportGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/Microsoft.Interop.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/Microsoft.Interop.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..58a653b23734c85c451edffd0e853864f27bef82
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/Microsoft.Interop.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/System.Text.Json.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/System.Text.Json.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4e7e2c913672b630bebcf795baf8e71aa7901744
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/System.Text.Json.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/System.Text.RegularExpressions.Generator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/System.Text.RegularExpressions.Generator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b41be13b39b8fe8f832c3b386d0f7b1e6cbd7d6f
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/it/System.Text.RegularExpressions.Generator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/Microsoft.Interop.ComInterfaceGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/Microsoft.Interop.ComInterfaceGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ba3a6dab3acd98b5f7a78473c1c8cc066150738f
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/Microsoft.Interop.ComInterfaceGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/Microsoft.Interop.LibraryImportGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/Microsoft.Interop.LibraryImportGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0f655522f4f95cb7c8d8b74a355c1803dd8780b5
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/Microsoft.Interop.LibraryImportGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/Microsoft.Interop.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/Microsoft.Interop.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e408aa18bd3cf430e33a225a507c61181b52126d
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/Microsoft.Interop.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/System.Text.Json.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/System.Text.Json.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..41428c8dbdc9fd10bee45713e5aea996afb6dcee
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/System.Text.Json.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/System.Text.RegularExpressions.Generator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/System.Text.RegularExpressions.Generator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..12479baed9e92929221e2a3f6b3c4f6fe0b78aff
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ja/System.Text.RegularExpressions.Generator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/Microsoft.Interop.ComInterfaceGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/Microsoft.Interop.ComInterfaceGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..495622fdb254ef8d333486b4a7166e6e8154b515
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/Microsoft.Interop.ComInterfaceGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/Microsoft.Interop.LibraryImportGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/Microsoft.Interop.LibraryImportGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..79903562df3278f7275da28ec3955c7ab7b35331
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/Microsoft.Interop.LibraryImportGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/Microsoft.Interop.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/Microsoft.Interop.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7af7f6d4f6946be3c9e8b540dff2918b5fbd8a0d
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/Microsoft.Interop.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/System.Text.Json.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/System.Text.Json.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b6605b6de7ea45b6f7c8094333da6cc909fecbeb
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/System.Text.Json.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/System.Text.RegularExpressions.Generator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/System.Text.RegularExpressions.Generator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c12be5dc43c1ed80e1a71ea3d26dadf79b87fc3a
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ko/System.Text.RegularExpressions.Generator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/Microsoft.Interop.ComInterfaceGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/Microsoft.Interop.ComInterfaceGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..544b5542237ac9acd9e4715be998cdd08d01008d
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/Microsoft.Interop.ComInterfaceGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/Microsoft.Interop.LibraryImportGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/Microsoft.Interop.LibraryImportGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..031058934421e59bfb76821d902dff36d625b509
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/Microsoft.Interop.LibraryImportGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/Microsoft.Interop.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/Microsoft.Interop.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9b509eb679ddbbb9ed5191ed99a53caa7f457a3e
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/Microsoft.Interop.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/System.Text.Json.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/System.Text.Json.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..54890382fe5c83e1502f81207256be13fad368c7
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/System.Text.Json.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/System.Text.RegularExpressions.Generator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/System.Text.RegularExpressions.Generator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8fe85fe314c9cbe75f2707b89f5f9d9a89b66e84
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pl/System.Text.RegularExpressions.Generator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/Microsoft.Interop.ComInterfaceGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/Microsoft.Interop.ComInterfaceGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7383b8bd27aec22fa66848bf9d27807eb188d32b
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/Microsoft.Interop.ComInterfaceGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/Microsoft.Interop.LibraryImportGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/Microsoft.Interop.LibraryImportGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5d661e1aa6e3b14bc390d537fdef5ce87642353e
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/Microsoft.Interop.LibraryImportGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/Microsoft.Interop.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/Microsoft.Interop.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f0c6cfe68441f650d1190c283696f887dcd2d740
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/Microsoft.Interop.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e1b3b0a191e90318b164f8b5e2669d479564fddb
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/System.Text.RegularExpressions.Generator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/System.Text.RegularExpressions.Generator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..305bad98309f20266236aff086455ad3acc8b54a
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/pt-BR/System.Text.RegularExpressions.Generator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/Microsoft.Interop.ComInterfaceGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/Microsoft.Interop.ComInterfaceGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dab7c99447e998ca27f55a5d855596a9dcdf1d39
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/Microsoft.Interop.ComInterfaceGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/Microsoft.Interop.LibraryImportGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/Microsoft.Interop.LibraryImportGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..029decd4647bdd90c87146e44cd0eda52021c488
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/Microsoft.Interop.LibraryImportGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/Microsoft.Interop.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/Microsoft.Interop.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5d362ba8fe039ec9e1bf055365a8d9b04713c8b9
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/Microsoft.Interop.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/System.Text.Json.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/System.Text.Json.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..874ee3cebe6bf495639cfc0f58d87914a06a8b06
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/System.Text.Json.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/System.Text.RegularExpressions.Generator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/System.Text.RegularExpressions.Generator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..37bcdb130af220c728f32ecd83e482c5500319d0
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/ru/System.Text.RegularExpressions.Generator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/Microsoft.Interop.ComInterfaceGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/Microsoft.Interop.ComInterfaceGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..86a359bd122eff1aba1618166762765a66b20738
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/Microsoft.Interop.ComInterfaceGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/Microsoft.Interop.LibraryImportGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/Microsoft.Interop.LibraryImportGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bbc974215345cdcccc3af37f25033b24fc8a38a6
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/Microsoft.Interop.LibraryImportGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/Microsoft.Interop.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/Microsoft.Interop.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8f6029f503887c35b8389cbf671227d02167c7d3
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/Microsoft.Interop.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/System.Text.Json.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/System.Text.Json.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c016001bf00f6c725c3c84f2953b9356ea6f31ca
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/System.Text.Json.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/System.Text.RegularExpressions.Generator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/System.Text.RegularExpressions.Generator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..614f0392d36100e74ab4efd76e7c24ea48248f51
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/tr/System.Text.RegularExpressions.Generator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/Microsoft.Interop.ComInterfaceGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/Microsoft.Interop.ComInterfaceGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fd9b1157dc495fa5b31dcd32c0dfba91fe848b1b
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/Microsoft.Interop.ComInterfaceGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/Microsoft.Interop.LibraryImportGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/Microsoft.Interop.LibraryImportGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f67c4d75cf81c93a4d97f9bf5b6c42c0148ba134
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/Microsoft.Interop.LibraryImportGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/Microsoft.Interop.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/Microsoft.Interop.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e1c39711e020c9327b52ed4ba7823413cdb6d0a0
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/Microsoft.Interop.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6d308ba5951aeb827895d44d6154b66c4ef5e26a
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/System.Text.RegularExpressions.Generator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/System.Text.RegularExpressions.Generator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3b942dccad8347dd61cf639e768c86a95dee10ff
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hans/System.Text.RegularExpressions.Generator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/Microsoft.Interop.ComInterfaceGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/Microsoft.Interop.ComInterfaceGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9a515d34d9862e026e011950a013185569825dae
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/Microsoft.Interop.ComInterfaceGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/Microsoft.Interop.LibraryImportGenerator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/Microsoft.Interop.LibraryImportGenerator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1714f0c4447b53876fb3e003c01cbc1d8ac4b51a
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/Microsoft.Interop.LibraryImportGenerator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/Microsoft.Interop.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/Microsoft.Interop.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cdd01bf13db1705a0cebc3d40185254853505c72
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/Microsoft.Interop.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..555d171706ac46a2018e8eab1fe3d3bb710bbea6
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/System.Text.RegularExpressions.Generator.resources.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/System.Text.RegularExpressions.Generator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e961e3d107f6505e82ae75987ae4446abee1aac6
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/analyzers/dotnet/cs/zh-Hant/System.Text.RegularExpressions.Generator.resources.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/data/FrameworkList.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/data/FrameworkList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..29b92d577385d496accf6129d911f3f6167a4173
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/data/FrameworkList.xml
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/data/PackageOverrides.txt b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/data/PackageOverrides.txt
new file mode 100644
index 0000000000000000000000000000000000000000..56817697b01272009c93c6b81806a963041435d0
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/data/PackageOverrides.txt
@@ -0,0 +1,164 @@
+Microsoft.CSharp|4.4.0
+Microsoft.Win32.Primitives|4.3.0
+Microsoft.Win32.Registry|4.4.0
+runtime.debian.8-x64.runtime.native.System|4.3.0
+runtime.debian.8-x64.runtime.native.System.IO.Compression|4.3.0
+runtime.debian.8-x64.runtime.native.System.Net.Http|4.3.0
+runtime.debian.8-x64.runtime.native.System.Net.Security|4.3.0
+runtime.debian.8-x64.runtime.native.System.Security.Cryptography|4.3.0
+runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0
+runtime.fedora.23-x64.runtime.native.System|4.3.0
+runtime.fedora.23-x64.runtime.native.System.IO.Compression|4.3.0
+runtime.fedora.23-x64.runtime.native.System.Net.Http|4.3.0
+runtime.fedora.23-x64.runtime.native.System.Net.Security|4.3.0
+runtime.fedora.23-x64.runtime.native.System.Security.Cryptography|4.3.0
+runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0
+runtime.fedora.24-x64.runtime.native.System|4.3.0
+runtime.fedora.24-x64.runtime.native.System.IO.Compression|4.3.0
+runtime.fedora.24-x64.runtime.native.System.Net.Http|4.3.0
+runtime.fedora.24-x64.runtime.native.System.Net.Security|4.3.0
+runtime.fedora.24-x64.runtime.native.System.Security.Cryptography|4.3.0
+runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0
+runtime.opensuse.13.2-x64.runtime.native.System|4.3.0
+runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression|4.3.0
+runtime.opensuse.13.2-x64.runtime.native.System.Net.Http|4.3.0
+runtime.opensuse.13.2-x64.runtime.native.System.Net.Security|4.3.0
+runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography|4.3.0
+runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0
+runtime.opensuse.42.1-x64.runtime.native.System|4.3.0
+runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression|4.3.0
+runtime.opensuse.42.1-x64.runtime.native.System.Net.Http|4.3.0
+runtime.opensuse.42.1-x64.runtime.native.System.Net.Security|4.3.0
+runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography|4.3.0
+runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0
+runtime.osx.10.10-x64.runtime.native.System|4.3.0
+runtime.osx.10.10-x64.runtime.native.System.IO.Compression|4.3.0
+runtime.osx.10.10-x64.runtime.native.System.Net.Http|4.3.0
+runtime.osx.10.10-x64.runtime.native.System.Net.Security|4.3.0
+runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography|4.3.0
+runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple|4.3.0
+runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0
+runtime.rhel.7-x64.runtime.native.System|4.3.0
+runtime.rhel.7-x64.runtime.native.System.IO.Compression|4.3.0
+runtime.rhel.7-x64.runtime.native.System.Net.Http|4.3.0
+runtime.rhel.7-x64.runtime.native.System.Net.Security|4.3.0
+runtime.rhel.7-x64.runtime.native.System.Security.Cryptography|4.3.0
+runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.System|4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression|4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http|4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security|4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography|4.3.0
+runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.System|4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression|4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http|4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security|4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography|4.3.0
+runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.System|4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression|4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http|4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security|4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography|4.3.0
+runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0
+System.AppContext|4.3.0
+System.Buffers|4.4.0
+System.Collections|4.3.0
+System.Collections.Concurrent|4.3.0
+System.Collections.Immutable|1.4.0
+System.Collections.NonGeneric|4.3.0
+System.Collections.Specialized|4.3.0
+System.ComponentModel|4.3.0
+System.ComponentModel.EventBasedAsync|4.3.0
+System.ComponentModel.Primitives|4.3.0
+System.ComponentModel.TypeConverter|4.3.0
+System.Console|4.3.0
+System.Data.Common|4.3.0
+System.Diagnostics.Contracts|4.3.0
+System.Diagnostics.Debug|4.3.0
+System.Diagnostics.DiagnosticSource|4.4.0
+System.Diagnostics.FileVersionInfo|4.3.0
+System.Diagnostics.Process|4.3.0
+System.Diagnostics.StackTrace|4.3.0
+System.Diagnostics.TextWriterTraceListener|4.3.0
+System.Diagnostics.Tools|4.3.0
+System.Diagnostics.TraceSource|4.3.0
+System.Diagnostics.Tracing|4.3.0
+System.Dynamic.Runtime|4.3.0
+System.Globalization|4.3.0
+System.Globalization.Calendars|4.3.0
+System.Globalization.Extensions|4.3.0
+System.IO|4.3.0
+System.IO.Compression|4.3.0
+System.IO.Compression.ZipFile|4.3.0
+System.IO.FileSystem|4.3.0
+System.IO.FileSystem.AccessControl|4.4.0
+System.IO.FileSystem.DriveInfo|4.3.0
+System.IO.FileSystem.Primitives|4.3.0
+System.IO.FileSystem.Watcher|4.3.0
+System.IO.IsolatedStorage|4.3.0
+System.IO.MemoryMappedFiles|4.3.0
+System.IO.Pipes|4.3.0
+System.IO.UnmanagedMemoryStream|4.3.0
+System.Linq|4.3.0
+System.Linq.Expressions|4.3.0
+System.Linq.Queryable|4.3.0
+System.Net.Http|4.3.0
+System.Net.NameResolution|4.3.0
+System.Net.Primitives|4.3.0
+System.Net.Requests|4.3.0
+System.Net.Security|4.3.0
+System.Net.Sockets|4.3.0
+System.Net.WebHeaderCollection|4.3.0
+System.ObjectModel|4.3.0
+System.Private.DataContractSerialization|4.3.0
+System.Reflection|4.3.0
+System.Reflection.Emit|4.3.0
+System.Reflection.Emit.ILGeneration|4.3.0
+System.Reflection.Emit.Lightweight|4.3.0
+System.Reflection.Extensions|4.3.0
+System.Reflection.Metadata|1.5.0
+System.Reflection.Primitives|4.3.0
+System.Reflection.TypeExtensions|4.3.0
+System.Resources.ResourceManager|4.3.0
+System.Runtime|4.3.0
+System.Runtime.Extensions|4.3.0
+System.Runtime.Handles|4.3.0
+System.Runtime.InteropServices|4.3.0
+System.Runtime.InteropServices.RuntimeInformation|4.3.0
+System.Runtime.Loader|4.3.0
+System.Runtime.Numerics|4.3.0
+System.Runtime.Serialization.Formatters|4.3.0
+System.Runtime.Serialization.Json|4.3.0
+System.Runtime.Serialization.Primitives|4.3.0
+System.Security.AccessControl|4.4.0
+System.Security.Claims|4.3.0
+System.Security.Cryptography.Algorithms|4.3.0
+System.Security.Cryptography.Cng|4.4.0
+System.Security.Cryptography.Csp|4.3.0
+System.Security.Cryptography.Encoding|4.3.0
+System.Security.Cryptography.OpenSsl|4.4.0
+System.Security.Cryptography.Primitives|4.3.0
+System.Security.Cryptography.X509Certificates|4.3.0
+System.Security.Cryptography.Xml|4.4.0
+System.Security.Principal|4.3.0
+System.Security.Principal.Windows|4.4.0
+System.Text.Encoding|4.3.0
+System.Text.Encoding.Extensions|4.3.0
+System.Text.RegularExpressions|4.3.0
+System.Threading|4.3.0
+System.Threading.Overlapped|4.3.0
+System.Threading.Tasks|4.3.0
+System.Threading.Tasks.Extensions|4.3.0
+System.Threading.Tasks.Parallel|4.3.0
+System.Threading.Thread|4.3.0
+System.Threading.ThreadPool|4.3.0
+System.Threading.Timer|4.3.0
+System.ValueTuple|4.3.0
+System.Xml.ReaderWriter|4.3.0
+System.Xml.XDocument|4.3.0
+System.Xml.XmlDocument|4.3.0
+System.Xml.XmlSerializer|4.3.0
+System.Xml.XPath|4.3.0
+System.Xml.XPath.XDocument|4.3.0
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/data/PlatformManifest.txt b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/data/PlatformManifest.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0ba241996438090a29b9821867eb89f5aa105204
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/data/PlatformManifest.txt
@@ -0,0 +1,371 @@
+System.Globalization.Native.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Globalization.Native.so|Microsoft.NETCore.App.Ref||0.0.0.0
+System.IO.Compression.Native.a|Microsoft.NETCore.App.Ref||0.0.0.0
+System.IO.Compression.Native.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+System.IO.Compression.Native.so|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Native.a|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Native.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Native.so|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Net.Http.Native.a|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Net.Http.Native.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Net.Http.Native.so|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Net.Security.Native.a|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Net.Security.Native.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Net.Security.Native.so|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Security.Cryptography.Native.Apple.a|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Security.Cryptography.Native.Apple.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Security.Cryptography.Native.OpenSsl.a|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Security.Cryptography.Native.OpenSsl.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Security.Cryptography.Native.OpenSsl.so|Microsoft.NETCore.App.Ref||0.0.0.0
+clrcompression.dll|Microsoft.NETCore.App.Ref||8.0.824.36612
+mscorlib.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+Microsoft.VisualBasic.dll|Microsoft.NETCore.App.Ref|10.0.0.0|8.0.824.36612
+System.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.ComponentModel.DataAnnotations.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Configuration.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Core.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Data.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Drawing.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.IO.Compression.FileSystem.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Net.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Numerics.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Runtime.Serialization.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Security.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.ServiceProcess.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.ServiceModel.Web.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Transactions.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Web.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Windows.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Xml.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Xml.Serialization.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Xml.Linq.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+WindowsBase.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+netstandard.dll|Microsoft.NETCore.App.Ref|2.1.0.0|8.0.824.36612
+Microsoft.CSharp.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+Microsoft.VisualBasic.Core.dll|Microsoft.NETCore.App.Ref|13.0.0.0|13.0.824.36612
+Microsoft.Win32.Primitives.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+Microsoft.Win32.Registry.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.AppContext.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Buffers.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Collections.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Collections.Concurrent.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Collections.Immutable.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Collections.NonGeneric.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Collections.Specialized.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.ComponentModel.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.ComponentModel.Annotations.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.ComponentModel.EventBasedAsync.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.ComponentModel.Primitives.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.ComponentModel.TypeConverter.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Console.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Data.Common.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Data.DataSetExtensions.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Diagnostics.Contracts.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Diagnostics.Debug.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Diagnostics.DiagnosticSource.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Diagnostics.FileVersionInfo.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Diagnostics.Process.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Diagnostics.StackTrace.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Diagnostics.TextWriterTraceListener.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Diagnostics.Tools.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Diagnostics.TraceSource.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Diagnostics.Tracing.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Drawing.Primitives.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Dynamic.Runtime.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Formats.Asn1.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Formats.Tar.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Globalization.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Globalization.Calendars.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Globalization.Extensions.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.IO.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.IO.Compression.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.IO.Compression.Brotli.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.IO.Compression.ZipFile.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.IO.FileSystem.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.IO.FileSystem.AccessControl.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.IO.FileSystem.DriveInfo.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.IO.FileSystem.Primitives.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.IO.FileSystem.Watcher.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.IO.IsolatedStorage.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.IO.MemoryMappedFiles.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.IO.Pipes.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.IO.Pipes.AccessControl.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.IO.UnmanagedMemoryStream.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Linq.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Linq.Expressions.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Linq.Parallel.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Linq.Queryable.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Memory.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.Http.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.Http.Json.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.HttpListener.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.Mail.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.NameResolution.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.NetworkInformation.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.Ping.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.Primitives.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.Quic.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.Requests.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.Security.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.ServicePoint.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.Sockets.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.WebClient.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.WebHeaderCollection.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.WebProxy.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.WebSockets.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Net.WebSockets.Client.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Numerics.Vectors.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.ObjectModel.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Private.CoreLib.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+System.Private.DataContractSerialization.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+System.Private.Uri.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+System.Private.Xml.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+System.Private.Xml.Linq.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+System.Reflection.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Reflection.DispatchProxy.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Reflection.Emit.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Reflection.Emit.ILGeneration.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Reflection.Emit.Lightweight.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Reflection.Extensions.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Reflection.Metadata.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Reflection.Primitives.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Reflection.TypeExtensions.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Resources.Reader.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Resources.ResourceManager.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Resources.Writer.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.CompilerServices.Unsafe.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.CompilerServices.VisualC.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.Extensions.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.Handles.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.InteropServices.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.InteropServices.JavaScript.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.InteropServices.RuntimeInformation.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.Intrinsics.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.Loader.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.Numerics.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.Serialization.Formatters.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.Serialization.Json.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.Serialization.Primitives.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Runtime.Serialization.Xml.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Security.AccessControl.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Security.Claims.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Security.Cryptography.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Security.Cryptography.Algorithms.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Security.Cryptography.Cng.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Security.Cryptography.Csp.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Security.Cryptography.Encoding.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Security.Cryptography.OpenSsl.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Security.Cryptography.Primitives.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Security.Cryptography.X509Certificates.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Security.Principal.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Security.Principal.Windows.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Security.SecureString.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Text.Encoding.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Text.Encoding.CodePages.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Text.Encoding.Extensions.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Text.Encodings.Web.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Text.Json.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Text.RegularExpressions.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Threading.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Threading.Channels.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Threading.Overlapped.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Threading.Tasks.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Threading.Tasks.Dataflow.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Threading.Tasks.Extensions.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Threading.Tasks.Parallel.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Threading.Thread.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Threading.ThreadPool.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Threading.Timer.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Transactions.Local.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.ValueTuple.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Web.HttpUtility.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Xml.ReaderWriter.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Xml.XDocument.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Xml.XmlDocument.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Xml.XmlSerializer.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Xml.XPath.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+System.Xml.XPath.XDocument.dll|Microsoft.NETCore.App.Ref|8.0.0.0|8.0.824.36612
+mscorlib.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+Microsoft.VisualBasic.dll|Microsoft.NETCore.App.Ref|10.0.0.0|8.0.824.36612
+System.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.ComponentModel.DataAnnotations.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Configuration.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Core.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Data.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Drawing.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.IO.Compression.FileSystem.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Net.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Numerics.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Runtime.Serialization.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Security.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.ServiceProcess.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.ServiceModel.Web.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Transactions.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Web.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Windows.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Xml.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Xml.Serialization.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+System.Xml.Linq.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+WindowsBase.dll|Microsoft.NETCore.App.Ref|4.0.0.0|8.0.824.36612
+netstandard.dll|Microsoft.NETCore.App.Ref|2.1.0.0|8.0.824.36612
+System.Private.CoreLib.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+System.Private.DataContractSerialization.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+System.Private.Uri.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+System.Private.Xml.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+System.Private.Xml.Linq.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+libSystem.Globalization.Native.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Globalization.Native.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Globalization.Native.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.IO.Compression.Native.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.IO.Compression.Native.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.IO.Compression.Native.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Native.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Native.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Native.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Net.Http.Native.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Net.Http.Native.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Net.Http.Native.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Net.Security.Native.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Net.Security.Native.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Net.Security.Native.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Security.Cryptography.Native.Apple.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Security.Cryptography.Native.Apple.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Security.Cryptography.Native.Android.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Security.Cryptography.Native.Android.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Security.Cryptography.Native.Android.dex|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Security.Cryptography.Native.Android.jar|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Security.Cryptography.Native.OpenSsl.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Security.Cryptography.Native.OpenSsl.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+libSystem.Security.Cryptography.Native.OpenSsl.so|Microsoft.NETCore.App.Ref||0.0.0.0
+coreclr.dll|Microsoft.NETCore.App.Ref||8.0.824.36612
+libcoreclr.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libcoreclr.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+clrgc.dll|Microsoft.NETCore.App.Ref||8.0.824.36612
+libclrgc.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libclrgc.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+clretwrc.dll|Microsoft.NETCore.App.Ref||8.0.824.36612
+clrjit.dll|Microsoft.NETCore.App.Ref||8.0.824.36612
+libclrjit.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libclrjit.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+mscordaccore.dll|Microsoft.NETCore.App.Ref||8.0.824.36612
+libmscordaccore.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libmscordaccore.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+mscordbi.dll|Microsoft.NETCore.App.Ref||8.0.824.36612
+libmscordbi.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libmscordbi.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+mscorrc.dll|Microsoft.NETCore.App.Ref||8.0.824.36612
+ucrtbase.dll|Microsoft.NETCore.App.Ref||8.0.824.36612
+msquic.dll|Microsoft.NETCore.App.Ref||1.8.0.0
+System.IO.Compression.Native.dll|Microsoft.NETCore.App.Ref||8.0.824.36612
+createdump.exe|Microsoft.NETCore.App.Ref||8.0.824.36612
+createdump|Microsoft.NETCore.App.Ref||0.0.0.0
+libcoreclrtraceptprovider.so|Microsoft.NETCore.App.Ref||0.0.0.0
+Microsoft.DiaSymReader.Native.x86.dll|Microsoft.NETCore.App.Ref||14.28.29715.1
+Microsoft.DiaSymReader.Native.amd64.dll|Microsoft.NETCore.App.Ref||14.28.29715.1
+Microsoft.DiaSymReader.Native.arm.dll|Microsoft.NETCore.App.Ref||14.28.29715.1
+Microsoft.DiaSymReader.Native.arm64.dll|Microsoft.NETCore.App.Ref||14.28.29715.1
+libbootstrapper.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libbootstrapperdll.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libbootstrapper.o|Microsoft.NETCore.App.Ref||0.0.0.0
+libbootstrapperdll.o|Microsoft.NETCore.App.Ref||0.0.0.0
+libeventpipe-disabled.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libeventpipe-enabled.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libRuntime.ServerGC.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libRuntime.WorkstationGC.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libstdc++compat.a|Microsoft.NETCore.App.Ref||0.0.0.0
+System.Private.DisabledReflection.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+System.Private.Reflection.Execution.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+System.Private.StackTraceMetadata.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+System.Private.TypeLoader.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+monosgen-2.0.lib|Microsoft.NETCore.App.Ref||0.0.0.0
+libmonosgen-2.0.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmonosgen-2.0.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libmonosgen-2.0.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+llc|Microsoft.NETCore.App.Ref||0.0.0.0
+mono-aot-cross|Microsoft.NETCore.App.Ref||0.0.0.0
+mono-aot-cross.exe|Microsoft.NETCore.App.Ref||8.0.824.36612
+opt|Microsoft.NETCore.App.Ref||0.0.0.0
+libc++.so.1|Microsoft.NETCore.App.Ref||0.0.0.0
+libc++abi.so.1|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-diagnostics_tracing.dll|Microsoft.NETCore.App.Ref||8.0.824.36612
+libmono-component-diagnostics_tracing.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-diagnostics_tracing.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-diagnostics_tracing-static.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-diagnostics_tracing-stub-static.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-diagnostics_tracing-static.lib|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-diagnostics_tracing-stub-static.lib|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-hot_reload.dll|Microsoft.NETCore.App.Ref||8.0.824.36612
+libmono-component-hot_reload.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-hot_reload.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-hot_reload-static.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-hot_reload-stub-static.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-hot_reload-static.lib|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-hot_reload-stub-static.lib|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-debugger.dll|Microsoft.NETCore.App.Ref||8.0.824.36612
+libmono-component-debugger.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-debugger.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-debugger-static.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-debugger-stub-static.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-debugger-static.lib|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-debugger-stub-static.lib|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-marshal-ilgen.dll|Microsoft.NETCore.App.Ref||8.0.824.36612
+libmono-component-marshal-ilgen.so|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-marshal-ilgen.dylib|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-marshal-ilgen-static.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-marshal-ilgen-stub-static.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-marshal-ilgen-static.lib|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-component-marshal-ilgen-stub-static.lib|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-ee-interp.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-icall-table.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-profiler-aot.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-profiler-browser.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-wasm-eh-js.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-wasm-eh-wasm.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-wasm-simd.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libmono-wasm-nosimd.a|Microsoft.NETCore.App.Ref||0.0.0.0
+wasm-bundled-timezones.a|Microsoft.NETCore.App.Ref||0.0.0.0
+dotnet.js|Microsoft.NETCore.App.Ref||0.0.0.0
+dotnet.js.map|Microsoft.NETCore.App.Ref||0.0.0.0
+dotnet.runtime.js|Microsoft.NETCore.App.Ref||0.0.0.0
+dotnet.runtime.js.map|Microsoft.NETCore.App.Ref||0.0.0.0
+dotnet.native.js|Microsoft.NETCore.App.Ref||0.0.0.0
+dotnet.native.worker.js|Microsoft.NETCore.App.Ref||0.0.0.0
+dotnet.native.js.symbols|Microsoft.NETCore.App.Ref||0.0.0.0
+dotnet.d.ts|Microsoft.NETCore.App.Ref||0.0.0.0
+dotnet-legacy.d.ts|Microsoft.NETCore.App.Ref||0.0.0.0
+dotnet.native.wasm|Microsoft.NETCore.App.Ref||0.0.0.0
+icudt.dat|Microsoft.NETCore.App.Ref||0.0.0.0
+icudt_no_CJK.dat|Microsoft.NETCore.App.Ref||0.0.0.0
+icudt_CJK.dat|Microsoft.NETCore.App.Ref||0.0.0.0
+icudt_EFIGS.dat|Microsoft.NETCore.App.Ref||0.0.0.0
+icudt_optimal.dat|Microsoft.NETCore.App.Ref||0.0.0.0
+icudt_optimal_no_CJK.dat|Microsoft.NETCore.App.Ref||0.0.0.0
+icudt_hybrid.dat|Microsoft.NETCore.App.Ref||0.0.0.0
+package.json|Microsoft.NETCore.App.Ref||0.0.0.0
+pal_random.lib.js|Microsoft.NETCore.App.Ref||0.0.0.0
+dotnet.es6.pre.js|Microsoft.NETCore.App.Ref||0.0.0.0
+dotnet.es6.lib.js|Microsoft.NETCore.App.Ref||0.0.0.0
+dotnet.es6.extpost.js|Microsoft.NETCore.App.Ref||0.0.0.0
+corebindings.c|Microsoft.NETCore.App.Ref||0.0.0.0
+driver.c|Microsoft.NETCore.App.Ref||0.0.0.0
+pinvoke.c|Microsoft.NETCore.App.Ref||0.0.0.0
+pinvoke.h|Microsoft.NETCore.App.Ref||0.0.0.0
+gc-common.h|Microsoft.NETCore.App.Ref||0.0.0.0
+wasm-config.h|Microsoft.NETCore.App.Ref||0.0.0.0
+emcc-default.rsp|Microsoft.NETCore.App.Ref||0.0.0.0
+emcc-link.rsp|Microsoft.NETCore.App.Ref||0.0.0.0
+emcc-props.json|Microsoft.NETCore.App.Ref||0.0.0.0
+ILLink.Substitutions.WasmIntrinsics.xml|Microsoft.NETCore.App.Ref||0.0.0.0
+ILLink.Substitutions.NoWasmIntrinsics.xml|Microsoft.NETCore.App.Ref||0.0.0.0
+ILLink.Substitutions.LegacyJsInterop.xml|Microsoft.NETCore.App.Ref||0.0.0.0
+main.c|Microsoft.NETCore.App.Ref||0.0.0.0
+driver.h|Microsoft.NETCore.App.Ref||0.0.0.0
+stubs.c|Microsoft.NETCore.App.Ref||0.0.0.0
+synthetic-pthread.c|Microsoft.NETCore.App.Ref||0.0.0.0
+dotnet.wasm|Microsoft.NETCore.App.Ref||0.0.0.0
+libicudata.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libicui18n.a|Microsoft.NETCore.App.Ref||0.0.0.0
+libicuuc.a|Microsoft.NETCore.App.Ref||0.0.0.0
+mscordaccore_amd64_amd64_8.0.824.36612.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
+mscordaccore_amd64_amd64_8.0.824.36612.dll|Microsoft.NETCore.App.Ref|8.0.8.0|8.0.824.36612
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/Microsoft.CSharp.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/Microsoft.CSharp.dll
new file mode 100644
index 0000000000000000000000000000000000000000..593820eb0767e63103bccac89e08f13b9a2eaeed
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/Microsoft.CSharp.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/Microsoft.VisualBasic.Core.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/Microsoft.VisualBasic.Core.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f15202a5cd6028e53d143e1f94b1df6b80e37d45
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/Microsoft.VisualBasic.Core.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/Microsoft.VisualBasic.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/Microsoft.VisualBasic.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a377e9d9127c13718452520376bdd3529b8af3ea
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/Microsoft.VisualBasic.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Win32.Primitives.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Win32.Primitives.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b7bedbcea98c4ebbd95a5fe4a594dbccd1cf6c81
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/Microsoft.Win32.Primitives.xml
@@ -0,0 +1,52 @@
+
+
+
+ Microsoft.Win32.Primitives
+
+
+
+ Throws an exception for a Win32 error code.
+
+
+ Initializes a new instance of the class with the last Win32 error that occurred.
+
+
+ Initializes a new instance of the class with the specified error.
+ The Win32 error code associated with this exception.
+
+
+ Initializes a new instance of the class with the specified error and the specified detailed description.
+ The Win32 error code associated with this exception.
+ A detailed description of the error.
+
+
+ Initializes a new instance of the class with the specified context and the serialization information.
+ The associated with this exception.
+ A that represents the context of this exception.
+
+
+ Initializes a new instance of the class with the specified detailed description.
+ A detailed description of the error.
+
+
+ Initializes a new instance of the class with the specified detailed description and the specified exception.
+ A detailed description of the error.
+ A reference to the inner exception that is the cause of this exception.
+
+
+ Sets the object with the file name and line number at which this occurred.
+ A .
+ The contextual information about the source or destination.
+
+ is .
+
+
+ Returns a string that contains the , or , or both.
+ A string that represents the , or , or both.
+
+
+ Gets the Win32 error code associated with this exception.
+ The Win32 error code associated with this exception.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Collections.Concurrent.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Collections.Concurrent.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d750e7e08228db144ad92aeb1c5614ac25947764
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Collections.Concurrent.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Collections.Immutable.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Collections.Immutable.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6b116d1733357eadfff6f3ec294f44fd1f0f09da
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Collections.Immutable.xml
@@ -0,0 +1,6100 @@
+
+
+
+ System.Collections.Immutable
+
+
+
+ Provides a set of initialization methods for instances of the class.
+
+
+ Creates a from an according to specified key selector function.
+ An from which to create a .
+ A function to extract a key from each element.
+ An to compare keys.
+ The type of the elements of .
+ The type of the key returned by .
+ A that contains the keys and values selected from the input sequence.
+
+
+ Creates a with the specified key/value pairs.
+ The key/value pairs to use to populate the dictionary.
+ The comparer implementation to use to compare keys for equality. If , is used.
+ The type of the keys in the dictionary.
+ The type of the values in the dictionary.
+ A that contains the specified keys and values.
+
+
+ Creates a from an according to specified key selector and element selector functions.
+ An from which to create a .
+ A function to extract a key from each element.
+ A transform function to produce a result element value from each element.
+ An to compare keys.
+ The type of the elements of .
+ The type of the key returned by .
+ The type of the value returned by .
+ A that contains the keys and values selected from the input sequence.
+
+
+ Provides an immutable, read-only dictionary optimized for fast lookup and enumeration.
+ The type of the keys in the dictionary.
+ The type of the values in this dictionary.
+
+
+ Determines whether the dictionary contains the specified key.
+ The key to locate in the dictionary.
+
+ if the dictionary contains an element with the specified key; otherwise, .
+
+
+ Copies the elements of the dictionary to an array of type , starting at the specified .
+ The array that is the destination of the elements copied from the dictionary.
+ The zero-based index in at which copying begins.
+
+
+ Copies the elements of the dictionary to a span of type .
+ The span that is the destination of the elements copied from the dictionary.
+
+
+ Returns an enumerator that iterates through the dictionary.
+ An enumerator that iterates through the dictionary.
+
+
+ Gets either a reference to a in the dictionary or a reference if the key does not exist in the dictionary.
+ The key used for lookup.
+ A reference to a in the dictionary or a reference if the key does not exist in the dictionary.
+
+
+ Adds an item to the .
+ The object to add to the .
+
+
+ Removes all items from the .
+
+
+ Determines whether the contains a specific value.
+ The object to locate in the .
+
+ if is found in the ; otherwise, .
+
+
+ Removes the first occurrence of a specific object from the .
+ The object to remove from the .
+
+ if was successfully removed from the ; otherwise, . This method also returns if is not found in the original .
+
+
+ Adds an element with the provided key and value to the .
+ The object to use as the key of the element to add.
+ The object to use as the value of the element to add.
+
+
+ Removes the element with the specified key from the .
+ The key of the element to remove.
+
+ if the element is successfully removed; otherwise, . This method also returns if was not found in the original .
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Copies the elements of the to an , starting at a particular index.
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in array
at which copying begins.
+
+
+ Adds an element with the provided key and value to the object.
+ The to use as the key of the element to add.
+ The to use as the value of the element to add.
+
+
+ Removes all elements from the object.
+
+
+ Determines whether the object contains an element with the specified key.
+ The key to locate in the object.
+
+ true
if the contains an element with the key; otherwise, false
.
+
+
+ Returns an object for the object.
+ An object for the object.
+
+
+ Removes the element with the specified key from the object.
+ The key of the element to remove.
+
+
+ Returns an enumerator that iterates through a collection.
+ An object that can be used to iterate through the collection.
+
+
+ Gets the value associated with the specified key.
+ The key of the value to get.
+ When this method returns, contains the value associated with the specified key, if the key is found; otherwise, the default value for the type of .
+
+ if the dictionary contains an element with the specified key; otherwise, .
+
+
+ Gets the comparer used by this dictionary.
+
+
+ Gets the number of key/value pairs contained in the dictionary.
+
+
+ Gets an empty .
+
+
+ Gets a reference to the value associated with the specified key.
+ The key of the value to get.
+
+ does not exist in the collection.
+ A reference to the value associated with the specified key.
+
+
+ Gets a collection containing the keys in the dictionary.
+
+
+ Gets a value indicating whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets or sets the element with the specified key.
+ The key of the element to get or set.
+ The element with the specified key.
+
+
+ Gets an containing the keys of the .
+ An containing the keys of the object that implements .
+
+
+ Gets an containing the values in the .
+ An containing the values in the object that implements .
+
+
+ Gets the element that has the specified key in the read-only dictionary.
+ The key to locate.
+ The element that has the specified key in the read-only dictionary.
+
+
+ Gets an enumerable collection that contains the keys in the read-only dictionary.
+ An enumerable collection that contains the keys in the read-only dictionary.
+
+
+ Gets an enumerable collection that contains the values in the read-only dictionary.
+ An enumerable collection that contains the values in the read-only dictionary.
+
+
+ Gets a value indicating whether access to the is synchronized (thread safe).
+
+ true
if access to the is synchronized (thread safe); otherwise, false
.
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Gets a value indicating whether the object has a fixed size.
+
+ true
if the object has a fixed size; otherwise, false
.
+
+
+ Gets a value indicating whether the object is read-only.
+
+ true
if the object is read-only; otherwise, false
.
+
+
+ Gets or sets the element with the specified key.
+ The key of the element to get or set.
+ The element with the specified key, or null
if the key does not exist.
+
+
+ Gets an object containing the keys of the object.
+ An object containing the keys of the object.
+
+
+ Gets an object containing the values in the object.
+ An object containing the values in the object.
+
+
+ Gets a collection containing the values in the dictionary.
+
+
+ Enumerates the elements of a .
+
+
+
+
+ Advances the enumerator to the next element of the collection.
+
+ true
if the enumerator was successfully advanced to the next element; false
if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Provides a set of initialization methods for instances of the class.
+
+
+ Creates a with the specified values.
+ The values to use to populate the set.
+ The comparer implementation to use to compare values for equality. If , is used.
+ The type of the values in the set.
+ A frozen set.
+
+
+ Provides an immutable, read-only set optimized for fast lookup and enumeration.
+ The type of the values in this set.
+
+
+ Determines whether the set contains the specified element.
+ The element to locate.
+
+ if the set contains the specified element; otherwise, .
+
+
+ Copies the values in the set to an array, starting at the specified .
+ The array that is the destination of the values copied from the set.
+ The zero-based index in at which copying begins.
+
+
+ Copies the values in the set to a span.
+ The span that is the destination of the values copied from the set.
+
+
+ Returns an enumerator that iterates through the set.
+ An enumerator that iterates through the set.
+
+
+ Determines whether the current set is a proper (strict) subset of a specified collection.
+ The collection to compare to the current set.
+
+ true
if the current set is a proper subset of other
; otherwise, false
.
+
+
+ Determines whether the current set is a proper (strict) superset of a specified collection.
+ The collection to compare to the current set.
+
+ true
if the current set is a proper superset of other
; otherwise, false
.
+
+
+ Determines whether a set is a subset of a specified collection.
+ The collection to compare to the current set.
+
+ true
if the current set is a subset of other
; otherwise, false
.
+
+
+ Determines whether the current set is a superset of a specified collection.
+ The collection to compare to the current set.
+
+ true
if the current set is a superset of other
; otherwise, false
.
+
+
+ Determines whether the current set overlaps with the specified collection.
+ The collection to compare to the current set.
+
+ true
if the current set and other
share at least one common element; otherwise, false
.
+
+
+ Determines whether the current set and the specified collection contain the same elements.
+ The collection to compare to the current set.
+
+ true
if the current set is equal to other
; otherwise, false
.
+
+
+ Adds an item to the .
+ The object to add to the .
+
+
+ Removes all items from the .
+
+
+ Removes the first occurrence of a specific object from the .
+ The object to remove from the .
+
+ if was successfully removed from the ; otherwise, . This method also returns if is not found in the original .
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Adds an element to the current set and returns a value to indicate if the element was successfully added.
+ The element to add to the set.
+
+ if the element is added to the set; if the element is already in the set.
+
+
+ Removes all elements in the specified collection from the current set.
+ The collection of items to remove from the set.
+
+
+ Modifies the current set so that it contains only elements that are also in a specified collection.
+ The collection to compare to the current set.
+
+
+ Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
+ The collection to compare to the current set.
+
+
+ Modifies the current set so that it contains all elements that are present in the current set, in the specified collection, or in both.
+ The collection to compare to the current set.
+
+
+ Copies the elements of the to an , starting at a particular index.
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in array
at which copying begins.
+
+
+ Returns an enumerator that iterates through a collection.
+ An object that can be used to iterate through the collection.
+
+
+ Searches the set for a given value and returns the equal value it finds, if any.
+ The value to search for.
+ The value from the set that the search found, or the default value of T when the search yielded no match.
+ A value indicating whether the search was successful.
+
+
+ Gets the comparer used by this set.
+
+
+ Gets the number of values contained in the set.
+
+
+ Gets an empty .
+
+
+ Gets a collection containing the values in the set.
+
+
+ Gets a value indicating whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets a value indicating whether access to the is synchronized (thread safe).
+
+ true
if access to the is synchronized (thread safe); otherwise, false
.
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Enumerates the values of a .
+
+
+
+ Advances the enumerator to the next element of the collection.
+
+ true
if the enumerator was successfully advanced to the next element; false
if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Gets the element in the collection at the current position of the enumerator.
+ The element in the collection at the current position of the enumerator.
+
+
+ Represents an immutable collection of key/value pairs.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The type of keys in the dictionary.
+ The type of values in the dictionary.
+
+
+ Adds an element with the specified key and value to the dictionary.
+ The key of the element to add.
+ The value of the element to add.
+ The given key already exists in the dictionary but has a different value.
+ A new immutable dictionary that contains the additional key/value pair.
+
+
+ Adds the specified key/value pairs to the dictionary.
+ The key/value pairs to add.
+ One of the given keys already exists in the dictionary but has a different value.
+ A new immutable dictionary that contains the additional key/value pairs.
+
+
+ Retrieves an empty dictionary that has the same ordering and key/value comparison rules as this dictionary instance.
+ An empty dictionary with equivalent ordering and key/value comparison rules.
+
+
+ Determines whether the immutable dictionary contains the specified key/value pair.
+ The key/value pair to locate.
+
+ if the specified key/value pair is found in the dictionary; otherwise, .
+
+
+ Removes the element with the specified key from the immutable dictionary.
+ The key of the element to remove.
+ A new immutable dictionary with the specified element removed; or this instance if the specified key cannot be found in the dictionary.
+
+
+ Removes the elements with the specified keys from the immutable dictionary.
+ The keys of the elements to remove.
+ A new immutable dictionary with the specified keys removed; or this instance if the specified keys cannot be found in the dictionary.
+
+
+ Sets the specified key and value in the immutable dictionary, possibly overwriting an existing value for the key.
+ The key of the entry to add.
+ The key value to set.
+ A new immutable dictionary that contains the specified key/value pair.
+
+
+ Sets the specified key/value pairs in the immutable dictionary, possibly overwriting existing values for the keys.
+ The key/value pairs to set in the dictionary. If any of the keys already exist in the dictionary, this method will overwrite their previous values.
+ A new immutable dictionary that contains the specified key/value pairs.
+
+
+ Determines whether this dictionary contains a specified key.
+ The key to search for.
+ The matching key located in the dictionary if found, or equalkey if no match is found.
+
+ if a match for is found; otherwise, .
+
+
+ Represents a list of elements that cannot be modified.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The type of elements in the list.
+
+
+ Makes a copy of the list, and adds the specified object to the end of the copied list.
+ The object to add to the list.
+ A new list with the object added.
+
+
+ Makes a copy of the list and adds the specified objects to the end of the copied list.
+ The objects to add to the list.
+ A new list with the elements added.
+
+
+ Creates a list with all the items removed, but with the same sorting and ordering semantics as this list.
+ An empty list that has the same sorting and ordering semantics as this instance.
+
+
+ Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the that starts at the specified index and contains the specified number of elements.
+ The object to locate in the . This value can be null for reference types.
+ The zero-based starting indexes of the search. 0 (zero) is valid in an empty list.
+ The number of elements in the section to search.
+ The equality comparer to use to locate .
+ The zero-based index of the first occurrence of within the range of elements in the that starts at and contains number of elements if found; otherwise -1.
+
+
+ Inserts the specified element at the specified index in the immutable list.
+ The zero-based index at which to insert the value.
+ The object to insert.
+ A new immutable list that includes the specified element.
+
+
+ Inserts the specified elements at the specified index in the immutable list.
+ The zero-based index at which the new elements should be inserted.
+ The elements to insert.
+ A new immutable list that includes the specified elements.
+
+
+ Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the that contains the specified number of elements and ends at the specified index.
+ The object to locate in the list. The value can be for reference types.
+ The zero-based starting index of the search. 0 (zero) is valid in an empty list.
+ The number of elements in the section to search.
+ The equality comparer to match .
+ Returns .
+
+
+ Removes the first occurrence of a specified object from this immutable list.
+ The object to remove from the list.
+ The equality comparer to use to locate .
+ A new list with the specified object removed.
+
+
+ Removes all the elements that match the conditions defined by the specified predicate.
+ The delegate that defines the conditions of the elements to remove.
+ A new immutable list with the elements removed.
+
+
+ Removes the element at the specified index of the immutable list.
+ The index of the element to remove.
+ A new list with the element removed.
+
+
+ Removes the specified object from the list.
+ The objects to remove from the list.
+ The equality comparer to use to determine if match any objects in the list.
+ A new immutable list with the specified objects removed, if matched objects in the list.
+
+
+ Removes a range of elements from the .
+ The zero-based starting index of the range of elements to remove.
+ The number of elements to remove.
+ A new immutable list with the elements removed.
+
+
+ Returns a new list with the first matching element in the list replaced with the specified element.
+ The element to be replaced.
+ The element to replace the first occurrence of with.
+ The equality comparer to use for matching .
+
+ does not exist in the list.
+ A new list that contains , even if is the same as .
+
+
+ Replaces an element in the list at a given position with the specified element.
+ The position in the list of the element to replace.
+ The element to replace the old element with.
+ A new list that contains the new element, even if the element at the specified location is the same as the new element.
+
+
+ Represents an immutable first-in, first-out collection of objects.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The type of elements in the queue.
+
+
+ Returns a new queue with all the elements removed.
+ An empty immutable queue.
+
+
+ Removes the first element in the immutable queue, and returns the new queue.
+ The queue is empty.
+ The new immutable queue with the first element removed. This value is never .
+
+
+ Adds an element to the end of the immutable queue, and returns the new queue.
+ The element to add.
+ The new immutable queue with the specified element added.
+
+
+ Returns the element at the beginning of the immutable queue without removing it.
+ The queue is empty.
+ The element at the beginning of the queue.
+
+
+ Gets a value that indicates whether this immutable queue is empty.
+
+ if this queue is empty; otherwise, .
+
+
+ Represents a set of elements that can only be modified by creating a new instance of the set.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The type of element stored in the set.
+
+
+ Adds the specified element to this immutable set.
+ The element to add.
+ A new set with the element added, or this set if the element is already in the set.
+
+
+ Retrieves an empty immutable set that has the same sorting and ordering semantics as this instance.
+ An empty set that has the same sorting and ordering semantics as this instance.
+
+
+ Determines whether this immutable set contains a specified element.
+ The element to locate in the set.
+
+ if the set contains the specified value; otherwise, .
+
+
+ Removes the elements in the specified collection from the current immutable set.
+ The collection of items to remove from this set.
+ A new set with the items removed; or the original set if none of the items were in the set.
+
+
+ Creates an immutable set that contains only elements that exist in this set and the specified set.
+ The collection to compare to the current .
+ A new immutable set that contains elements that exist in both sets.
+
+
+ Determines whether the current immutable set is a proper (strict) subset of the specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a proper subset of the specified collection; otherwise, .
+
+
+ Determines whether the current immutable set is a proper (strict) superset of the specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a proper superset of the specified collection; otherwise, .
+
+
+ Determines whether the current immutable set is a subset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a subset of the specified collection; otherwise, .
+
+
+ Determines whether the current immutable set is a superset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a superset of the specified collection; otherwise, .
+
+
+ Determines whether the current immutable set overlaps with the specified collection.
+ The collection to compare to the current set.
+
+ if the current set and the specified collection share at least one common element; otherwise, .
+
+
+ Removes the specified element from this immutable set.
+ The element to remove.
+ A new set with the specified element removed, or the current set if the element cannot be found in the set.
+
+
+ Determines whether the current immutable set and the specified collection contain the same elements.
+ The collection to compare to the current set.
+
+ if the sets are equal; otherwise, .
+
+
+ Creates an immutable set that contains only elements that are present either in the current set or in the specified collection, but not both.
+ The collection to compare to the current set.
+ A new set that contains the elements that are present only in the current set or in the specified collection, but not both.
+
+
+ Determines whether the set contains a specified value.
+ The value to search for.
+ The matching value from the set, if found, or equalvalue if there are no matches.
+
+ if a matching value was found; otherwise, .
+
+
+ Creates a new immutable set that contains all elements that are present in either the current set or in the specified collection.
+ The collection to add elements from.
+ A new immutable set with the items added; or the original set if all the items were already in the set.
+
+
+ Represents an immutable last-in-first-out (LIFO) collection.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The type of elements in the stack.
+
+
+ Removes all objects from the immutable stack.
+ An empty immutable stack.
+
+
+ Returns the element at the top of the immutable stack without removing it.
+ The stack is empty.
+ The element at the top of the stack.
+
+
+ Removes the element at the top of the immutable stack and returns the new stack.
+ The stack is empty.
+ The new stack; never .
+
+
+ Inserts an element at the top of the immutable stack and returns the new stack.
+ The element to push onto the stack.
+ The new stack.
+
+
+ Gets a value that indicates whether this immutable stack is empty.
+
+ if this stack is empty; otherwise,.
+
+
+ Provides methods for creating an array that is immutable; meaning it cannot be changed once it is created.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+ Searches the sorted immutable array for a specified element using the default comparer and returns the zero-based index of the element, if it's found.
+ The sorted array to search.
+ The object to search for.
+ The type of element stored in the array.
+
+ does not implement or the search encounters an element that does not implement .
+ The zero-based index of the item in the array, if item 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 .
+
+
+ Searches a sorted immutable array for a specified element and returns the zero-based index of the element, if it's found.
+ The sorted array to search.
+ The object to search for.
+ The comparer implementation to use when comparing elements, or null to use the default comparer.
+ The type of element stored in the array.
+
+ is null and does not implement or the search encounters an element that does not implement .
+ The zero-based index of the item in the array, if item 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 .
+
+
+ Searches a sorted immutable array for a specified element and returns the zero-based index of the element, if it's found.
+ The sorted array to search.
+ The starting index of the range to search.
+ The length of the range to search.
+ The object to search for.
+ The type of element stored in the array.
+
+ does not implement or the search encounters an element that does not implement .
+
+ and do not specify a valid range in .
+
+ is less than the lower bound of .
+
+-or-
+
+ is less than zero.
+ The zero-based index of the item in the array, if item 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 .
+
+
+ Searches a sorted immutable array for a specified element and returns the zero-based index of the element.
+ The sorted array to search.
+ The starting index of the range to search.
+ The length of the range to search.
+ The object to search for.
+ The comparer to use when comparing elements for equality or to use the default comparer.
+ The type of element stored in the array.
+
+ is null and does not implement or the search encounters an element that does not implement .
+
+ and do not specify a valid range in .
+
+-or-
+
+ is , and is of a type that is not compatible with the elements of .
+
+ is less than the lower bound of .
+
+-or-
+
+ is less than zero.
+ The zero-based index of the item in the array, if item 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 .
+
+
+ Creates an empty immutable array.
+ The type of elements stored in the array.
+ An empty immutable array.
+
+
+ Creates an immutable array that contains the specified object.
+ The object to store in the array.
+ The type of elements stored in the array.
+ An immutable array that contains the specified object.
+
+
+ Creates an immutable array that contains the specified objects.
+ The first object to store in the array.
+ The second object to store in the array.
+ The type of elements stored in the array.
+ An immutable array that contains the specified objects.
+
+
+ Creates an immutable array that contains the specified objects.
+ The first object to store in the array.
+ The second object to store in the array.
+ The third object to store in the array.
+ The type of elements stored in the array.
+ An immutable array that contains the specified objects.
+
+
+ Creates an immutable array that contains the specified objects.
+ The first object to store in the array.
+ The second object to store in the array.
+ The third object to store in the array.
+ The fourth object to store in the array.
+ The type of elements stored in the array.
+ An immutable array that contains the specified objects.
+
+
+ Creates an immutable array from the specified array of objects.
+ The array of objects to populate the array with.
+ The type of elements stored in the array.
+ An immutable array that contains the array of items.
+
+
+ Creates an immutable array with specified objects from another array.
+ The source array of objects.
+ The index of the first element to copy from .
+ The number of elements from to include in this immutable array.
+ The type of elements stored in the array.
+ An immutable array that contains the specified objects from the source array.
+
+
+ Creates an immutable array with the specified objects from another immutable array.
+ The source array of objects.
+ The index of the first element to copy from .
+ The number of elements from to include in this immutable array.
+ The type of elements stored in the array.
+ An immutable array that contains the specified objects from the source array.
+
+
+ Creates an with the specified elements.
+ The elements to store in the array.
+ The type of element stored in the array.
+ An immutable array containing the specified items.
+
+
+ Creates an with the specified elements.
+ The elements to store in the array.
+ The type of element stored in the array.
+ An immutable array containing the specified items.
+
+
+ Creates a mutable array that can be converted to an without allocating new memory.
+ The type of elements stored in the builder.
+ A mutable array of the specified type that can be efficiently converted to an immutable array.
+
+
+ Creates a mutable array that can be converted to an without allocating new memory.
+ The initial capacity of the builder.
+ The type of elements stored in the builder.
+ A mutable array of the specified type that can be efficiently converted to an immutable array.
+
+
+ Creates a new populated with the specified items.
+ The elements to add to the array.
+ The type of element stored in the array.
+ An immutable array that contains the specified items.
+
+
+ Initializes a new instance of the struct.
+ The source array to initialize the resulting array with.
+ The function to apply to each element from the source array.
+ The type of element stored in the source array.
+ The type of element to store in the target array.
+ An immutable array that contains the specified items.
+
+
+ Initializes a new instance of the struct.
+ The source array to initialize the resulting array with.
+ The index of the first element in the source array to include in the resulting array.
+ The number of elements from the source array to include in the resulting array.
+ The function to apply to each element from the source array included in the resulting array.
+ The type of element stored in the source array.
+ The type of element to store in the target array.
+ An immutable array that contains the specified items.
+
+
+ Initializes a new instance of the struct.
+ The source array to initialize the resulting array with.
+ The function to apply to each element from the source array.
+ An argument to be passed to the selector mapping function.
+ The type of element stored in the source array.
+ The type of argument to pass to the selector mapping function.
+ The type of element to store in the target array.
+ An immutable array that contains the specified items.
+
+
+ Initializes a new instance of the struct.
+ The source array to initialize the resulting array with.
+ The index of the first element in the source array to include in the resulting array.
+ The number of elements from the source array to include in the resulting array.
+ The function to apply to each element from the source array included in the resulting array.
+ An argument to be passed to the selector mapping function.
+ The type of element stored in the source array.
+ The type of argument to be passed to the selector mapping function.
+ The type of element to be stored in the target array.
+ An immutable array that contains the specified items.
+
+
+ Creates an immutable array from the specified collection.
+ The collection of objects to copy to the immutable array.
+ The type of elements contained in .
+ An immutable array that contains the specified collection of objects.
+
+
+ Creates an immutable array from the current contents of the builder's array.
+ The builder to create the immutable array from.
+ The type of elements contained in the immutable array.
+ An immutable array that contains the current contents of the builder's array.
+
+
+ Produce an immutable array of contents from specified elements.
+ The elements to store in the array.
+ The type of element in the list.
+ An immutable array containing the items in the span.
+
+
+ Converts the span to an immutable array.
+ The elements to store in the array.
+ The type of element in the list.
+ An immutable array containing the items in the span.
+
+
+ Represents an array that is immutable; meaning it cannot be changed once it is created.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The type of element stored by the array.
+
+
+ Gets an empty immutable array.
+
+
+ Returns a copy of the original array with the specified item added to the end.
+ The item to be added to the end of the array.
+ A new array with the specified item added to the end.
+
+
+ Adds the specified values to this list.
+ The values to add.
+ A new list with the elements added.
+
+
+ Adds the specified items to the end of the array.
+ The values to add.
+ The number of elements from the source array to add.
+ A new list with the elements added.
+
+
+ Returns a copy of the original array with the specified elements added to the end of the array.
+ The elements to add to the array.
+ A new array with the elements added.
+
+
+ Returns a copy of the original array with the specified elements added to the end of the array.
+ The elements to add to the array.
+ A new array with the elements added.
+
+
+ Adds the specified items to the end of the array.
+ The values to add.
+ The number of elements from the source array to add.
+ A new list with the elements added.
+
+
+ Adds the specified values to this list.
+ The values to add.
+ A new list with the elements added.
+
+
+ Adds the specified items to the end of the array.
+ The values to add.
+ The type that derives from the type of item already in the array.
+ A new list with the elements added.
+
+
+ Adds the specified items to the end of the array.
+ The values to add.
+ The type that derives from the type of item already in the array.
+ A new list with the elements added.
+
+
+ Returns a new immutable array that contains the elements of this array cast to a different type.
+ The type of array element to return.
+ An immutable array that contains the elements of this array, cast to a different type. If the cast fails, returns an array whose property returns .
+
+
+ Creates a new read-only memory region over this immutable array.
+ The read-only memory representation of this immutable array.
+
+
+ Creates a new read-only span over this immutable array.
+ The read-only span representation of this immutable array.
+
+
+ Creates a over the portion of the current , beginning at a specified position for a specified length.
+ The index at which to begin the span.
+ The number of items in the span.
+ The representation of the .
+
+
+ Creates a span over the portion of the current based on the specified .
+ A range in the current .
+ A span representation of the .
+
+
+ Initializes a new instance of the struct by casting the underlying array to an array of type .
+ The type of array element to return.
+ The cast is illegal.
+ An immutable array instance with elements cast to the new type.
+
+
+ Initializes a new instance of the struct based on the contents of an existing instance, allowing a covariant static cast to efficiently reuse the existing array.
+ The array to initialize the array with. No copy is made.
+ The type of array element to return.
+ An immutable array instance with elements cast to the new type.
+
+
+ Returns an array with all the elements removed.
+ An array with all of the elements removed.
+
+
+ Determines whether the specified item exists in the array.
+ The item to search for.
+
+ if the specified item was found in the array; otherwise .
+
+
+ Determines whether the specified item exists in the array.
+ The item to search for.
+ The equality comparer to use in the search.
+ If , is used.
+
+ if an equal value was found in the array; otherwise.
+
+
+ Copies the contents of this array to the specified array.
+ The array to copy to.
+
+
+ Copies the contents of this array to the specified array starting at the specified destination index.
+ The array to copy to.
+ The index in where copying begins.
+
+
+ Copies the specified items in this array to the specified array at the specified starting index.
+ The index of this array where copying begins.
+ The array to copy to.
+ The index in where copying begins.
+ The number of elements to copy from this array.
+
+
+ Copies the elements of current to a .
+ The that is the destination of the elements copied from current .
+
+
+ Indicates whether specified array is equal to this array.
+ An object to compare with this object.
+
+ if is equal to this array; otherwise, .
+
+
+ Determines if this array is equal to the specified object.
+ The to compare with this array.
+
+ if this array is equal to ; otherwise, .
+
+
+ Returns an enumerator that iterates through the contents of the array.
+ An enumerator.
+
+
+ Returns a hash code for this instance.
+ A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table.
+
+
+ Searches the array for the specified item.
+ The item to search for.
+ The zero-based index position of the item if it is found, or -1 if it is not.
+
+
+ Searches the array for the specified item.
+ The item to search for.
+ The index at which to begin the search.
+ The zero-based index position of the item if it is found, or -1 if it is not.
+
+
+ Searches the array for the specified item.
+ The item to search for.
+ The index at which to begin the search.
+ The equality comparer to use in the search.
+ The zero-based index position of the item if it is found, or -1 if it is not.
+
+
+ Searches the array for the specified item.
+ The item to search for.
+ The index at which to begin the search.
+ The number of elements to search.
+ The zero-based index position of the item if it is found, or -1 if it is not.
+
+
+ Searches the array for the specified item.
+ The item to search for.
+ The index at which to begin the search.
+ The number of elements to search.
+ The equality comparer to use in the search.
+ The zero-based index position of the item if it is found, or -1 if it is not.
+
+
+ Returns a new array with the specified value inserted at the specified position.
+ The 0-based index into the array at which the new item should be added.
+ The item to insert at the start of the array.
+ A new array with the item inserted at the specified index.
+
+
+ Inserts the specified values at the specified index.
+ The index at which to insert the value.
+ The elements to insert.
+ The new immutable collection.
+
+
+ Inserts the specified values at the specified index.
+ The index at which to insert the value.
+ The elements to insert.
+ A new immutable array with the items inserted at the specified index.
+
+
+ Inserts the specified values at the specified index.
+ The index at which to insert the value.
+ The elements to insert.
+ A new immutable array with the items inserted at the specified index.
+
+
+ Inserts the specified values at the specified index.
+ The index at which to insert the value.
+ The elements to insert.
+ The new immutable collection.
+
+
+ Gets a read-only reference to the element at the specified in the read-only list.
+ The zero-based index of the element to get a reference to.
+ A read-only reference to the element at the specified in the read-only list.
+
+
+ Searches the array for the specified item; starting at the end of the array.
+ The item to search for.
+ The 0-based index into the array where the item was found; or -1 if it could not be found.
+
+
+ Searches the array for the specified item; starting at the end of the array.
+ The item to search for.
+ The index at which to begin the search.
+ The 0-based index into the array where the item was found; or -1 if it could not be found.
+
+
+ Searches the array for the specified item; starting at the end of the array.
+ The item to search for.
+ The index at which to begin the search.
+ The number of elements to search.
+ The 0-based index into the array where the item was found; or -1 if it could not be found.
+
+
+ Searches the array for the specified item; starting at the end of the array.
+ The item to search for.
+ The index at which to begin the search.
+ The number of elements to search.
+ The equality comparer to use in the search.
+ The 0-based index into the array where the item was found; or -1 if it could not be found.
+
+
+ Filters the elements of this array to those assignable to the specified type.
+ The type to filter the elements of the sequence on.
+ An that contains elements from the input sequence of type of .
+
+
+ Returns a value that indicates if two arrays are equal.
+ The array to the left of the operator.
+ The array to the right of the operator.
+
+ if the arrays are equal; otherwise, .
+
+
+ Returns a value that indicates if two arrays are equal.
+ The array to the left of the operator.
+ The array to the right of the operator.
+
+ if the arrays are equal; otherwise, .
+
+
+ Returns a value that indicates whether two arrays are not equal.
+ The array to the left of the operator.
+ The array to the right of the operator.
+
+ if the arrays are not equal; otherwise, .
+
+
+ Checks for inequality between two array.
+ The object to the left of the operator.
+ The object to the right of the operator.
+
+ if the two arrays are not equal; otherwise, .
+
+
+ Returns an array with the first occurrence of the specified element removed from the array. If no match is found, the current array is returned.
+ The item to remove.
+ A new array with the item removed.
+
+
+ Returns an array with the first occurrence of the specified element removed from the array.
+
+ If no match is found, the current array is returned.
+ The item to remove.
+ The equality comparer to use in the search.
+ A new array with the specified item removed.
+
+
+ Removes all the items from the array that meet the specified condition.
+ The delegate that defines the conditions of the elements to remove.
+ A new array with items that meet the specified condition removed.
+
+
+ Returns an array with the element at the specified position removed.
+ The 0-based index of the element to remove from the returned array.
+ A new array with the item at the specified index removed.
+
+
+ Removes the specified values from this list.
+ The items to remove if matches are found in this list.
+ The equality comparer to use in the search.
+ A new list with the elements removed.
+
+
+ Removes the specified items from this array.
+ The items to remove if matches are found in this list.
+ A new array with the elements removed.
+
+
+ Removes the specified items from this array.
+ The items to remove if matches are found in this list.
+ The equality comparer to use in the search.
+ A new array with the elements removed.
+
+
+ Removes the specified values from this list.
+ The items to remove if matches are found in this list.
+ A new list with the elements removed.
+
+
+ Removes the specified items from this list.
+ The items to remove if matches are found in this list.
+ The equality comparer to use in the search.
+ A new array with the elements removed.
+
+
+ Returns an array with the elements at the specified position removed.
+ The 0-based index of the starting element to remove from the array.
+ The number of elements to remove from the array.
+ The new array with the specified elements removed.
+
+
+ Removes the specified values from this list.
+ The items to remove if matches are found in this list.
+ The equality comparer to use in the search.
+ A new list with the elements removed.
+
+
+ Finds the first element in the array equal to the specified value and replaces the value with the specified new value.
+ The value to find and replace in the array.
+ The value to replace the oldvalue with.
+
+ is not found in the array.
+ A new array that contains even if the new and old values are the same.
+
+
+ Finds the first element in the array equal to the specified value and replaces the value with the specified new value.
+ The value to find and replace in the array.
+ The value to replace the oldvalue with.
+ The equality comparer to use to compare values.
+
+ is not found in the array.
+ A new array that contains even if the new and old values are the same.
+
+
+ Replaces the item at the specified index with the specified item.
+ The index of the item to replace.
+ The item to add to the list.
+ The new array that contains at the specified index.
+
+
+ Forms a slice out of the current starting at a specified index for a specified length.
+ The index at which to begin this slice.
+ The desired length for the slice.
+ An that consists of elements from the current , starting at .
+
+
+ Sorts the elements in the immutable array using the default comparer.
+ A new immutable array that contains the items in this array, in sorted order.
+
+
+ Sorts the elements in the immutable array using the specified comparer.
+ The implementation to use when comparing elements, or to use the default comparer.
+ A new immutable array that contains the items in this array, in sorted order.
+
+
+ Sorts the elements in the entire using the specified .
+ The to use when comparing elements.
+
+ is null.
+ The sorted list.
+
+
+ Sorts the specified elements in the immutable array using the specified comparer.
+ The index of the first element to sort.
+ The number of elements to include in the sort.
+ The implementation to use when comparing elements, or to use the default comparer.
+ A new immutable array that contains the items in this array, in sorted order.
+
+
+ Throws in all cases.
+ The item to add to the end of the array.
+
+
+ Throws in all cases.
+
+
+ Throws in all cases.
+ The object to remove from the array.
+ Throws in all cases.
+
+
+ Returns an enumerator that iterates through the array.
+ The property returns .
+ An enumerator that can be used to iterate through the array.
+
+
+ Throws in all cases.
+ The index of the location to insert the item.
+ The item to insert.
+
+
+ Throws in all cases.
+ The index.
+
+
+ Copies this array to another array starting at the specified index.
+ The array to copy this array to.
+ The index in the destination array to start the copy operation.
+
+
+ Returns an enumerator that iterates through the immutable array.
+ The property returns .
+ An enumerator that iterates through the immutable array.
+
+
+ Throws in all cases.
+ The value to add to the array.
+ Thrown in all cases.
+ Throws in all cases.
+
+
+ Throws in all cases.
+ Thrown in all cases.
+
+
+ Throws in all cases.
+ The value to check for.
+ Throws in all cases.
+
+
+ Gets the value at the specified index.
+ The value to return the index of.
+ The value of the element at the specified index.
+
+
+ Throws in all cases.
+ Index that indicates where to insert the item.
+ The value to insert.
+ Thrown in all cases.
+
+
+ Throws in all cases.
+ The value to remove from the array.
+ Thrown in all cases.
+
+
+ Throws in all cases.
+ The index of the item to remove.
+ Thrown in all cases.
+
+
+ Returns a copy of the original array with the specified item added to the end.
+ The value to add to the end of the array.
+ A new array with the specified item added to the end.
+
+
+ Returns a copy of the original array with the specified elements added to the end of the array.
+ The elements to add to the end of the array.
+ A new array with the elements added to the end.
+
+
+ Returns an array with all the elements removed.
+ An array with all the elements removed.
+
+
+ Returns a new array with the specified value inserted at the specified position.
+ The 0-based index into the array at which the new item should be added.
+ The item to insert at the start of the array.
+ A new array with the specified value inserted.
+
+
+ Inserts the specified values at the specified index.
+ The index at which to insert the value.
+ The elements to insert.
+ A new array with the specified values inserted.
+
+
+ Returns an array with the first occurrence of the specified element removed from the array; if no match is found, the current array is returned.
+ The value to remove from the array.
+ The equality comparer to use in the search.
+ A new array with the value removed.
+
+
+ Removes all the items from the array that meet the specified condition.
+ The delegate that defines the conditions of the elements to remove.
+ A new array with items that meet the specified condition removed.
+
+
+ Returns an array with the element at the specified position removed.
+ The 0-based index of the element to remove from the returned array.
+ A new array with the specified item removed.
+
+
+ Removes the specified items from this array.
+ The items to remove if matches are found in this list.
+ The equality comparer to use in the search.
+ A new array with the elements removed.
+
+
+ Returns an array with the elements at the specified position removed.
+ The 0-based index of the starting element to remove from the array.
+ The number of elements to remove from the array.
+ The new array with the specified elements removed.
+
+
+ Finds the first element in the array equal to the specified value and replaces the value with the specified new value.
+ The value to find and replace in the array.
+ The value to replace the oldvalue with.
+ The equality comparer to use to compare values.
+
+ is not found in the array.
+ A new array that contains even if the new and old values are the same.
+
+
+ Replaces the item at the specified index with the specified item.
+ The index of the item to replace.
+ The value to add to the list.
+ The new array that contains at the specified index.
+
+
+ Determines whether the current collection element precedes, occurs in the same position as, or follows another element in the sort order.
+ The element to compare with the current instance.
+ The object used to compare members of the current array with the corresponding members of other array.
+ The arrays are not the same length.
+ An integer that indicates whether the current element precedes, is in the same position or follows the other element.
+
+
+ Determines whether this array is structurally equal to the specified array.
+ The array to compare with the current instance.
+ An object that determines whether the current instance and other are structurally equal.
+
+ if the two arrays are structurally equal; otherwise, .
+
+
+ Returns a hash code for the current instance.
+ An object that computes the hash code of the current object.
+ The hash code for the current instance.
+
+
+ Creates a mutable array that has the same contents as this array and can be efficiently mutated across multiple operations using standard mutable interfaces.
+ The new builder with the same contents as this array.
+
+
+ Gets a value indicating whether this array was declared but not initialized.
+
+ if the is ; otherwise, .
+
+
+ Gets a value indicating whether this is empty or is not initialized.
+
+ if the is or ; otherwise, .
+
+
+ Gets a value indicating whether this is empty.
+
+ if the is empty; otherwise, .
+
+
+ Gets the element at the specified index in the immutable array.
+ The zero-based index of the element to get.
+ The element at the specified index in the immutable array.
+
+
+ Gets the number of elements in the array.
+ The number of elements in the array.
+
+
+ Gets the number of items in the collection.
+ The property returns .
+ Number of items in the collection.
+
+
+ Gets a value indicating whether this instance is read only.
+
+ if this instance is read only; otherwise, .
+
+
+ Gets or sets the element at the specified index in the read-only list.
+ The zero-based index of the element to get.
+ Always thrown from the setter.
+ The property returns .
+ The element at the specified index in the read-only list.
+
+
+ Gets the number of items in the collection.
+ The property returns .
+ The number of items in the collection.
+
+
+ Gets the element at the specified index.
+ The index.
+ The property returns .
+ The element.
+
+
+ Gets the size of the array.
+ The property returns .
+ The number of items in the collection.
+
+
+ See the interface. Always returns since since immutable collections are thread-safe.
+ Boolean value determining whether the collection is thread-safe.
+
+
+ Gets the sync root.
+ An object for synchronizing access to the collection.
+
+
+ Gets a value indicating whether this instance is fixed size.
+
+ if this instance is fixed size; otherwise, .
+
+
+ Gets a value indicating whether this instance is read only.
+
+ if this instance is read only; otherwise, .
+
+
+ Gets or sets the at the specified index.
+ The index.
+ Always thrown from the setter.
+ The property returns .
+ The object at the specified index.
+
+
+ A writable array accessor that can be converted into an instance without allocating extra memory.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+
+ Adds the specified item to the array.
+ The object to add to the array.
+
+
+ Adds the specified items to the end of the array.
+ The items to add to the array.
+
+
+ Adds the specified items to the end of the array.
+ The items to add to the array.
+ The number of elements from the source array to add.
+
+
+ Adds the specified items to the end of the array.
+ The items to add to the array.
+
+
+ Adds the specified items to the end of the array.
+ The items to add to the array.
+
+
+ Adds the specified items to the end of the array.
+ The items to add to the array.
+
+
+ Adds the specified items to the end of the array.
+ The items to add to the array.
+ The number of elements from the source array to add.
+
+
+ Adds the specified items to the end of the array.
+ The items to add at the end of the array.
+
+
+ Adds the specified items that derive from the type currently in the array, to the end of the array.
+ The items to add to end of the array.
+ The type that derives from the type of item already in the array.
+
+
+ Adds the specified items that derive from the type currently in the array, to the end of the array.
+ The items to add to the end of the array.
+ The type that derives from the type of item already in the array.
+
+
+ Adds the specified items that derive from the type currently in the array, to the end of the array.
+ The items to add to the end of the array.
+ The type that derives from the type of item already in the array.
+
+
+ Adds the specified items to the end of the array.
+ The items to add at the end of the array.
+ The type that derives from the type of item already in the array.
+
+
+ Removes all items from the array.
+
+
+ Determines whether the array contains a specific value.
+ The object to locate in the array.
+
+ if the object is found; otherwise, .
+
+
+ Copies the contents of this array to the specified array.
+ The array to copy to.
+
+
+ Copies the current contents to the specified array.
+ The array to copy to.
+ The index to start the copy operation.
+
+
+ Copies the contents of this array to the specified array.
+ The index into this collection of the first element to copy.
+ The array to copy to.
+ The index into the destination array to which the first copied element is written.
+ The number of elements to copy.
+
+
+ Copies the current contents to the specified .
+ The to copy to.
+
+
+ Returns the current contents as an and sets the collection to a zero length array.
+ An immutable array.
+
+
+ Gets an object that can be used to iterate through the collection.
+ An object that can be used to iterate through the collection.
+
+
+ Determines the index of a specific item in the array.
+ The item to locate in the array.
+ The index of if it's found in the list; otherwise, -1.
+
+
+ Determines the index of the specified item.
+ The item to locate in the array.
+ The starting position of the search.
+ The index of if it's found in the list; otherwise, -1.
+
+
+ Searches the array for the specified item.
+ The item to search for.
+ The index at which to begin the search.
+ The equality comparer to use in the search.
+ If , is used.
+ The 0-based index into the array where the item was found; or -1 if it could not be found.
+
+
+ Determines the index of the specified item.
+ The item to locate in the array.
+ The starting position of the search.
+ The number of elements to search.
+ The index of if it's found in the list; otherwise, -1.
+
+
+ Determines the index for the specified item.
+ The item to locate in the array.
+ The index at which to begin the search.
+ The starting position of the search.
+ The equality comparer to use in the search.
+ The index of if it's found in the list; otherwise, -1.
+
+
+ Inserts an item in the array at the specified index.
+ The zero-based index at which to insert the item.
+ The object to insert into the array.
+
+
+ Inserts the specified values at the specified index.
+ The index at which to insert the value.
+ The elements to insert.
+
+
+ Inserts the specified values at the specified index.
+ The index at which to insert the value.
+ The elements to insert.
+
+
+ Gets a read-only reference to the element at the specified index.
+ The item index.
+
+ is greater or equal to the array count.
+ The read-only reference to the element at the specified index.
+
+
+ Determines the 0-based index of the last occurrence of the specified item in this array.
+ The item to search for.
+ The 0-based index where the item was found; or -1 if it could not be found.
+
+
+ Determines the 0-based index of the last occurrence of the specified item in this array.
+ The item to search for.
+ The starting position of the search.
+ The 0-based index into the array where the item was found; or -1 if it could not be found.
+
+
+ Determines the 0-based index of the last occurrence of the specified item in this array.
+ The item to search for.
+ The starting position of the search.
+ The number of elements to search.
+ The 0-based index into the array where the item was found; or -1 if it could not be found.
+
+
+ Determines the 0-based index of the last occurrence of the specified item in this array.
+ The item to search for.
+ The starting position of the search.
+ The number of elements to search.
+ The equality comparer to use in the search.
+ The 0-based index into the array where the item was found; or -1 if it could not be found.
+
+
+ Extracts the internal array as an and replaces it with a zero length array.
+ When doesn't equal .
+ An immutable array containing the elements of the builder.
+
+
+ Removes the specified element.
+ The item to remove.
+
+ if was found and removed; otherwise, .
+
+
+ Removes the first occurrence of the specified element from the builder.
+ If no match is found, the builder remains unchanged.
+ The element to remove.
+ The equality comparer to use in the search.
+ If , is used.
+ A value indicating whether the specified element was found and removed from the collection.
+
+
+ Removes all the elements that match the conditions defined by the specified predicate.
+ The delegate that defines the conditions of the elements to remove.
+
+
+ Removes the item at the specified index from the array.
+ The zero-based index of the item to remove.
+
+
+ Removes the specified values from this list.
+ The items to remove if matches are found in this list.
+
+
+ Removes the specified values from this list.
+ The items to remove if matches are found in this list.
+ The equality comparer to use in the search.
+ If , is used.
+
+
+ Removes the specified values from this list.
+ The 0-based index into the array for the element to omit from the returned array.
+ The number of elements to remove.
+
+
+ Replaces the first equal element in the list with the specified element.
+ The element to replace.
+ The element to replace the old element with.
+
+
+ Replaces the first equal element in the list with the specified element.
+ The element to replace.
+ The element to replace the old element with.
+ The equality comparer to use in the search.
+ If , is used.
+
+
+ Reverses the order of elements in the collection.
+
+
+ Sorts the contents of the array.
+
+
+ Sorts the contents of the array.
+ The comparer to use for sorting. If comparer is , the default comparer for the elements type in the array is used.
+
+
+ Sorts the elements in the entire array using the specified .
+ The to use when comparing elements.
+
+ is null.
+
+
+ Sorts the contents of the array.
+ The starting index for the sort.
+ The number of elements to include in the sort.
+ The comparer to use for sorting. If comparer is , the default comparer for the elements type in the array is used.
+
+
+ Returns an enumerator that iterates through the array.
+ An enumerator that iterates through the array.
+
+
+ Returns an enumerator that iterates through the array.
+ An enumerator that iterates through the array.
+
+
+ Creates a new array with the current contents of this .
+ A new array with the contents of this .
+
+
+ Returns an immutable array that contains the current contents of this .
+ An immutable array that contains the current contents of this .
+
+
+ Gets or sets the length of the internal array. When set, the internal array is reallocated to the given capacity if it is not already the specified length.
+ The length of the internal array.
+
+
+ Gets or sets the number of items in the array.
+ The number of items in the array.
+
+
+ Gets or sets the item at the specified index.
+ The index of the item to get or set.
+ The specified index is not in the array.
+ The item at the specified index.
+
+
+ Gets a value that indicates whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ An array enumerator.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+
+ Advances to the next value in the array.
+
+ if another item exists in the array; otherwise, .
+
+
+ Gets the current item.
+ The current item.
+
+
+ Provides a set of initialization methods for instances of the class.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+ Determines whether the specified immutable dictionary contains the specified key/value pair.
+ The immutable dictionary to search.
+ The key to locate in the immutable dictionary.
+ The value to locate on the specified key, if the key is found.
+ The type of the keys in the immutable dictionary.
+ The type of the values in the immutable dictionary.
+
+ if this map contains the specified key/value pair; otherwise, .
+
+
+ Creates an empty immutable dictionary.
+ The type of keys stored by the dictionary.
+ The type of values stored by the dictionary.
+ An empty immutable dictionary.
+
+
+ Creates an empty immutable dictionary that uses the specified key comparer.
+ The implementation to use to determine the equality of keys in the dictionary.
+ The type of keys stored by the dictionary.
+ The type of values stored by the dictionary.
+ An empty immutable dictionary.
+
+
+ Creates an empty immutable dictionary that uses the specified key and value comparers.
+ The implementation to use to determine the equality of keys in the dictionary.
+ The implementation to use to determine the equality of values in the dictionary.
+ The type of keys stored by the dictionary.
+ The type of values stored by the dictionary.
+ An empty immutable dictionary.
+
+
+ Creates a new immutable dictionary builder.
+ The type of keys stored by the dictionary.
+ The type of values stored by the dictionary.
+ The new builder.
+
+
+ Creates a new immutable dictionary builder.
+ The key comparer.
+ The type of keys stored by the dictionary.
+ The type of values stored by the dictionary.
+ The new builder.
+
+
+ Creates a new immutable dictionary builder.
+ The key comparer.
+ The value comparer.
+ The type of keys stored by the dictionary.
+ The type of values stored by the dictionary.
+ The new builder.
+
+
+ Creates a new immutable dictionary that contains the specified items.
+ The items used to populate the dictionary before it's immutable.
+ The type of keys in the dictionary.
+ The type of values in the dictionary.
+ A new immutable dictionary that contains the specified items.
+
+
+ Creates a new immutable dictionary that contains the specified items and uses the specified key comparer.
+ The comparer implementation to use to compare keys for equality.
+ The items to add to the dictionary before it's immutable.
+ The type of keys in the dictionary.
+ The type of values in the dictionary.
+ A new immutable dictionary that contains the specified items and uses the specified comparer.
+
+
+ Creates a new immutable dictionary that contains the specified items and uses the specified key comparer.
+ The comparer implementation to use to compare keys for equality.
+ The comparer implementation to use to compare values for equality.
+ The items to add to the dictionary before it's immutable.
+ The type of keys in the dictionary.
+ The type of values in the dictionary.
+ A new immutable dictionary that contains the specified items and uses the specified comparer.
+
+
+ Gets the value for a given key if a matching key exists in the dictionary.
+ The dictionary to retrieve the value from.
+ The key to search for.
+ The type of the key.
+ The type of the value.
+ The value for the key, or default(TValue) if no matching key was found.
+
+
+ Gets the value for a given key if a matching key exists in the dictionary.
+ The dictionary to retrieve the value from.
+ The key to search for.
+ The default value to return if no matching key is found in the dictionary.
+ The type of the key.
+ The type of the value.
+ The value for the key, or if no matching key was found.
+
+
+ Constructs an immutable dictionary from an existing collection of elements, applying a transformation function to the source keys.
+ The source collection used to generate the immutable dictionary.
+ The function used to transform keys for the immutable dictionary.
+ The type of element in the source collection.
+ The type of key in the resulting immutable dictionary.
+ The immutable dictionary that contains elements from , with keys transformed by applying .
+
+
+ Constructs an immutable dictionary based on some transformation of a sequence.
+ The source collection used to generate the immutable dictionary.
+ The function used to transform keys for the immutable dictionary.
+ The key comparer to use for the dictionary.
+ The type of element in the source collection.
+ The type of key in the resulting immutable dictionary.
+ The immutable dictionary that contains elements from , with keys transformed by applying .
+
+
+ Enumerates a sequence of key/value pairs and produces an immutable dictionary of its contents.
+ The sequence of key/value pairs to enumerate.
+ The type of the keys in the dictionary.
+ The type of the values in the dictionary.
+ An immutable dictionary that contains the key/value pairs in the specified sequence.
+
+
+ Enumerates a sequence of key/value pairs and produces an immutable dictionary of its contents by using the specified key comparer.
+ The sequence of key/value pairs to enumerate.
+ The key comparer to use when building the immutable dictionary.
+ The type of the keys in the dictionary.
+ The type of the values in the dictionary.
+ An immutable dictionary that contains the key/value pairs in the specified sequence.
+
+
+ Enumerates a sequence of key/value pairs and produces an immutable dictionary of its contents by using the specified key and value comparers.
+ The sequence of key/value pairs to enumerate.
+ The key comparer to use when building the immutable dictionary.
+ The value comparer to use for the immutable dictionary.
+ The type of the keys in the dictionary.
+ The type of the values in the dictionary.
+ An immutable dictionary that contains the key/value pairs in the specified sequence.
+
+
+ Creates an immutable dictionary from the current contents of the builder's dictionary.
+ The builder to create the immutable dictionary from.
+ The type of the keys in the dictionary.
+ The type of the values in the dictionary.
+ An immutable dictionary that contains the current contents in the builder's dictionary.
+
+
+ Enumerates and transforms a sequence, and produces an immutable dictionary of its contents.
+ The sequence to enumerate to generate the dictionary.
+ The function that will produce the key for the dictionary from each sequence element.
+ The function that will produce the value for the dictionary from each sequence element.
+ The type of the elements in the sequence.
+ The type of the keys in the resulting dictionary.
+ The type of the values in the resulting dictionary.
+ An immutable dictionary that contains the items in the specified sequence.
+
+
+ Enumerates and transforms a sequence, and produces an immutable dictionary of its contents by using the specified key comparer.
+ The sequence to enumerate to generate the dictionary.
+ The function that will produce the key for the dictionary from each sequence element.
+ The function that will produce the value for the dictionary from each sequence element.
+ The key comparer to use for the dictionary.
+ The type of the elements in the sequence.
+ The type of the keys in the resulting dictionary.
+ The type of the values in the resulting dictionary.
+ An immutable dictionary that contains the items in the specified sequence.
+
+
+ Enumerates and transforms a sequence, and produces an immutable dictionary of its contents by using the specified key and value comparers.
+ The sequence to enumerate to generate the dictionary.
+ The function that will produce the key for the dictionary from each sequence element.
+ The function that will produce the value for the dictionary from each sequence element.
+ The key comparer to use for the dictionary.
+ The value comparer to use for the dictionary.
+ The type of the elements in the sequence.
+ The type of the keys in the resulting dictionary.
+ The type of the values in the resulting dictionary.
+ An immutable dictionary that contains the items in the specified sequence.
+
+
+ Represents an immutable, unordered collection of keys and values.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The type of the keys in the dictionary.
+ The type of the values in the dictionary.
+
+
+ Gets an empty immutable dictionary.
+
+
+ Adds an element with the specified key and value to the immutable dictionary.
+ The key of the element to add.
+ The value of the element to add.
+ The given key already exists in the dictionary but has a different value.
+ A new immutable dictionary that contains the additional key/value pair.
+
+
+ Adds the specified key/value pairs to the immutable dictionary.
+ The key/value pairs to add.
+ One of the given keys already exists in the dictionary but has a different value.
+ A new immutable dictionary that contains the additional key/value pairs.
+
+
+ Retrieves an empty immutable dictionary that has the same ordering and key/value comparison rules as this dictionary instance.
+ An empty dictionary with equivalent ordering and key/value comparison rules.
+
+
+ Determines whether this immutable dictionary contains the specified key/value pair.
+ The key/value pair to locate.
+
+ if the specified key/value pair is found in the dictionary; otherwise, .
+
+
+ Determines whether the immutable dictionary contains an element with the specified key.
+ The key to locate.
+
+ if the immutable dictionary contains an element with the specified key; otherwise, .
+
+
+ Determines whether the immutable dictionary contains an element with the specified value.
+ The value to locate. The value can be for reference types.
+
+ if the dictionary contains an element with the specified value; otherwise, .
+
+
+ Returns an enumerator that iterates through the immutable dictionary.
+ An enumerator that can be used to iterate through the dictionary.
+
+
+ Removes the element with the specified key from the immutable dictionary.
+ The key of the element to remove.
+ A new immutable dictionary with the specified element removed; or this instance if the specified key cannot be found in the dictionary.
+
+
+ Removes the elements with the specified keys from the immutable dictionary.
+ The keys of the elements to remove.
+ A new immutable dictionary with the specified keys removed; or this instance if the specified keys cannot be found in the dictionary.
+
+
+ Sets the specified key and value in the immutable dictionary, possibly overwriting an existing value for the key.
+ The key of the entry to add.
+ The key value to set.
+ A new immutable dictionary that contains the specified key/value pair.
+
+
+ Sets the specified key/value pairs in the immutable dictionary, possibly overwriting existing values for the keys.
+ The key/value pairs to set in the dictionary. If any of the keys already exist in the dictionary, this method will overwrite their previous values.
+ A new immutable dictionary that contains the specified key/value pairs.
+
+
+ Adds an item to the .
+ The object to add to the .
+
+
+ Removes all items from the .
+
+
+ Copies the elements of the to an , starting at a particular index.
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Removes the first occurrence of a specific object from the .
+ The object to remove from the .
+
+ if was successfully removed from the ; otherwise, . This method also returns if is not found in the original .
+
+
+ Adds an element with the provided key and value to the immutable dictionary.
+ The object to use as the key of the element to add.
+ The object to use as the value of the element to add.
+
+ is .
+ An element with the same key already exists in the .
+ The is read-only.
+
+
+ Removes the element with the specified key from the generic dictionary.
+ The key of the element to remove.
+
+ is .
+ The is read-only.
+
+ if the element is successfully removed; otherwise, . This method also returns if was not found in the original generic dictionary.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Copies the elements of the dictionary to an array, starting at a particular array index.
+ The one-dimensional array that is the destination of the elements copied from the dictionary. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Adds an element with the provided key and value to the immutable dictionary object.
+ The object to use as the key of the element to add.
+ The object to use as the value of the element to add.
+
+
+ Clears this instance.
+ The dictionary object is read-only.
+
+
+ Determines whether the immutable dictionary object contains an element with the specified key.
+ The key to locate in the dictionary object.
+
+ if the dictionary contains an element with the key; otherwise, .
+
+
+ Returns an object for the immutable dictionary object.
+ An enumerator object for the dictionary object.
+
+
+ Removes the element with the specified key from the immutable dictionary object.
+ The key of the element to remove.
+
+
+ Returns an enumerator that iterates through a collection.
+ An enumerator object that can be used to iterate through the collection.
+
+
+ See the interface.
+ Key of the entry to be added.
+ Value of the entry to be added.
+ A new immutable dictionary that contains the additional key/value pair.
+
+
+ See the interface.
+ Sequence of key/value pairs to be added to the dictionary.
+ A new immutable dictionary that contains the additional key/value pairs.
+
+
+ Retrieves an empty dictionary that has the same ordering and key-value comparison rules as this dictionary instance.
+ The immutable dictionary instance.
+
+
+ See the interface.
+ Key of the entry to be removed.
+ A new immutable dictionary with the specified element removed; or this instance if the specified key cannot be found in the dictionary.
+
+
+ See the interface.
+ Sequence of keys to be removed.
+ A new immutable dictionary with the specified keys removed; or this instance if the specified keys cannot be found in the dictionary.
+
+
+ See the interface.
+ Key of entry to be added.
+ Value of the entry to be added.
+ A new immutable dictionary that contains the specified key/value pair.
+
+
+ Applies a given set of key-value pairs to an immutable dictionary, replacing any conflicting keys in the resulting dictionary.
+ The key-value pairs to set on the map. Any keys that conflict with existing keys will replace the previous values.
+ A copy of the immutable dictionary with updated key-value pairs.
+
+
+ Creates an immutable dictionary with the same contents as this dictionary that can be efficiently mutated across multiple operations by using standard mutable interfaces.
+ A collection with the same contents as this dictionary that can be efficiently mutated across multiple operations by using standard mutable interfaces.
+
+
+ Determines whether this dictionary contains a specified key.
+ The key to search for.
+ The matching key located in the dictionary if found, or equalkey if no match is found.
+
+ if a match for is found; otherwise, .
+
+
+ Gets the value associated with the specified key.
+ The key whose value will be retrieved.
+ When this method returns, contains the value associated with the specified key, if the key is found; otherwise, contains the default value for the type of the parameter. This parameter is passed uninitialized.
+
+ is null.
+
+ if the object that implements the dictionary contains an element with the specified key; otherwise, .
+
+
+ Gets an instance of the immutable dictionary that uses the specified key comparer.
+ The key comparer to use.
+ An instance of the immutable dictionary that uses the given comparer.
+
+
+ Gets an instance of the immutable dictionary that uses the specified key and value comparers.
+ The key comparer to use.
+ The value comparer to use.
+ An instance of the immutable dictionary that uses the given comparers.
+
+
+ Gets the number of key/value pairs in the immutable dictionary.
+ The number of key/value pairs in the dictionary.
+
+
+ Gets a value that indicates whether this instance of the immutable dictionary is empty.
+
+ if this instance is empty; otherwise, .
+
+
+ Gets the associated with the specified key.
+ The type of the key.
+ The value associated with the specified key. If no results are found, the operation throws an exception.
+
+
+ Gets the key comparer for the immutable dictionary.
+ The key comparer.
+
+
+ Gets the keys in the immutable dictionary.
+ The keys in the immutable dictionary.
+
+
+ Gets a value indicating whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets or sets the with the specified key.
+ The type of the key.
+ An object of type associated with the .
+
+
+ Gets the keys.
+ A collection containing the keys.
+
+
+ Gets the values.
+ A collection containing the values.
+
+
+ Gets a value indicating whether access to the is synchronized (thread safe).
+
+ if access to the is synchronized (thread safe); otherwise, .
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Gets a value indicating whether the object has a fixed size.
+
+ if the object has a fixed size; otherwise, .
+
+
+ Gets a value indicating whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets or sets the element with the specified key.
+ The key.
+ The value stored under the specified key.
+
+
+ Gets an containing the keys of the .
+ An containing the keys of the object that implements .
+
+
+ Gets an containing the values in the .
+ An containing the values in the object that implements .
+
+
+ Gets the value comparer used to determine whether values are equal.
+ The value comparer used to determine whether values are equal.
+
+
+ Gets the values in the immutable dictionary.
+ The values in the immutable dictionary.
+
+
+ Represents a hash map that mutates with little or no memory allocations and that can produce or build on immutable hash map instances very efficiently.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+
+
+ Adds an element that has the specified key and value to the immutable dictionary.
+ The key of the element to add.
+ The value of the element to add.
+
+ is null.
+ An element with the same key already exists in the dictionary.
+ The dictionary is read-only.
+
+
+ Adds the specified item to the immutable dictionary.
+ The object to add to the dictionary.
+ The dictionary is read-only.
+
+
+ Adds a sequence of values to this collection.
+ The items to add to this collection.
+
+
+ Removes all items from the immutable dictionary.
+ The dictionary is read-only.
+
+
+ Determines whether the immutable dictionary contains a specific value.
+ The object to locate in the dictionary.
+
+ if is found in the dictionary; otherwise, .
+
+
+ Determines whether the immutable dictionary contains an element that has the specified key.
+ The key to locate in the dictionary.
+
+ is null.
+
+ if the dictionary contains an element with the key; otherwise, .
+
+
+ Determines whether the immutable dictionary contains an element that has the specified value.
+ The value to locate in the immutable dictionary. The value can be for reference types.
+
+ if the dictionary contains an element with the specified value; otherwise, .
+
+
+ Returns an enumerator that iterates through the immutable dictionary.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Gets the value for a given key if a matching key exists in the dictionary.
+ The key to search for.
+ The value for the key, or default(TValue) if no matching key was found.
+
+
+ Gets the value for a given key if a matching key exists in the dictionary.
+ The key to search for.
+ The default value to return if no matching key is found in the dictionary.
+ The value for the key, or if no matching key was found.
+
+
+ Removes the element with the specified key from the immutable dictionary.
+ The key of the element to remove.
+
+ is null.
+ The dictionary is read-only.
+
+ if the element is successfully removed; otherwise, . This method also returns if was not found in the dictionary.
+
+
+ Removes the first occurrence of a specific object from the immutable dictionary.
+ The object to remove from the dictionary.
+ The dictionary is read-only.
+
+ if was successfully removed from the dictionary; otherwise, . This method also returns false if is not found in the dictionary.
+
+
+ Removes any entries with keys that match those found in the specified sequence from the immutable dictionary.
+ The keys for entries to remove from the dictionary.
+
+
+ Copies the elements of the dictionary to an array of type , starting at the specified array index.
+ The one-dimensional array that is the destination of the elements copied from the dictionary. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Copies the elements of the dictionary to an array of type , starting at the specified array index.
+ The one-dimensional array of type that is the destination of the elements copied from the dictionary. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Adds an element with the provided key and value to the dictionary object.
+ The key of the element to add.
+ The value of the element to add.
+
+
+ Determines whether the dictionary object contains an element with the specified key.
+ The key to locate.
+
+ if the dictionary contains an element with the key; otherwise, .
+
+
+ Returns an object for the dictionary.
+
+ An object for the dictionary.
+
+
+ Removes the element with the specified key from the dictionary.
+ The key of the element to remove.
+
+
+ Returns an enumerator that iterates through a collection.
+ An enumerator object that can be used to iterate through the collection.
+
+
+ Creates an immutable dictionary based on the contents of this instance.
+ An immutable dictionary.
+
+
+ Determines whether this dictionary contains a specified key.
+ The key to search for.
+ The matching key located in the dictionary if found, or equalkey if no match is found.
+
+ if a match for is found; otherwise, .
+
+
+ Returns the value associated with the specified key.
+ The key whose value will be retrieved.
+ When this method returns, contains the value associated with the specified key, if the key is found; otherwise, returns the default value for the type of the parameter. This parameter is passed uninitialized.
+
+ is null.
+
+ if the object that implements the immutable dictionary contains an element with the specified key; otherwise, .
+
+
+ Gets the number of elements contained in the immutable dictionary.
+ The number of elements contained in the immutable dictionary.
+
+
+ Gets or sets the element with the specified key.
+ The element to get or set.
+
+ is .
+ The property is being retrieved, and is not found.
+ The property is being set, and the is read-only.
+ The element that has the specified key.
+
+
+ Gets or sets the key comparer.
+ The key comparer.
+
+
+ Gets a collection that contains the keys of the immutable dictionary.
+ A collection that contains the keys of the object that implements the immutable dictionary.
+
+
+ Gets a value that indicates whether the collection is read-only.
+
+ if the collection is read-only; otherwise, .
+
+
+ Gets a collection containing the keys of the generic dictionary.
+ A collection containing the keys of the object that implements the generic dictionary.
+
+
+ Gets a collection containing the values in the generic dictionary.
+ A collection containing the values in the object that implements the generic dictionary.
+
+
+ Gets a value that indicates whether access to the is synchronized (thread safe).
+
+ if access to the is synchronized (thread safe); otherwise, .
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Gets a value that indicates whether the object has a fixed size.
+
+ if the object has a fixed size; otherwise, .
+
+
+ Gets a value that indicates whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets or sets the element with the specified key.
+ The key.
+ Value stored under specified key.
+
+
+ Gets an containing the keys of the .
+ An containing the keys of the object that implements .
+
+
+ Gets an containing the values in the .
+ An containing the values in the object that implements .
+
+
+ Gets or sets the value comparer.
+ The value comparer.
+
+
+ Gets a collection that contains the values of the immutable dictionary.
+ A collection that contains the values of the object that implements the dictionary.
+
+
+ Enumerates the contents of the immutable dictionary without allocating any memory.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+
+
+ Releases the resources used by the current instance of the class.
+
+
+ Advances the enumerator to the next element of the immutable dictionary.
+ The dictionary was modified after the enumerator was created.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the dictionary.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the dictionary.
+ The dictionary was modified after the enumerator was created.
+
+
+ Gets the element at the current position of the enumerator.
+ The element in the dictionary at the current position of the enumerator.
+
+
+ Gets the current element.
+ Current element in enumeration.
+
+
+ Provides a set of initialization methods for instances of the class.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+ Creates an empty immutable hash set.
+ The type of items to be stored in the immutable hash set.
+ An empty immutable hash set.
+
+
+ Creates a new immutable hash set that contains the specified item.
+ The item to prepopulate the hash set with.
+ The type of items in the immutable hash set.
+ A new immutable hash set that contains the specified item.
+
+
+ Creates a new immutable hash set that contains the specified array of items.
+ An array that contains the items to prepopulate the hash set with.
+ The type of items in the immutable hash set.
+ A new immutable hash set that contains the specified items.
+
+
+ Creates an empty immutable hash set that uses the specified equality comparer.
+ The object to use for comparing objects in the set for equality.
+ The type of items in the immutable hash set.
+ An empty immutable hash set.
+
+
+ Creates a new immutable hash set that contains the specified item and uses the specified equality comparer for the set type.
+ The object to use for comparing objects in the set for equality.
+ The item to prepopulate the hash set with.
+ The type of items in the immutable hash set.
+ A new immutable hash set that contains the specified item.
+
+
+ Creates a new immutable hash set that contains the items in the specified collection and uses the specified equality comparer for the set type.
+ The object to use for comparing objects in the set for equality.
+ An array that contains the items to prepopulate the hash set with.
+ The type of items stored in the immutable hash set.
+ A new immutable hash set that contains the specified items.
+
+
+ Creates a new immutable collection prefilled with the specified items.
+ The equality comparer.
+ The items to prepopulate.
+ The type of items stored by the collection.
+ The new immutable collection.
+
+
+ Creates a new immutable collection prefilled with the specified items.
+ The items to prepopulate.
+ The type of items stored by the collection.
+ The new immutable collection.
+
+
+ Creates a new immutable hash set builder.
+ The type of items stored by the collection.
+ The immutable hash set builder.
+
+
+ Creates a new immutable hash set builder.
+ The object to use for comparing objects in the set for equality.
+ The type of items stored by the collection.
+ The new immutable hash set builder.
+
+
+ Creates a new immutable hash set prefilled with the specified items.
+ The items to add to the hash set.
+ The type of items stored by the collection.
+ The new immutable hash set that contains the specified items.
+
+
+ Creates a new immutable hash set that contains the specified items and uses the specified equality comparer for the set type.
+ The object to use for comparing objects in the set for equality.
+ The items add to the collection before immutability is applied.
+ The type of items stored in the collection.
+ The new immutable hash set.
+
+
+ Enumerates a sequence and produces an immutable hash set of its contents.
+ The sequence to enumerate.
+ The type of the elements in the sequence.
+ An immutable hash set that contains the items in the specified sequence.
+
+
+ Enumerates a sequence, produces an immutable hash set of its contents, and uses the specified equality comparer for the set type.
+ The sequence to enumerate.
+ The object to use for comparing objects in the set for equality.
+ The type of the elements in the sequence.
+ An immutable hash set that contains the items in the specified sequence and uses the specified equality comparer.
+
+
+ Creates an immutable hash set from the current contents of the builder's set.
+ The builder to create the immutable hash set from.
+ The type of the elements in the hash set.
+ An immutable hash set that contains the current contents in the builder's set.
+
+
+ Represents an immutable, unordered hash set.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The type of elements in the hash set.
+
+
+ Gets an immutable hash set for this type that uses the default .
+
+
+ Adds the specified element to the hash set.
+ The element to add to the set.
+ A hash set that contains the added value and any values previously held by the object.
+
+
+ Retrieves an empty immutable hash set that has the same sorting and ordering semantics as this instance.
+ An empty hash set that has the same sorting and ordering semantics as this instance.
+
+
+ Determines whether this immutable hash set contains the specified element.
+ The object to locate in the immutable hash set.
+
+ if is found in the ; otherwise, .
+
+
+ Removes the elements in the specified collection from the current immutable hash set.
+ The collection of items to remove from this set.
+ A new set with the items removed; or the original set if none of the items were in the set.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Creates an immutable hash set that contains elements that exist in both this set and the specified set.
+ The collection to compare to the current set.
+ A new immutable set that contains any elements that exist in both sets.
+
+
+ Determines whether the current immutable hash set is a proper (strict) subset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a proper subset of the specified collection; otherwise, .
+
+
+ Determines whether the current immutable hash set is a proper (strict) superset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a proper superset of the specified collection; otherwise, .
+
+
+ Determines whether the current immutable hash set is a subset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a subset of the specified collection; otherwise, .
+
+
+ Determines whether the current immutable hash set is a superset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a superset of the specified collection; otherwise, .
+
+
+ Determines whether the current immutable hash set overlaps with the specified collection.
+ The collection to compare to the current set.
+
+ if the current set and the specified collection share at least one common element; otherwise, .
+
+
+ Removes the specified element from this immutable hash set.
+ The element to remove.
+ A new set with the specified element removed, or the current set if the element cannot be found in the set.
+
+
+ Determines whether the current immutable hash set and the specified collection contain the same elements.
+ The collection to compare to the current set.
+
+ if the sets are equal; otherwise, .
+
+
+ Creates an immutable hash set that contains only elements that are present either in the current set or in the specified collection, but not both.
+ The collection to compare to the current set.
+ A new set that contains the elements that are present only in the current set or in the specified collection, but not both.
+
+
+ Adds an item to the set.
+ The object to add to the set.
+ The set is read-only.
+
+
+ Removes all items from this set.
+ The set is read-only.
+
+
+ Copies the elements of the set to an array, starting at a particular index.
+ The one-dimensional array that is the destination of the elements copied from the set. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Removes the first occurrence of a specific object from the set.
+ The object to remove from the set.
+
+ if the element is successfully removed; otherwise, .
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that iterates through the collection.
+
+
+ Adds an element to the current set and returns a value that indicates whether the element was successfully added.
+ The element to add to the collection.
+
+ if the element is added to the set; if the element is already in the set.
+
+
+ Removes all elements in the specified collection from the current set.
+ The collection of items to remove.
+
+
+ Modifies the current set so that it contains only elements that are also in a specified collection.
+ The collection to compare to the current collection.
+
+
+ Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
+ The collection to compare to the current set.
+
+
+ Modifies the current set so that it contains all elements that are present in either the current set or in the specified collection.
+ The collection to compare to the current set.
+
+
+ Copies the elements of the set to an array, starting at a particular index.
+ The one-dimensional array that is the destination of the elements copied from the set. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Returns an enumerator that iterates through a set.
+ An enumerator that can be used to iterate through the set.
+
+
+ Adds the specified element to this immutable set.
+ The element to add.
+ A new set with the element added, or this set if the element is already in the set.
+
+
+ Retrieves an empty set that has the same sorting and ordering semantics as this instance.
+ An empty set that has the same sorting or ordering semantics as this instance.
+
+
+ Removes the elements in the specified collection from the current set.
+ The collection of items to remove from this set.
+ A new set with the items removed; or the original set if none of the items were in the set.
+
+
+ Creates an immutable set that contains elements that exist in both this set and the specified set.
+ The collection to compare to the current set.
+ A new immutable set that contains any elements that exist in both sets.
+
+
+ Removes the specified element from this immutable set.
+ The element to remove.
+ A new set with the specified element removed, or the current set if the element cannot be found in the set.
+
+
+ Creates an immutable set that contains only elements that are present either in the current set or in the specified collection, but not both.
+ The collection to compare to the current set.
+ A new set that contains the elements that are present only in the current set or in the specified collection, but not both.
+
+
+ Creates a new immutable set that contains all elements that are present in either the current set or in the specified collection.
+ The collection to add elements from.
+ A new immutable set with the items added; or the original set if all the items were already in the set.
+
+
+ Creates an immutable hash set that has the same contents as this set and can be efficiently mutated across multiple operations by using standard mutable interfaces.
+ A set with the same contents as this set that can be efficiently mutated across multiple operations by using standard mutable interfaces.
+
+
+ Searches the set for a given value and returns the equal value it finds, if any.
+ The value to search for.
+ The value from the set that the search found, or the original value if the search yielded no match.
+ A value indicating whether the search was successful.
+
+
+ Creates a new immutable hash set that contains all elements that are present in either the current set or in the specified collection.
+ The collection to add elements from.
+ A new immutable hash set with the items added; or the original set if all the items were already in the set.
+
+
+ Gets an instance of the immutable hash set that uses the specified equality comparer for its search methods.
+ The equality comparer to use.
+ An instance of this immutable hash set that uses the given comparer.
+
+
+ Gets the number of elements in the immutable hash set.
+ The number of elements in the hash set.
+
+
+ Gets a value that indicates whether the current immutable hash set is empty.
+
+ if this instance is empty; otherwise, .
+
+
+ Gets the object that is used to obtain hash codes for the keys and to check the equality of values in the immutable hash set.
+ The comparer used to obtain hash codes for the keys and check equality.
+
+
+ See the interface.
+
+ if the is read-only; otherwise, .
+
+
+ See the interface.
+
+ if access to the is synchronized (thread safe); otherwise, .
+
+
+ See .
+ An object that can be used to synchronize access to the .
+
+
+ Represents a hash set that mutates with little or no memory allocations and that can produce or build on immutable hash set instances very efficiently.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+
+ Adds the specified item to the immutable hash set.
+ The item to add.
+
+ if the item did not already belong to the collection; otherwise, .
+
+
+ Removes all items from the immutable hash set.
+ The hash set is read-only.
+
+
+ Determines whether the immutable hash set contains a specific value.
+ The object to locate in the hash set.
+
+ if is found in the hash set ; otherwise, .
+
+
+ Removes all elements in the specified collection from the current hash set.
+ The collection of items to remove from the set.
+
+
+ Returns an enumerator that iterates through the immutable hash set.
+ An enumerator that can be used to iterate through the set.
+
+
+ Modifies the current set so that it contains only elements that are also in a specified collection.
+ The collection to compare to the current set.
+
+
+ Determines whether the current set is a proper (strict) subset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a proper subset of ; otherwise, .
+
+
+ Determines whether the current set is a proper (strict) superset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a proper superset of ; otherwise, .
+
+
+ Determines whether the current set is a subset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a subset of ; otherwise, .
+
+
+ Determines whether the current set is a superset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a superset of ; otherwise, .
+
+
+ Determines whether the current set overlaps with the specified collection.
+ The collection to compare to the current set.
+
+ if the current set and share at least one common element; otherwise, .
+
+
+ Removes the first occurrence of a specific object from the immutable hash set.
+ The object to remove from the set.
+ The set is read-only.
+
+ if was successfully removed from the set ; otherwise, . This method also returns if is not found in the original set.
+
+
+ Determines whether the current set and the specified collection contain the same elements.
+ The collection to compare to the current set.
+
+ if the current set is equal to ; otherwise, .
+
+
+ Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
+ The collection to compare to the current set.
+
+
+ Adds an item to the hash set.
+ The object to add to the set.
+ The set is read-only.
+
+
+ Copies the elements of the hash set to an array, starting at a particular array index.
+ The one-dimensional array that is the destination of the elements copied from the hash set. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Returns an enumerator that iterates through a collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Creates an immutable hash set based on the contents of this instance.
+ An immutable set.
+
+
+ Searches the set for a given value and returns the equal value it finds, if any.
+ The value for which to search.
+ The value from the set that the search found, or the original value if the search yielded no match.
+ A value indicating whether the search was successful.
+
+
+ Modifies the current set so that it contains all elements that are present in both the current set and in the specified collection.
+ The collection to compare to the current set.
+
+
+ Gets the number of elements contained in the immutable hash set.
+ The number of elements contained in the immutable hash set.
+
+
+ Gets or sets the key comparer.
+ The key comparer.
+
+
+ Gets a value indicating whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Enumerates the contents of the immutable hash set without allocating any memory.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+
+ Releases the resources used by the current instance of the class.
+
+
+ Advances the enumerator to the next element of the immutable hash set.
+ The hash set was modified after the enumerator was created.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the hash set.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the hash set.
+ The hash set was modified after the enumerator was created.
+
+
+ Gets the element at the current position of the enumerator.
+ The element at the current position of the enumerator.
+
+
+ Gets the current element.
+ The element in the collection at the current position of the enumerator.
+
+
+ Contains interlocked exchange mechanisms for immutable collections.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+ Obtains the value from a dictionary after having added it or updated an existing entry.
+ The variable or field to atomically update if the specified is not in the dictionary.
+ The key for the value to add or update.
+ The value to use if no previous value exists.
+ The function that receives the key and prior value and returns the new value with which to update the dictionary.
+ The type of key stored by the dictionary.
+ The type of value stored by the dictionary.
+ The added or updated value.
+
+
+ Obtains the value from a dictionary after having added it or updated an existing entry.
+ The variable or field to atomically update if the specified is not in the dictionary.
+ The key for the value to add or update.
+ The function that receives the key and returns a new value to add to the dictionary when no value previously exists.
+ The function that receives the key and prior value and returns the new value with which to update the dictionary.
+ The type of key stored by the dictionary.
+ The type of value stored by the dictionary.
+ The added or updated value.
+
+
+ Atomically enqueues an element to the end of a queue.
+ The variable or field to atomically update.
+ The value to enqueue.
+ The type of items contained in the collection.
+
+
+ Gets the value for the specified key from the dictionary, or if the key was not found, adds a new value to the dictionary.
+ The variable or field to atomically update if the specified key is not in the dictionary.
+ The key for the value to get or add.
+ The value to add to the dictionary the key is not found.
+ The type of the keys contained in the collection.
+ The type of the values contained in the collection.
+ The value at the specified key or if the key was not present.
+
+
+ Gets the value for the specified key from the dictionary, or if the key was not found, adds a new value to the dictionary.
+ The variable or field to atomically update if the specified is not in the dictionary.
+ The key for the value to retrieve or add.
+ The function to execute to obtain the value to insert into the dictionary if the key is not found. This delegate will not be invoked more than once.
+ The type of the keys contained in the collection.
+ The type of the values contained in the collection.
+ The value at the specified key or if the key was not present.
+
+
+ Gets the value for the specified key from the dictionary, or if the key was not found, adds a new value to the dictionary.
+ The variable or field to update if the specified is not in the dictionary.
+ The key for the value to retrieve or add.
+ The function to execute to obtain the value to insert into the dictionary if the key is not found.
+ The argument to pass to the value factory.
+ The type of the keys contained in the collection.
+ The type of the values contained in the collection.
+ The type of the argument supplied to the value factory.
+ The value at the specified key or if the key was not present.
+
+
+ Compares two immutable arrays for equality and, if they are equal, replaces one of the arrays.
+ The destination, whose value is compared with and possibly replaced.
+ The value that replaces the destination value if the comparison results in equality.
+ The value that is compared to the value at .
+ The type of element stored by the array.
+ The original value in .
+
+
+ Sets an array to the specified array and returns a reference to the original array, as an atomic operation.
+ The array to set to the specified value.
+ The value to which the parameter is set.
+ The type of element stored by the array.
+ The original value of .
+
+
+ Sets an array to the specified array if the array has not been initialized.
+ The array to set to the specified value.
+ The value to which the parameter is set, if it's not initialized.
+ The type of element stored by the array.
+
+ if the array was assigned the specified value; otherwise, .
+
+
+ Pushes a new element onto the stack.
+ The stack to update.
+ The value to push on the stack.
+ The type of items in the stack.
+
+
+ Adds the specified key and value to the dictionary if the key is not in the dictionary.
+ The dictionary to update with the specified key and value.
+ The key to add, if is not already defined in the dictionary.
+ The value to add.
+ The type of the keys contained in the collection.
+ The type of the values contained in the collection.
+
+ if the key is not in the dictionary; otherwise, .
+
+
+ Atomically removes and returns the specified element at the head of the queue, if the queue is not empty.
+ The variable or field to atomically update.
+ Set to the value from the head of the queue, if the queue not empty.
+ The type of items in the queue.
+
+ if the queue is not empty and the head element is removed; otherwise, .
+
+
+ Removes an element from the top of the stack, if there is an element to remove.
+ The stack to update.
+ Receives the value removed from the stack, if the stack is not empty.
+ The type of items in the stack.
+
+ if an element is removed from the stack; otherwise, .
+
+
+ Removes the element with the specified key, if the key exists.
+ The dictionary to update.
+ The key to remove.
+ Receives the value of the removed item, if the dictionary is not empty.
+ The type of the keys contained in the collection.
+ The type of the values contained in the collection.
+
+ if the key was found and removed; otherwise, .
+
+
+ Sets the specified key to the specified value if the specified key already is set to a specific value.
+ The dictionary to update.
+ The key to update.
+ The new value to set.
+ The current value for in order for the update to succeed.
+ The type of the keys contained in the collection.
+ The type of the values contained in the collection.
+
+ if and are present in the dictionary and comparison was updated to ; otherwise, .
+
+
+ Mutates a value in-place with optimistic locking transaction semantics via a specified transformation function. The transformation is retried as many times as necessary to win the optimistic locking race.
+ The variable or field to be changed, which may be accessed by multiple threads.
+ A function that mutates the value. This function should be side-effect free, as it may run multiple times when races occur with other threads.
+ The type of data.
+
+ if the location's value is changed by applying the result of the function; if the location's value remained the same because the last invocation of returned the existing value.
+
+
+ Mutates an immutable array in-place with optimistic locking transaction semantics via a specified transformation function.
+ The transformation is retried as many times as necessary to win the optimistic locking race.
+ The immutable array to be changed.
+ A function that produces the new array from the old. This function should be side-effect free, as it may run multiple times when races occur with other threads.
+ The type of data in the immutable array.
+
+ if the location's value is changed by applying the result of the function; if the location's value remained the same because the last invocation of returned the existing value.
+
+
+ Mutates a value in-place with optimistic locking transaction semantics via a specified transformation function. The transformation is retried as many times as necessary to win the optimistic locking race.
+ The variable or field to be changed, which may be accessed by multiple threads.
+ A function that mutates the value. This function should be side-effect free, as it may run multiple times when races occur with other threads.
+ The argument to pass to .
+ The type of data.
+ The type of argument passed to the .
+
+ if the location's value is changed by applying the result of the function; if the location's value remained the same because the last invocation of returned the existing value.
+
+
+ Mutates an immutable array in-place with optimistic locking transaction semantics via a specified transformation function.
+ The transformation is retried as many times as necessary to win the optimistic locking race.
+ The immutable array to be changed.
+ A function that produces the new array from the old. This function should be side-effect free, as it may run multiple times when races occur with other threads.
+ The argument to pass to .
+ The type of data in the immutable array.
+ The type of argument passed to the .
+
+ if the location's value is changed by applying the result of the function; if the location's value remained the same because the last invocation of returned the existing value.
+
+
+ Provides a set of initialization methods for instances of the class.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+ Creates an empty immutable list.
+ The type of items to be stored in the .
+ An empty immutable list.
+
+
+ Creates a new immutable list that contains the specified item.
+ The item to prepopulate the list with.
+ The type of items in the .
+ A new that contains the specified item.
+
+
+ Creates a new immutable list that contains the specified array of items.
+ An array that contains the items to prepopulate the list with.
+ The type of items in the .
+ A new immutable list that contains the specified items.
+
+
+ Creates a new immutable list that contains the items from the specified span of items.
+ A span that contains the items to prepopulate the list with.
+ The type of items stored by the collection.
+ A new immutable list that contains the specified items.
+
+
+ Creates a new immutable list builder.
+ The type of items stored by the collection.
+ The immutable collection builder.
+
+
+ Creates a new immutable list that contains the specified items.
+ The items to add to the list.
+ The type of items in the .
+ An immutable list that contains the specified items.
+
+
+ Searches for the specified object and returns the zero-based index of the first occurrence within the list.
+ The list to search.
+ The object to locate in the list. The value can be null for reference types.
+ The type of items in the list.
+ The zero-based index of the first occurrence of item within the range of elements in the list that extends from index to the last element, if found; otherwise, -1.
+
+
+ Searches for the specified object and returns the zero-based index of the first occurrence within the list.
+ The list to search.
+ The object to locate in the Immutable list. The value can be null for reference types.
+ The equality comparer to use in the search.
+ The type of items in the list.
+ The zero-based index of the first occurrence of item within the range of elements in the immutable list that extends from index to the last element, if found; otherwise, -1.
+
+
+ Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the immutable list that extends from the specified index to the last element.
+ The list to search.
+ The object to locate in the Immutable list. The value can be null for reference types.
+ The zero-based starting index of the search. 0 (zero) is valid in an empty list.
+ The type of items in the list.
+ The zero-based index of the first occurrence of item within the range of elements in the Immutable list that extends from index to the last element, if found; otherwise, -1.
+
+
+ Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the immutable list that extends from the specified index to the last element.
+ The list to search.
+ The object to locate in the Immutable list. The value can be null for reference types.
+ The zero-based starting index of the search. 0 (zero) is valid in an empty list.
+ The number of elements in the section to search.
+ The type of items in the list.
+ The zero-based index of the first occurrence of item within the range of elements in the Immutable list that extends from index to the last element, if found; otherwise, -1.
+
+
+ Searches for the specified object and returns the zero-based index of the last occurrence within the entire immutable list.
+ The list to search.
+ The object to locate in the Immutable list. The value can be null for reference types.
+ The type of items in the list.
+ The zero-based index of the last occurrence of item within the entire the Immutable list, if found; otherwise, -1.
+
+
+ Searches for the specified object and returns the zero-based index of the last occurrence within the entire immutable list.
+ The list to search.
+ The object to locate in the Immutable list. The value can be null for reference types.
+ The equality comparer to use in the search.
+ The type of items in the list.
+ The zero-based index of the last occurrence of item within the entire the Immutable list, if found; otherwise, -1.
+
+
+ Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the immutable list that extends from the first element to the specified index.
+ The list to search.
+ The object to locate in the Immutable list. The value can be null for reference types.
+ The zero-based starting index of the backward search.
+ The type of items in the list.
+ The zero-based index of the last occurrence of item within the range of elements in the Immutable list that extends from the first element to index, if found; otherwise, -1.
+
+
+ Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the immutable list that extends from the first element to the specified index.
+ The list to search.
+ The object to locate in the Immutable list. The value can be null for reference types.
+ The zero-based starting index of the backward search.
+ The number of elements in the section to search.
+ The type of items in the list.
+ The zero-based index of the last occurrence of item within the range of elements in the Immutable list that extends from the first element to index, if found; otherwise, -1.
+
+
+ Removes the specified value from this list.
+ The list to search.
+ The value to remove.
+ The type of items in the list.
+ A new immutable list with the element removed, or this list if the element is not in this list.
+
+
+ Removes the specified values from this list.
+ The list to search.
+ The items to remove if matches are found in this list.
+ The type of items in the list.
+ A new immutable list with the elements removed.
+
+
+ Replaces the first equal element in the list with the specified element.
+ The list to search.
+ The element to replace.
+ The element to replace the old element with.
+ The type of items in the list.
+
+ does not exist in the list.
+ The new list -- even if the value being replaced is equal to the new value for that position.
+
+
+ Enumerates a sequence and produces an immutable list of its contents.
+ The sequence to enumerate.
+ The type of the elements in the sequence.
+ An immutable list that contains the items in the specified sequence.
+
+
+ Creates an immutable list from the current contents of the builder's collection.
+ The builder to create the immutable list from.
+ The type of the elements in the list.
+ An immutable list that contains the current contents in the builder's collection.
+
+
+ Represents an immutable list, which is a strongly typed list of objects that can be accessed by index.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The type of elements in the list.
+
+
+ Gets an empty immutable list.
+
+
+ Adds the specified object to the end of the immutable list.
+ The object to add.
+ A new immutable list with the object added.
+
+
+ Adds the elements of the specified collection to the end of the immutable list.
+ The collection whose elements will be added to the end of the list.
+ A new immutable list with the elements added.
+
+
+ Searches the entire sorted list for an element using the default comparer and returns the zero-based index of the element.
+ The object to locate. The value can be for reference types.
+ The default comparer cannot find a comparer implementation of the for type T.
+ The zero-based index of item in the sorted List, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of .
+
+
+ Searches the entire sorted list for an element using the specified comparer and returns the zero-based index of the element.
+ The object to locate. The value can be null for reference types.
+ The comparer implementation to use when comparing elements or null to use the default comparer.
+ comparer is , and the default comparer cannot find an comparer implementation for type T.
+ The zero-based index of item in the sorted List, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of .
+
+
+ Searches a range of elements in the sorted list for an element using the specified comparer and returns the zero-based index of the element.
+ The zero-based starting index of the range to search.
+ The length of the range to search.
+ The object to locate. The value can be null for reference types.
+ The comparer implementation to use when comparing elements, or to use the default comparer.
+ index is less than 0 or is less than 0.
+ index and do not denote a valid range in the list.
+
+ is , and the default comparer cannot find an comparer implementation for type T.
+ The zero-based index of item in the sorted list, if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than item or, if there is no larger element, the bitwise complement of .
+
+
+ Removes all elements from the immutable list.
+ An empty list that retains the same sort or unordered semantics that this instance has.
+
+
+ Determines whether this immutable list contains the specified value.
+ The value to locate.
+
+ if the list contains the specified value; otherwise, .
+
+
+ Converts the elements in the current immutable list to another type, and returns a list containing the converted elements.
+ A delegate that converts each element from one type to another type.
+ The type of the elements of the target array.
+ A list of the target type containing the converted elements from the current .
+
+
+ Copies the entire immutable list to a compatible one-dimensional array, starting at the beginning of the target array.
+ The one-dimensional array that is the destination of the elements copied from the immutable list. The array must have zero-based indexing.
+
+
+ Copies the entire immutable list to a compatible one-dimensional array, starting at the specified index of the target array.
+ The one-dimensional array that is the destination of the elements copied from the immutable list. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Copies a range of elements from the immutable list to a compatible one-dimensional array, starting at the specified index of the target array.
+ The zero-based index in the source immutable list at which copying begins.
+ The one-dimensional array that is the destination of the elements copied from the immutable list. The array must have zero-based indexing.
+ The zero-based index in array at which copying begins.
+ The number of elements to copy.
+
+
+ Determines whether the immutable list contains elements that match the conditions defined by the specified predicate.
+ The delegate that defines the conditions of the elements to search for.
+
+ if the immutable list contains one or more elements that match the conditions defined by the specified predicate; otherwise, .
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire immutable list.
+ The delegate that defines the conditions of the element to search for.
+ The first element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type .
+
+
+ Retrieves all the elements that match the conditions defined by the specified predicate.
+ The delegate that defines the conditions of the elements to search for.
+ An immutable list that contains all the elements that match the conditions defined by the specified predicate, if found; otherwise, an empty immutable list.
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the immutable list that starts at the specified index and contains the specified number of elements.
+ The zero-based starting index of the search.
+ The number of elements in the section to search.
+ The delegate that defines the conditions of the element to search for.
+ The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, ?1.
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the immutable list that extends from the specified index to the last element.
+ The zero-based starting index of the search.
+ The delegate that defines the conditions of the element to search for.
+ The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, ?1.
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire immutable list.
+ The delegate that defines the conditions of the element to search for.
+ The zero-based index of the first occurrence of an element that matches the conditions defined by match, if found; otherwise, -1.
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire immutable list.
+ The delegate that defines the conditions of the element to search for.
+ The last element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type .
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the immutable list that contains the specified number of elements and ends at the specified index.
+ The zero-based starting index of the backward search.
+ The number of elements in the section to search.
+ The delegate that defines the conditions of the element to search for.
+ The zero-based index of the last occurrence of an element that matches the conditions defined by , if found; otherwise, ?1.
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the immutable list that extends from the first element to the specified index.
+ The zero-based starting index of the backward search.
+ The delegate that defines the conditions of the element to search for.
+ The zero-based index of the last occurrence of an element that matches the conditions defined by , if found; otherwise, ?1.
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire immutable list.
+ The delegate that defines the conditions of the element to search for.
+ The zero-based index of the last occurrence of an element that matches the conditions defined by , if found; otherwise, ?1.
+
+
+ Performs the specified action on each element of the immutable list.
+ The delegate to perform on each element of the immutable list.
+
+
+ Returns an enumerator that iterates through the immutable list.
+ An enumerator that can be used to iterate through the immutable list.
+
+
+ Creates a shallow copy of a range of elements in the source immutable list.
+ The zero-based index at which the range starts.
+ The number of elements in the range.
+ A shallow copy of a range of elements in the source immutable list.
+
+
+ Searches for the specified object and returns the zero-based index of the first occurrence within the entire immutable list.
+ The object to locate in the immutable list. The value can be for reference types.
+ The zero-based index of the first occurrence of within the entire immutable list, if found; otherwise, ?1.
+
+
+ Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the list that starts at the specified index and contains the specified number of elements.
+ The object to locate in the list The value can be null for reference types.
+ The zero-based starting index of the search. 0 (zero) is valid in an empty list.
+ The number of elements in the section to search.
+ The equality comparer to use in the search.
+ The zero-based index of the first occurrence of item within the range of elements in the list that starts at index and contains count number of elements, if found; otherwise, -1.
+
+
+ Inserts the specified object into the immutable list at the specified index.
+ The zero-based index at which to insert the object.
+ The object to insert.
+ The new immutable list after the object is inserted.
+
+
+ Inserts the elements of a collection into the immutable list at the specified index.
+ The zero-based index at which to insert the elements.
+ The collection whose elements should be inserted.
+ The new immutable list after the elements are inserted.
+
+
+ Gets a read-only reference to the element of the set at the given .
+ The 0-based index of the element in the set to return.
+
+ is negative or not less than .
+ A read-only reference to the element at the given position.
+
+
+ Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the list that contains the specified number of elements and ends at the specified index.
+ The object to locate in the list. The value can be null for reference types.
+ The zero-based starting index of the backward search.
+ The number of elements in the section to search.
+ The equality comparer to use in the search.
+ The zero-based index of the last occurrence of item within the range of elements in the list that contains count number of elements and ends at index, if found; otherwise, -1.
+
+
+ Removes the first occurrence of the specified object from this immutable list.
+ The object to remove.
+ A new list with the object removed, or this list if the specified object is not in this list.
+
+
+ Removes the first occurrence of the object that matches the specified value from this immutable list.
+ The value of the element to remove from the list.
+ The equality comparer to use in the search.
+ A new list with the object removed, or this list if the specified object is not in this list.
+
+
+ Removes all the elements that match the conditions defined by the specified predicate.
+ The delegate that defines the conditions of the elements to remove.
+ The new list with the elements removed.
+
+
+ Removes the element at the specified index.
+ The zero-based index of the element to remove.
+ A new list with the element removed.
+
+
+ Removes a range of elements from this immutable list.
+ The collection whose elements should be removed if matches are found in this list.
+ A new list with the elements removed.
+
+
+ Removes the specified values from this list.
+ The items to remove if matches are found in this list.
+ The equality comparer to use in the search.
+ A new list with the elements removed.
+
+
+ Removes a range of elements, starting from the specified index and containing the specified number of elements, from this immutable list.
+ The starting index to begin removal.
+ The number of elements to remove.
+ A new list with the elements removed.
+
+
+ Replaces the specified element in the immutable list with a new element.
+ The element to replace.
+ The element to replace with.
+
+ does not exist in the immutable list.
+ The new list with the replaced element, even if it is equal to the old element.
+
+
+ Replaces the specified element in the immutable list with a new element.
+ The element to replace in the list.
+ The element to replace with.
+ The comparer to use to check for equality.
+ A new list with the object replaced, or this list if the specified object is not in this list.
+
+
+ Reverses the order of the elements in the entire immutable list.
+ The reversed list.
+
+
+ Reverses the order of the elements in the specified range of the immutable list.
+ The zero-based starting index of the range to reverse.
+ The number of elements in the range to reverse.
+ The reversed list.
+
+
+ Replaces an element at a given position in the immutable list with the specified element.
+ The position in the list of the element to replace.
+ The element to replace the old element with.
+ The new list with the replaced element, even if it is equal to the old element at that position.
+
+
+ Sorts the elements in the entire immutable list using the default comparer.
+ The sorted list.
+
+
+ Sorts the elements in the entire immutable list using the specified comparer.
+ The implementation to use when comparing elements, or to use the default comparer ().
+ The sorted list.
+
+
+ Sorts the elements in the entire immutable list using the specified comparer.
+ The delegate to use when comparing elements.
+
+ is .
+ The sorted list.
+
+
+ Sorts a range of elements in the immutable list using the specified comparer.
+ The zero-based starting index of the range to sort.
+ The length of the range to sort.
+ The implementation to use when comparing elements, or to use the default comparer ().
+ The sorted list.
+
+
+ Adds the specified item to the immutable list.
+ The item to add.
+ Always thrown.
+
+
+ Removes all items from the immutable list.
+
+
+
+ Removes the first occurrence of a specific object from the immutable list.
+ The object to remove.
+ Always thrown.
+
+ if was successfully removed from the list; otherwise, . This method also returns if is not found in the original list.
+
+
+ Returns an enumerator that iterates through the immutable list.
+ An enumerator that can be used to iterate through the list.
+
+
+ Inserts an object in the immutable list at the specified index.
+ The zero-based index at which should be inserted.
+ The object to insert.
+
+
+
+ Removes the value at the specified index.
+ The zero-based index of the item to remove.
+
+
+
+ Copies the entire immutable list to a compatible one-dimensional array, starting at the specified array index.
+ The one-dimensional array that is the destination of the elements copied from immutable list.
+ The zero-based index in at which copying begins.
+
+
+ Returns an enumerator that iterates through the immutable list.
+ An enumerator that can be used to iterate through the list.
+
+
+ Adds an item to the immutable list.
+ The object to add to the list.
+ Always thrown.
+ The position into which the new element was inserted, or -1 to indicate that the item was not inserted into the list.
+
+
+ Removes all items from the immutable list.
+ Always thrown.
+
+
+ Determines whether the immutable list contains a specific value.
+ The object to locate in the list.
+
+
+ if the object is found in the list; otherwise, .
+
+
+ Determines the index of a specific item in the immutable list.
+ The object to locate in the list.
+
+ The index of if found in the list; otherwise, -1.
+
+
+ Inserts an item into the immutable list at the specified index.
+ The zero-based index at which should be inserted.
+ The object to insert into the list.
+ Always thrown.
+
+
+ Removes the first occurrence of a specific object from the immutable list.
+ The object to remove from the list.
+ Always thrown.
+
+
+ Removes the item at the specified index of the immutable list.
+ The zero-based index of the item to remove.
+ Always thrown.
+
+
+ Adds the specified value to this immutable list.
+ The value to add.
+ A new list with the element added.
+
+
+ Adds the specified values to this immutable list.
+ The values to add.
+ A new list with the elements added.
+
+
+ Retrieves an empty list that has the same sorting and ordering semantics as this instance.
+ An empty list that has the same sorting and ordering semantics as this instance.
+
+
+ Inserts the specified element at the specified index in the immutable list.
+ The index at which to insert the value.
+ The element to insert.
+ A new immutable list that includes the specified element.
+
+
+ Inserts the specified elements at the specified index in the immutable list.
+ The index at which to insert the elements.
+ The elements to insert.
+ A new immutable list that includes the specified elements.
+
+
+ Removes the element with the specified value from the list.
+ The value of the element to remove from the list.
+ The comparer to use to compare elements for equality.
+ A new with the specified element removed.
+
+
+ Removes all the elements that match the conditions defined by the specified predicate.
+ The delegate that defines the conditions of the elements to remove.
+ A new immutable list with the elements removed.
+
+
+ Removes the element at the specified index of the immutable list.
+ The index of the element to remove.
+ A new list with the element removed.
+
+
+ Removes a range of elements from this immutable list that match the items specified.
+ The range of items to remove from the list, if found.
+ The equality comparer to use to compare elements.
+
+ or is .
+ An immutable list with the items removed.
+
+
+ Removes the specified number of elements at the specified location from this list.
+ The starting index of the range of elements to remove.
+ The number of elements to remove.
+ A new list with the elements removed.
+
+
+ Replaces an element in the list with the specified element.
+ The element to replace.
+ The element to replace the old element with.
+ The equality comparer to use in the search.
+
+ does not exist in the list.
+ The new list.
+
+
+ Replaces an element in the list at a given position with the specified element.
+ The position in the list of the element to replace.
+ The element to replace the old element with.
+ The new list.
+
+
+ Creates a list that has the same contents as this list and can be efficiently mutated across multiple operations using standard mutable interfaces.
+ The created list with the same contents as this list.
+
+
+ Determines whether every element in the immutable list matches the conditions defined by the specified predicate.
+ The delegate that defines the conditions to check against the elements.
+
+ if every element in the immutable list matches the conditions defined by the specified predicate; otherwise, . If the list has no elements, the return value is .
+
+
+ Gets the number of elements contained in the list.
+ The number of elements in the list.
+
+
+ Gets a value that indicates whether this list is empty.
+
+ if the list is empty; otherwise, .
+
+
+ Gets the element at the specified index of the list.
+ The index of the element to retrieve.
+ In a get operation, is negative or not less than .
+ The element at the specified index.
+
+
+ Gets a value indicating whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets or sets the value at the specified index.
+ The zero-based index of the item to access.
+ Thrown from getter when is negative or not less than .
+ Always thrown from the setter.
+ Value stored in the specified index.
+
+
+ This type is immutable, so it is always thread-safe. See the interface.
+ Boolean value determining whether the collection is thread-safe.
+
+
+ See .
+ Object used for synchronizing access to the collection.
+
+
+ Gets a value indicating whether the has a fixed size.
+
+ if the has a fixed size; otherwise, .
+
+
+ Gets a value indicating whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets or sets the at the specified index.
+ The index.
+ Thrown from getter when is negative or not less than .
+ Always thrown from the setter.
+ The value at the specified index.
+
+
+ Represents a list that mutates with little or no memory allocations and that can produce or build on immutable list instances very efficiently.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+
+ Adds an item to the immutable list.
+ The item to add to the list.
+
+
+ Adds a series of elements to the end of this list.
+ The elements to add to the end of the list.
+
+
+ Searches the entire for an element using the default comparer and returns the zero-based index of the element.
+ The object to locate. The value can be null for reference types.
+ The default comparer cannot find an implementation of the generic interface or the interface for type T.
+ The zero-based index of item in the , if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than .
+
+
+ Searches the entire for an element using the specified comparer and returns the zero-based index of the element.
+ The object to locate. This value can be null for reference types.
+ The implementation to use when comparing elements, or for the default comparer.
+
+ is , and the default comparer cannot find an implementation of the generic interface or the interface for type T.
+ The zero-based index of item in the , if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than .
+
+
+ Searches the specified range of the for an element using the specified comparer and returns the zero-based index of the element.
+ The zero-based starting index of the range to search.
+ The length of the range to search.
+ The object to locate. This value can be null for reference types.
+ The implementation to use when comparing elements, or for the default comparer.
+
+ is less than 0.
+-or-
+
+ is less than 0.
+
+ and do not denote a valid range in the .
+
+ is , and the default comparer cannot find an implementation of the generic interface or the interface for type T.
+ The zero-based index of item in the , if item is found; otherwise, a negative number that is the bitwise complement of the index of the next element that is larger than .
+
+
+ Removes all items from the immutable list.
+
+
+ Determines whether the immutable list contains a specific value.
+ The object to locate in the list.
+
+ if item is found in the list; otherwise, .
+
+
+ Creates a new immutable list from the list represented by this builder by using the converter function.
+ The converter function.
+ The type of the output of the delegate converter function.
+ A new immutable list from the list represented by this builder.
+
+
+ Copies the entire immutable list to a compatible one-dimensional array, starting at the beginning of the target array.
+ The one-dimensional array that is the destination of the elements copied from the immutable list. The array must have zero-based indexing.
+
+
+ Copies the entire immutable list to a compatible one-dimensional array, starting at the specified index of the target array.
+ The one-dimensional array that is the destination of the elements copied from the immutable list. The array must have zero-based indexing.
+ The zero-based index in array at which copying begins.
+
+
+ Copies the entire immutable list to a compatible one-dimensional array, starting at the specified index of the target array.
+ The zero-based index in the source immutable list at which copying begins.
+ The one-dimensional array that is the destination of the elements copied from the immutable list. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+ The number of elements to copy.
+
+
+ Determines whether the immutable list contains elements that match the conditions defined by the specified predicate.
+ The delegate that defines the conditions of the elements to search for.
+
+ if the immutable list contains one or more elements that match the conditions defined by the specified predicate; otherwise, .
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the first occurrence within the entire immutable list.
+ The delegate that defines the conditions of the element to search for.
+ The first element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type .
+
+
+ Retrieves all the elements that match the conditions defined by the specified predicate.
+ The delegate that defines the conditions of the elements to search for.
+ An immutable list containing all the elements that match the conditions defined by the specified predicate, if found; otherwise, an empty immutable list.
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the immutable list that starts at the specified index and contains the specified number of elements.
+ The zero-based starting index of the search.
+ The number of elements in the section to search.
+ The delegate that defines the conditions of the element to search for.
+ The zero-based index of the first occurrence of an element that matches the conditions defined by , if found; otherwise, -1.
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the range of elements in the immutable list that extends from the specified index to the last element.
+ The zero-based starting index of the search.
+ The delegate that defines the conditions of the element to search for.
+ The zero-based index of the first occurrence of an element that matches the conditions defined by , if found; otherwise, -1.
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the first occurrence within the entire immutable list.
+ The delegate that defines the conditions of the element to search for.
+ The zero-based index of the first occurrence of an element that matches the conditions defined by , if found; otherwise, -1.
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the last occurrence within the entire immutable list.
+ The delegate that defines the conditions of the element to search for.
+ The last element that matches the conditions defined by the specified predicate, found; otherwise, the default value for type .
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the immutable list that contains the specified number of elements and ends at the specified index.
+ The zero-based starting index of the backward search.
+ The number of elements in the section to search.
+ The delegate that defines the conditions of the element to search for.
+ The zero-based index of the last occurrence of an element that matches the conditions defined by , if found; otherwise, -1.
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the range of elements in the immutable list that extends from the first element to the specified index.
+ The zero-based starting index of the backward search.
+ The delegate that defines the conditions of the element to search for.
+ The zero-based index of the last occurrence of an element that matches the conditions defined by , if found; otherwise, -1.
+
+
+ Searches for an element that matches the conditions defined by the specified predicate, and returns the zero-based index of the last occurrence within the entire immutable list.
+ The delegate that defines the conditions of the element to search for.
+ The zero-based index of the last occurrence of an element that matches the conditions defined by , if found; otherwise, -1.
+
+
+ Performs the specified action on each element of the list.
+ The delegate to perform on each element of the list.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the list.
+
+
+ Creates a shallow copy of a range of elements in the source immutable list.
+ The zero-based index at which the range starts.
+ The number of elements in the range.
+ A shallow copy of a range of elements in the source immutable list.
+
+
+ Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the immutable list.
+ The object to locate in the immutable list. The value can be for reference types.
+ The zero-based index of the first occurrence of within the range of elements in the immutable list, if found; otherwise, -1.
+
+
+ Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the immutable list that extends from the specified index to the last element.
+ The object to locate in the immutable list. The value can be for reference types.
+ The zero-based starting index of the search. 0 (zero) is valid in an empty list.
+ The zero-based index of the first occurrence of item within the range of elements in the immutable list that extends from to the last element, if found; otherwise, -1.
+
+
+ Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the immutable list that starts at the specified index and contains the specified number of elements.
+ The object to locate in the immutable list. The value can be for reference types.
+ The zero-based starting index of the search. 0 (zero) is valid in an empty list.
+ The number of elements in the section to search.
+ The zero-based index of the first occurrence of item within the range of elements in the immutable list that starts at and contains number of elements, if found; otherwise, -1.
+
+
+ Searches for the specified object and returns the zero-based index of the first occurrence within the range of elements in the that starts at the specified index and contains the specified number of elements.
+ The object to locate in the immutable list. The value can be for reference types.
+ The zero-based starting index of the search. 0 (zero) is valid in an empty list.
+ The number of elements to search.
+ The value comparer to use for comparing elements for equality.
+ The zero-based index of the first occurrence of item within the range of elements in the immutable list that starts at and contains number of elements, if found; otherwise, -1
+
+
+ Inserts an item to the immutable list at the specified index.
+ The zero-based index at which should be inserted.
+ The object to insert into the immutable list.
+
+
+ Inserts the elements of a collection into the immutable list at the specified index.
+ The zero-based index at which the new elements should be inserted.
+ The collection whose elements should be inserted into the immutable list. The collection itself cannot be , but it can contain elements that are null, if type T is a reference type.
+
+
+ Gets a read-only reference to the value for a given into the list.
+ The index of the desired element.
+ A read-only reference to the value at the specified .
+
+
+ Searches for the specified object and returns the zero-based index of the last occurrence within the entire immutable list.
+ The object to locate in the immutable list. The value can be for reference types.
+ The zero-based index of the last occurrence of within the entire immutable list, if found; otherwise, -1.
+
+
+ Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the immutable list that extends from the first element to the specified index.
+ The object to locate in the immutable list. The value can be for reference types.
+ The zero-based starting index of the backward search.
+ The zero-based index of the last occurrence of within the range of elements in the immutable list that extends from the first element to , if found; otherwise, -1.
+
+
+ Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the immutable list that contains the specified number of elements and ends at the specified index.
+ The object to locate in the immutable list. The value can be for reference types.
+ The zero-based starting index of the backward search.
+ The number of elements in the section to search.
+ The zero-based index of the last occurrence of within the range of elements in the immutable list that contains number of elements and ends at , if found; otherwise, -1.
+
+
+ Searches for the specified object and returns the zero-based index of the last occurrence within the range of elements in the immutable list that contains the specified number of elements and ends at the specified index.
+ The object to locate in the immutable list. The value can be for reference types.
+ The zero-based starting index of the search. 0 (zero) is valid in an empty list.
+ The number of elements to search.
+ The value comparer to use for comparing elements for equality.
+ The zero-based index of the first occurrence of item within the range of elements in the immutable list that starts at and contains number of elements, if found; otherwise, -1
+
+
+ Removes the first occurrence of a specific object from the immutable list.
+ The object to remove from the list.
+
+ if item was successfully removed from the list; otherwise, . This method also returns if item is not found in the list.
+
+
+ Removes the first occurrence matching the specified value from this list.
+ The item to remove.
+ The equality comparer to use in the search.
+ If , is used.
+ A value indicating whether the specified element was found and removed from the collection.
+
+
+ Removes all the elements that match the conditions defined by the specified predicate.
+ The delegate that defines the conditions of the elements to remove.
+ The number of elements removed from the immutable list.
+
+
+ Removes the item at the specified index of the immutable list.
+ The zero-based index of the item to remove from the list.
+
+
+ Removes any first occurrences of the specified values from this list.
+ The items to remove if matches are found in this list.
+
+
+ Removes any first occurrences of the specified values from this list.
+ The items to remove if matches are found in this list.
+ The equality comparer to use in the search.
+ If , is used.
+
+
+ Removes the specified range of values from this list.
+ The starting index to begin removal.
+ The number of elements to remove.
+
+
+ Replaces the first equal element in the list with the specified element.
+ The element to replace.
+ The element to replace the old element with.
+ The old value does not exist in the list.
+
+
+ Replaces the first equal element in the list with the specified element.
+ The element to replace.
+ The element to replace the old element with.
+ The equality comparer to use in the search.
+ If , is used.
+ The old value does not exist in the list.
+
+
+ Reverses the order of the elements in the entire immutable list.
+
+
+ Reverses the order of the elements in the specified range of the immutable list.
+ The zero-based starting index of the range to reverse.
+ The number of elements in the range to reverse.
+
+
+ Sorts the elements in the entire immutable list by using the default comparer.
+
+
+ Sorts the elements in the entire immutable list by using the specified comparer.
+ The implementation to use when comparing elements, or to use the default comparer ().
+
+
+ Sorts the elements in the entire immutable list by using the specified comparison object.
+ The object to use when comparing elements.
+
+ is .
+
+
+ Sorts the elements in a range of elements in the immutable list by using the specified comparer.
+ The zero-based starting index of the range to sort.
+ The length of the range to sort.
+ The implementation to use when comparing elements, or to use the default comparer ().
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Copies the elements of the list to an array, starting at a particular array index.
+ The one-dimensional array that is the destination of the elements copied from the list. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Adds an item to the list.
+ The object to add to the list.
+
+ The position into which the new element was inserted, or -1 to indicate that the item was not inserted into the collection.
+
+
+ Removes all items from the list.
+
+
+
+ Determines whether the list contains a specific value.
+ The object to locate in the list.
+
+
+ if the is found in the list; otherwise, .
+
+
+ Determines the index of a specific item in the list.
+ The object to locate in the list.
+
+ The index of if found in the list; otherwise, -1.
+
+
+ Inserts an item to the list at the specified index.
+ The zero-based index at which should be inserted.
+ The object to insert into the list.
+
+
+
+ Removes the first occurrence of a specific object from the list.
+ The object to remove from the list.
+
+
+
+ Creates an immutable list based on the contents of this instance.
+ An immutable list.
+
+
+ Determines whether every element in the immutable list matches the conditions defined by the specified predicate.
+ The delegate that defines the conditions to check against the elements.
+
+ if every element in the immutable list matches the conditions defined by the specified predicate; otherwise, . If the list has no elements, the return value is .
+
+
+ Gets the number of elements in this immutable list.
+ The number of elements in this list.
+
+
+ Gets or sets the value for a given index in the list.
+ The index of the item to get or set.
+ The value at the specified index.
+
+
+ Gets a value that indicates whether this instance is read-only.
+ Always .
+
+
+ Gets a value that indicates whether access to the is synchronized (thread safe).
+
+ if access to the is synchronized (thread safe); otherwise, .
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Gets a value that indicates whether the has a fixed size.
+
+ if the has a fixed size; otherwise, .
+
+
+ Gets a value that indicates whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets or sets the at the specified index.
+ The index.
+ The object at the specified index.
+
+
+ Enumerates the contents of a binary tree.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+
+ Releases the resources used by the current instance of the class.
+
+
+ Advances enumeration to the next element of the immutable list.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the list.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the immutable list.
+
+
+ Gets the element at the current position of the enumerator.
+ The element at the current position of the enumerator.
+
+
+ The current element.
+ The element in the collection at the current position of the enumerator.
+
+
+ Provides a set of initialization methods for instances of the class.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+ Creates an empty immutable queue.
+ The type of items to be stored in the immutable queue.
+ An empty immutable queue.
+
+
+ Creates a new immutable queue that contains the specified item.
+ The item to prepopulate the queue with.
+ The type of items in the immutable queue.
+ A new immutable queue that contains the specified item.
+
+
+ Creates a new immutable queue that contains the specified array of items.
+ An array that contains the items to prepopulate the queue with.
+ The type of items in the immutable queue.
+ A new immutable queue that contains the specified items.
+
+
+ Creates a new immutable queue that contains the specified array of items.
+ A span that contains the items to prepopulate the queue with.
+ The type of items in the immutable queue.
+ A new immutable queue that contains the specified items.
+
+
+ Creates a new immutable queue that contains the specified items.
+ The items to add to the queue before immutability is applied.
+ The type of elements in the queue.
+ An immutable queue that contains the specified items.
+
+
+ Removes the item at the beginning of the immutable queue, and returns the new queue.
+ The queue to remove the item from.
+ When this method returns, contains the item from the beginning of the queue.
+ The type of elements in the immutable queue.
+ The stack is empty.
+ The new queue with the item removed.
+
+
+ Represents an immutable queue.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The type of elements in the queue.
+
+
+ Removes all objects from the immutable queue.
+ The empty immutable queue.
+
+
+ Removes the element at the beginning of the immutable queue, and returns the new queue.
+ The queue is empty.
+ The new immutable queue; never .
+
+
+ Removes the item at the beginning of the immutable queue, and returns the new queue.
+ When this method returns, contains the element from the beginning of the queue.
+ The queue is empty.
+ The new immutable queue with the beginning element removed.
+
+
+ Adds an element to the end of the immutable queue, and returns the new queue.
+ The element to add.
+ The new immutable queue.
+
+
+ Returns an enumerator that iterates through the immutable queue.
+ An enumerator that can be used to iterate through the queue.
+
+
+ Returns the element at the beginning of the immutable queue without removing it.
+ The queue is empty.
+ The element at the beginning of the queue.
+
+
+ Gets a read-only reference to the element at the front of the queue.
+ The queue is empty.
+ Read-only reference to the element at the front of the queue.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Returns an enumerator that iterates through a collection.
+ An object that can be used to iterate through the collection.
+
+
+ Removes all elements from the immutable queue.
+ The empty immutable queue.
+
+
+ Removes the element at the beginning of the immutable queue, and returns the new queue.
+ The queue is empty.
+ The new immutable queue; never .
+
+
+ Adds an element to the end of the immutable queue, and returns the new queue.
+ The element to add.
+ The new immutable queue.
+
+
+ Gets an empty immutable queue.
+ An empty immutable queue.
+
+
+ Gets a value that indicates whether this immutable queue is empty.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+ if this queue is empty; otherwise, .
+
+
+ Enumerates the contents of an immutable queue without allocating any memory.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+
+ Advances the enumerator to the next element of the immutable queue.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the queue.
+
+
+ Gets the element at the current position of the enumerator.
+ The element at the current position of the enumerator.
+
+
+ Provides a set of initialization methods for instances of the class.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+ Creates an empty immutable sorted dictionary.
+ The type of keys stored by the dictionary.
+ The type of values stored by the dictionary.
+ An empty immutable sorted dictionary.
+
+
+ Creates an empty immutable sorted dictionary that uses the specified key comparer.
+ The implementation to use to determine the equality of keys in the dictionary.
+ The type of keys stored by the dictionary.
+ The type of values stored by the dictionary.
+ An empty immutable sorted dictionary.
+
+
+ Creates an empty immutable sorted dictionary that uses the specified key and value comparers.
+ The implementation to use to determine the equality of keys in the dictionary.
+ The implementation to use to determine the equality of values in the dictionary.
+ The type of keys stored by the dictionary.
+ The type of values stored by the dictionary.
+ An empty immutable sorted dictionary.
+
+
+ Creates a new immutable sorted dictionary builder.
+ The type of keys stored by the dictionary.
+ The type of values stored by the dictionary.
+ The immutable collection builder.
+
+
+ Creates a new immutable sorted dictionary builder.
+ The key comparer.
+ The type of keys stored by the dictionary.
+ The type of values stored by the dictionary.
+ The immutable collection builder.
+
+
+ Creates a new immutable sorted dictionary builder.
+ The key comparer.
+ The value comparer.
+ The type of keys stored by the dictionary.
+ The type of values stored by the dictionary.
+ The immutable collection builder.
+
+
+ Creates a new immutable sorted dictionary from the specified range of items with the specified key comparer.
+ The comparer implementation to use to evaluate keys for equality and sorting.
+ The items to add to the sorted dictionary.
+ The type of keys stored in the dictionary.
+ The type of values stored in the dictionary.
+ The new immutable sorted dictionary that contains the specified items and uses the specified key comparer.
+
+
+ Creates a new immutable sorted dictionary from the specified range of items with the specified key and value comparers.
+ The comparer implementation to use to compare keys for equality and sorting.
+ The comparer implementation to use to compare values for equality.
+ The items to add to the sorted dictionary before it's immutable.
+ The type of keys stored in the dictionary.
+ The type of values stored in the dictionary.
+ An immutable sorted dictionary that contains the specified items and uses the specified comparers.
+
+
+ Creates an immutable sorted dictionary that contains the specified items and uses the default comparer.
+ The items to add to the sorted dictionary before it's immutable.
+ The type of keys stored in the dictionary.
+ The type of values stored in the dictionary.
+ An immutable sorted dictionary that contains the specified items.
+
+
+ Enumerates a sequence of key/value pairs and produces an immutable sorted dictionary of its contents.
+ The sequence of key/value pairs to enumerate.
+ The type of the keys in the dictionary.
+ The type of the values in the dictionary.
+ An immutable sorted dictionary that contains the key/value pairs in the specified sequence.
+
+
+ Enumerates a sequence of key/value pairs and produces an immutable dictionary of its contents by using the specified key comparer.
+ The sequence of key/value pairs to enumerate.
+ The key comparer to use when building the immutable dictionary.
+ The type of the keys in the dictionary.
+ The type of the values in the dictionary.
+ An immutable sorted dictionary that contains the key/value pairs in the specified sequence.
+
+
+ Enumerates a sequence of key/value pairs and produces an immutable sorted dictionary of its contents by using the specified key and value comparers.
+ The sequence of key/value pairs to enumerate.
+ The key comparer to use when building the immutable dictionary.
+ The value comparer to use for the immutable dictionary.
+ The type of the keys in the dictionary.
+ The type of the values in the dictionary.
+ An immutable sorted dictionary that contains the key/value pairs in the specified sequence.
+
+
+ Creates an immutable sorted dictionary from the current contents of the builder's dictionary.
+ The builder to create the immutable sorted dictionary from.
+ The type of the keys in the dictionary.
+ The type of the values in the dictionary.
+ An immutable sorted dictionary that contains the current contents in the builder's dictionary.
+
+
+ Enumerates and transforms a sequence, and produces an immutable sorted dictionary of its contents.
+ The sequence to enumerate to generate the dictionary.
+ The function that will produce the key for the dictionary from each sequence element.
+ The function that will produce the value for the dictionary from each sequence element.
+ The type of the elements in the sequence.
+ The type of the keys in the resulting dictionary.
+ The type of the values in the resulting dictionary.
+ An immutable sorted dictionary that contains the items in the specified sequence.
+
+
+ Enumerates and transforms a sequence, and produces an immutable sorted dictionary of its contents by using the specified key comparer.
+ The sequence to enumerate to generate the dictionary.
+ The function that will produce the key for the dictionary from each sequence element.
+ The function that will produce the value for the dictionary from each sequence element.
+ The key comparer to use for the dictionary.
+ The type of the elements in the sequence.
+ The type of the keys in the resulting dictionary.
+ The type of the values in the resulting dictionary.
+ An immutable dictionary that contains the items in the specified sequence.
+
+
+ Enumerates and transforms a sequence, and produces an immutable sorted dictionary of its contents by using the specified key and value comparers.
+ The sequence to enumerate to generate the dictionary.
+ The function that will produce the key for the dictionary from each sequence element.
+ The function that will produce the value for the dictionary from each sequence element.
+ The key comparer to use for the dictionary.
+ The value comparer to use for the dictionary.
+ The type of the elements in the sequence.
+ The type of the keys in the resulting dictionary.
+ The type of the values in the resulting dictionary.
+ An immutable sorted dictionary that contains the items in the specified sequence.
+
+
+ Represents an immutable sorted dictionary.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The type of the key contained in the dictionary.
+ The type of the value contained in the dictionary.
+
+
+ Gets an empty immutable sorted dictionary.
+
+
+ Adds an element with the specified key and value to the immutable sorted dictionary.
+ The key of the entry to add.
+ The value of entry to add.
+ The given key already exists in the dictionary but has a different value.
+ A new immutable sorted dictionary that contains the additional key/value pair.
+
+
+ Adds the specific key/value pairs to the immutable sorted dictionary.
+ The key/value pairs to add.
+ One of the given keys already exists in the dictionary but has a different value.
+ A new immutable dictionary that contains the additional key/value pairs.
+
+
+ Retrieves an empty immutable sorted dictionary that has the same ordering and key/value comparison rules as this dictionary instance.
+ An empty dictionary with equivalent ordering and key/value comparison rules.
+
+
+ Determines whether this immutable sorted dictionary contains the specified key/value pair.
+ The key/value pair to locate.
+
+ if the specified key/value pair is found in the dictionary; otherwise, .
+
+
+ Determines whether this immutable sorted map contains the specified key.
+ The key to locate.
+
+ if the immutable dictionary contains the specified key; otherwise, .
+
+
+ Determines whether the immutable sorted dictionary contains an element with the specified value.
+ The value to locate. The value can be for reference types.
+
+ if the dictionary contains an element with the specified value; otherwise, .
+
+
+ Returns an enumerator that iterates through the immutable sorted dictionary.
+ An enumerator that can be used to iterate through the dictionary.
+
+
+ Removes the element with the specified value from the immutable sorted dictionary.
+ The value of the element to remove.
+ A new immutable dictionary with the specified element removed; or this instance if the specified value cannot be found in the dictionary.
+
+
+ Removes the elements with the specified keys from the immutable sorted dictionary.
+ The keys of the elements to remove.
+ A new immutable dictionary with the specified keys removed; or this instance if the specified keys cannot be found in the dictionary.
+
+
+ Sets the specified key and value in the immutable sorted dictionary, possibly overwriting an existing value for the given key.
+ The key of the entry to add.
+ The key value to set.
+ A new immutable sorted dictionary that contains the specified key/value pair.
+
+
+ Sets the specified key/value pairs in the immutable sorted dictionary, possibly overwriting existing values for the keys.
+ The key/value pairs to set in the dictionary. If any of the keys already exist in the dictionary, this method will overwrite their previous values.
+ An immutable dictionary that contains the specified key/value pairs.
+
+
+ Adds an item to the .
+ The object to add to the .
+
+
+ Removes all items from the .
+
+
+ Copies the elements of the to an , starting at a particular index.
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Removes the first occurrence of a specific object from the .
+ The object to remove from the .
+
+ if was successfully removed from the ; otherwise, . This method also returns if is not found in the original .
+
+
+ Adds an element with the provided key and value to the generic dictionary.
+ The object to use as the key of the element to add.
+ The object to use as the value of the element to add.
+
+ is .
+ An element with the same key already exists in the .
+ The is read-only.
+
+
+ Removes the element with the specified key from the generic dictionary.
+ The key of the element to remove.
+
+ is .
+ The is read-only.
+
+ if the element is successfully removed; otherwise, . This method also returns if was not found in the original generic dictionary.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Copies the elements of the dictionary to an array, starting at a particular array index.
+ The one-dimensional array that is the destination of the elements copied from the dictionary. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Adds an element with the provided key and value to the dictionary object.
+ The object to use as the key of the element to add.
+ The object to use as the value of the element to add.
+
+
+ Clears this instance.
+ The dictionary object is read-only.
+
+
+ Determines whether the immutable dictionary object contains an element with the specified key.
+ The key to locate in the dictionary object.
+
+ if the dictionary contains an element with the key; otherwise, .
+
+
+ Returns an object for the immutable dictionary object.
+ An enumerator object for the dictionary object.
+
+
+ Removes the element with the specified key from the immutable dictionary object.
+ The key of the element to remove.
+
+
+ Returns an enumerator that iterates through a collection.
+ An enumerator object that can be used to iterate through the collection.
+
+
+ See the interface.
+ Key of the entry to be added.
+ Value of the entry to be added.
+ The instance.
+
+
+ See the interface.
+ Sequence of key/value pairs to be added.
+ The instance.
+
+
+ See the interface.
+ The instance.
+
+
+ See the interface.
+ Key of entry to be removed.
+ The instance.
+
+
+ See the interface.
+ Sequence of keys to be removed.
+ The instance.
+
+
+ See the interface.
+ Key of entry to be updated.
+ Value of entry to be updated.
+ The instance.
+
+
+ Applies a given set of key-value pairs to an immutable dictionary, replacing any conflicting keys in the resulting dictionary.
+ A set of key-value pairs to set on the map.
+ The instance.
+
+
+ Creates an immutable sorted dictionary with the same contents as this dictionary that can be efficiently mutated across multiple operations by using standard mutable interfaces.
+ A collection with the same contents as this dictionary.
+
+
+ Determines whether this dictionary contains a specified key.
+ The key to search for.
+ The matching key located in the dictionary if found, or equalkey if no match is found.
+
+ if a match for is found; otherwise, .
+
+
+ Gets the value associated with the specified key.
+ The key whose value will be retrieved.
+ When this method returns, contains the value associated with the specified key, if the key is found; otherwise, contains the default value for the type of the parameter.
+
+ if the dictionary contains an element with the specified key; otherwise, .
+
+
+ Returns a read-only reference to the value associated with the provided .
+ Key of the entry to be looked up.
+ The is not present.
+ A read-only reference to the value associated with the provided .
+
+
+ Gets an instance of the immutable sorted dictionary that uses the specified key comparer.
+ The key comparer to use.
+ An instance of the immutable dictionary that uses the given comparer.
+
+
+ Gets an instance of the immutable sorted dictionary that uses the specified key and value comparers.
+ The key comparer to use.
+ The value comparer to use.
+ An instance of the immutable dictionary that uses the given comparers.
+
+
+ Gets the number of key/value pairs in the immutable sorted dictionary.
+ The number of key/value pairs in the dictionary.
+
+
+ Gets a value that indicates whether this instance of the immutable sorted dictionary is empty.
+
+ if this instance is empty; otherwise, .
+
+
+ Gets the associated with the specified key.
+ The key to retrieve the value for.
+ The value associated with the specified key. If no results are found, the operation throws an exception.
+
+
+ Gets the key comparer for the immutable sorted dictionary.
+ The key comparer for the dictionary.
+
+
+ Gets the keys in the immutable sorted dictionary.
+ The keys in the immutable dictionary.
+
+
+ Gets a value indicating whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets or sets the with the specified key.
+ The object to use as the key of the element to access.
+ An object of type associated with the .
+
+
+ Gets the keys.
+ A collection containing the keys.
+
+
+ Gets the values.
+ A collection containing the values.
+
+
+ Gets a value indicating whether access to the is synchronized (thread safe).
+
+ if access to the is synchronized (thread-safe); otherwise, .
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Gets a value indicating whether the object has a fixed size.
+
+ if the object has a fixed size; otherwise, .
+
+
+ Gets a value indicating whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets or sets the element with the specified key.
+ The key of the element to be accessed.
+ Value stored under the specified key.
+
+
+ Gets an containing the keys of the .
+ An containing the keys of the object that implements .
+
+
+ Gets an containing the values in the .
+ An containing the values in the object that implements .
+
+
+ Gets the value comparer used to determine whether values are equal.
+ The value comparer used to determine whether values are equal.
+
+
+ Gets the values in the immutable sorted dictionary.
+ The values in the dictionary.
+
+
+ Represents a sorted dictionary that mutates with little or no memory allocations and that can produce or build on immutable sorted dictionary instances very efficiently.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+
+
+ Adds an element that has the specified key and value to the immutable sorted dictionary.
+ The key of the element to add.
+ The value of the element to add.
+
+
+ Adds the specified item to the immutable sorted dictionary.
+ The object to add to the dictionary.
+
+
+ Adds a sequence of values to the immutable sorted dictionary.
+ The items to add to the dictionary.
+
+
+ Removes all items from the immutable sorted dictionary.
+
+
+ Determines whether the immutable sorted dictionary contains a specific value.
+ The object to locate in the dictionary.
+
+ if is found in the dictionary; otherwise, .
+
+
+ Determines whether the immutable sorted dictionary contains an element with the specified key.
+ The key to locate in the dictionary.
+
+ if the dictionary contains an element with the key; otherwise, .
+
+
+ Determines whether the immutable sorted dictionary contains an element with the specified value.
+ The value to locate in the dictionary. The value can be for reference types.
+
+ if the immutable sorted dictionary contains an element with the specified value; otherwise, .
+
+
+ Returns an enumerator that iterates through the immutable sorted dictionary.
+ An enumerator that can be used to iterate through the dictionary.
+
+
+ Gets the value for a given key if a matching key exists in the dictionary; otherwise the default value.
+ The key to search for.
+ The value for the key, or default(TValue) if no matching key was found.
+
+
+ Gets the value for a given key if a matching key exists in the dictionary; otherwise the default value.
+ The key to search for.
+ The default value to return if no matching key is found in the dictionary.
+ The value for the key, or if no matching key was found.
+
+
+ Removes the element with the specified key from the immutable sorted dictionary.
+ The key of the element to remove.
+
+ if the element is successfully removed; otherwise, . This method also returns if was not found in the original dictionary.
+
+
+ Removes the first occurrence of a specific object from the immutable sorted dictionary.
+ The object to remove from the dictionary.
+
+ if was successfully removed from the dictionary; otherwise, . This method also returns if is not found in the dictionary.
+
+
+ Removes any entries with keys that match those found in the specified sequence from the immutable sorted dictionary.
+ The keys for entries to remove from the dictionary.
+
+
+ See .
+ The one-dimensional array that is the destination of the elements copied from the dictionary. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ See .
+ An enumerator that can be used to iterate through the collection.
+
+
+ Copies the elements of the dictionary to an array, starting at a particular array index.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The one-dimensional array that is the destination of the elements copied from the dictionary. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Adds an element with the provided key and value to the dictionary object.
+ The key of the element to add.
+ The value of the element to add.
+
+
+ Determines whether the dictionary object contains an element with the specified key.
+ The key to locate.
+
+ if the dictionary contains an element with the key; otherwise, .
+
+
+ Returns an object for the dictionary.
+ An object for the dictionary.
+
+
+ Removes the element with the specified key from the dictionary.
+ The key of the element to remove.
+
+
+ Returns an enumerator that iterates through a collection.
+ An enumerator object that can be used to iterate through the collection.
+
+
+ Creates an immutable sorted dictionary based on the contents of this instance.
+ An immutable sorted dictionary.
+
+
+ Determines whether this dictionary contains a specified key.
+ The key to search for.
+ The matching key located in the dictionary if found, or equalkey if no match is found.
+
+ if a match for is found; otherwise, .
+
+
+ Gets the value associated with the specified key.
+ The key whose value will be retrieved.
+ When this method returns, contains the value associated with the specified key, if the key is found; otherwise, contains the default value for the type of the parameter. This parameter is passed uninitialized.
+
+ if the object that implements the dictionary contains an element with the specified key; otherwise, .
+
+
+ Returns a read-only reference to the value associated with the provided .
+ Key of the entry to be looked up.
+ The is not present.
+ A read-only reference to the value associated with the provided .
+
+
+ Gets the number of elements in this immutable sorted dictionary.
+ The number of elements in this dictionary.
+
+
+ Gets or sets the value for a specified key in the immutable sorted dictionary.
+ The key to retrieve the value for.
+ The value associated with the given key.
+
+
+ Gets or sets the key comparer.
+ The key comparer.
+
+
+ Gets a strongly typed, read-only collection of elements.
+ A strongly typed, read-only collection of elements.
+
+
+ Gets a value that indicates whether this instance is read-only.
+ Always .
+
+
+ Returns a collection containing all keys stored in the dictionary. See .
+ A collection containing all keys stored in the dictionary.
+
+
+ Returns a collection containing all values stored in the dictionary. See .
+ A collection containing all values stored in the dictionary.
+
+
+ Gets a value that indicates whether access to the is synchronized (thread safe).
+
+ if access to the is synchronized (thread safe); otherwise, .
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Gets a value that indicates whether the object has a fixed size.
+
+ if the object has a fixed size; otherwise, .
+
+
+ Gets a value that indicates whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets or sets the element with the specified key.
+ The key.
+ The value associated with the specified key.
+
+
+ Gets an containing the keys of the .
+ An containing the keys of the object that implements .
+
+
+ Gets an containing the values in the .
+ An containing the values in the object that implements .
+
+
+ Gets or sets the value comparer.
+ The value comparer.
+
+
+ Gets a collection that contains the values of the immutable sorted dictionary.
+ A collection that contains the values of the object that implements the dictionary.
+
+
+ Enumerates the contents of a binary tree.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+
+
+ Releases the resources used by the current instance of the class.
+
+
+ Advances the enumerator to the next element of the immutable sorted dictionary.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the sorted dictionary.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the immutable sorted dictionary.
+
+
+ Gets the element at the current position of the enumerator.
+ The element at the current position of the enumerator.
+
+
+ The current element.
+ The element in the collection at the current position of the enumerator.
+
+
+ Provides a set of initialization methods for instances of the class.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+ Creates an empty immutable sorted set.
+ The type of items to be stored in the immutable set.
+ An empty immutable sorted set.
+
+
+ Creates a new immutable sorted set that contains the specified item.
+ The item to prepopulate the set with.
+ The type of items in the immutable set.
+ A new immutable set that contains the specified item.
+
+
+ Creates a new immutable sorted set that contains the specified array of items.
+ An array that contains the items to prepopulate the set with.
+ The type of items in the immutable set.
+ A new immutable set that contains the specified items.
+
+
+ Creates an empty immutable sorted set that uses the specified comparer.
+ The implementation to use when comparing items in the set.
+ The type of items in the immutable set.
+ An empty immutable set.
+
+
+ Creates a new immutable sorted set that contains the specified item and uses the specified comparer.
+ The implementation to use when comparing items in the set.
+ The item to prepopulate the set with.
+ The type of items stored in the immutable set.
+ A new immutable set that contains the specified item.
+
+
+ Creates a new immutable sorted set that contains the specified array of items and uses the specified comparer.
+ The implementation to use when comparing items in the set.
+ An array that contains the items to prepopulate the set with.
+ The type of items in the immutable set.
+ A new immutable set that contains the specified items.
+
+
+ Creates a new immutable collection prefilled with the specified items.
+ The comparer.
+ The items to prepopulate.
+ The type of items stored by the collection.
+ The new immutable collection.
+
+
+ Creates a new immutable sorted set that contains the specified array of items.
+ A span that contains the items to prepopulate the set with.
+ The type of items in the immutable set.
+ A new immutable set that contains the specified items.
+
+
+ Returns a collection that can be used to build an immutable sorted set.
+ The type of items stored by the collection.
+ The immutable collection builder.
+
+
+ Returns a collection that can be used to build an immutable sorted set.
+ The comparer used to compare items in the set for equality.
+ The type of items stored by the collection.
+ The immutable collection.
+
+
+ Creates a new immutable collection that contains the specified items.
+ The comparer to use to compare elements in this set.
+ The items to add to the set before it's immutable.
+ The type of items stored by the collection.
+ The new immutable set that contains the specified items.
+
+
+ Creates a new immutable collection that contains the specified items.
+ The items to add to the set with before it's immutable.
+ The type of items stored by the collection.
+ The new immutable set that contains the specified items.
+
+
+ Enumerates a sequence and produces an immutable sorted set of its contents.
+ The sequence to enumerate.
+ The type of the elements in the sequence.
+ An immutable sorted set that contains the items in the specified sequence.
+
+
+ Enumerates a sequence, produces an immutable sorted set of its contents, and uses the specified comparer.
+ The sequence to enumerate.
+ The comparer to use for initializing and adding members to the sorted set.
+ The type of the elements in the sequence.
+ An immutable sorted set that contains the items in the specified sequence.
+
+
+ Creates an immutable sorted set from the current contents of the builder's set.
+ The builder to create the immutable sorted set from.
+ The type of the elements in the immutable sorted set.
+ An immutable sorted set that contains the current contents in the builder's set.
+
+
+ Represents an immutable sorted set implementation.
+
+NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The type of elements in the set.
+
+
+ Gets an empty immutable sorted set.
+
+
+ Adds the specified value to this immutable sorted set.
+ The value to add.
+ A new set with the element added, or this set if the element is already in this set.
+
+
+ Removes all elements from the immutable sorted set.
+ An empty set with the elements removed.
+
+
+ Determines whether this immutable sorted set contains the specified value.
+ The value to check for.
+
+ if the set contains the specified value; otherwise, .
+
+
+ Removes a specified set of items from this immutable sorted set.
+ The items to remove from this set.
+ A new set with the items removed; or the original set if none of the items were in the set.
+
+
+ Returns an enumerator that iterates through the immutable sorted set.
+ An enumerator that can be used to iterate through the set.
+
+
+ Gets the position within this immutable sorted set that the specified value appears in.
+ The value whose position is being sought.
+ The index of the specified in the sorted set, if is found. If is not found and is less than one or more elements in this set, this method returns a negative number that is the bitwise complement of the index of the first element that is larger than value. If is not found and is greater than any of the elements in the set, this method returns a negative number that is the bitwise complement of the index of the last element plus 1.
+
+
+ Creates an immutable sorted set that contains elements that exist both in this set and in the specified set.
+ The set to intersect with this one.
+ A new immutable sorted set that contains any elements that exist in both sets.
+
+
+ Determines whether the current immutable sorted set is a proper (strict) subset of the specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a proper subset of ; otherwise, .
+
+
+ Determines whether the current immutable sorted set is a proper superset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a proper superset of ; otherwise, .
+
+
+ Determines whether the current immutable sorted set is a subset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a subset of ; otherwise, .
+
+
+ Determines whether the current immutable sorted set is a superset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a superset of ; otherwise, .
+
+
+ Gets a read-only reference of the element of the set at the given .
+ The 0-based index of the element in the set to return.
+ A read-only reference of the element at the given position.
+
+
+ Determines whether the current immutable sorted set and a specified collection share common elements.
+ The collection to compare to the current set.
+
+ if the current set and share at least one common element; otherwise, .
+
+
+ Removes the specified value from this immutable sorted set.
+ The element to remove.
+ A new immutable sorted set with the element removed, or this set if the element was not found in the set.
+
+
+ Returns an that iterates over this immutable sorted set in reverse order.
+ An enumerator that iterates over the immutable sorted set in reverse order.
+
+
+ Determines whether the current immutable sorted set and the specified collection contain the same elements.
+ The collection to compare to the current set.
+
+ if the sets are equal; otherwise, .
+
+
+ Creates an immutable sorted set that contains elements that exist either in this set or in a given sequence, but not both.
+ The other sequence of items.
+ The new immutable sorted set.
+
+
+ Adds the specified value to the collection.
+ The value to add.
+
+
+ Removes all the items from the collection.
+
+
+ Copies the elements of the collection to an array, starting at a particular array index.
+ The one-dimensional array that is the destination of the elements copied from collection. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Removes the first occurrence of a specific object from the collection.
+ The object to remove from the collection.
+
+ if was successfully removed from the collection; otherwise, .
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Inserts an item in the set at the specified index.
+ The zero-based index at which should be inserted.
+ The object to insert into the set.
+
+
+ Removes the item at the specified index.
+ The zero-based index of the item to remove.
+
+
+ Adds an element to the current set and returns a value to indicate if the element was successfully added.
+ The element to add to the set.
+
+ if the element is added to the set; if the element is already in the set.
+
+
+ Removes all elements in the specified collection from the current set.
+ The collection of items to remove from the set.
+
+
+ Modifies the current set so that it contains only elements that are also in a specified collection.
+ The collection to compare to the current set.
+
+
+ Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
+ The collection to compare to the current set.
+
+
+ Modifies the current set so that it contains all elements that are present in either the current set or the specified collection.
+ The collection to compare to the current set.
+
+
+ Copies the elements of the set to an array, starting at a particular array index.
+ The one-dimensional array that is the destination of the elements copied from the set. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Returns an enumerator that iterates through a collection.
+ An enumerator object that can be used to iterate through the collection.
+
+
+ Adds an item to the set.
+ The object to add to the set.
+ The set is read-only or has a fixed size.
+ The position into which the new element was inserted, or -1 to indicate that the item was not inserted into the collection.
+
+
+ Removes all items from the set.
+ Thrown in all cases.
+
+
+ Determines whether the set contains a specific value.
+ The object to locate in the set.
+
+ if the object is found in the set; otherwise, .
+
+
+ Determines the index of a specific item in the set.
+ The object to locate in the set.
+ The index of if found in the list; otherwise, -1.
+
+
+ Inserts an item into the set at the specified index.
+ The zero-based index at which should be inserted.
+ The object to insert into the set.
+ The set is read-only or has a fixed size.
+
+
+ Removes the first occurrence of a specific object from the set.
+ The object to remove from the set.
+ The set is read-only or has a fixed size.
+
+
+ Removes the item at the specified index of the set.
+ The zero-based index of the item to remove.
+ The set is read-only or has a fixed size.
+
+
+ Adds the specified element to this immutable set.
+ The element to add.
+ A new set with the element added, or this set if the element is already in the set.
+
+
+ Retrieves an empty immutable set that has the same sorting and ordering semantics as this instance.
+ An empty set that has the same sorting and ordering semantics as this instance.
+
+
+ Removes the elements in the specified collection from the current immutable set.
+ The items to remove from this set.
+ The new set with the items removed; or the original set if none of the items were in the set.
+
+
+ Creates an immutable set that contains elements that exist in both this set and the specified set.
+ The collection to compare to the current set.
+ A new immutable set that contains any elements that exist in both sets.
+
+
+ Removes the specified element from this immutable set.
+ The element to remove.
+ A new set with the specified element removed, or the current set if the element cannot be found in the set.
+
+
+ Creates an immutable set that contains only elements that are present either in the current set or in the specified collection, but not both.
+ The collection to compare to the current set.
+ A new set that contains the elements that are present only in the current set or in the specified collection, but not both.
+
+
+ Creates a new immutable set that contains all elements that are present in either the current set or in the specified collection.
+ The collection to add elements from.
+ A new immutable set with the items added; or the original set if all the items were already in the set.
+
+
+ Creates a collection that has the same contents as this immutable sorted set that can be efficiently manipulated by using standard mutable interfaces.
+ The sorted set builder.
+
+
+ Searches the set for a given value and returns the equal value it finds, if any.
+ The value to search for.
+ The value from the set that the search found, or the original value if the search yielded no match.
+ A value indicating whether the search was successful.
+
+
+ Adds a given set of items to this immutable sorted set.
+ The items to add.
+ The new set with the items added; or the original set if all the items were already in the set.
+
+
+ Returns the immutable sorted set that has the specified key comparer.
+ The comparer to check for.
+ The immutable sorted set that has the specified key comparer.
+
+
+ Gets the number of elements in the immutable sorted set.
+ The number of elements in the immutable sorted set.
+
+
+ Gets a value that indicates whether this immutable sorted set is empty.
+
+ if this set is empty; otherwise, .
+
+
+ Gets the element of the immutable sorted set at the given index.
+ The index of the element to retrieve from the sorted set.
+ The element at the given index.
+
+
+ Gets the comparer used to sort keys in the immutable sorted set.
+ The comparer used to sort keys.
+
+
+ Gets the maximum value in the immutable sorted set, as defined by the comparer.
+ The maximum value in the set.
+
+
+ Gets the minimum value in the immutable sorted set, as defined by the comparer.
+ The minimum value in the set.
+
+
+ Returns true, since immutable collections are always read-only. See the interface.
+ A boolean value indicating whether the collection is read-only.
+
+
+ See the interface.
+ The zero-based index of the item to access.
+ The element stored at the specified index.
+
+
+ Returns true, since immutable collections are always thread-safe. See the interface.
+ A boolean value indicating whether the collection is thread-safe.
+
+
+ See .
+ Object used for synchronizing access to the collection.
+
+
+ Gets a value that indicates whether the has a fixed size.
+
+ if the has a fixed size; otherwise, .
+
+
+ Gets a value that indicates whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets or sets the at the specified index.
+ The index.
+
+ The .
+
+
+ Represents a sorted set that enables changes with little or no memory allocations, and efficiently manipulates or builds immutable sorted sets.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+
+ Adds an element to the current set and returns a value to indicate whether the element was successfully added.
+ The element to add to the set.
+
+ if the element is added to the set; if the element is already in the set.
+
+
+ Removes all elements from this set.
+
+
+ Determines whether the set contains the specified object.
+ The object to locate in the set.
+
+ if is found in the set; otherwise, .
+
+
+ Removes the specified set of items from the current set.
+ The collection of items to remove from the set.
+
+
+ Returns an enumerator that iterates through the set.
+ A enumerator that can be used to iterate through the set.
+
+
+ Searches for the first index within this set that the specified value is contained.
+ The value to locate within the set.
+ The index of the specified in the sorted set, if is found. If is not found and is less than one or more elements in this set, returns a negative number that is the bitwise complement of the index of the first element that's larger than . If is not found and is greater than any of the elements in the set, returns a negative number that is the bitwise complement of (the index of the last element plus 1).
+
+
+ Modifies the current set so that it contains only elements that are also in a specified collection.
+ The collection to compare to the current set.
+
+
+ Determines whether the current set is a proper (strict) subset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a proper subset of ; otherwise, .
+
+
+ Determines whether the current set is a proper (strict) superset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a proper superset of ; otherwise, .
+
+
+ Determines whether the current set is a subset of a specified collection.
+ The collection is compare to the current set.
+
+ if the current set is a subset of ; otherwise, .
+
+
+ Determines whether the current set is a superset of a specified collection.
+ The collection to compare to the current set.
+
+ if the current set is a superset of ; otherwise, .
+
+
+ Gets a read-only reference to the element of the set at the given .
+ The 0-based index of the element in the set to return.
+ A read-only reference to the element at the given position.
+
+
+ Determines whether the current set overlaps with the specified collection.
+ The collection to compare to the current set.
+
+ if the current set and share at least one common element; otherwise, .
+
+
+ Removes the first occurrence of the specified object from the set.
+ The object to remove from the set.
+
+ if was removed from the set; if was not found in the set.
+
+
+ Returns an enumerator that iterates over the immutable sorted set in reverse order.
+ An enumerator that iterates over the set in reverse order.
+
+
+ Determines whether the current set and the specified collection contain the same elements.
+ The collection to compare to the current set.
+
+ if the current set is equal to ; otherwise, .
+
+
+ Modifies the current set so that it contains only elements that are present either in the current set or in the specified collection, but not both.
+ The collection to compare to the current set.
+
+
+ Adds an element to the current set and returns a value to indicate whether the element was successfully added.
+ The element to add to the set.
+
+
+ Copies the elements of the collection to an array, starting at a particular array index.
+ The one-dimensional array that is the destination of the elements copied from collection. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Returns an enumerator that iterates through the collection.
+ A enumerator that can be used to iterate through the collection.
+
+
+ Copies the elements of the set to an array, starting at a particular array index.
+ The one-dimensional array that is the destination of the elements copied from the set. The array must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Returns an enumerator that iterates through the collection.
+ A enumerator that can be used to iterate through the collection.
+
+
+ Creates an immutable sorted set based on the contents of this instance.
+ An immutable set.
+
+
+ Searches the set for a given value and returns the equal value it finds, if any.
+ The value for which to search.
+ The value from the set that the search found, or the original value if the search yielded no match.
+ A value indicating whether the search was successful.
+
+
+ Modifies the current set so that it contains all elements that are present in both the current set and in the specified collection.
+ The collection to compare to the current state.
+
+
+ Gets the number of elements in the immutable sorted set.
+ The number of elements in this set.
+
+
+ Gets the element of the set at the given index.
+ The 0-based index of the element in the set to return.
+ The element at the given position.
+
+
+ Gets or sets the object that is used to determine equality for the values in the immutable sorted set.
+ The comparer that is used to determine equality for the values in the set.
+
+
+ Gets the maximum value in the immutable sorted set, as defined by the comparer.
+ The maximum value in the set.
+
+
+ Gets the minimum value in the immutable sorted set, as defined by the comparer.
+ The minimum value in the set.
+
+
+ Gets a value that indicates whether this instance is read-only.
+ Always .
+
+
+ Gets a value that indicates whether access to the is synchronized (thread-safe).
+
+ if access to the is synchronized (thread-safe); otherwise, .
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Enumerates the contents of a binary tree.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+
+ Releases the resources used by the current instance of the class.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+ Advances the enumerator to the next element of the immutable sorted set.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the sorted set.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the immutable sorted set.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+ Gets the element at the current position of the enumerator.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The element at the current position of the enumerator.
+
+
+ The current element.
+ The element in the collection at the current position of the enumerator.
+
+
+ Provides a set of initialization methods for instances of the class.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+ Creates an empty immutable stack.
+ The type of items to be stored in the immutable stack.
+ An empty immutable stack.
+
+
+ Creates a new immutable stack that contains the specified item.
+ The item to prepopulate the stack with.
+ The type of items in the immutable stack.
+ A new immutable collection that contains the specified item.
+
+
+ Creates a new immutable stack that contains the specified array of items.
+ An array that contains the items to prepopulate the stack with.
+ The type of items in the immutable stack.
+ A new immutable stack that contains the specified items.
+
+
+ Creates a new immutable stack that contains the specified array of items.
+ A span that contains the items to prepopulate the stack with.
+ The type of items in the immutable stack.
+ A new immutable stack that contains the specified items.
+
+
+ Creates a new immutable stack that contains the specified items.
+ The items to add to the stack before it's immutable.
+ The type of items in the stack.
+ An immutable stack that contains the specified items.
+
+
+ Removes the specified item from an immutable stack.
+ The stack to modify.
+ The item to remove from the stack.
+ The type of items contained in the stack.
+ The stack is empty.
+ A stack; never .
+
+
+ Represents an immutable stack.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+ The type of element on the stack.
+
+
+ Removes all objects from the immutable stack.
+ An empty immutable stack.
+
+
+ Returns an enumerator that iterates through the immutable stack.
+ An enumerator that can be used to iterate through the stack.
+
+
+ Returns the object at the top of the stack without removing it.
+ The stack is empty.
+ The object at the top of the stack.
+
+
+ Gets a read-only reference to the element on the top of the stack.
+ The stack is empty.
+ A read-only reference to the element on the top of the stack.
+
+
+ Removes the element at the top of the immutable stack and returns the stack after the removal.
+ The stack is empty.
+ A stack; never .
+
+
+ Removes the specified element from the immutable stack and returns the stack after the removal.
+ The value to remove from the stack.
+ A stack; never .
+
+
+ Inserts an object at the top of the immutable stack and returns the new stack.
+ The object to push onto the stack.
+ The new stack.
+
+
+ Returns an enumerator that iterates through the collection.
+ An enumerator that can be used to iterate through the collection.
+
+
+ Returns an enumerator that iterates through a collection.
+ An object that can be used to iterate through the collection.
+
+
+ Removes all elements from the immutable stack.
+ The empty immutable stack.
+
+
+ Removes the element at the top of the immutable stack and returns the new stack.
+ The stack is empty.
+ The new stack; never .
+
+
+ Inserts an element at the top of the immutable stack and returns the new stack.
+ The element to push onto the stack.
+ The new stack.
+
+
+ Gets an empty immutable stack.
+ An empty immutable stack.
+
+
+ Gets a value that indicates whether this instance of the immutable stack is empty.
+
+ if this instance is empty; otherwise, .
+
+
+ Enumerates the contents of an immutable stack without allocating any memory.
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+
+ Advances the enumerator to the next element of the immutable stack.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the stack.
+
+
+ Gets the element at the current position of the enumerator.
+ The element at the current position of the enumerator.
+
+
+ LINQ extension method overrides that offer greater efficiency for than the standard LINQ methods
+
+ NuGet package: System.Collections.Immutable (about immutable collections and how to install)
+
+
+ Applies a function to a sequence of elements in a cumulative way.
+ The collection to apply the function to.
+ A function to be invoked on each element, in a cumulative way.
+ The type of element contained by the collection.
+ The final value after the cumulative function has been applied to all elements.
+
+
+ Applies a function to a sequence of elements in a cumulative way.
+ The collection to apply the function to.
+ The initial accumulator value.
+ A function to be invoked on each element, in a cumulative way.
+ The type of the accumulated value.
+ The type of element contained by the collection.
+ The final accumulator value.
+
+
+ Applies a function to a sequence of elements in a cumulative way.
+ The collection to apply the function to.
+ The initial accumulator value.
+ A function to be invoked on each element, in a cumulative way.
+ A function to transform the final accumulator value into the result type.
+ The type of the accumulated value.
+ The type of result returned by the result selector.
+ The type of element contained by the collection.
+ The final accumulator value.
+
+
+ Gets a value indicating whether all elements in this array match a given condition.
+ The array to check for matches.
+ The predicate.
+ The type of element contained by the collection.
+
+ if every element of the source sequence passes the test in the specified predicate; otherwise, .
+
+
+ Returns a value indicating whether this collection contains any elements.
+ The builder to check for matches.
+ The type of elements in the array.
+
+ if the array builder contains any elements; otherwise, .
+
+
+ Gets a value indicating whether the array contains any elements.
+ The array to check for elements.
+ The type of element contained by the collection.
+
+ if the array contains an elements; otherwise, .
+
+
+ Gets a value indicating whether the array contains any elements that match a specified condition.
+ The array to check for elements.
+ The delegate that defines the condition to match to an element.
+ The type of element contained by the collection.
+
+ if an element matches the specified condition; otherwise, .
+
+
+ Returns the element at a specified index in the array.
+ The array to find an element in.
+ The index for the element to retrieve.
+ The type of element contained by the collection.
+ The item at the specified index.
+
+
+ Returns the element at a specified index in a sequence or a default value if the index is out of range.
+ The array to find an element in.
+ The index for the element to retrieve.
+ The type of element contained by the collection.
+ The item at the specified index, or the default value if the index is not found.
+
+
+ Returns the first element in the collection.
+ The builder to retrieve an item from.
+ The type of items in the array.
+ If the array is empty.
+ The first item in the list.
+
+
+ Returns the first element in an array.
+ The array to get an item from.
+ The type of element contained by the collection.
+ If the array is empty.
+ The first item in the array.
+
+
+ Returns the first element in a sequence that satisfies a specified condition.
+ The array to get an item from.
+ The delegate that defines the conditions of the element to search for.
+ The type of element contained by the collection.
+ If the array is empty.
+ The first item in the list if it meets the condition specified by .
+
+
+ Returns the first element in the collection, or the default value if the collection is empty.
+ The builder to retrieve an element from.
+ The type of item in the builder.
+ The first item in the list, if found; otherwise the default value for the item type.
+
+
+ Returns the first element of a sequence, or a default value if the sequence contains no elements.
+ The array to retrieve items from.
+ The type of element contained by the collection.
+ The first item in the list, if found; otherwise the default value for the item type.
+
+
+ Returns the first element of the sequence that satisfies a condition or a default value if no such element is found.
+ The array to retrieve elements from.
+ The delegate that defines the conditions of the element to search for.
+ The type of element contained by the collection.
+ The first item in the list, if found; otherwise the default value for the item type.
+
+
+ Returns the last element in the collection.
+ The builder to retrieve elements from.
+ The type of item in the builder.
+ The collection is empty.
+ The last element in the builder.
+
+
+ Returns the last element of the array.
+ The array to retrieve items from.
+ The type of element contained by the array.
+ The collection is empty.
+ The last element in the array.
+
+
+ Returns the last element of a sequence that satisfies a specified condition.
+ The array to retrieve elements from.
+ The delegate that defines the conditions of the element to retrieve.
+ The type of element contained by the collection.
+ The collection is empty.
+ The last element of the array that satisfies the condition.
+
+
+ Returns the last element in the collection, or the default value if the collection is empty.
+ The builder to retrieve an element from.
+ The type of item in the builder.
+ The last element of a sequence, or a default value if the sequence contains no elements.
+
+
+ Returns the last element of a sequence, or a default value if the sequence contains no elements.
+ The array to retrieve items from.
+ The type of element contained by the collection.
+ The last element of a sequence, or a default value if the sequence contains no elements.
+
+
+ Returns the last element of a sequence that satisfies a condition or a default value if no such element is found.
+ The array to retrieve an element from.
+ The delegate that defines the conditions of the element to search for.
+ The type of element contained by the collection.
+ The last element of a sequence, or a default value if the sequence contains no elements.
+
+
+ Projects each element of a sequence into a new form.
+ The immutable array to select items from.
+ A transform function to apply to each element.
+ The type of element contained by the collection.
+ The type of the result element.
+ An whose elements are the result of invoking the transform function on each element of source.
+
+
+ Projects each element of a sequence to an , flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein.
+ The immutable array.
+ A transform function to apply to each element of the input sequence.
+ A transform function to apply to each element of the intermediate sequence.
+ The type of the elements of .
+ The type of the intermediate elements collected by .
+ The type of the elements of the resulting sequence.
+ An whose elements are the result of invoking the one-to-many transform function on each element of and then mapping each of those sequence elements and their corresponding source element to a result element.
+
+
+ Determines whether two sequences are equal according to an equality comparer.
+ The array to use for comparison.
+ The items to use for comparison.
+ The comparer to use to check for equality.
+ The type of element in the compared array.
+ The type of element contained by the collection.
+
+ to indicate the sequences are equal; otherwise, .
+
+
+ Determines whether two sequences are equal according to an equality comparer.
+ The array to use for comparison.
+ The items to use for comparison.
+ The comparer to use to check for equality.
+ The type of element in the compared array.
+ The type of element contained by the collection.
+
+ to indicate the sequences are equal; otherwise, .
+
+
+ Determines whether two sequences are equal according to an equality comparer.
+ The array to use for comparison.
+ The items to use for comparison.
+ The comparer to use to check for equality.
+ The type of element in the compared array.
+ The type of element contained by the collection.
+
+ to indicate the sequences are equal; otherwise, .
+
+
+ Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence.
+ The array to retrieve the element from.
+ The type of element contained by the collection.
+ The element in the sequence.
+
+
+ Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists.
+ The immutable array to return a single element from.
+ The function to test whether an element should be returned.
+ The type of element contained by the collection.
+ Returns .
+
+
+ Returns the only element of the array, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence.
+ The array.
+ The type of element contained by the collection.
+
+ contains more than one element.
+ The element in the array, or the default value if the array is empty.
+
+
+ Returns the only element of a sequence that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition.
+ The array to get the element from.
+ The condition the element must satisfy.
+ The type of element contained by the collection.
+ More than one element satisfies the condition in .
+ The element if it satisfies the specified condition; otherwise the default element.
+
+
+ Copies the contents of this array to a mutable array.
+ The immutable array to copy into a mutable one.
+ The type of element contained by the collection.
+ The newly instantiated array.
+
+
+ Creates a dictionary based on the contents of this array.
+ The array to create a dictionary from.
+ The key selector.
+ The type of the key.
+ The type of element contained by the collection.
+ The newly initialized dictionary.
+
+
+ Creates a dictionary based on the contents of this array.
+ The array to create a dictionary from.
+ The key selector.
+ The comparer to initialize the dictionary with.
+ The type of the key.
+ The type of element contained by the collection.
+ The newly initialized dictionary.
+
+
+ Creates a dictionary based on the contents of this array.
+ The array to create a dictionary from.
+ The key selector.
+ The element selector.
+ The type of the key.
+ The type of the element.
+ The type of element contained by the collection.
+ The newly initialized dictionary.
+
+
+ Creates a dictionary based on the contents of this array.
+ The array to create a dictionary from.
+ The key selector.
+ The element selector.
+ The comparer to initialize the dictionary with.
+ The type of the key.
+ The type of the element.
+ The type of element contained by the collection.
+ The newly initialized dictionary.
+
+
+ Filters a sequence of values based on a predicate.
+ The array to filter.
+ The condition to use for filtering the array content.
+ The type of element contained by the collection.
+ Returns that contains elements that meet the condition.
+
+
+ An unsafe class that provides a set of methods to access the underlying data representations of immutable collections.
+
+
+ Gets the underlying array for an input value.
+ The input value to get the underlying array from.
+ The type of elements in the input value.
+ The underlying array for , if present.
+
+
+ Gets an value wrapping the input array.
+ The input array to wrap in the returned value.
+ The type of elements in the input array.
+ An value wrapping .
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Collections.NonGeneric.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Collections.NonGeneric.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c78346ca4d9c159cf129e09d39bafbc81a8a9cd7
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Collections.NonGeneric.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.ComponentModel.EventBasedAsync.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.ComponentModel.EventBasedAsync.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3c1677c77c161c3df8bb0794507b3448bd20b17a
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.ComponentModel.EventBasedAsync.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.ComponentModel.Primitives.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.ComponentModel.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c81c9306febe9a5433efcb464b17e8d6ca44c8d6
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.ComponentModel.Primitives.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.ComponentModel.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.ComponentModel.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bcd6660522af63773249689c9f66979519dda458
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.ComponentModel.xml
@@ -0,0 +1,65 @@
+
+
+
+ System.ComponentModel
+
+
+
+ Provides data for a cancelable event.
+
+
+ Initializes a new instance of the class with the property set to .
+
+
+ Initializes a new instance of the class with the property set to the given value.
+
+ to cancel the event; otherwise, .
+
+
+ Gets or sets a value indicating whether the event should be canceled.
+
+ if the event should be canceled; otherwise, .
+
+
+ Defines the mechanism for querying the object for changes and resetting of the changed status.
+
+
+ Resets the object's state to unchanged by accepting the modifications.
+
+
+ Gets the object's changed status.
+
+ if the object's content has changed since the last call to ; otherwise, .
+
+
+ Provides functionality to commit or rollback changes to an object that is used as a data source.
+
+
+ Begins an edit on an object.
+
+
+ Discards changes since the last call.
+
+
+ Pushes changes since the last or call into the underlying object.
+
+
+ Provides support for rolling back the changes.
+
+
+ Resets the object's state to unchanged by rejecting the modifications.
+
+
+ Defines a mechanism for retrieving a service object; that is, an object that provides custom support to other objects.
+
+
+ Gets the service object of the specified type.
+ An object that specifies the type of service object to get.
+ A service object of type .
+
+ -or-
+
+ if there is no service object of type .
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Configuration.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Configuration.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a4d30cf58b9bc50b5d5f0d2615760587e5fc5547
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Configuration.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Console.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Console.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9cbdf64196bc1bb9410972ca1cc56357bdd4bc5a
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Console.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Data.Common.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Data.Common.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6c00754c52387541eddddd78df47a7410ee24a63
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Data.Common.xml
@@ -0,0 +1,14576 @@
+
+
+
+ System.Data.Common
+
+
+
+ Determines the action that occurs when the or method is invoked on a with a .
+
+
+ Changes are cascaded across the relationship.
+
+
+ No action occurs (default).
+
+
+ Provides a description of the results of the query and its effect on the database.
+
+
+ When the command is executed, the associated object is closed when the associated object is closed.
+
+
+ The query may return multiple result sets. Execution of the query may affect the database state. sets no flags, so calling is functionally equivalent to calling .
+
+
+ The query returns column and primary key information. The provider appends extra columns to the result set for existing primary key and timestamp columns.
+
+
+ The query returns column information only. When using , the .NET Framework Data Provider for SQL Server precedes the statement being executed with SET FMTONLY ON.
+
+
+ Provides a way for the to handle rows that contain columns with large binary values. Rather than loading the entire row, enables the to load data as a stream. You can then use the or method to specify a byte location to start the read operation, and a limited buffer size for the data being returned.
+
+
+ The query returns a single result set.
+
+
+ The query is expected to return a single row of the first result set. Execution of the query may affect the database state. Some .NET data providers may, but are not required to, use this information to optimize the performance of the command. When you specify with the method of the object, the .NET Framework Data Provider for OLE DB performs binding using the OLE DB interface if it is available. Otherwise, it uses the interface. If your SQL statement is expected to return only a single row, specifying can also improve application performance. It is possible to specify when executing queries that are expected to return multiple result sets. In that case, where both a multi-result set SQL query and single row are specified, the result returned will contain only the first row of the first result set. The other result sets of the query will not be returned.
+
+
+ Specifies how a command string is interpreted.
+
+
+ The name of a stored procedure.
+
+
+ The name of a table.
+
+
+ An SQL text command. (Default.)
+
+
+ Indicates the position of the catalog name in a qualified table name in a text command.
+
+
+ Indicates that the position of the catalog name occurs after the schema portion of a fully qualified table name in a text command. End and Start are mutually exclusive.
+
+
+ Indicates that the position of the catalog name occurs before the schema portion of a fully qualified table name in a text command. Start and End are mutually exclusive.
+
+
+ Represents a set of SQL commands and a database connection that are used to fill the and update the data source.
+
+
+ Returned when an error occurs during a fill operation.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class from an existing object of the same type.
+ A object used to create the new .
+
+
+ Creates a copy of this instance of .
+ The cloned instance of .
+
+
+ Creates a new .
+ A new table mapping collection.
+
+
+ Releases the unmanaged resources used by the and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Adds or refreshes rows in the to match those in the data source.
+ A to fill with records and, if necessary, schema.
+ The number of rows successfully added to or refreshed in the . This does not include rows affected by statements that do not return rows.
+
+
+ Adds or refreshes rows in a specified range in the to match those in the data source using the and names.
+ A to fill with records.
+ A string indicating the name of the source table.
+ An instance of .
+ The zero-based index of the starting record.
+ An integer indicating the maximum number of records.
+ The number of rows successfully added to or refreshed in the . This does not include rows affected by statements that do not return rows.
+
+
+ Adds or refreshes rows in the to match those in the data source using the name and the specified .
+ A to fill with records.
+ An instance of .
+ The number of rows successfully added to or refreshed in the . This does not include rows affected by statements that do not return rows.
+
+
+ Adds or refreshes rows in a specified range in the collection of objects to match those in the data source.
+ A collection of objects to fill with records.
+ An instance of .
+ The zero-based index of the starting record.
+ An integer indicating the maximum number of records.
+ The number of rows successfully added to or refreshed in the . This does not include rows affected by statements that do not return rows.
+
+
+ Adds a to the specified and configures the schema to match that in the data source based on the specified .
+ The to be filled with the schema from the data source.
+ One of the values.
+ A object that contains schema information returned from the data source.
+
+
+ Adds a to the specified .
+ The to be filled from the .
+ One of the values.
+ The name of the source table to use for table mapping.
+ The to be used as the data source when filling the .
+ A reference to a collection of objects that were added to the .
+
+
+ Adds a to the specified .
+ The to be filled from the .
+ One of the values.
+ The to be used as the data source when filling the .
+ A object that contains schema information returned from the data source.
+
+
+ Gets the parameters set by the user when executing an SQL SELECT statement.
+ An array of objects that contains the parameters set by the user.
+
+
+ Indicates whether a has been created.
+
+ if a has been created; otherwise .
+
+
+ Invoked when an error occurs during a .
+ A object.
+
+
+ Resets to its default state and causes to honor .
+
+
+ Determines whether the property should be persisted.
+
+ if the property is persisted; otherwise .
+
+
+ Determines whether the property should be persisted.
+
+ if the property is persisted; otherwise .
+
+
+ Determines whether one or more objects exist and they should be persisted.
+
+ if one or more objects exist; otherwise .
+
+
+ Calls the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified from a named "Table."
+ The used to update the data source.
+ The source table is invalid.
+ An attempt to execute an INSERT, UPDATE, or DELETE statement resulted in zero records affected.
+ The number of rows successfully updated from the .
+
+
+ Gets or sets a value indicating whether is called on a after it is added to the during any of the Fill operations.
+
+ if is called on the ; otherwise . The default is .
+
+
+ Gets or sets whether is called during a .
+
+ if is called during an ; otherwise . The default is .
+
+
+ Gets or sets a value that specifies whether to generate an exception when an error is encountered during a row update.
+
+ to continue the update without generating an exception; otherwise . The default is .
+
+
+ Gets or sets the that determines how the adapter fills the from the .
+ A value.
+
+
+ Determines the action to take when incoming data does not have a matching table or column.
+ The value set is not one of the values.
+ One of the values. The default is .
+
+
+ Determines the action to take when existing schema does not match incoming data.
+ The value set is not one of the values.
+ One of the values. The default is .
+
+
+ Gets or sets whether the method should return provider-specific values or common CLS-compliant values.
+
+ if the method should return provider-specific values; otherwise to return common CLS-compliant values.
+
+
+ Gets a collection that indicates how a source table is mapped to a dataset table.
+ A collection that provides the primary mapping between the returned records and the . The default value is an empty collection.
+
+
+ Gets a collection that provides the primary mapping between a source table and a .
+ A collection that provides the primary mapping between the returned records and the . The default value is an empty collection.
+
+
+ Contains a generic column mapping for an object that inherits from . This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified source column name and column name to map to.
+ The case-sensitive column name from a data source.
+ The column name, which is not case sensitive, from a to map to.
+
+
+ Gets a from the given using the and the property.
+ The to get the column from.
+ The of the data column.
+ One of the values.
+ A data column.
+
+
+ A static version of that can be called without instantiating a object.
+ The case-sensitive column name from a data source.
+ The column name, which is not case sensitive, from a to map to.
+ An instance of .
+ The data type for the column being mapped.
+ Determines the action to take when existing schema does not match incoming data.
+ A object.
+
+
+ Creates a new object that is a copy of the current instance.
+ A copy of the current object.
+
+
+ Converts the current name to a string.
+ The current name as a string.
+
+
+ Gets or sets the name of the column within the to map to.
+ The name of the column within the to map to. The name is not case sensitive.
+
+
+ Gets or sets the name of the column within the data source to map from. The name is case-sensitive.
+ The case-sensitive name of the column in the data source.
+
+
+ Contains a collection of objects.
+
+
+ Creates an empty .
+
+
+ Adds a object to the collection.
+ A object to add to the collection.
+ The object passed in was not a object.
+ The index of the object that was added to the collection.
+
+
+ Adds a object to the collection when given a source column name and a column name.
+ The case-sensitive name of the source column to map to.
+ The name, which is not case-sensitive, of the column to map to.
+ The object that was added to the collection.
+
+
+ Copies the elements of the specified to the end of the collection.
+ The to add to the collection.
+
+
+ Copies the elements of the specified array to the end of the collection.
+ The array of objects to add to the collection.
+
+
+ Removes all objects from the collection.
+
+
+ Gets a value indicating whether a object with the given exists in the collection.
+ An that is the .
+ The object passed in was not a object.
+
+ if the collection contains the specified object; otherwise, .
+
+
+ Gets a value indicating whether a object with the given source column name exists in the collection.
+ The case-sensitive source column name of the object.
+
+ if collection contains a object with the specified source column name; otherwise, .
+
+
+ Copies the elements of the to the specified array.
+ An to which to copy elements.
+ The starting index of the array.
+
+
+ Copies the elements of the to the specified array.
+ A array to which to copy the elements.
+ The zero-based index in the at which copying begins.
+
+
+ Gets the object with the specified column name.
+ The name, which is not case-sensitive, of the column to find.
+ The object with the specified column name.
+
+
+ Gets a for the specified , source column name, and .
+ The .
+ The case-sensitive source column name to find.
+ One of the values.
+ The parameter was set to , and no mapping was specified.
+ A object.
+
+
+ A static method that returns a object without instantiating a object.
+ The .
+ The case-sensitive column name from a data source.
+ The data type for the column being mapped.
+ An instance of .
+ One of the values.
+ Determines the action to take when the existing schema does not match incoming data.
+ A object.
+
+
+ Gets an enumerator that can iterate through the collection.
+ An that can be used to iterate through the collection.
+
+
+ Gets the location of the specified that is a within the collection.
+ An that is the to find.
+ The zero-based location of the specified that is a within the collection.
+
+
+ Gets the location of the with the specified source column name.
+ The case-sensitive name of the source column.
+ The zero-based location of the with the specified case-sensitive source column name.
+
+
+ Gets the location of the specified with the given column name.
+ The name, which is not case-sensitive, of the data set column to find.
+ The zero-based location of the specified with the given column name, or -1 if the object does not exist in the collection.
+
+
+ Inserts a object into the at the specified index.
+ The zero-based index of the object to insert.
+ The object.
+
+
+ Inserts a object into the at the specified index.
+ The zero-based index of the object to insert.
+ The object.
+
+
+ Removes the specified from the collection.
+ The to remove.
+
+
+ Removes the that is a from the collection.
+ The that is the to remove.
+ The object specified was not a object.
+ The object specified is not in the collection.
+
+
+ Removes the object with the specified index from the collection.
+ The zero-based index of the object to remove.
+ There is no object with the specified index.
+
+
+ Removes the object with the specified source column name from the collection.
+ The case-sensitive source column name.
+ There is no object with the specified source column name.
+
+
+ Adds a object to the by using the source column and column names.
+ The case-sensitive name of the source column.
+ The name of the column.
+ The ColumnMapping object that was added to the collection.
+
+
+ Gets the object that has the specified column name.
+ The name, which is not case-sensitive, of the column to find.
+ The object that has the specified column name.
+
+
+ Gets the number of objects in the collection.
+ The number of items in the collection.
+
+
+ Gets or sets the object at the specified index.
+ The zero-based index of the object to find.
+ The object at the specified index.
+
+
+ Gets or sets the object with the specified source column name.
+ The case-sensitive name of the source column.
+ The object with the specified source column name.
+
+
+ Gets a value that indicates whether access to the is synchronized (thread safe).
+
+ if access to the is synchronized (thread safe); otherwise, .
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Gets a value that indicates whether the has a fixed size.
+
+ if the has a fixed size; otherwise, .
+
+
+ Gets a value that indicates whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets or sets the element at the specified index.
+ The zero-based index of the element to get or set.
+ The element at the specified index.
+
+
+ Gets or sets the object with the specified name.
+ Index of the element.
+ The object with the specified name.
+
+
+ Contains a description of a mapped relationship between a source table and a . This class is used by a when populating a .
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with a source when given a source table name and a name.
+ The case-sensitive source table name from a data source.
+ The table name from a to map to.
+
+
+ Initializes a new instance of the class when given a source table name, a name, and an array of objects.
+ The case-sensitive source table name from a data source.
+ The table name from a to map to.
+ An array of objects.
+
+
+ Gets a from the specified using the specified value and the name of the .
+ The name of the .
+ One of the values.
+ The parameter was set to , and no mapping was specified.
+ A data column.
+
+
+ Returns a object for a given column name.
+ The name of the .
+ The data type for .
+ The table name from a to map to.
+ One of the values.
+ One of the values.
+ A object.
+
+
+ Gets the current for the specified using the specified value.
+ The from which to get the .
+ One of the values.
+ A data table.
+
+
+ Creates a new object that is a copy of the current instance.
+ A new object that is a copy of the current instance.
+
+
+ Converts the current name to a string.
+ The current name, as a string.
+
+
+ Gets the for the .
+ A data column mapping collection.
+
+
+ Gets or sets the table name from a .
+ The table name from a .
+
+
+ Gets or sets the case-sensitive source table name from a data source.
+ The case-sensitive source table name from a data source.
+
+
+ Gets the derived for the .
+ A data column mapping collection.
+
+
+ A collection of objects. This class cannot be inherited.
+
+
+ Initializes a new instance of the class. This new instance is empty, that is, it does not yet contain any objects.
+
+
+ Adds an that is a table mapping to the collection.
+ A object to add to the collection.
+ The object passed in was not a object.
+ The index of the object added to the collection.
+
+
+ Adds a object to the collection when given a source table name and a table name.
+ The case-sensitive name of the source table to map from.
+ The name, which is not case-sensitive, of the table to map to.
+ The object that was added to the collection.
+
+
+ Copies the elements of the specified to the end of the collection.
+ An of values to add to the collection.
+
+
+ Copies the elements of the specified array to the end of the collection.
+ The array of objects to add to the collection.
+
+
+ Removes all objects from the collection.
+
+
+ Gets a value indicating whether the given object exists in the collection.
+ An that is the .
+
+ if this collection contains the specified ; otherwise .
+
+
+ Gets a value indicating whether a object with the specified source table name exists in the collection.
+ The case-sensitive source table name containing the object.
+
+ if the collection contains a object with this source table name; otherwise .
+
+
+ Copies the elements of the to the specified array.
+ An to which to copy the elements.
+ The starting index of the array.
+
+
+ Copies the elements of the to the specified array.
+ A to which to copy the elements.
+ The starting index of the array.
+
+
+ Gets the object with the specified table name.
+ The name, which is not case-sensitive, of the table to find.
+ The object with the specified table name.
+
+
+ Gets an enumerator that can iterate through the collection.
+ An that can be used to iterate through the collection.
+
+
+ Gets a object with the specified source table name and table name, using the given .
+ The collection to search.
+ The case-sensitive name of the mapped source table.
+ The name, which is not case-sensitive, of the mapped table.
+ One of the values.
+ The parameter was set to , and no mapping was specified.
+ A object.
+
+
+ Gets the location of the specified object within the collection.
+ An that is the object to find.
+ The zero-based location of the specified object within the collection.
+
+
+ Gets the location of the object with the specified source table name.
+ The case-sensitive name of the source table.
+ The zero-based location of the object with the specified source table name.
+
+
+ Gets the location of the object with the specified table name.
+ The name, which is not case-sensitive, of the table to find.
+ The zero-based location of the object with the given table name, or -1 if the object does not exist in the collection.
+
+
+ Inserts a object into the at the specified index.
+ The zero-based index of the object to insert.
+ The object to insert.
+
+
+ Inserts a object into the at the specified index.
+ The zero-based index of the object to insert.
+ The object to insert.
+
+
+ Removes the specified object from the collection.
+ The object to remove.
+
+
+ Removes the specified object from the collection.
+ The object to remove.
+ The object specified was not a object.
+ The object specified is not in the collection.
+
+
+ Removes the object located at the specified index from the collection.
+ The zero-based index of the object to remove.
+ A object does not exist with the specified index.
+
+
+ Removes the object with the specified source table name from the collection.
+ The case-sensitive source table name to find.
+ A object does not exist with the specified source table name.
+
+
+ Adds a table mapping to the collection.
+ The case-sensitive name of the source table.
+ The name of the table.
+ A reference to the newly-mapped object.
+
+
+ Gets the TableMapping object with the specified table name.
+ The name of the table within the collection.
+ The TableMapping object with the specified table name.
+
+
+ Gets the number of objects in the collection.
+ The number of objects in the collection.
+
+
+ Gets or sets the object at the specified index.
+ The zero-based index of the object to return.
+ The object at the specified index.
+
+
+ Gets or sets the object with the specified source table name.
+ The case-sensitive name of the source table.
+ The object with the specified source table name.
+
+
+ Gets a value indicating whether access to the is synchronized (thread safe).
+
+ if access to the is synchronized (thread safe); otherwise, .
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Gets a value indicating whether the has a fixed size.
+
+ if the has a fixed size; otherwise, .
+
+
+ Gets a value indicating whether the is read-only.
+
+ if the is read-only; otherwise, .
+
+
+ Gets or sets an item from the collection at a specified index.
+ The zero-based index of the item to get or set.
+ The element at the specified index.
+
+
+ Gets or sets the instance of with the specified name.
+ The name of the .
+ The instance of with the specified name.
+
+
+ Represents a batch of commands which can be executed against a data source in a single round trip. Provides a base class for database-specific classes that represent command batches.
+
+
+ Initializes a new instance of the class.
+
+
+ Attempts to cancel the execution of a .
+
+
+ Creates a new instance of a object.
+ A object.
+
+
+ When overridden in a derived class, creates a new instance of a object.
+ A object.
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ Asynchronously diposes the batch object.
+ A representing the asynchronous operation.
+
+
+ When overridden in a derived class, executes the batch against its connection, returning a which can be used to access the results.
+ An instance of , specifying options for batch execution and data retrieval.
+ An error occurred while executing the batch.
+ The value is invalid.
+ A object.
+
+
+ Providers should implement this method to provide a non-default implementation for overloads.
+
+ The default implementation invokes the synchronous method and returns a completed task, blocking the calling thread. The default implementation will return a cancelled task if passed an already cancelled cancellation token. Exceptions thrown by ExecuteReader will be communicated via the returned Task Exception property.
+
+ This method accepts a cancellation token that can be used to request the operation to be cancelled early. Implementations may ignore this request.
+ One of the enumeration values that specifies options for batch execution and data retrieval.
+ A token to cancel the asynchronous operation.
+ A task representing the asynchronous operation.
+
+
+ Executes the batch against its connection object, returning the total number of rows affected across all the batch commands.
+ The total number of rows affected across all the batch commands.
+
+
+ This is the asynchronous version of . Providers should override with an appropriate implementation. The cancellation token may optionally be ignored.
+
+ The default implementation invokes the synchronous method and returns a completed task, blocking the calling thread. The default implementation will return a cancelled task if passed an already cancelled cancellation token. Exceptions thrown by will be communicated via the returned Task Exception property.
+
+ Do not invoke other methods and properties of the object until the returned Task is complete.
+ A token to cancel the asynchronous operation.
+ An error occurred while executing the batch.
+ A task representing the asynchronous operation.
+
+
+ Executes the batch against its connection, returning a which can be used to access the results.
+ One of the enumeration values that specifies options for batch execution and data retrieval.
+ A object.
+
+
+ An asynchronous version of , which executes the batch against its connection, returning a which can be used to access the results.
+ One of the enumeration values that specifies options for batch execution and data retrieval.
+ A token to cancel the asynchronous operation.
+ An error occurred while executing the batch.
+ The value is invalid.
+ A task representing the asynchronous operation.
+
+
+ An asynchronous version of , which executes the batch against its connection, returning a which can be used to access the results.
+
+ An error occurred while executing the batch.
+ The value is invalid.
+ A task representing the asynchronous operation.
+
+
+ Executes the batch and returns the first column of the first row in the first returned result set. All other columns, rows and resultsets are ignored.
+ An error occurred while executing the batch.
+ The first column of the first row in the first result set.
+
+
+ An asynchronous version of , which executes the batch and returns the first column of the first row in the first returned result set. All other columns, rows and result sets are ignored.
+ A token to cancel the asynchronous operation.
+ An error occurred while executing the batch.
+ The first column of the first row in the first result set.
+
+
+ Creates a prepared (or compiled) version of the batch, or of each of its commands, on the data source.
+
+
+ Asynchronously creates a prepared (or compiled) version of the batch, or of each of its commands, on the data source.
+ An optional token to cancel the asynchronous operation. The default value is .
+ A representing the asynchronous operation.
+
+
+ Gets the collection of objects.
+ The commands contained within the batch.
+
+
+ Gets or sets the used by this .
+ The connection to the data source.
+
+
+ When overridden in a derived class, gets the collection of objects.
+ The commands contained within the batch.
+
+
+ When overridden in a derived class, gets or sets the used by this .
+ The connection to the data source.
+
+
+ When overridden in a derived class, gets or sets the within which this object executes.
+ The transaction within which a batch of a .NET data provider executes. The default value is a null reference ( in Visual Basic).
+
+
+ Gets or sets the wait time (in seconds) before terminating the attempt to execute the batch and generating an error.
+ The time in seconds to wait for the batch to execute.
+
+
+ Gets or sets the within which this object executes.
+ The transaction within which a batch of a .NET data provider executes. The default value is a null reference ( in Visual Basic).
+
+
+ Represents a single command within a . A batch can be executed against a data source in a single round trip.
+
+
+ Constructs an instance of the object.
+
+
+
+
+ Gets or sets the text command to run against the data source.
+ The text command to execute. The default value is an empty string ("").
+
+
+ Gets or sets how the property is interpreted.
+ One of the enumeration values that specifies how a command string is interpreted. The default is .
+
+
+ Gets the collection of objects.
+ The parameters of the SQL statement or stored procedure.
+
+
+ Gets the collection of objects. For more information on parameters, see Configuring Parameters and Parameter Data Types.
+ The parameters of the SQL statement or stored procedure.
+
+
+ Gets the number of rows changed, inserted, or deleted by execution of this specific .
+ The number of rows changed, inserted, or deleted. -1 for SELECT statements; 0 if no rows were affected or the statement failed.
+
+
+ The base class for a collection of instances of , contained in a .
+
+
+ Initializes a new instance of the class.
+
+
+ Adds the specified object to the .
+ The object to add to the .
+
+
+ Removes all values from the .
+
+
+ Indicates whether a is contained in the collection.
+ The object to locate in the .
+
+ if the is in the collection; otherwise .
+
+
+ Copies the elements of the to an , starting at a particular index.
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+
+
+
+ Returns the object at the specified index in the collection.
+ The object at the specified index in the collection.
+
+
+ Returns the index of the specified object.
+ The object to locate in the .
+ The index of the specified object.
+
+
+ Inserts the specified index of the object with the specified name into the collection at the specified index.
+ The index at which to insert the object.
+ The object to insert into the .
+
+
+ Removes the specified object from the collection.
+ The object to remove from the .
+
+ if was successfully removed; otherwise, . This method also returns if was not found in the .
+
+
+ Removes the object at the specified from the collection.
+ The index where the object is located.
+
+
+ Sets the object at the specified index to a new value.
+ The index where the object is located.
+
+
+
+ Returns an enumerator that iterates through a collection.
+ An object that can be used to iterate through the collection.
+
+
+ Gets the number of elements contained in the .
+ The number of elements contained in the .
+
+
+ Specifies whether the collection is read-only.
+
+ if the collection is read-only; otherwise .
+
+
+ Gets or sets the at the specified index.
+ The zero-based index of the .
+ The specified index does not exist.
+ The at the specified index.
+
+
+ Represents a column within a data source.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets a nullable boolean value that indicates whether values are allowed in this column, or returns if no value is set. Can be set to either or indicating whether values are allowed in this column, or ( in Visual Basic) when overridden in a derived class.
+ Returns if values are allowed in this column; otherwise, . If no value is set, returns a null reference ( in Visual Basic).
+
+
+ Gets the catalog name associated with the data source; otherwise, if no value is set. Can be set to either the catalog name or when overridden in a derived class.
+ The catalog name associated with the data source; otherwise, a null reference ( in Visual Basic) if no value is set.
+
+
+ Gets the base column name; otherwise, if no value is set. Can be set to either the column name or when overridden in a derived class.
+ The base column name; otherwise, a null reference ( in Visual Basic) if no value is set.
+
+
+ Gets the schema name associated with the data source; otherwise, if no value is set. Can be set to either the schema name or when overridden in a derived class.
+ The schema name associated with the data source; otherwise, a null reference ( in Visual Basic) if no value is set.
+
+
+ Gets the server name associated with the column; otherwise, if no value is set. Can be set to either the server name or when overridden in a derived class.
+ The server name associated with the column; otherwise, a null reference ( in Visual Basic) if no value is set.
+
+
+ Gets the table name in the schema; otherwise, if no value is set. Can be set to either the table name or when overridden in a derived class.
+ The table name in the schema; otherwise, a null reference ( in Visual Basic) if no value is set.
+
+
+ Gets the name of the column. Can be set to the column name when overridden in a derived class.
+ The name of the column.
+
+
+ Gets the column position (ordinal) in the datasource row; otherwise, if no value is set. Can be set to either an value to specify the column position or when overridden in a derived class.
+ An value for column ordinal; otherwise, a null reference ( in Visual Basic) if no value is set.
+
+
+ Gets the column size; otherwise, if no value is set. Can be set to either an value to specify the column size or when overridden in a derived class.
+ An value for column size; otherwise, a null reference ( in Visual Basic) if no value is set.
+
+
+ Gets the type of data stored in the column. Can be set to a object that represents the type of data in the column when overridden in a derived class.
+ A object that represents the type of data the column contains.
+
+
+ Gets the name of the data type; otherwise, if no value is set. Can be set to either the data type name or when overridden in a derived class.
+ The name of the data type; otherwise, a null reference ( in Visual Basic) if no value is set.
+
+
+ Gets a nullable boolean value that indicates whether this column is aliased, or returns if no value is set. Can be set to either or indicating whether this column is aliased, or ( in Visual Basic) when overridden in a derived class.
+ Returns if this column is aliased; otherwise, . If no value is set, returns a null reference ( in Visual Basic).
+
+
+ Gets a nullable boolean value that indicates whether values in this column are automatically incremented, or returns if no value is set. Can be set to either or indicating whether values in this column are automatically incremented, or ( in Visual Basic) when overridden in a derived class.
+ Returns if values in this column are automatically incremented; otherwise, . If no value is set, returns a null reference ( in Visual Basic).
+
+
+ Gets a nullable boolean value that indicates whether this column is an expression, or returns if no value is set. Can be set to either or indicating whether this column is an expression, or ( in Visual Basic) when overridden in a derived class.
+ Returns if this column is an expression; otherwise, . If no value is set, returns a null reference ( in Visual Basic).
+
+
+ Gets a nullable boolean value that indicates whether this column is hidden, or returns if no value is set. Can be set to either or indicating whether this column is hidden, or ( in Visual Basic) when overridden in a derived class.
+ Returns if this column is hidden; otherwise, . If no value is set, returns a null reference ( in Visual Basic).
+
+
+ Gets a nullable boolean value that indicates whether this column is an identity, or returns if no value is set. Can be set to either or indicating whether this column is an identity, or ( in Visual Basic) when overridden in a derived class.
+ Returns if this column is an identity; otherwise, . If no value is set, returns a null reference ( in Visual Basic).
+
+
+ Gets a nullable boolean value that indicates whether this column is a key, or returns if no value is set. Can be set to either or indicating whether this column is a key, or ( in Visual Basic) when overridden in a derived class.
+ Returns if this column is a key; otherwise, . If no value is set, returns a null reference ( in Visual Basic).
+
+
+ Gets a nullable boolean value that indicates whether this column contains long data, or returns if no value is set. Can be set to either or indicating whether this column contains long data, or ( in Visual Basic) when overridden in a derived class.
+ Returns if this column contains long data; otherwise, . If no value is set, returns a null reference ( in Visual Basic).
+
+
+ Gets a nullable boolean value that indicates whether this column is read-only, or returns if no value is set. Can be set to either or indicating whether this column is read-only, or ( in Visual Basic) when overridden in a derived class.
+ Returns if this column is read-only; otherwise, . If no value is set, returns a null reference ( in Visual Basic).
+
+
+ Gets a nullable boolean value that indicates whether a unique constraint applies to this column, or returns if no value is set. Can be set to either or indicating whether a unique constraint applies to this column, or ( in Visual Basic) when overridden in a derived class.
+ Returns if a unique constraint applies to this column; otherwise, . If no value is set, returns a null reference ( in Visual Basic).
+
+
+ Gets the object based on the column property name.
+ The column property name.
+ The object based on the column property name.
+
+
+ Gets the numeric precision of the column data; otherwise, if no value is set. Can be set to either an value to specify the numeric precision of the column data or when overridden in a derived class.
+ An value that specifies the precision of the column data, if the data is numeric; otherwise, a null reference ( in Visual Basic) if no value is set.
+
+
+ Gets a nullable value that either returns or the numeric scale of the column data. Can be set to either or an value for the numeric scale of the column data when overridden in a derived class.
+ A null reference ( in Visual Basic) if no value is set; otherwise, a value that specifies the scale of the column data, if the data is numeric.
+
+
+ Gets the assembly-qualified name of the object that represents the type of data in the column; otherwise, if no value is set. Can be set to either the assembly-qualified name or when overridden in a derived class.
+ The assembly-qualified name of the object that represents the type of data in the column; otherwise, a null reference ( in Visual Basic) if no value is set.
+
+
+ Represents an SQL statement or stored procedure to execute against a data source. Provides a base class for database-specific classes that represent commands. .
+
+
+ Constructs an instance of the object.
+
+
+ Attempts to cancel the execution of a .
+
+
+ Creates a new instance of a object.
+ A object.
+
+
+ Creates a new instance of a object.
+ A object.
+
+
+ Asynchronously diposes the command object.
+ A representing the asynchronous operation.
+
+
+ Executes the command against its connection, returning a which can be used to access the results.
+ An instance of , specifying options for command execution and data retrieval.
+ An error occurred while executing the command.
+ An invalid value.
+ A object.
+
+
+ Providers should implement this method to provide a non-default implementation for overloads.
+
+ The default implementation invokes the synchronous method and returns a completed task, blocking the calling thread. The default implementation will return a cancelled task if passed an already cancelled cancellation token. Exceptions thrown by ExecuteReader will be communicated via the returned Task Exception property.
+
+ This method accepts a cancellation token that can be used to request the operation to be cancelled early. Implementations may ignore this request.
+ An instance of , specifying options for command execution and data retrieval.
+ A token to cancel the asynchronous operation.
+ An error occurred while executing the command.
+ An invalid value.
+ A task representing the asynchronous operation.
+
+
+ Executes the command against its connection object, returning the number of rows affected.
+ The number of rows affected.
+
+
+ An asynchronous version of , which executes the command against its connection object, returning the number of rows affected.
+
+ Invokes with CancellationToken.None.
+ An error occurred while executing the command.
+ A task representing the asynchronous operation.
+
+
+ This is the asynchronous version of . Providers should override with an appropriate implementation. The cancellation token may optionally be ignored.
+
+ The default implementation invokes the synchronous method and returns a completed task, blocking the calling thread. The default implementation will return a cancelled task if passed an already cancelled cancellation token. Exceptions thrown by will be communicated via the returned Task Exception property.
+
+ Do not invoke other methods and properties of the object until the returned Task is complete.
+ A token to cancel the asynchronous operation.
+ An error occurred while executing the command.
+ A task representing the asynchronous operation.
+
+
+ Executes the command against its connection, returning a which can be used to access the results.
+ A object.
+
+
+ Executes the command against its connection, returning a which can be used to access the results.
+ An instance of , specifying options for command execution and data retrieval.
+ An object.
+
+
+ An asynchronous version of , which executes the command against its connection, returning a which can be used to access the results.
+
+ Invokes with CancellationToken.None.
+ An error occurred while executing the command.
+ An invalid value.
+ A task representing the asynchronous operation.
+
+
+ An asynchronous version of , which executes the command against its connection, returning a which can be used to access the results.
+
+ Invokes .
+ One of the enumeration values that specifies how the command should execute and how data should be retrieved.
+ An error occurred while executing the command.
+ An invalid value.
+ A task representing the asynchronous operation.
+
+
+ Invokes .
+ One of the enumeration values that specifies the command behavior.
+ A token to cancel the asynchronous operation.
+ An error occurred while executing the command.
+ An invalid value.
+ A task representing the asynchronous operation.
+
+
+ An asynchronous version of , which executes the command against its connection, returning a which can be used to access the results.
+
+ Invokes .
+ A token to cancel the asynchronous operation.
+ An error occurred while executing the command.
+ An invalid value.
+ A task representing the asynchronous operation.
+
+
+ Executes the command and returns the first column of the first row in the first returned result set. All other columns, rows and result sets are ignored.
+ The first column of the first row in the first result set.
+
+
+ An asynchronous version of , which executes the command and returns the first column of the first row in the first returned result set. All other columns, rows and result sets are ignored.
+
+ Invokes with CancellationToken.None.
+ An error occurred while executing the command.
+ A task representing the asynchronous operation.
+
+
+ This is the asynchronous version of . Providers should override with an appropriate implementation. The cancellation token may optionally be ignored.
+
+ The default implementation invokes the synchronous method and returns a completed task, blocking the calling thread. The default implementation will return a cancelled task if passed an already cancelled cancellation token. Exceptions thrown by ExecuteScalar will be communicated via the returned Task Exception property.
+
+ Do not invoke other methods and properties of the object until the returned Task is complete.
+ A token to cancel the asynchronous operation.
+ An error occurred while executing the command.
+ A task representing the asynchronous operation.
+
+
+ Creates a prepared (or compiled) version of the command on the data source.
+
+
+ Asynchronously creates a prepared (or compiled) version of the command on the data source.
+ An optional token to cancel the asynchronous operation. The default value is .
+ A representing the asynchronous operation.
+
+
+ Creates a new instance of an object.
+ An object.
+
+
+ Executes the against the and builds an .
+ An object.
+
+
+ Executes the against the , and builds an using one of the values.
+ One of the enumeration values that specifies the command behavior.
+ An object.
+
+
+ Gets or sets the text command to run against the data source.
+ The text command to execute. The default value is an empty string ("").
+
+
+ Gets or sets the wait time (in seconds) before terminating the attempt to execute the command and generating an error.
+ The time in seconds to wait for the command to execute.
+
+
+ Gets or sets how the property is interpreted.
+ One of the enumeration values that specifies how a command string is interpreted. The default is .
+
+
+ Gets or sets the used by this .
+ The connection to the data source.
+
+
+ Gets or sets the used by this .
+ The connection to the data source.
+
+
+ Gets the collection of objects.
+ The parameters of the SQL statement or stored procedure.
+
+
+ Gets or sets the within which this object executes.
+ The transaction within which a command object of a .NET data provider executes. The default value is a null reference ( in Visual Basic).
+
+
+ Gets or sets a value indicating whether the command object should be visible in a customized interface control.
+
+ , if the command object should be visible in a control; otherwise . The default is .
+
+
+ Gets the collection of objects. For more information on parameters, see Configuring Parameters and Parameter Data Types.
+ The parameters of the SQL statement or stored procedure.
+
+
+ Gets or sets the used by this instance of the .
+ The connection to the data source.
+
+
+ Gets the .
+ The parameters of the SQL statement or stored procedure.
+
+
+ Gets or sets the within which this object executes.
+ The transaction within which a object of a .NET Framework data provider executes. The default value is a null reference ( in Visual Basic).
+
+
+ Gets or sets the within which this object executes.
+ The transaction within which a command object of a .NET Framework data provider executes. The default value is a null reference ( in Visual Basic).
+
+
+ Gets or sets how command results are applied to the when used by the Update method of a .
+ One of the enumeration values that indicates how command results are applied. The default is unless the command is automatically generated. Then the default is .
+
+
+ Automatically generates single-table commands used to reconcile changes made to a with the associated database. This is an abstract class that can only be inherited.
+
+
+ Initializes a new instance of a class that inherits from the class.
+
+
+ Allows the provider implementation of the class to handle additional parameter properties.
+ A to which the additional modifications are applied.
+ The from the schema table provided by .
+ The type of command being generated; INSERT, UPDATE or DELETE.
+
+ if the parameter is part of the update or delete WHERE clause, if it is part of the insert or update values.
+
+
+ Releases the unmanaged resources used by the and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Gets the automatically generated object required to perform deletions at the data source.
+ The automatically generated object required to perform deletions.
+
+
+ Gets the automatically generated object required to perform deletions at the data source, optionally using columns for parameter names.
+ If , generate parameter names matching column names, if possible. If , generate @p1, @p2, and so on.
+ The automatically generated object required to perform deletions.
+
+
+ Gets the automatically generated object required to perform insertions at the data source.
+ The automatically generated object required to perform insertions.
+
+
+ Gets the automatically generated object required to perform insertions at the data source, optionally using columns for parameter names.
+ If , generate parameter names matching column names, if possible. If , generate @p1, @p2, and so on.
+ The automatically generated object required to perform insertions.
+
+
+ Returns the name of the specified parameter in the format of @p#. Use when building a custom command builder.
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended as part of the parameter name.
+
+
+ Returns the full parameter name, given the partial parameter name.
+ The partial name of the parameter.
+ The full parameter name corresponding to the partial parameter name requested.
+
+
+ Returns the placeholder for the parameter in the associated SQL statement.
+ The number to be included as part of the parameter's name.
+ The name of the parameter with the specified number appended.
+
+
+ Returns the schema table for the .
+ The for which to retrieve the corresponding schema table.
+ A that represents the schema for the specific .
+
+
+ Gets the automatically generated object required to perform updates at the data source.
+ The automatically generated object required to perform updates.
+
+
+ Gets the automatically generated object required to perform updates at the data source, optionally using columns for parameter names.
+ If , generate parameter names matching column names, if possible. If , generate @p1, @p2, and so on.
+ The automatically generated object required to perform updates.
+
+
+ Resets the , , , and properties on the .
+ The to be used by the command builder for the corresponding insert, update, or delete command.
+ A instance to use for each insert, update, or delete operation. Passing a null value allows the method to create a object based on the Select command associated with the .
+
+
+ Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier, including properly escaping any embedded quotes in the identifier.
+ The original unquoted identifier.
+ The quoted version of the identifier. Embedded quotes within the identifier are properly escaped.
+
+
+ Clears the commands associated with this .
+
+
+ Adds an event handler for the event.
+ A instance containing information about the event.
+
+
+ Registers the to handle the event for a .
+ The to be used for the update.
+
+
+ Given a quoted identifier, returns the correct unquoted form of that identifier, including properly un-escaping any embedded quotes in the identifier.
+ The identifier that will have its embedded quotes removed.
+ The unquoted identifier, with embedded quotes properly un-escaped.
+
+
+ Gets or sets the for an instance of the class.
+ A object.
+
+
+ Gets or sets a string used as the catalog separator for an instance of the class.
+ A string indicating the catalog separator for use with an instance of the class.
+
+
+ Specifies which is to be used by the .
+ Returns one of the values describing the behavior of this .
+
+
+ Gets or sets a object for which Transact-SQL statements are automatically generated.
+ A object.
+
+
+ Gets or sets the beginning character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens.
+ This property cannot be changed after an insert, update, or delete command has been generated.
+ The beginning character or characters to use. The default is an empty string.
+
+
+ Gets or sets the ending character or characters to use when specifying database objects (for example, tables or columns) whose names contain characters such as spaces or reserved tokens.
+ The ending character or characters to use. The default is an empty string.
+
+
+ Gets or sets the character to be used for the separator between the schema identifier and any other identifiers.
+ The character to be used as the schema separator.
+
+
+ Specifies whether all column values in an update statement are included or only changed ones.
+
+ if the UPDATE statement generated by the includes all columns; if it includes only changed columns.
+
+
+ Defines the core behavior of database connections and provides a base class for database-specific connections.
+
+
+ Occurs when the state of the connection changes.
+
+
+ Initializes a new instance of the class.
+
+
+ When overridden in a derived class, starts a database transaction.
+ One of the enumeration values that specifies the isolation level for the transaction to use.
+ An object representing the new transaction.
+
+
+ Asynchronously starts a database transaction.
+ One of the enumeration values that specifies the isolation level for the transaction to use.
+ A token to cancel the asynchronous operation.
+ A task whose property is an object representing the new transaction.
+
+
+ Starts a database transaction.
+ An object representing the new transaction.
+
+
+ Starts a database transaction with the specified isolation level.
+ One of the enumeration values that specifies the isolation level for the transaction to use.
+ An object representing the new transaction.
+
+
+ Asynchronously begins a database transaction.
+ One of the enumeration values that specifies the isolation level for the transaction to use.
+ An optional token to cancel the asynchronous operation. The default value is .
+ A task whose property is an object representing the new transaction.
+
+
+ Asynchronously begins a database transaction.
+ An optional token to cancel the asynchronous operation. The default value is .
+ A task whose property is an object representing the new transaction.
+
+
+ When overridden in a derived class, changes the current database for an open connection.
+ The name of the database for the connection to use.
+
+
+ Asynchronously changes the current database for an open connection.
+ The name of the database for the connection to use.
+ An optional token to cancel the asynchronous operation. The default value is .
+ A task representing the asynchronous operation.
+
+
+ When overridden in a derived class, closes the connection to the database.
+
+
+ Asynchronously closes the connection to the database.
+ A representing the asynchronous operation.
+
+
+ Returns a new instance of the provider's class that implements the class.
+ A new instance of .
+
+
+ Creates and returns a object associated with the current connection.
+ A object.
+
+
+ When overridden in a derived class, returns a new instance of the provider's class that implements the class.
+ A new instance of .
+
+
+ When overridden in a derived class, creates and returns a object associated with the current connection.
+ A object.
+
+
+ Asynchronously diposes the connection object.
+ A representing the asynchronous operation.
+
+
+ Enlists in the specified transaction.
+ A reference to an existing in which to enlist.
+
+
+ Returns schema information for the data source of this .
+ A that contains schema information.
+
+
+ Returns schema information for the data source of this using the specified string for the schema name.
+ Specifies the name of the schema to return.
+
+ is specified as null.
+ A that contains schema information.
+
+
+ Returns schema information for the data source of this using the specified string for the schema name and the specified string array for the restriction values.
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+
+ is specified as null.
+ A that contains schema information.
+
+
+ This is the asynchronous version of .
+ Providers should override with an appropriate implementation.
+ The can optionally be honored.
+ The default implementation invokes the synchronous call and returns a completed task.
+ The default implementation will return a cancelled task if passed an already cancelled .
+ Exceptions thrown by will be communicated via the returned Task Exception property.
+ Specifies the name of the schema to return.
+ Specifies a set of restriction values for the requested schema.
+ The cancellation instruction.
+ A task representing the asynchronous operation.
+
+
+ This is the asynchronous version of .
+ Providers should override with an appropriate implementation.
+ The can optionally be honored.
+ The default implementation invokes the synchronous call and returns a completed task.
+ The default implementation will return a cancelled task if passed an already cancelled .
+ Exceptions thrown by will be communicated via the returned Task Exception property.
+ Specifies the name of the schema to return.
+ The cancellation instruction.
+ A task representing the asynchronous operation.
+
+
+ This is an asynchronous version of .
+ Providers should override with an appropriate implementation.
+ The can optionally be honored.
+ The default implementation invokes the synchronous call and returns a completed task.
+ The default implementation will return a cancelled task if passed an already cancelled .
+ Exceptions thrown by will be communicated via the returned Task Exception property.
+ The cancellation instruction.
+ A task representing the asynchronous operation.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ When overridden in a derived class, opens a database connection with the settings specified by the .
+
+
+ An asynchronous version of , which opens a database connection with the settings specified by the . This method invokes the virtual method with CancellationToken.None.
+ A task representing the asynchronous operation.
+
+
+ This is the asynchronous version of . Providers should override with an appropriate implementation. The cancellation token can optionally be honored.
+
+ The default implementation invokes the synchronous call and returns a completed task. The default implementation will return a cancelled task if passed an already cancelled cancellationToken. Exceptions thrown by Open will be communicated via the returned Task Exception property.
+
+ Do not invoke other methods and properties of the object until the returned Task is complete.
+ The cancellation instruction.
+ A task representing the asynchronous operation.
+
+
+ Begins a database transaction.
+ An object that represents the new transaction.
+
+
+ Begins a database transaction with the specified isolation level.
+ One of the enumeration values that specifies the isolation level for the transaction to use.
+ An object that represents the new transaction.
+
+
+ Creates and returns a object that is associated with the current connection.
+ A object that is associated with the connection.
+
+
+ Gets a value that indicates whether this instance supports the class.
+
+ if this instance supports the class; otherwise, . The default is .
+
+
+ When overridden in a derived class, gets or sets the string used to open the connection.
+ The connection string used to establish the initial connection. The exact contents of the connection string depend on the specific data source for this connection. The default value is an empty string.
+
+
+ Gets the time to wait (in seconds) while establishing a connection before terminating the attempt and generating an error.
+ The time (in seconds) to wait for a connection to open. The default value is determined by the specific type of connection that you are using.
+
+
+ When overridden in a derived class, gets the name of the current database after a connection is opened, or the database name specified in the connection string before the connection is opened.
+ The name of the current database or the name of the database to be used after a connection is opened. The default value is an empty string.
+
+
+ When overridden in a derived class, gets the name of the database server to which to connect.
+ The name of the database server to which to connect. The default value is an empty string.
+
+
+ Gets the for this .
+ A set of methods for creating instances of a provider's implementation of the data source classes.
+
+
+ When overridden in a derived class, gets a string that represents the version of the server to which the object is connected.
+
+ was called while the returned Task was not completed and the connection was not opened after a call to .
+ The version of the database. The format of the string returned depends on the specific type of connection you are using.
+
+
+ Gets a string that describes the state of the connection.
+ The state of the connection. The format of the string returned depends on the specific type of connection you are using.
+
+
+ Provides a base class for strongly typed connection string builders.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class, optionally using ODBC rules for quoting values.
+
+ to use {} to delimit fields; to use quotation marks.
+
+
+ Adds an entry with the specified key and value into the .
+ The key to add to the .
+ The value for the specified key.
+
+ is a null reference ( in Visual Basic).
+ The is read-only.
+
+ -or-
+
+ The has a fixed size.
+
+
+ Provides an efficient and safe way to append a key and value to an existing object.
+ The to which to add the key/value pair.
+ The key to be added.
+ The value for the supplied key.
+
+
+ Provides an efficient and safe way to append a key and value to an existing object.
+ The to which to add the key/value pair.
+ The key to be added.
+ The value for the supplied key.
+
+ to use {} to delimit fields, to use quotation marks.
+
+
+ Clears the contents of the instance.
+ The is read-only.
+
+
+ Clears the collection of objects on the associated .
+
+
+ Determines whether the contains a specific key.
+ The key to locate in the .
+
+ is a null reference ( in Visual Basic).
+
+ if the contains an entry with the specified key; otherwise .
+
+
+ Compares the connection information in this object with the connection information in the supplied object.
+ The to be compared with this object.
+
+ if the connection information in both of the objects causes an equivalent connection string; otherwise .
+
+
+ Fills a supplied with information about all the properties of this .
+ The to be filled with information about this .
+
+
+ Removes the entry with the specified key from the instance.
+ The key of the key/value pair to be removed from the connection string in this .
+
+ is null ( in Visual Basic)
+ The is read-only, or the has a fixed size.
+
+ if the key existed within the connection string and was removed; if the key did not exist.
+
+
+ Indicates whether the specified key exists in this instance.
+ The key to locate in the .
+
+ if the contains an entry with the specified key; otherwise .
+
+
+ Copies the elements of the to an , starting at a particular index.
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ Adds an element with the provided key and value to the object.
+ The to use as the key of the element to add.
+ The to use as the value of the element to add.
+
+
+ Determines whether the object contains an element with the specified key.
+ The key to locate in the object.
+
+ if the contains an element with the key; otherwise, .
+
+
+ Returns an object for the object.
+ An object for the object.
+
+
+ Removes the element with the specified key from the object.
+ The key of the element to remove.
+
+
+ Returns an enumerator that iterates through a collection.
+ An object that can be used to iterate through the collection.
+
+
+ Returns a collection of custom attributes for this instance of a component.
+ An containing the attributes for this object.
+
+
+ Returns the class name of this instance of a component.
+ The class name of the object, or if the class does not have a name.
+
+
+ Returns the name of this instance of a component.
+ The name of the object, or if the object does not have a name.
+
+
+ Returns a type converter for this instance of a component.
+ A that is the converter for this object, or if there is no for this object.
+
+
+ Returns the default event for this instance of a component.
+ An that represents the default event for this object, or if this object does not have events.
+
+
+ Returns the default property for this instance of a component.
+ A that represents the default property for this object, or if this object does not have properties.
+
+
+ Returns an editor of the specified type for this instance of a component.
+ A that represents the editor for this object.
+ An of the specified type that is the editor for this object, or if the editor cannot be found.
+
+
+ Returns the events for this instance of a component.
+ An that represents the events for this component instance.
+
+
+ Returns the events for this instance of a component using the specified attribute array as a filter.
+ An array of type that is used as a filter.
+ An that represents the filtered events for this component instance.
+
+
+ Returns the properties for this instance of a component.
+ A that represents the properties for this component instance.
+
+
+ Returns the properties for this instance of a component using the attribute array as a filter.
+ An array of type that is used as a filter.
+ A that represents the filtered properties for this component instance.
+
+
+ Returns an object that contains the property described by the specified property descriptor.
+ A that represents the property whose owner is to be found.
+ An that represents the owner of the specified property.
+
+
+ Returns the connection string associated with this .
+ The current property.
+
+
+ Retrieves a value corresponding to the supplied key from this .
+ The key of the item to retrieve.
+ The value corresponding to the .
+
+ contains a null value ( in Visual Basic).
+
+ if was found within the connection string, otherwise.
+
+
+ Gets or sets a value that indicates whether the property is visible in Visual Studio designers.
+
+ if the connection string is visible within designers; otherwise. The default is .
+
+
+ Gets or sets the connection string associated with the .
+ An invalid connection string argument has been supplied.
+ The current connection string, created from the key/value pairs that are contained within the . The default value is an empty string.
+
+
+ Gets the current number of keys that are contained within the property.
+ The number of keys that are contained within the connection string maintained by the instance.
+
+
+ Gets a value that indicates whether the has a fixed size.
+
+ if the has a fixed size; otherwise .
+
+
+ Gets a value that indicates whether the is read-only.
+
+ if the is read-only; otherwise . The default is .
+
+
+ Gets or sets the value associated with the specified key.
+ The key of the item to get or set.
+
+ is a null reference ( in Visual Basic).
+ The property is set, and the is read-only.
+
+ -or-
+
+ The property is set, does not exist in the collection, and the has a fixed size.
+ The value associated with the specified key. If the specified key is not found, trying to get it returns a null reference ( in Visual Basic), and trying to set it creates a new element using the specified key.
+
+ Passing a null ( in Visual Basic) key throws an . Assigning a null value removes the key/value pair.
+
+
+ Gets an that contains the keys in the .
+ An that contains the keys in the .
+
+
+ Gets a value indicating whether access to the is synchronized (thread safe).
+
+ if access to the is synchronized (thread safe); otherwise, .
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ Gets or sets the element with the specified key.
+ The key of the element to get or set.
+ The element with the specified key.
+
+
+ Gets an that contains the values in the .
+ An that contains the values in the .
+
+
+ Aids implementation of the interface. Inheritors of implement a set of functions to provide strong typing, but inherit most of the functionality needed to fully implement a DataAdapter.
+
+
+ The default name used by the object for table mappings.
+
+
+ Initializes a new instance of a DataAdapter class.
+
+
+ Initializes a new instance of the class from an existing object of the same type.
+ A object used to create the new .
+
+
+ Adds a to the current batch.
+ The to add to the batch.
+ The adapter does not support batches.
+ The number of commands in the batch before adding the .
+
+
+ Removes all objects from the batch.
+ The adapter does not support batches.
+
+
+ Initializes a new instance of the class.
+ The used to update the data source.
+ The executed during the .
+ Whether the command is an UPDATE, INSERT, DELETE, or SELECT statement.
+ A object.
+ A new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The that updates the data source.
+ The to execute during the .
+ Whether the command is an UPDATE, INSERT, DELETE, or SELECT statement.
+ A object.
+ A new instance of the class.
+
+
+ Releases the unmanaged resources used by the and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Executes the current batch.
+ The return value from the last command in the batch.
+
+
+ Adds or refreshes rows in the .
+ A to fill with records and, if necessary, schema.
+ The number of rows successfully added to or refreshed in the . This does not include rows affected by statements that do not return rows.
+
+
+ Adds or refreshes rows in a specified range in the to match those in the data source using the and names.
+ A to fill with records and, if necessary, schema.
+ The zero-based record number to start with.
+ The maximum number of records to retrieve. Specify 0 to retrieve all records after the start record.
+ The name of the source table to use for table mapping.
+ The is invalid.
+ The source table is invalid.
+
+ -or-
+
+ The connection is invalid.
+ The connection could not be found.
+ The parameter is less than 0.
+
+ -or-
+
+ The parameter is less than 0.
+ The number of rows successfully added to or refreshed in the . This does not include rows affected by statements that do not return rows.
+
+
+ Adds or refreshes rows in a specified range in the to match those in the data source using the and source table names, command string, and command behavior.
+ A to fill with records and, if necessary, schema.
+ The zero-based record number to start with.
+ The maximum number of records to retrieve. Specify 0 to retrieve all records after the start record.
+ The name of the source table to use for table mapping.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The source table is invalid.
+ The parameter is less than 0.
+
+ -or-
+
+ The parameter is less than 0.
+ The number of rows successfully added to or refreshed in the . This does not include rows affected by statements that do not return rows.
+
+
+ Adds or refreshes rows in the to match those in the data source using the and names.
+ A to fill with records and, if necessary, schema.
+ The name of the source table to use for table mapping.
+ The source table is invalid.
+ The number of rows successfully added to or refreshed in the . This does not include rows affected by statements that do not return rows.
+
+
+ Adds or refreshes rows in a specified range in the to match those in the data source using the name.
+ The name of the to use for table mapping.
+ The source table is invalid.
+ The number of rows successfully added to or refreshed in the . This does not include rows affected by statements that do not return rows.
+
+
+ Adds or refreshes rows in a to match those in the data source using the specified , and .
+ A to fill with records and, if necessary, schema.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ The number of rows successfully added to or refreshed in the . This does not include rows affected by statements that do not return rows.
+
+
+ Adds or refreshes rows in a specified range in the to match those in the data source using the and names.
+ The objects to fill from the data source.
+ The zero-based record number to start with.
+ The maximum number of records to retrieve. Specify 0 to retrieve all records after the start record.
+ The executed to fill the objects.
+ One of the values.
+ The is invalid.
+ The source table is invalid.
+
+ -or-
+
+ The connection is invalid.
+ The connection could not be found.
+ The parameter is less than 0.
+
+ -or-
+
+ The parameter is less than 0.
+ The number of rows added to or refreshed in the data tables.
+
+
+ Adds or refreshes rows in one or more objects to match those in the data source starting at the specified record and retrieving up to the specified maximum number of records.
+ The zero-based record number to start with.
+ The maximum number of records to retrieve. Specify 0 to retrieve all records after the start record.
+ The objects to fill from the data source.
+
+ is or an empty array.
+
+ is less than 0.
+
+-or-
+
+ is less than 0.
+ The number of rows successfully added to or refreshed in the objects. This value does not include rows affected by statements that do not return rows.
+
+
+ Adds a named "Table" to the specified and configures the schema to match that in the data source based on the specified .
+ A to insert the schema in.
+ One of the values that specify how to insert the schema.
+ A reference to a collection of objects that were added to the .
+
+
+ Adds a to the specified and configures the schema to match that in the data source based on the specified .
+ The to be filled with the schema from the data source.
+ One of the values.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ The name of the source table to use for table mapping.
+ One of the values.
+ An array of objects that contain schema information returned from the data source.
+
+
+ Adds a to the specified and configures the schema to match that in the data source based upon the specified and .
+ A to insert the schema in.
+ One of the values that specify how to insert the schema.
+ The name of the source table to use for table mapping.
+ A source table from which to get the schema could not be found.
+ A reference to a collection of objects that were added to the .
+
+
+ Configures the schema of the specified based on the specified .
+ The to be filled with the schema from the data source.
+ One of the values.
+ A that contains schema information returned from the data source.
+
+
+ Configures the schema of the specified based on the specified , command string, and values.
+ The to be filled with the schema from the data source.
+ One of the values.
+ The SQL SELECT statement used to retrieve rows from the data source.
+ One of the values.
+ A of object that contains schema information returned from the data source.
+
+
+ Returns a from one of the commands in the current batch.
+ The index of the command to retrieve the parameter from.
+ The index of the parameter within the command.
+ The adapter does not support batches.
+ The specified.
+
+
+ Returns information about an individual update attempt within a larger batched update.
+ The zero-based column ordinal of the individual command within the batch.
+ The number of rows affected in the data store by the specified command within the batch.
+ An thrown during execution of the specified command. Returns ( in Visual Basic) if no exception is thrown.
+ Information about an individual update attempt within a larger batched update.
+
+
+ Gets the parameters set by the user when executing an SQL SELECT statement.
+ An array of objects that contains the parameters set by the user.
+
+
+ Initializes batching for the .
+ The adapter does not support batches.
+
+
+ Raises the event of a .NET data provider.
+ A that contains the event data.
+
+
+ Raises the event of a .NET data provider.
+ An that contains the event data.
+
+
+ Creates a new object that is a copy of the current instance.
+ A new object that is a copy of this instance.
+
+
+ Ends batching for the .
+ The adapter does not support batches.
+
+
+ Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified array in the .
+ An array of objects used to update the data source.
+ The is invalid.
+ The source table is invalid.
+ No exists to update.
+
+ -or-
+
+ No exists to update.
+
+ -or-
+
+ No exists to use as a source.
+ An attempt to execute an INSERT, UPDATE, or DELETE statement resulted in zero records affected.
+ The number of rows successfully updated from the .
+
+
+ Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified array of objects.
+ An array of objects used to update the data source.
+ The collection to use.
+ The is invalid.
+ The source table is invalid.
+ No exists to update.
+
+ -or-
+
+ No exists to update.
+
+ -or-
+
+ No exists to use as a source.
+ An attempt to execute an INSERT, UPDATE, or DELETE statement resulted in zero records affected.
+ The number of rows successfully updated from the array of objects.
+
+
+ Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified .
+ The used to update the data source.
+ The source table is invalid.
+ An attempt to execute an INSERT, UPDATE, or DELETE statement resulted in zero records affected.
+ The number of rows successfully updated from the .
+
+
+ Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the with the specified name.
+ The to use to update the data source.
+ The name of the source table to use for table mapping.
+ The is invalid.
+ The source table is invalid.
+ An attempt to execute an INSERT, UPDATE, or DELETE statement resulted in zero records affected.
+ The number of rows successfully updated from the .
+
+
+ Updates the values in the database by executing the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified .
+ The used to update the data source.
+ The is invalid.
+ The source table is invalid.
+ No exists to update.
+
+ -or-
+
+ No exists to update.
+
+ -or-
+
+ No exists to use as a source.
+ An attempt to execute an INSERT, UPDATE, or DELETE statement resulted in zero records affected.
+ The number of rows successfully updated from the .
+
+
+ Gets or sets a command for deleting records from the data set.
+ An used during to delete records in the data source for deleted rows in the data set.
+
+
+ Gets or sets the behavior of the command used to fill the data adapter.
+ The of the command used to fill the data adapter.
+
+
+ Gets or sets a command used to insert new records into the data source.
+ A used during to insert records in the data source for new rows in the data set.
+
+
+ Gets or sets a command used to select records in the data source.
+ A that is used during to select records from data source for placement in the data set.
+
+
+ Gets or sets an SQL statement for deleting records from the data set.
+ An used during to delete records in the data source for deleted rows in the data set.
+
+
+ Gets or sets an SQL statement used to insert new records into the data source.
+ An used during to insert records in the data source for new rows in the data set.
+
+
+ Gets or sets an SQL statement used to select records in the data source.
+ An that is used during to select records from data source for placement in the data set.
+
+
+ Gets or sets an SQL statement used to update records in the data source.
+ An used during to update records in the data source for modified rows in the data set.
+
+
+ Gets or sets a value that enables or disables batch processing support, and specifies the number of commands that can be executed in a batch.
+ The number of rows to process per batch.
+
+ Value is Effect- 0 There is no limit on the batch size.
- 1 Disables batch updating.
- > 1 Changes are sent using batches of operations at a time.
+
+ When setting this to a value other than 1, all the commands associated with the must have their property set to None or OutputParameters. An exception will be thrown otherwise.
+
+
+ Gets or sets a command used to update records in the data source.
+ A used during to update records in the data source for modified rows in the data set.
+
+
+ Reads a forward-only stream of rows from a data source.
+
+
+ Initializes a new instance of the class.
+
+
+ Closes the object.
+
+
+ Asynchronously closes the object.
+ A task representing the asynchronous operation.
+
+
+ Releases all resources used by the current instance of the class.
+
+
+ Releases the unmanaged resources used by the and optionally releases the managed resources.
+
+ to release managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Asynchronously releases all resources used by the current instance of the class.
+ A representing the asynchronous operation.
+
+
+ When overridden in a derived class, gets the value of the specified column as a Boolean.
+ The zero-based column ordinal.
+ The column index is out of range.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ When overridden in a derived class, gets the value of the specified column as a byte.
+ The zero-based column ordinal.
+ The column index is out of range.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ When overridden in a derived class, reads a specified number of bytes from the specified column starting at a specified index and writes them to a buffer starting at a specified position in the buffer.
+ The zero-based column ordinal.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of bytes to read.
+ The column index is out of range.
+ The specified cast is not valid.
+ The actual number of bytes read.
+
+
+ When overridden in a derived class, gets the value of the specified column as a single character.
+ The zero-based column ordinal.
+ The column index is out of range.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ When overridden in a derived class, reads a specified number of characters from a specified column starting at a specified index, and writes them to a buffer starting at a specified position.
+ The zero-based column ordinal.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+ The actual number of characters read.
+
+
+ This is the asynchronous version of .
+ Providers should override with an appropriate implementation.
+ The can optionally be honored.
+ The default implementation invokes the synchronous call and returns a completed task.
+ The default implementation will return a cancelled task if passed an already cancelled .
+ Exceptions thrown by will be communicated via the returned Task Exception property.
+ The cancellation instruction.
+ A task representing the asynchronous operation.
+
+
+ Returns a nested data reader for the requested column.
+ The zero-based column ordinal.
+ The column index is out of range.
+ A data reader.
+
+
+ When overridden in a derived class, gets name of the data type of the specified column.
+ The zero-based column ordinal.
+ The column index is out of range.
+ The name of the data type.
+
+
+ When overridden in a derived class, gets the value of the specified column as a object.
+ The zero-based column ordinal.
+ The column index is out of range.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ Returns a object for the requested column ordinal that can be overridden with a provider-specific implementation.
+ The zero-based column ordinal.
+ A object.
+
+
+ When overridden in a derived class, gets the value of the specified column as a .
+ The zero-based column ordinal.
+ The column index is out of range.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ When overridden in a derived class, gets the value of the specified column as a double-precision floating point number.
+ The zero-based column ordinal.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ When overridden in a derived class, returns an enumerator that can be used to iterate through the rows in the data reader.
+ An enumerator that can be used to iterate through the rows in the data reader.
+
+
+ When overridden in a derived class, gets the data type of the specified column.
+ The zero-based column ordinal.
+ The column index is out of range.
+ The specified cast is not valid.
+ The data type of the specified column.
+
+
+ Gets the value of the specified column as the requested type.
+ The zero-based column ordinal.
+ The type of the value to be returned.
+ The connection was dropped or closed during data retrieval.
+
+-or-
+
+ The data reader was closed during data retrieval.
+
+-or-
+
+ There is no data ready to be read (for example, the first hasn't been called, or it returned ).
+
+-or-
+
+ The reader tried to read a previously-read column in sequential mode.
+
+-or-
+
+ There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream.
+ The column index is out of range.
+ The value returned by the database doesn't match or cannot be cast to .
+ The value of the specified column.
+
+
+ Asynchronously gets the value of the specified column as the requested type.
+ The zero-based column ordinal.
+ The type of the value to be returned.
+ The connection was dropped or closed during data retrieval.
+
+-or-
+
+ The data reader was closed during the data retrieval.
+
+-or-
+
+ There is no data ready to be read (for example, the first hasn't been called, or it returned ).
+
+-or-
+
+ Tried to read a previously-read column in sequential mode.
+
+-or-
+
+ There was an asynchronous operation in progress. This applies to all Get_*_ methods when running in sequential mode, as they could be called while reading a stream.
+ The column index is out of range.
+ The value returned by the database doesn't match or cannot be cast to .
+ A task whose contains the value of the specified column.
+
+
+ Asynchronously gets the value of the specified column as the requested type.
+ The zero-based column ordinal.
+ A token to cancel the asynchronous operation.
+ The type of the value to be returned.
+ The connection was dropped or closed during data retrieval.
+
+-or-
+
+ The data reader was closed during the data retrieval.
+
+-or-
+
+ There is no data ready to be read (for example, the first hasn't been called, or it returned ).
+
+-or-
+
+ Tried to read a previously-read column in sequential mode.
+
+-or-
+
+ There was an asynchronous operation in progress. This applies to all Get_*_ methods when running in sequential mode, as they could be called while reading a stream.
+ The column index is out of range.
+ The value returned by the database doesn't match or cannot be cast to .
+ A task whose contains the value of the specified column.
+
+
+ When overridden in a derived class, gets the value of the specified column as a single-precision floating point number.
+ The zero-based column ordinal.
+ The column index is out of range.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ When overridden in a derived class, gets the value of the specified column as a globally unique identifier (GUID).
+ The zero-based column ordinal.
+ The column index is out of range.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ When overridden in a derived class, gets the value of the specified column as a 16-bit signed integer.
+ The zero-based column ordinal.
+ The column index is out of range.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ When overridden in a derived class, gets the value of the specified column as a 32-bit signed integer.
+ The zero-based column ordinal.
+ The column index is out of range.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ When overridden in a derived class, gets the value of the specified column as a 64-bit signed integer.
+ The zero-based column ordinal.
+ The column index is out of range.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ When overridden in a derived class, gets the name of the column, given the zero-based column ordinal.
+ The zero-based column ordinal.
+ The name of the specified column.
+
+
+ When overridden in a derived class, gets the column ordinal given the name of the column.
+ The name of the column.
+ The name specified is not a valid column name.
+ The zero-based column ordinal.
+
+
+ Gets the provider-specific type of the specified column.
+ The zero-based column ordinal.
+ The column index is out of range.
+ A provider-specific .NET type.
+
+
+ Gets the value of the specified column as an instance of a provider-specific type.
+ The zero-based column ordinal.
+ The value of the specified column.
+
+
+ Gets all provider-specific attribute columns in the collection for the current row.
+ An array of into which to copy the attribute columns.
+ The number of instances of elements in the array.
+
+
+ Returns a that describes the column metadata of the .
+Returns if the executed command returned no resultset, or after returns .
+ The is closed.
+ The column index is out of range.
+ .NET Core and .NET 5+ only: In all cases.
+ A that describes the column metadata.
+
+
+ This is the asynchronous version of .
+ Providers should override with an appropriate implementation.
+ The can optionally be honored.
+ The default implementation invokes the synchronous call and returns a completed task.
+ The default implementation will return a cancelled task if passed an already cancelled .
+ Exceptions thrown by will be communicated via the returned Task Exception property.
+ The cancellation instruction.
+ A task representing the asynchronous operation.
+
+
+ Gets a stream to retrieve data from the specified column.
+ The zero-based column ordinal.
+ The connection was dropped or closed during the data retrieval.
+
+-or-
+
+ The data reader is closed during the data retrieval.
+
+-or-
+
+ There is no data ready to be read (for example, the first hasn't been called, or returned false).
+
+-or-
+
+ The data reader tried to read a previously-read column in sequential mode.
+
+-or-
+
+ There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream.
+ The column index is out of range.
+ The specified column isn't a binary type that supports reading with a .
+ A stream.
+
+
+ When overridden in a derived class, gets the value of the specified column as an instance of .
+ The zero-based column ordinal.
+ The column index is out of range.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ Gets a text reader to retrieve data from the column.
+ The zero-based column ordinal.
+ The connection was dropped or closed during the data retrieval.
+
+-or-
+
+ The data reader is closed during the data retrieval.
+
+-or-
+
+ There is no data ready to be read (for example, the first hasn't been called, or returned false).
+
+-or-
+
+ The data reader tried to read a previously-read column in sequential mode.
+
+-or-
+
+ There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream.
+ The column index is out of range.
+ The specified column isn't a text type that supports reading with a .
+ A text reader.
+
+
+ When overridden in a derived class, gets the value of the specified column as an instance of .
+ The zero-based column ordinal.
+ The column index is out of range.
+ The value of the specified column.
+
+
+ When overridden in a derived class, populates an array of objects with the column values of the current row.
+ An array of into which to copy the attribute columns.
+ The number of instances of in the array.
+
+
+ When overridden in a derived class, gets a value that indicates whether the column contains nonexistent or missing values.
+ The zero-based column ordinal.
+ The column index is out of range.
+
+ if the specified column is equivalent to ; otherwise, .
+
+
+ Asynchronously gets a value that indicates whether the column contains non-existent or missing values.
+ The zero-based column to be retrieved.
+ The connection was dropped or closed during the data retrieval.
+
+-or-
+
+ The data reader is closed during the data retrieval.
+
+-or-
+
+ There is no data ready to be read (for example, the first hasn't been called, or returned false).
+
+-or-
+
+ Trying to read a previously read column in sequential mode.
+
+-or-
+
+ There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream.
+ The column index is out of range.
+ A whose property is if the specified column value is equivalent to or if it is not.
+
+
+ Asynchronously gets a value that indicates whether the column contains non-existent or missing values.
+ The zero-based column to be retrieved.
+ A token to cancel the asynchronous operation.
+ The connection was dropped or closed during the data retrieval.
+
+-or-
+
+ The data reader is closed during the data retrieval.
+
+-or-
+
+ There is no data ready to be read (for example, the first hasn't been called, or returned false).
+
+-or-
+
+ Trying to read a previously read column in sequential mode.
+
+-or-
+
+ There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream.
+ The column index is out of range.
+ A whose property is if the specified column value is equivalent to or if it is not.
+
+
+ When overridden in a derived class, advances the reader to the next result when reading the results of a batch of statements.
+
+ if there are more result sets; otherwise, .
+
+
+ Asynchronously advances the reader to the next result when reading the results of a batch of statements.
+ An error occurred while executing the command text.
+ A task whose property is if there are more result sets or if there aren't.
+
+
+ Asynchronously advances the reader to the next result when reading the results of a batch of statements.
+ The cancellation instruction.
+ An error occurred while executing the command text.
+ A whose property is if there are more result sets or if there aren't.
+
+
+ When overridden in a derived class, advances the reader to the next record in a result set.
+
+ if there are more rows; otherwise, .
+
+
+ Asynchronously advances the reader to the next record in a result set.
+ An error occurred while executing the command text.
+ A whose property is if there are more rows or if there aren't.
+
+
+ Asynchronously advances the reader to the next record in a result set.
+ The cancellation instruction.
+ An error occurred while executing the command text.
+ A whose property is if there are more rows or if there aren't.
+
+
+ For a description of this member, see .
+ The zero-based column ordinal.
+ An instance of to be used when the field points to more remote structured data.
+
+
+ Gets a value indicating the depth of nesting for the current row.
+ The depth of nesting for the current row.
+
+
+ When overridden in a derived class, gets the number of columns in the current row.
+ There is no current connection to an instance of SQL Server.
+ The number of columns in the current row.
+
+
+ When overridden in a derived class, gets a value that indicates whether this contains one or more rows.
+
+ if the contains one or more rows; otherwise, .
+
+
+ When overridden in a derived class, gets a value indicating whether the is closed.
+ The is closed.
+
+ if the is closed; otherwise, .
+
+
+ When overridden in a derived class, gets the value of the specified column as an instance of .
+ The zero-based column ordinal.
+ The column index is out of range.
+ The value of the specified column.
+
+
+ When overridden in a derived class, gets the value of the specified column as an instance of .
+ The name of the column.
+ No column with the specified name was found.
+ The value of the specified column.
+
+
+ When overridden in a derived class, gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+ The number of rows changed, inserted, or deleted. -1 for SELECT statements; 0 if no rows were affected or the statement failed.
+
+
+ Gets the number of fields in the that are not hidden.
+ The number of fields that are not hidden.
+
+
+ This class contains column schema extension methods for .
+
+
+ Gets a value that indicates whether a can get a column schema.
+ The to be checked for column schema support.
+
+ if the can get a column schema; otherwise, .
+
+
+ Gets the column schema ( collection) for a .
+ The to return the column schema.
+ The column schema ( collection) for a .
+
+
+ Implements and , and provides data binding support for .
+
+
+ Initializes a new instance of the class.
+
+
+ Returns the value of the specified column as a Boolean.
+ The column ordinal.
+
+ if the Boolean is ; otherwise .
+
+
+ Returns the value of the specified column as a byte.
+ The column ordinal.
+ The value of the specified column.
+
+
+ Returns the value of the specified column as a byte array.
+ The zero-based column ordinal.
+ The index within the field from which to start the read operation.
+ The buffer into which to read the stream of bytes.
+ The index for to start the read operation.
+ The number of bytes to read.
+ The value of the specified column.
+
+
+ Returns the value of the specified column as a character.
+ The column ordinal.
+ The value of the specified column.
+
+
+ Returns the value of the specified column as a character array.
+ Column ordinal.
+ Buffer to copy data into.
+ Maximum length to copy into the buffer.
+ Point to start from within the buffer.
+ Point to start from within the source data.
+ The value of the specified column.
+
+
+ Not currently supported.
+ Not currently supported.
+ Not currently supported.
+
+
+ Returns the name of the back-end data type.
+ The column ordinal.
+ The name of the back-end data type.
+
+
+ Returns the value of the specified column as a object.
+ The column ordinal.
+ The value of the specified column.
+
+
+ Returns a object for the requested column ordinal that can be overridden with a provider-specific implementation.
+ The zero-based column ordinal.
+ A object.
+
+
+ Returns the value of the specified column as a object.
+ The column ordinal.
+ The value of the specified column.
+
+
+ Returns the value of the specified column as a double-precision floating-point number.
+ The column ordinal.
+ The value of the specified column.
+
+
+ Returns the that is the data type of the object.
+ The column ordinal.
+ The that is the data type of the object.
+
+
+ Returns the value of the specified column as a single-precision floating-point number.
+ The column ordinal.
+ The value of the specified column.
+
+
+ Returns the GUID value of the specified field.
+ The index of the field to return.
+ The index passed was outside the range of 0 through .
+ The GUID value of the specified field.
+
+
+ Returns the value of the specified column as a 16-bit signed integer.
+ The column ordinal.
+ The value of the specified column.
+
+
+ Returns the value of the specified column as a 32-bit signed integer.
+ The column ordinal.
+ The value of the specified column.
+
+
+ Returns the value of the specified column as a 64-bit signed integer.
+ The column ordinal.
+ The value of the specified column.
+
+
+ Returns the name of the specified column.
+ The column ordinal.
+ The name of the specified column.
+
+
+ Returns the column ordinal, given the name of the column.
+ The name of the column.
+ The column ordinal.
+
+
+ Returns the value of the specified column as a string.
+ The column ordinal.
+ The value of the specified column.
+
+
+ Returns the value at the specified column in its native format.
+ The column ordinal.
+ The value to return.
+
+
+ Populates an array of objects with the column values of the current record.
+ An array of to copy the attribute fields into.
+ The number of instances of in the array.
+
+
+ Used to indicate nonexistent values.
+ The column ordinal.
+
+ if the specified column is equivalent to ; otherwise .
+
+
+ Returns a collection of custom attributes for this instance of a component.
+ An that contains the attributes for this object.
+
+
+ Returns the class name of this instance of a component.
+ The class name of the object, or if the class does not have a name.
+
+
+ Returns the name of this instance of a component.
+ The name of the object, or if the object does not have a name.
+
+
+ Returns a type converter for this instance of a component.
+ A that is the converter for this object, or if there is no for this object.
+
+
+ Returns the default event for this instance of a component.
+ An that represents the default event for this object, or if this object does not have events.
+
+
+ Returns the default property for this instance of a component.
+ A that represents the default property for this object, or if this object does not have properties.
+
+
+ Returns an editor of the specified type for this instance of a component.
+ A that represents the editor for this object.
+ An of the specified type that is the editor for this object, or if the editor cannot be found.
+
+
+ Returns the events for this instance of a component.
+ An that represents the events for this component instance.
+
+
+ Returns the events for this instance of a component using the specified attribute array as a filter.
+ An array of type that is used as a filter.
+ An that represents the filtered events for this component instance.
+
+
+ Returns the properties for this instance of a component.
+ A that represents the properties for this component instance.
+
+
+ Returns the properties for this instance of a component using the attribute array as a filter.
+ An array of type that is used as a filter.
+ A that represents the filtered properties for this component instance.
+
+
+ Returns an object that contains the property described by the specified property descriptor.
+ A that represents the property whose owner is to be found.
+ An that represents the owner of the specified property.
+
+
+ Indicates the number of fields within the current record. This property is read-only.
+ Not connected to a data source to read from.
+ The number of fields within the current record.
+
+
+ Indicates the value at the specified column in its native format given the column ordinal. This property is read-only.
+ The column ordinal.
+ The value at the specified column in its native format.
+
+
+ Indicates the value at the specified column in its native format given the column name. This property is read-only.
+ The column name.
+ The value at the specified column in its native format.
+
+
+ Represents a data source which can be used to obtain open connections, and against which commands can be executed directly.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns a that's ready for execution against the .
+ A that's ready for execution against the .
+
+
+ Returns a that's ready for execution against the .
+ The text command with which to initialize the that this method returns.
+ A that's ready for execution against the .
+
+
+ Returns a new, closed connection to the database represented by this .
+ A new, closed connection to the database represented by this .
+
+
+ Returns a that's ready for execution against the .
+ A that's ready for execution against the .
+
+
+ Returns a that's ready for execution against the .
+ The text command with which to initialize the that this method returns.
+ A that's ready for execution against the .
+
+
+ Returns a new, closed connection to the database represented by this .
+ A new, closed connection to the database represented by this .
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.
+
+
+ Called by the Dispose() and Finalize() methods to release the managed and unmanaged resources used by the current instance of the class.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.
+ A task that represents the asynchronous dispose operation.
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting managed resources asynchronously.
+ A task that represents the asynchronous dispose operation.
+
+
+ Returns a new, open connection to the database represented by this .
+ A new, open connection to the database represented by this .
+
+
+ Asynchronously returns a new, open connection to the database represented by this .
+ A token to cancel the asynchronous operation.
+ A new, open connection to the database represented by this .
+
+
+ Returns a new, open connection to the database represented by this .
+ A new, open connection to the database represented by this .
+
+
+ Asynchronously returns a new, open connection to the database represented by this .
+ A token to cancel the asynchronous operation.
+ A new, open connection to the database represented by this .
+
+
+ Gets the connection string of the database represented by this . The exact contents of the connection string depend on the specific data source for this connection.
+ The connection string of the database represented by this . The exact contents of the connection string depend on the specific data source for this connection.
+
+
+ Provides a mechanism for enumerating all available instances of database servers within the local network.
+
+
+ Creates a new instance of the class.
+
+
+ Retrieves a containing information about all visible instances of the server represented by the strongly typed instance of this class.
+ A containing information about the visible instances of the associated data source.
+
+
+ Exposes the method, which supports a simple iteration over a collection by a .NET data provider.
+
+
+ Initializes a new instance of the class with the give n data reader.
+ The DataReader through which to iterate.
+
+
+ Initializes a new instance of the class using the specified reader and indicates whether to automatically close the reader after iterating through its data.
+ The DataReader through which to iterate.
+
+ to automatically close the DataReader after iterating through its data; otherwise, .
+
+
+ Initializes a new instance of the class using the specified .
+ The through which to iterate.
+
+
+ Initializes a new instance of the class using the specified , and indicates whether to automatically close the after iterating through its data.
+ The through which to iterate.
+
+ to automatically close the after iterating through its data; otherwise, .
+
+
+ Advances the enumerator to the next element of the collection.
+ The collection was modified after the enumerator was created.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+ The collection was modified after the enumerator was created.
+
+
+ Gets the current element in the collection.
+ The enumerator is positioned before the first element of the collection or after the last element.
+ The current element in the collection.
+
+
+ The base class for all exceptions thrown on behalf of the data source.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified serialization information and context.
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class with the specified error message.
+ The message to display for this exception.
+
+
+ Initializes a new instance of the class with the specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message string.
+ The inner exception reference.
+
+
+ Initializes a new instance of the class with the specified error message and error code.
+ The error message that explains the reason for the exception.
+ The error code for the exception.
+
+
+ If this was thrown when executing a , references the specific which triggered the exception.
+ The specific which triggered the exception.
+
+
+ When overridden in a derived class, if this was thrown when executing a , references the specific which triggered the exception.
+ The specific which triggered the exception.
+
+
+ Indicates whether the error represented by this could be a transient error, i.e. if retrying the triggering operation may succeed without any other change.
+
+ if the error represented could be a transient error; otherwise.
+
+
+
+ For database providers which support it, contains a standard SQL 5-character return code indicating the success or failure of the database operation. The first 2 characters represent the class of the return code (e.g. error, success), while the last 3 characters represent the subclass, allowing detection of error scenarios in a database-portable way.
+ For database providers which don't support it, or for inapplicable error scenarios, contains .
+
+ A standard SQL 5-character return code, or .
+
+
+ Provides a list of constants for the well-known MetaDataCollections: DataSourceInformation, DataTypes, MetaDataCollections, ReservedWords, and Restrictions.
+
+
+ A constant for use with the method that represents the DataSourceInformation collection.
+
+
+ A constant for use with the method that represents the DataTypes collection.
+
+
+ A constant for use with the method that represents the MetaDataCollections collection.
+
+
+ A constant for use with the method that represents the ReservedWords collection.
+
+
+ A constant for use with the method that represents the Restrictions collection.
+
+
+ Provides static values that are used for the column names in the MetaDataCollection objects contained in the . The is created by the GetSchema method.
+
+
+ Used by the GetSchema method to create the CollectionName column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the ColumnSize column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the CompositeIdentifierSeparatorPattern column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the CreateFormat column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the CreateParameters column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the DataSourceProductName column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the DataSourceProductVersion column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the DataSourceProductVersionNormalized column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the DataType column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the GroupByBehavior column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the IdentifierCase column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the IdentifierPattern column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the IsAutoIncrementable column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the IsBestMatch column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the IsCaseSensitive column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the IsConcurrencyType column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the IsFixedLength column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the IsFixedPrecisionScale column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the IsLiteralSupported column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the IsLong column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the IsNullable column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the IsSearchable column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the IsSearchableWithLike column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the IsUnsigned column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the LiteralPrefix column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the LiteralSuffix column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the MaximumScale column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the MinimumScale column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the NumberOfIdentifierParts column in the MetaDataCollections collection.
+
+
+ Used by the GetSchema method to create the NumberOfRestrictions column in the MetaDataCollections collection.
+
+
+ Used by the GetSchema method to create the OrderByColumnsInSelect column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the ParameterMarkerFormat column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the ParameterMarkerPattern column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the ParameterNameMaxLength column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the ParameterNamePattern column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the ProviderDbType column in the DataTypes collection.
+
+
+ Used by the GetSchema method to create the QuotedIdentifierCase column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the QuotedIdentifierPattern column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the ReservedWord column in the ReservedWords collection.
+
+
+ Used by the GetSchema method to create the StatementSeparatorPattern column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the StringLiteralPattern column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the SupportedJoinOperators column in the DataSourceInformation collection.
+
+
+ Used by the GetSchema method to create the TypeName column in the DataTypes collection.
+
+
+ Represents a parameter to a and optionally, its mapping to a column. For more information on parameters, see Configuring Parameters and Parameter Data Types.
+
+
+ Initializes a new instance of the class.
+
+
+ Resets the DbType property to its original settings.
+
+
+ Gets or sets the of the parameter.
+ The property is not set to a valid .
+ One of the values. The default is .
+
+
+ Gets or sets a value that indicates whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter.
+ The property is not set to one of the valid values.
+ One of the values. The default is .
+
+
+ Gets or sets a value that indicates whether the parameter accepts null values.
+
+ if null values are accepted; otherwise . The default is .
+
+
+ Gets or sets the name of the .
+ The name of the . The default is an empty string ("").
+
+
+ Gets or sets the maximum number of digits used to represent the property.
+ The maximum number of digits used to represent the property.
+
+
+ Gets or sets the number of decimal places to which is resolved.
+ The number of decimal places to which is resolved.
+
+
+ Gets or sets the maximum size, in bytes, of the data within the column.
+ The maximum size, in bytes, of the data within the column. The default value is inferred from the parameter value.
+
+
+ Gets or sets the name of the source column mapped to the and used for loading or returning the .
+ The name of the source column mapped to the . The default is an empty string.
+
+
+ Gets or sets a value which indicates whether the source column is nullable. This allows to correctly generate Update statements for nullable columns.
+
+ if the source column is nullable; if it is not.
+
+
+ Gets or sets the to use when you load .
+ The property is not set to one of the values.
+ One of the values. The default is .
+
+
+ Indicates the precision of numeric parameters.
+ The maximum number of digits used to represent the property of a data provider object. The default value is 0, which indicates that a data provider sets the precision for .
+
+
+ For a description of this member, see .
+ The number of decimal places to which is resolved. The default is 0.
+
+
+ Gets or sets the value of the parameter.
+ An that is the value of the parameter. The default value is null.
+
+
+ The base class for a collection of parameters relevant to a .
+
+
+ Initializes a new instance of the class.
+
+
+ Adds the specified object to the .
+ The of the to add to the collection.
+ The index of the object in the collection.
+
+
+ Adds an array of items with the specified values to the .
+ An array of values of type to add to the collection.
+
+
+ Removes all values from the .
+
+
+ Indicates whether a with the specified is contained in the collection.
+ The of the to look for in the collection.
+
+ if the is in the collection; otherwise .
+
+
+ Indicates whether a with the specified name exists in the collection.
+ The name of the to look for in the collection.
+
+ if the is in the collection; otherwise .
+
+
+ Copies an array of items to the collection starting at the specified index.
+ The array of items to copy to the collection.
+ The index in the collection to copy the items.
+
+
+ Exposes the method, which supports a simple iteration over a collection by a .NET data provider.
+ An that can be used to iterate through the collection.
+
+
+ Returns the object at the specified index in the collection.
+ The index of the in the collection.
+ The object at the specified index in the collection.
+
+
+ Returns the object with the specified name.
+ The name of the in the collection.
+ The the object with the specified name.
+
+
+ Returns the index of the specified object.
+ The object in the collection.
+ The index of the specified object.
+
+
+ Returns the index of the object with the specified name.
+ The name of the object in the collection.
+ The index of the object with the specified name.
+
+
+ Inserts the specified index of the object with the specified name into the collection at the specified index.
+ The index at which to insert the object.
+ The object to insert into the collection.
+
+
+ Removes the specified object from the collection.
+ The object to remove.
+
+
+ Removes the object at the specified from the collection.
+ The index where the object is located.
+
+
+ Removes the object with the specified name from the collection.
+ The name of the object to remove.
+
+
+ Sets the object at the specified index to a new value.
+ The index where the object is located.
+ The new value.
+
+
+ Sets the object with the specified name to a new value.
+ The name of the object in the collection.
+ The new value.
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ Specifies the number of items in the collection.
+ The number of items in the collection.
+
+
+ Specifies whether the collection is a fixed size.
+
+ if the collection is a fixed size; otherwise .
+
+
+ Specifies whether the collection is read-only.
+
+ if the collection is read-only; otherwise .
+
+
+ Specifies whether the collection is synchronized.
+
+ if the collection is synchronized; otherwise .
+
+
+ Gets or sets the at the specified index.
+ The zero-based index of the parameter.
+ The specified index does not exist.
+ The at the specified index.
+
+
+ Gets or sets the with the specified name.
+ The name of the .
+ The specified index does not exist.
+ The with the specified name.
+
+
+ Specifies the to be used to synchronize access to the collection.
+ A to be used to synchronize access to the .
+
+
+ Gets or sets the element at the specified index.
+ The zero-based index of the element to get or set.
+ The element at the specified index.
+
+
+ Gets or sets the parameter at the specified index.
+ The name of the parameter to retrieve.
+ An at the specified index.
+
+
+ Represents a set of static methods for creating one or more instances of classes.
+
+
+ Returns an instance of a .
+ The connection used.
+ An instance of a for a specified connection.
+
+
+ Returns an instance of a .
+
+ containing the provider's configuration information.
+ An instance of a for a specified .
+
+
+ Returns an instance of a .
+ Invariant name of a provider.
+ An instance of a for a specified provider name.
+
+
+ Returns a that contains information about all installed providers that implement .
+ A containing objects that contain the following data:
+
+ Column ordinal Column name Description- 0 Name Human-readable name for the data provider.
- 1 Description Human-readable description of the data provider.
- 2 InvariantName Name that can be used programmatically to refer to the data provider.
- 3 AssemblyQualifiedName Fully qualified name of the factory class, which contains enough information to instantiate the object.
+
+
+ Returns the invariant provider names for all registered instances of .
+ The invariant provider names for all registered instances of .
+
+
+ Registers an instance of under the specified invariant provider name.
+ The invariant provider name under which to register the provider.
+ The instance of the provider factory to be registered.
+
+
+ Registers a with the given assembly-qualified name under the specified invariant provider name.
+ The invariant provider name under which to register the provider.
+ The assembly-qualified name for a .
+
+
+ Registers a with the given type under the specified invariant provider name.
+ The invariant provider name under which to register the provider.
+ The type representing a .
+
+
+ Attempts to get the registered under the specified invariant provider name.
+ The invariant provider name to look up.
+ When this method returns, contains the associated with the specified invariant provider name, if the name is found; otherwise, . This parameter is passed uninitialized.
+
+ if a provider is registered under the specified invariant provider name; otherwise, .
+
+
+ Removes a registration for the given provider invariant name.
+ The invariant provider name of the registration to remove.
+
+ if the registration is successfully found and removed; otherwise, . This method returns if a registration for is not found.
+
+
+ Represents a set of methods for creating instances of a provider's implementation of the data source classes.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns a new instance of the provider's class that implements the class.
+ A new instance of .
+
+
+ Returns a new instance of the provider's class that implements the class.
+ A new instance of .
+
+
+ Returns a new instance of the provider's class that implements the class.
+ A new instance of .
+
+
+ Returns a new instance of the provider's class that implements the class.
+ A new instance of .
+
+
+ Returns a new instance of the provider's class that implements the class.
+ A new instance of .
+
+
+ Returns a new instance of the provider's class that implements the class.
+ A new instance of .
+
+
+ Returns a new instance of the provider's class that implements the class.
+ A new instance of .
+
+
+ Returns a new instance of the provider's class that implements the class, representing the database for the given connection string and ready to hand out connections to it.
+ The connection string of the database to be represented by this . The exact contents of the connection string depend on the specific data source for this connection.
+ A new instance of .
+
+
+ Returns a new instance of the provider's class that implements the class.
+ A new instance of .
+
+
+ Returns a new instance of the provider's class that implements the class.
+ A new instance of .
+
+
+ Gets a value that indicates whether this instance supports the class.
+
+ if this instance supports the class; otherwise, . The default is .
+
+
+ Gets a value that indicates whether this instance supports the class.
+
+ if this instance supports the class; otherwise, .
+
+
+ Gets a value that indicates whether this instance supports the class.
+
+ if the instance supports the class; otherwise, .
+
+
+ Gets a value that indicates whether this instance supports the class.
+
+ if the instance supports the class; otherwise, .
+
+
+ Identifies which provider-specific property in the strongly typed parameter classes is to be used when setting a provider-specific type.
+
+
+ Initializes a new instance of the class.
+ Specifies whether this property is a provider-specific property.
+
+
+ Indicates whether the attributed property is a provider-specific type.
+
+ if the property that this attribute is applied to is a provider-specific type property; otherwise .
+
+
+ Defines the core behavior of database transactions and provides a base class for database-specific transactions.
+
+
+ Initializes a new object.
+
+
+ When overridden in a derived class, commits the database transaction.
+
+
+ Asynchronously commits the database transaction.
+ An optional token to cancel the asynchronous operation. The default value is .
+ A representing the asynchronous operation.
+
+
+ Releases the unmanaged resources used by the .
+
+
+ Releases the unmanaged resources used by the and optionally releases the managed resources.
+ If , this method releases all resources held by any managed objects that this references.
+
+
+ Asynchronously diposes the transaction object.
+ A representing the asynchronous operation.
+
+
+ Destroys a savepoint previously defined in the current transaction. This allows the system to reclaim some resources before the transaction ends.
+ The name of the savepoint to release.
+
+
+ Destroys a savepoint previously defined in the current transaction. This allows the system to reclaim some resources before the transaction ends.
+ The name of the savepoint to release.
+ An optional token to cancel the asynchronous operation. The default value is .
+ A representing the asynchronous operation.
+
+
+ When overridden in a derived class, rolls back a transaction from a pending state.
+
+
+ Rolls back all commands that were executed after the specified savepoint was established.
+ The name of the savepoint to roll back to.
+
+
+ Rolls back all commands that were executed after the specified savepoint was established.
+ The name of the savepoint to roll back to.
+ An optional token to cancel the asynchronous operation. The default value is .
+ A representing the asynchronous operation.
+
+
+ Asynchronously rolls back a transaction from a pending state.
+ An optional token to cancel the asynchronous operation. The default value is .
+ A task representing the asynchronous operation.
+
+
+ Creates a savepoint in the transaction. This allows all commands that are executed after the savepoint was established to be rolled back, restoring the transaction state to what it was at the time of the savepoint.
+ The name of the savepoint to be created.
+
+
+ Creates a savepoint in the transaction. This allows all commands that are executed after the savepoint was established to be rolled back, restoring the transaction state to what it was at the time of the savepoint.
+ The name of the savepoint to be created.
+ An optional token to cancel the asynchronous operation. The default value is .
+ A representing the asynchronous operation.
+
+
+ Specifies the object associated with the transaction.
+ The object associated with the transaction.
+
+
+ When overridden in a derived class, gets the object associated with the transaction.
+ The object associated with the transaction.
+
+
+ When overridden in a derived class, gets the isolation level for this transaction.
+ The isolation level for this transaction.
+
+
+ Gets a value that indicates whether this instance supports database savepoints.
+ If , the methods , and as well as their synchronous counterparts are expected to throw .
+
+ if this instance supports database savepoints; otherwise, .
+
+
+ Gets the object associated with the transaction, or a null reference if the transaction is no longer valid.
+ The object associated with the transaction.
+
+
+ Specifies the relationship between the columns in a GROUP BY clause and the non-aggregated columns in the select-list of a SELECT statement.
+
+
+ The GROUP BY clause must contain all nonaggregated columns in the select list, and must not contain other columns not in the select list.
+
+
+ The GROUP BY clause must contain all nonaggregated columns in the select list, and can contain other columns not in the select list.
+
+
+ The GROUP BY clause is not supported.
+
+
+ The support for the GROUP BY clause is unknown.
+
+
+ There is no relationship between the columns in the GROUP BY clause and the nonaggregated columns in the SELECT list. You may group by any column.
+
+
+ Generates a column schema.
+
+
+ Gets the column schema ( collection).
+ The column schema ( collection).
+
+
+ Specifies how identifiers are treated by the data source when searching the system catalog.
+
+
+ The data source ignores identifier case when searching the system catalog. The identifiers "ab" and "AB" will match.
+
+
+ The data source distinguishes identifier case when searching the system catalog. The identifiers "ab" and "AB" will not match.
+
+
+ The data source has ambiguous rules regarding identifier case and cannot discern this information.
+
+
+ Provides data for the event of a .NET data provider.
+
+
+ Initializes a new instance of the class.
+ The sent through an .
+ The executed when is called.
+ The type of SQL statement executed.
+ The sent through an .
+
+
+ Copies references to the modified rows into the provided array.
+ The array of to copy into.
+
+
+ Copies references to the modified rows into the provided array.
+ The array of to copy into.
+ The index in the array to start copying into.
+
+
+ Gets the executed when is called.
+ The executed when is called.
+
+
+ Gets any errors generated by the .NET data provider when the was executed.
+ The errors generated by the .NET data provider when the was executed.
+
+
+ Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+ The number of rows changed, inserted, or deleted; 0 if no rows were affected or the statement failed; and -1 for SELECT statements.
+
+
+ Gets the sent through an .
+ The sent through an .
+
+
+ Gets the number of rows processed in a batch of updated records.
+
+ that specifies the number of row processed.
+
+
+ Gets the type of SQL statement executed.
+ The type of SQL statement executed.
+
+
+ Gets the of the property.
+ One of the values. The default is .
+
+
+ Gets the sent through an .
+ The sent through an .
+
+
+ Provides the data for the RowUpdating event of a .NET data provider.
+
+
+ Initializes a new instance of the class.
+ The to .
+ The to execute when is called.
+ The type of SQL statement to execute.
+ The to send through an .
+
+
+ Gets or sets the object for an instance of this class.
+ The to execute during the .
+
+
+ Gets the to execute during the operation.
+ The to execute during the .
+
+
+ Gets any errors generated by the .NET data provider when the executes.
+ The errors generated by the .NET data provider when the executes.
+
+
+ Gets the that will be sent to the server as part of an insert, update, or delete operation.
+ The to send through an .
+
+
+ Gets the type of SQL statement to execute.
+ The type of SQL statement to execute.
+
+
+ Gets or sets the of the property.
+ One of the values. The default is .
+
+
+ Gets the to send through the .
+ The to send through the .
+
+
+ Describes the column metadata of the schema for a database table.
+
+
+ Specifies whether value is allowed.
+
+
+ Specifies the name of the column in the schema table.
+
+
+ Specifies the name of the schema in the schema table.
+
+
+ Specifies the name of the table in the schema table.
+
+
+ Specifies the name of the column in the schema table.
+
+
+ Specifies the ordinal of the column.
+
+
+ Specifies the size of the column.
+
+
+ Specifies the type of data in the column.
+
+
+ Specifies whether this column is aliased.
+
+
+ Specifies whether this column is an expression.
+
+
+ Specifies whether this column is a key for the table.
+
+
+ Specifies whether this column contains long data.
+
+
+ Specifies whether a unique constraint applies to this column.
+
+
+ Specifies the non-versioned provider-specific data type of the column.
+
+
+ Specifies the precision of the column data, if the data is numeric.
+
+
+ Specifies the scale of the column data, if the data is numeric.
+
+
+ Specifies the provider-specific data type of the column.
+
+
+ Describes optional column metadata of the schema for a database table.
+
+
+ Specifies the value at which the series for new identity columns is assigned.
+
+
+ Specifies the increment between values in the identity column.
+
+
+ The name of the catalog associated with the results of the latest query.
+
+
+ The namespace of the column.
+
+
+ The server name of the column.
+
+
+ The namespace for the table that contains the column.
+
+
+ Specifies the mapping for the column.
+
+
+ The default value for the column.
+
+
+ The expression used to compute the column.
+
+
+ Specifies whether the column values in the column are automatically incremented.
+
+
+ Specifies whether this column is hidden.
+
+
+ Specifies whether this column is read-only.
+
+
+ Specifies whether this column contains row version information.
+
+
+ Specifies the provider-specific data type of the column.
+
+
+ Specifies what types of Transact-SQL join statements are supported by the data source.
+
+
+ The data source supports full outer joins.
+
+
+ The data source supports inner joins.
+
+
+ The data source supports left outer joins.
+
+
+ The data source does not support join queries.
+
+
+ The data source supports right outer joins.
+
+
+ Specifies how conflicting changes to the data source will be detected and resolved.
+
+
+ Update and delete statements will include all searchable columns from the table in the WHERE clause. This is equivalent to specifying | .
+
+
+ If any Timestamp columns exist in the table, they are used in the WHERE clause for all generated update statements. This is equivalent to specifying | .
+
+
+ All update and delete statements include only columns in the WHERE clause. If no is defined, all searchable columns are included in the WHERE clause. This is equivalent to | .
+
+
+ Describes the current state of the connection to a data source.
+
+
+ The connection to the data source is broken. This can occur only after the connection has been opened. A connection in this state may be closed and then re-opened. (This value is reserved for future versions of the product.)
+
+
+ The connection is closed.
+
+
+ The connection object is connecting to the data source.
+
+
+ The connection object is executing a command. (This value is reserved for future versions of the product.)
+
+
+ The connection object is retrieving data. (This value is reserved for future versions of the product.)
+
+
+ The connection is open.
+
+
+ Represents a constraint that can be enforced on one or more objects.
+
+
+ Gets the to which this constraint belongs.
+
+
+ Sets the constraint's .
+ The to which this constraint will belong.
+
+
+ Gets the , if there is one, as a string.
+ The string value of the .
+
+
+ Gets the to which this constraint belongs.
+ The to which the constraint belongs.
+
+
+ The name of a constraint in the .
+ The name is a null value or empty string.
+ The already contains a with the same name (The comparison is not case-sensitive.).
+ The name of the .
+
+
+ Gets the collection of user-defined constraint properties.
+ A of custom information.
+
+
+ Gets the to which the constraint applies.
+ A to which the constraint applies.
+
+
+ Represents a collection of constraints for a .
+
+
+ Occurs whenever the is changed because of objects being added or removed.
+
+
+ Adds the specified object to the collection.
+ The to add.
+ The argument is null.
+ The constraint already belongs to this collection, or belongs to another collection.
+ The collection already has a constraint with the same name. (The comparison is not case-sensitive.)
+
+
+ Constructs a new with the specified name, , and value that indicates whether the column is a primary key, and adds it to the collection.
+ The name of the .
+ The to which the constraint applies.
+ Specifies whether the column should be the primary key. If , the column will be a primary key column.
+ The constraint already belongs to this collection.
+
+ -Or-
+
+ The constraint belongs to another collection.
+ The collection already has a constraint with the specified name. (The comparison is not case-sensitive.)
+ A new .
+
+
+ Constructs a new with the specified name, parent column, and child column, and adds the constraint to the collection.
+ The name of the .
+ The primary key, or parent, .
+ The foreign key, or child, .
+ A new .
+
+
+ Constructs a new with the specified name, array of objects, and value that indicates whether the column is a primary key, and adds it to the collection.
+ The name of the .
+ An array of objects to which the constraint applies.
+ Specifies whether the column should be the primary key. If , the column will be a primary key column.
+ The constraint already belongs to this collection.
+
+ -Or-
+
+ The constraint belongs to another collection.
+ The collection already has a constraint with the specified name. (The comparison is not case-sensitive.)
+ A new .
+
+
+ Constructs a new , with the specified arrays of parent columns and child columns, and adds the constraint to the collection.
+ The name of the .
+ An array of objects that are the primary key, or parent, columns.
+ An array of objects that are the foreign key, or child, columns.
+ A new .
+
+
+ Copies the elements of the specified array to the end of the collection.
+ An array of objects to add to the collection.
+
+
+ Indicates whether a can be removed.
+ The to be tested for removal from the collection.
+
+ if the can be removed from collection; otherwise, .
+
+
+ Clears the collection of any objects.
+
+
+ Indicates whether the object specified by name exists in the collection.
+ The of the constraint.
+
+ if the collection contains the specified constraint; otherwise, .
+
+
+ Copies the collection objects to a one-dimensional instance starting at the specified index.
+ The one-dimensional that is the destination of the values copied from the collection.
+ The index of the array at which to start inserting.
+
+
+ Gets the index of the specified .
+ The to search for.
+ The zero-based index of the if it is in the collection; otherwise, -1.
+
+
+ Gets the index of the specified by name.
+ The name of the .
+ The index of the if it is in the collection; otherwise, -1.
+
+
+ Removes the specified from the collection.
+ The to remove.
+ The argument is .
+ The constraint does not belong to the collection.
+
+
+ Removes the object specified by name from the collection.
+ The name of the to remove.
+
+
+ Removes the object at the specified index from the collection.
+ The index of the to remove.
+ The collection does not have a constraint at this index.
+
+
+ Gets the from the collection at the specified index.
+ The index of the constraint to return.
+ The index value is greater than the number of items in the collection.
+ The at the specified index.
+
+
+ Gets the from the collection with the specified name.
+ The of the constraint to return.
+ The with the specified name; otherwise a null value if the does not exist.
+
+
+ Represents the exception that is thrown when attempting an action that violates a constraint.
+
+
+ Initializes a new instance of the class. This is the parameterless constructor.
+
+
+ Initializes a new instance of the class using the specified serialization and stream context.
+ The data necessary to serialize or deserialize an object.
+ Description of the source and destination of the specified serialized stream.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class using the specified string and inner exception.
+ The string to display when the exception is thrown.
+ Gets the instance that caused the current exception.
+
+
+ Represents the schema of a column in a .
+
+
+ Initializes a new instance of the class as type string.
+
+
+ Initializes a new instance of the class, as type string, using the specified column name.
+ A string that represents the name of the column to be created. If set to or an empty string (""), a default name will be specified when added to the columns collection.
+
+
+ Initializes a new instance of the class using the specified column name and data type.
+ A string that represents the name of the column to be created. If set to or an empty string (""), a default name will be specified when added to the columns collection.
+ A supported .
+ No was specified.
+
+
+ Initializes a new instance of the class using the specified name, data type, and expression.
+ A string that represents the name of the column to be created. If set to or an empty string (""), a default name will be specified when added to the columns collection.
+ A supported .
+ The expression used to create this column. For more information, see the property.
+ No was specified.
+
+
+ Initializes a new instance of the class using the specified name, data type, expression, and value that determines whether the column is an attribute.
+ A string that represents the name of the column to be created. If set to or an empty string (""), a default name will be specified when added to the columns collection.
+ A supported .
+ The expression used to create this column. For more information, see the property.
+ One of the values.
+ No was specified.
+
+
+ This member supports .NET infrastructure and is not intended to be used directly from your code.
+
+
+ This member supports .NET infrastructure and is not intended to be used directly from your code.
+
+
+ This member supports .NET infrastructure and is not intended to be used directly from your code.
+ Parameter reference.
+
+
+ This member supports .NET infrastructure and is not intended to be used directly from your code.
+ Parameter reference.
+
+
+ Changes the ordinal or position of the to the specified ordinal or position.
+ The specified ordinal.
+
+
+ Gets the of the column, if one exists.
+ The value, if the property is set; otherwise, the property.
+
+
+ Gets or sets a value that indicates whether null values are allowed in this column for rows that belong to the table.
+
+ if null values are allowed; otherwise, . The default is .
+
+
+ Gets or sets a value that indicates whether the column automatically increments the value of the column for new rows added to the table.
+ The column is a computed column.
+
+ if the value of the column increments automatically; otherwise, . The default is .
+
+
+ Gets or sets the starting value for a column that has its property set to . The default is 0.
+ The starting value for the feature.
+
+
+ Gets or sets the increment used by a column with its property set to .
+ The value set is zero.
+ The number by which the value of the column is automatically incremented. The default is 1.
+
+
+ Gets or sets the caption for the column.
+ The caption of the column. If not set, returns the value.
+
+
+ Gets or sets the of the column.
+ One of the values.
+
+
+ Gets or sets the name of the column in the .
+ The property is set to or an empty string and the column belongs to a collection.
+ A column with the same name already exists in the collection. The name comparison is not case sensitive.
+ The name of the column.
+
+
+ Gets or sets the type of data stored in the column.
+ The column already has data stored.
+ A object that represents the column data type.
+
+
+ Gets or sets the for the column.
+ The for the specified column.
+
+
+ Gets or sets the default value for the column when you are creating new rows.
+ When you are adding a row, the default value is not an instance of the column's data type.
+ A value appropriate to the column's .
+
+
+ Gets or sets the expression used to filter rows, calculate the values in a column, or create an aggregate column.
+ The or property is set to .
+ When you are using the CONVERT function, the expression evaluates to a string, but the string does not contain a representation that can be converted to the type parameter.
+ When you are using the CONVERT function, the requested cast is not possible. See the Conversion function in the following section for detailed information about possible casts.
+ When you use the SUBSTRING function, the start argument is out of range.
+
+ -Or-
+
+ When you use the SUBSTRING function, the length argument is out of range.
+ When you use the LEN function or the TRIM function, the expression does not evaluate to a string. This includes expressions that evaluate to .
+ An expression to calculate the value of a column, or create an aggregate column. The return type of an expression is determined by the of the column.
+
+
+ Gets the collection of custom user information associated with a .
+ A of custom information.
+
+
+ Gets or sets the maximum length of a text column.
+ The maximum length of the column in characters. If the column has no maximum length, the value is -1 (default).
+
+
+ Gets or sets the namespace of the .
+ The namespace already has data.
+ The namespace of the .
+
+
+ Gets the (zero-based) position of the column in the collection.
+ The position of the column. Gets -1 if the column is not a member of a collection.
+
+
+ Gets or sets an XML prefix that aliases the namespace of the .
+ The XML prefix for the namespace.
+
+
+ Gets or sets a value that indicates whether the column allows for changes as soon as a row has been added to the table.
+ The property is set to on a computed column.
+
+ if the column is read only; otherwise, . The default is .
+
+
+ Gets the to which the column belongs to.
+ The that the belongs to.
+
+
+ Gets or sets a value that indicates whether the values in each row of the column must be unique.
+ The column is a calculated column.
+
+ if the value must be unique; otherwise, . The default is .
+
+
+ Provides data for the event.
+
+
+ Initializes a new instance of the class.
+ The of the column with the changing value.
+ The with the changing value.
+ The new value.
+
+
+ Gets the with a changing value.
+ The with a changing value.
+
+
+ Gets or sets the proposed new value for the column.
+ The proposed value, of type .
+
+
+ Gets the of the column with a changing value.
+ The of the column with a changing value.
+
+
+ Represents the method that will handle the event.
+ The source of the event.
+ A that contains the event data.
+
+
+ Represents a collection of objects for a .
+
+
+ Occurs when the columns collection changes, either by adding or removing a column.
+
+
+ Creates and adds a object to the .
+ The newly created .
+
+
+ Creates and adds the specified object to the .
+ The to add.
+ The parameter is .
+ The column already belongs to this collection, or to another collection.
+ The collection already has a column with the specified name. (The comparison is not case-sensitive.)
+ The expression is invalid. See the property for more information about how to create expressions.
+
+
+ Creates and adds a object that has the specified name to the .
+ The name of the column.
+ The collection already has a column with the specified name. (The comparison is not case-sensitive.)
+ The newly created .
+
+
+ Creates and adds a object that has the specified name and type to the .
+ The to use when you create the column.
+ The of the new column.
+ The collection already has a column with the specified name. (The comparison is not case-sensitive.)
+ The expression is invalid. See the property for more information about how to create expressions.
+ The newly created .
+
+
+ Creates and adds a object that has the specified name, type, and expression to the .
+ The name to use when you create the column.
+ The of the new column.
+ The expression to assign to the property.
+ The collection already has a column with the specified name. (The comparison is not case-sensitive.)
+ The expression is invalid. See the property for more information about how to create expressions.
+ The newly created .
+
+
+ Copies the elements of the specified array to the end of the collection.
+ The array of objects to add to the collection.
+
+
+ Checks whether a specific column can be removed from the collection.
+ A in the collection.
+ The parameter is null.
+ The column does not belong to this collection.
+
+-or-
+
+The column is part of a relationship.
+
+-or-
+
+Another column's expression depends on this column.
+
+ if the column can be removed. if,
+
+- The parameter is .
+
+- The column does not belong to this collection.
+
+- The column is part of a relationship.
+
+- Another column's expression depends on this column.
+
+
+ Clears the collection of any columns.
+
+
+ Checks whether the collection contains a column with the specified name.
+ The of the column to look for.
+
+ if a column exists with this name; otherwise, .
+
+
+ Copies the entire collection into an existing array, starting at a specified index within the array.
+ An array of objects to copy the collection into.
+ The index to start from.
+
+
+ Gets the index of a column specified by name.
+ The name of the column to return.
+ The index of the column specified by if it is found; otherwise, -1.
+
+
+ Gets the index of the column with the specific name (the name is not case sensitive).
+ The name of the column to find.
+ The zero-based index of the column with the specified name, or -1 if the column does not exist in the collection.
+
+
+ Removes the specified object from the collection.
+ The to remove.
+ The parameter is .
+ The column does not belong to this collection.
+
+ -Or-
+
+ The column is part of a relationship.
+
+ -Or-
+
+ Another column's expression depends on this column.
+
+
+ Removes the object that has the specified name from the collection.
+ The name of the column to remove.
+ The collection does not have a column with the specified name.
+
+
+ Removes the column at the specified index from the collection.
+ The index of the column to remove.
+ The collection does not have a column at the specified index.
+
+
+ Gets the from the collection at the specified index.
+ The zero-based index of the column to return.
+ The index value is greater than the number of items in the collection.
+ The at the specified index.
+
+
+ Gets the from the collection with the specified name.
+ The of the column to return.
+ The in the collection with the specified ; otherwise a null value if the does not exist.
+
+
+ Represents the exception that is thrown when errors are generated using ADO.NET components.
+
+
+ Initializes a new instance of the class. This is the parameterless constructor.
+
+
+ Initializes a new instance of the class with the specified serialization information and context.
+ The data necessary to serialize or deserialize an object.
+ Description of the source and destination of the specified serialized stream.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class with the specified string and inner exception.
+ The string to display when the exception is thrown.
+ A reference to an inner exception.
+
+
+ Provides extension methods for .
+
+
+ Gets the value of the specified column as a Boolean.
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a byte.
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ Reads a specified number of bytes from the specified column starting at a specified index and writes them to a buffer starting at a specified position in the buffer.
+ The data reader to get the column value from.
+ The name of the column.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+ The name specified is not a valid column name.
+ The specified cast is not valid.
+ The actual number of bytes read.
+
+
+ Gets the value of the specified column as a single character.
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ Reads a specified number of characters from a specified column starting at a specified index, and writes them to a buffer starting at a specified position.
+ The data reader to get the column value from.
+ The name of the column.
+ The index within the row from which to begin the read operation.
+ The buffer into which to copy the data.
+ The index with the buffer to which the data will be copied.
+ The maximum number of characters to read.
+ The name specified is not a valid column name.
+ The actual number of characters read.
+
+
+ Returns a nested data reader for the requested column.
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ A data reader.
+
+
+ Gets name of the data type of the specified column.
+ The data reader to get the column type name from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The name of the data type.
+
+
+ Gets the value of the specified column as a object.
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a .
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a double-precision floating point number.
+ The data reader to get the column value from.
+ The name of the column.
+ The specified cast is not valid.
+ The name specified is not a valid column name.
+ The value of the specified column.
+
+
+ Gets the data type of the specified column.
+ The data reader to get the field type from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The specified cast is not valid.
+ The data type of the specified column.
+
+
+ Gets the value of the specified column as the requested type.
+ The data reader to get the column value from.
+ The name of the column.
+ The type of the value to be returned.
+ The connection was dropped or closed during data retrieval.
+
+-or-
+
+ The data reader was closed during data retrieval.
+
+-or-
+
+ There is no data ready to be read (for example, the first hasn't been called, or it returned ).
+
+-or-
+
+ The reader tried to read a previously-read column in sequential mode.
+
+-or-
+
+ There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream.
+ The name specified is not a valid column name.
+ The value returned by the database doesn't match or cannot be cast to .
+ The value of the specified column.
+
+
+ Asynchronously gets the value of the specified column as the requested type.
+ The data reader to get the column value from.
+ The name of the column.
+ An optional token to cancel the asynchronous operation.
+ The type of the value to be returned.
+ The connection was dropped or closed during data retrieval.
+
+-or-
+
+ The data reader was closed during the data retrieval.
+
+-or-
+
+ There is no data ready to be read (for example, the first hasn't been called, or it returned ).
+
+-or-
+
+ Tried to read a previously-read column in sequential mode.
+
+-or-
+
+ There was an asynchronous operation in progress. This applies to all Get_*_ methods when running in sequential mode, as they could be called while reading a stream.
+ The name specified is not a valid column name.
+ The value returned by the database doesn't match or cannot be cast to .
+ A task whose contains the value of the specified column.
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a globally unique identifier (GUID).
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ Gets the provider-specific type of the specified column.
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ A provider-specific .NET type.
+
+
+ Gets the value of the specified column as an instance of a provider-specific type.
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ Gets a stream to retrieve data from the specified column.
+ The data reader to get the column value from.
+ The name of the column.
+ The connection was dropped or closed during the data retrieval.
+
+-or-
+
+ The data reader is closed during the data retrieval.
+
+-or-
+
+ There is no data ready to be read (for example, the first hasn't been called, or returned false).
+
+-or-
+
+ The data reader tried to read a previously-read column in sequential mode.
+
+-or-
+
+ There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream.
+ The name specified is not a valid column name.
+ The specified column isn't a binary type that supports reading with a .
+ A stream.
+
+
+ Gets the value of the specified column as an instance of .
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The specified cast is not valid.
+ The value of the specified column.
+
+
+ Gets a text reader to retrieve data from the column.
+ The data reader to get the column value from.
+ The name of the column.
+ The connection was dropped or closed during the data retrieval.
+
+-or-
+
+ The data reader is closed during the data retrieval.
+
+-or-
+
+ There is no data ready to be read (for example, the first hasn't been called, or returned false).
+
+-or-
+
+ The data reader tried to read a previously-read column in sequential mode.
+
+-or-
+
+ There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream.
+ The name specified is not a valid column name.
+ The specified column isn't a text type that supports reading with a .
+ A text reader.
+
+
+ Gets the value of the specified column as an instance of .
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+ The value of the specified column.
+
+
+ Gets a value that indicates whether the column contains nonexistent or missing values.
+ The data reader to get the column value from.
+ The name of the column.
+ The name specified is not a valid column name.
+
+ if the specified column is equivalent to ; otherwise, .
+
+
+ Asynchronously gets a value that indicates whether the column contains non-existent or missing values.
+ The data reader to get the column value from.
+ The name of the column.
+ An optional token to cancel the asynchronous operation.
+ The connection was dropped or closed during the data retrieval.
+
+-or-
+
+ The data reader is closed during the data retrieval.
+
+-or-
+
+ There is no data ready to be read (for example, the first hasn't been called, or returned false).
+
+-or-
+
+ Trying to read a previously read column in sequential mode.
+
+-or-
+
+ There was an asynchronous operation in progress. This applies to all Get* methods when running in sequential mode, as they could be called while reading a stream.
+ The name specified is not a valid column name.
+ A whose property is if the specified column value is equivalent to or if it is not.
+
+
+ Represents a parent/child relationship between two objects.
+
+
+ Initializes a new instance of the class using the specified name, and parent and child objects.
+ The name of the . If or an empty string (""), a default name will be given when the created object is added to the .
+ The parent in the relationship.
+ The child in the relationship.
+ One or both of the objects contains .
+ The columns have different data types
+
+ -Or-
+
+ The tables do not belong to the same .
+
+
+ Initializes a new instance of the class using the specified name, parent and child objects, and a value that indicates whether to create constraints.
+ The name of the relation. If or an empty string (""), a default name will be given when the created object is added to the .
+ The parent in the relation.
+ The child in the relation.
+ A value that indicates whether constraints are created. , if constraints are created. Otherwise, .
+ One or both of the objects contains .
+ The columns have different data types
+
+ -Or-
+
+ The tables do not belong to the same .
+
+
+ Initializes a new instance of the class using the specified name and matched arrays of parent and child objects.
+ The name of the relation. If or an empty string (""), a default name will be given when the created object is added to the .
+ An array of parent objects.
+ An array of child objects.
+ One or both of the objects contains .
+ The objects have different data types
+
+ -Or-
+
+ One or both of the arrays are not composed of distinct columns from the same table.
+
+ -Or-
+
+ The tables do not belong to the same .
+
+
+ Initializes a new instance of the class using the specified name, matched arrays of parent and child objects, and value that indicates whether to create constraints.
+ The name of the relation. If or an empty string (""), a default name will be given when the created object is added to the .
+ An array of parent objects.
+ An array of child objects.
+ A value that indicates whether to create constraints. , if constraints are created. Otherwise, .
+ One or both of the objects is .
+ The columns have different data types
+
+ -Or-
+
+ The tables do not belong to the same .
+
+
+ This constructor is provided for design time support in the Visual Studio environment.
+ The name of the . If or an empty string (""), a default name will be given when the created object is added to the .
+ The name of the that is the parent table of the relation.
+ The name of the parent table namespace.
+ The name of the that is the child table of the relation.
+ The name of the child table namespace.
+ An array of object names in the parent of the relation.
+ An array of object names in the child of the relation.
+ A value that indicates whether relationships are nested.
+
+
+ This constructor is provided for design time support in the Visual Studio environment.
+ The name of the relation. If or an empty string (""), a default name will be given when the created object is added to the .
+ The name of the that is the parent table of the relation.
+ The name of the that is the child table of the relation.
+ An array of object names in the parent of the relation.
+ An array of object names in the child of the relation.
+ A value that indicates whether relationships are nested.
+
+
+ This method supports .NET infrastructure and is not intended to be used directly from your code.
+ The parent and child tables belong to different objects.
+
+ -Or-
+
+ One or more pairs of parent and child objects have mismatched data types.
+
+ -Or-
+
+ The parent and child objects are identical.
+
+
+ This member supports .NET infrastructure and is not intended to be used directly from your code.
+ Parameter reference.
+
+
+ This member supports .NET infrastructure and is not intended to be used directly from your code.
+ Parameter reference.
+
+
+ Gets the , if one exists.
+ The value of the property.
+
+
+ Gets the child objects of this relation.
+ An array of objects.
+
+
+ Gets the for the relation.
+ A .
+
+
+ Gets the child table of this relation.
+ A that is the child table of the relation.
+
+
+ Gets the to which the belongs.
+ A to which the belongs.
+
+
+ Gets the collection that stores customized properties.
+ A that contains customized properties.
+
+
+ Gets or sets a value that indicates whether objects are nested.
+
+ , if objects are nested; otherwise, .
+
+
+ Gets an array of objects that are the parent columns of this .
+ An array of objects that are the parent columns of this .
+
+
+ Gets the that guarantees that values in the parent column of a are unique.
+ A that makes sure that values in a parent column are unique.
+
+
+ Gets the parent of this .
+ A that is the parent table of this relation.
+
+
+ Gets or sets the name used to retrieve a from the .
+
+ or empty string ("") was passed into a that is a .
+ The belongs to a collection that already contains a with the same name.
+ The name of the a .
+
+
+ Represents the collection of objects for this .
+
+
+ Occurs when the collection has changed.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a with a specified parent and child column, and adds it to the collection.
+ The parent column of the relation.
+ The child column of the relation.
+ The created relation.
+
+
+ Creates a with the specified parent and child columns, and adds it to the collection.
+ The parent columns of the relation.
+ The child columns of the relation.
+ The argument is a null value.
+ The relation already belongs to this collection, or it belongs to another collection.
+ The collection already has a relation with the same name. (The comparison is not case sensitive.)
+ The relation has entered an invalid state since it was created.
+ The created relation.
+
+
+ Adds a to the .
+ The to add to the collection.
+ The parameter is a null value.
+ The relation already belongs to this collection, or it belongs to another collection.
+ The collection already has a relation with the specified name. (The comparison is not case sensitive.)
+ The relation has entered an invalid state since it was created.
+
+
+ Creates a with the specified name, and parent and child columns, and adds it to the collection.
+ The name of the relation.
+ The parent column of the relation.
+ The child column of the relation.
+ The created relation.
+
+
+ Creates a with the specified name, parent and child columns, with optional constraints according to the value of the parameter, and adds it to the collection.
+ The name of the relation.
+ The parent column of the relation.
+ The child column of the relation.
+
+ to create constraints; otherwise . (The default is ).
+ The created relation.
+
+
+ Creates a with the specified name and arrays of parent and child columns, and adds it to the collection.
+ The name of the to create.
+ An array of parent objects.
+ An array of child objects.
+ The relation name is a null value.
+ The relation already belongs to this collection, or it belongs to another collection.
+ The collection already has a relation with the same name. (The comparison is not case sensitive.)
+ The relation has entered an invalid state since it was created.
+ The created .
+
+
+ Creates a with the specified name, arrays of parent and child columns, and value specifying whether to create a constraint, and adds it to the collection.
+ The name of the to create.
+ An array of parent objects.
+ An array of child objects.
+
+ to create a constraint; otherwise .
+ The relation name is a null value.
+ The relation already belongs to this collection, or it belongs to another collection.
+ The collection already has a relation with the same name. (The comparison is not case sensitive.)
+ The relation has entered an invalid state since it was created.
+ The created relation.
+
+
+ Performs verification on the table.
+ The relation to check.
+ The relation is null.
+ The relation already belongs to this collection, or it belongs to another collection.
+ The collection already has a relation with the same name. (The comparison is not case sensitive.)
+
+
+ Copies the elements of the specified array to the end of the collection.
+ The array of objects to add to the collection.
+
+
+ Verifies whether the specified can be removed from the collection.
+ The relation to perform the check against.
+
+ if the can be removed; otherwise, .
+
+
+ Clears the collection of any relations.
+
+
+ Verifies whether a with the specific name (case insensitive) exists in the collection.
+ The name of the relation to find.
+
+ , if a relation with the specified name exists; otherwise .
+
+
+ Copies the collection of objects starting at the specified index.
+ The array of objects to copy the collection to.
+ The index to start from.
+
+
+ This method supports the .NET infrastructure and is not intended to be used directly from your code.
+ The referenced DataSet.
+
+
+ Gets the index of the specified object.
+ The relation to search for.
+ The 0-based index of the relation, or -1 if the relation is not found in the collection.
+
+
+ Gets the index of the specified by name.
+ The name of the relation to find.
+ The zero-based index of the relation with the specified name, or -1 if the relation does not exist in the collection.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Removes the specified relation from the collection.
+ The relation to remove.
+ The relation is a null value.
+ The relation does not belong to the collection.
+
+
+ Removes the relation with the specified name from the collection.
+ The name of the relation to remove.
+ The collection does not have a relation with the specified name.
+
+
+ Removes the relation at the specified index from the collection.
+ The index of the relation to remove.
+ The collection does not have a relation at the specified index.
+
+
+ Performs a verification on the specified object.
+ The object to verify.
+ The collection does not have a relation at the specified index.
+ The specified relation does not belong to this collection, or it belongs to another collection.
+
+
+ Gets the object at the specified index.
+ The zero-based index to find.
+ The index value is greater than the number of items in the collection.
+ The , or a null value if the specified does not exist.
+
+
+ Gets the object specified by name.
+ The name of the relation to find.
+ The named , or a null value if the specified does not exist.
+
+
+ Represents a row of data in a .
+
+
+ Initializes a new instance of the DataRow class using the specified builder. Only for internal usage.
+ The builder that contains the table and record for the new row.
+
+
+ Commits all the changes made to this row since the last time was called.
+ The row does not belong to the table.
+
+
+ Starts an edit operation on a object.
+ The method was called inside the event.
+ The method was called upon a deleted row.
+
+
+ Cancels the current edit on the row.
+ The method was called inside the event.
+
+
+ Clears the errors for the row. This includes the and errors set with .
+
+
+ Deletes the .
+ The has already been deleted.
+
+
+ Ends the edit occurring on the row.
+ The method was called inside the event.
+ The edit broke a constraint.
+ The row belongs to the table and the edit tried to change the value of a read-only column.
+ The edit tried to put a null value into a column where is false.
+
+
+ Gets the child rows of this using the specified .
+ The to use.
+ The relation and row do not belong to the same table.
+ The relation is .
+ The row does not belong to the table.
+ The row does not have this version of data.
+ An array of objects or an array of length zero.
+
+
+ Gets the child rows of a using the specified , and .
+ The to use.
+ One of the values specifying the version of the data to get. Possible values are , , , and .
+ The relation and row do not belong to the same table.
+ The is .
+ The row does not belong to the table.
+ The row does not have the requested .
+ An array of objects.
+
+
+ Gets the child rows of a using the specified of a .
+ The of the to use.
+ The relation and row do not belong to the same table.
+ The row does not belong to the table.
+ An array of objects or an array of length zero.
+
+
+ Gets the child rows of a using the specified of a , and .
+ The of the to use.
+ One of the values specifying the version of the data to get. Possible values are , , , and .
+ The relation and row do not belong to the same table.
+ The is .
+ The row does not belong to the table.
+ The row does not have the requested .
+ An array of objects or an array of length zero.
+
+
+ Gets the error description of the specified .
+ A .
+ The text of the error description.
+
+
+ Gets the error description for the column specified by index.
+ The zero-based index of the column.
+ The argument is out of range.
+ The text of the error description.
+
+
+ Gets the error description for a column, specified by name.
+ The name of the column.
+ The text of the error description.
+
+
+ Gets an array of columns that have errors.
+ An array of objects that contain errors.
+
+
+ Gets the parent row of a using the specified .
+ The to use.
+ The does not belong to the .
+
+-or-
+
+ The row is .
+ A child row has multiple parents.
+ This row does not belong to the child table of the object.
+ The row does not belong to a table.
+ The parent of the current row.
+
+
+ Gets the parent row of a using the specified , and .
+ The to use.
+ One of the values specifying the version of the data to get.
+ The row is .
+
+-or-
+
+ The does not belong to this table's parent relations.
+ A child row has multiple parents.
+ The relation's child table is not the table the row belongs to.
+ The row does not belong to a table.
+ The row does not have this version of data.
+ The parent of the current row.
+
+
+ Gets the parent row of a using the specified of a .
+ The of a .
+ The relation and row do not belong to the same table.
+ A child row has multiple parents.
+ The row does not belong to the table.
+ The parent of the current row.
+
+
+ Gets the parent row of a using the specified of a , and .
+ The of a .
+ One of the values.
+ The relation and row do not belong to the same table.
+ The is .
+ A child row has multiple parents.
+ The row does not belong to the table.
+ The row does not have the requested .
+ The parent of the current row.
+
+
+ Gets the parent rows of a using the specified .
+ The to use.
+ The does not belong to this row's .
+ The row is .
+ The relation's child table is not the table the row belongs to.
+ The row does not belong to a .
+ An array of objects or an array of length zero.
+
+
+ Gets the parent rows of a using the specified , and .
+ The to use.
+ One of the values specifying the version of the data to get.
+ The does not belong to this row's .
+ The row is .
+ The relation's child table is not the table the row belongs to.
+ The row does not belong to a .
+ The row does not have the requested .
+ An array of objects or an array of length zero.
+
+
+ Gets the parent rows of a using the specified of a .
+ The of a .
+ The relation and row do not belong to the same table.
+ The row does not belong to the table.
+ An array of objects or an array of length zero.
+
+
+ Gets the parent rows of a using the specified of a , and .
+ The of a .
+ One of the values specifying the version of the data to get. Possible values are , , , and .
+ The relation and row do not belong to the same table.
+ The is .
+ The row does not belong to the table.
+ The row does not have the requested .
+ An array of objects or an array of length zero.
+
+
+ Gets a value that indicates whether a specified version exists.
+ One of the values that specifies the row version.
+
+ if the version exists; otherwise, .
+
+
+ Gets a value that indicates whether the specified contains a null value.
+ A .
+
+ is .
+ The row does not belong to the table.
+
+ if the column contains a null value; otherwise, .
+
+
+ Gets a value that indicates whether the specified and contains a null value.
+ A .
+ One of the values that specifies the row version. Possible values are , , , and .
+
+ is .
+ The row does not belong to the table.
+ The row does not have the requested .
+
+ if the column contains a null value; otherwise, .
+
+
+ Gets a value that indicates whether the column at the specified index contains a null value.
+ The zero-based index of the column.
+ No column corresponds to the index specified by .
+ The row does not belong to the table.
+
+ if the column contains a null value; otherwise, .
+
+
+ Gets a value that indicates whether the named column contains a null value.
+ The name of the column.
+ The column specified by cannot be found.
+
+ is .
+ The row does not belong to the table.
+
+ if the column contains a null value; otherwise, .
+
+
+ Rejects all changes made to the row since was last called.
+ The row does not belong to the table.
+
+
+ Changes the of a to .
+
+
+ Sets the error description for a column specified as a .
+ The to set the error description for.
+ The error description.
+
+
+ Sets the error description for a column specified by index.
+ The zero-based index of the column.
+ The error description.
+ The argument is out of range
+
+
+ Sets the error description for a column specified by name.
+ The name of the column.
+ The error description.
+
+
+ Changes the of a to .
+
+
+ Sets the value of the specified to a null value.
+ A .
+
+
+ Sets the parent row of a with specified new parent .
+ The new parent .
+
+
+ Sets the parent row of a with specified new parent and .
+ The new parent .
+ The relation to use.
+ One of the rows does not belong to a table
+ One of the rows is .
+ The relation does not belong to the of the object.
+ The relation's child is not the table this row belongs to.
+
+
+ Gets a value that indicates whether there are errors in a row.
+
+ if the row contains an error; otherwise, .
+
+
+ Gets or sets the data stored in the specified .
+ A that contains the data.
+ The column does not belong to this table.
+ The is null.
+ An attempt was made to set a value on a deleted row.
+ The data types of the value and the column do not match.
+ An that contains the data.
+
+
+ Gets the specified version of data stored in the specified .
+ A that contains information about the column.
+ One of the values that specifies the row version that you want. Possible values are , , , and .
+ The column does not belong to the table.
+ The argument contains null.
+ The row does not have this version of data.
+ An that contains the data.
+
+
+ Gets or sets the data stored in the column specified by index.
+ The zero-based index of the column.
+ Occurs when you try to set a value on a deleted row.
+ The argument is out of range.
+ Occurs when you set the value and the new value's does not match .
+ An that contains the data.
+
+
+ Gets the data stored in the column, specified by index and version of the data to retrieve.
+ The zero-based index of the column.
+ One of the values that specifies the row version that you want. Possible values are , , , and .
+ The argument is out of range.
+ The data types of the value and the column do not match.
+ The row does not have this version of data.
+ An attempt was made to set a value on a deleted row.
+ An that contains the data.
+
+
+ Gets or sets the data stored in the column specified by name.
+ The name of the column.
+ The column specified by cannot be found.
+ Occurs when you try to set a value on a deleted row.
+ Occurs when you set a value and its does not match .
+ Occurs when you try to insert a null value into a column where is set to .
+ An that contains the data.
+
+
+ Gets the specified version of data stored in the named column.
+ The name of the column.
+ One of the values that specifies the row version that you want. Possible values are , , , and .
+ The column specified by cannot be found.
+ The data types of the value and the column do not match.
+ The row does not have this version of data.
+ The row was deleted.
+ An that contains the data.
+
+
+ Gets or sets all the values for this row through an array.
+ The array is larger than the number of columns in the table.
+ A value in the array does not match its in its respective .
+ An edit broke a constraint.
+ An edit tried to change the value of a read-only column.
+ An edit tried to put a null value in a column where of the object is .
+ The row has been deleted.
+ An array of type .
+
+
+ Gets or sets the custom error description for a row.
+ The text describing an error.
+
+
+ Gets the current state of the row with regard to its relationship to the .
+ One of the values.
+
+
+ Gets the for which this row has a schema.
+ The to which this row belongs.
+
+
+ Describes an action performed on a .
+
+
+ The row has been added to the table.
+
+
+ The row has changed.
+
+
+ The original and the current versions of the row have been changed.
+
+
+ The original version of the row has been changed.
+
+
+ The changes to the row have been committed.
+
+
+ The row was deleted from the table.
+
+
+ The row has not changed.
+
+
+ The most recent change to the row has been rolled back.
+
+
+ The type supports the .NET infrastructure and is not intended to be used directly from your code.
+
+
+ Provides data for the , , , and events.
+
+
+ Initializes a new instance of the class.
+ The upon which an action is occurring.
+ One of the values.
+
+
+ Gets the action that has occurred on a .
+ One of the values.
+
+
+ Gets the row upon which an action has occurred.
+ The upon which an action has occurred.
+
+
+ Represents the method that will handle the , , , and events of a .
+ The source of the event.
+ A that contains the event data.
+
+
+ Represents a collection of rows for a .
+
+
+ Adds the specified to the object.
+ The to add.
+ The row is null.
+ The row either belongs to another table or already belongs to this table.
+ The addition invalidates a constraint.
+ The addition tries to put a null in a where is false.
+
+
+ Creates a row using specified values and adds it to the .
+ The array of values that are used to create the new row.
+ The array is larger than the number of columns in the table.
+ A value does not match its respective column type.
+ Adding the row invalidates a constraint.
+ Trying to put a null in a column where is false.
+ The new row.
+
+
+ Clears the collection of all rows.
+ A is enforced on the .
+
+
+ Gets a value that indicates whether the primary key of any row in the collection contains the specified value.
+ The value of the primary key to test for.
+ The table does not have a primary key.
+
+ if the collection contains a with the specified primary key value; otherwise, .
+
+
+ Gets a value that indicates whether the primary key columns of any row in the collection contain the values specified in the object array.
+ An array of primary key values to test for.
+ The table does not have a primary key.
+
+ if the contains a with the specified key values; otherwise, .
+
+
+ Copies all the objects from the collection into the given array, starting at the given destination array index.
+ The one-dimensional array that is the destination of the elements copied from the . The array must have zero-based indexing.
+ The zero-based index in the array at which copying begins.
+
+
+ Copies all the objects from the collection into the given array, starting at the given destination array index.
+ The one-dimensional array that is the destination of the elements copied from the . The array must have zero-based indexing.
+ The zero-based index in the array at which copying begins.
+
+
+ Gets the row specified by the primary key value.
+ The primary key value of the to find.
+ The table does not have a primary key.
+ A that contains the primary key value specified; otherwise a null value if the primary key value does not exist in the .
+
+
+ Gets the row that contains the specified primary key values.
+ An array of primary key values to find. The type of the array is .
+ No row corresponds to that index value.
+ The table does not have a primary key.
+ A object that contains the primary key values specified; otherwise a null value if the primary key value does not exist in the .
+
+
+ Gets an for this collection.
+ An for this collection.
+
+
+ Gets the index of the specified object.
+ The to search for.
+ The zero-based index of the row, or -1 if the row is not found in the collection.
+
+
+ Inserts a new row into the collection at the specified location.
+ The to add.
+ The (zero-based) location in the collection where you want to add the .
+ The is less than 0.
+
+
+ Removes the specified from the collection.
+ The to remove.
+
+
+ Removes the row at the specified index from the collection.
+ The index of the row to remove.
+
+
+ Gets the total number of objects in this collection.
+ The total number of objects in this collection.
+
+
+ Gets the row at the specified index.
+ The zero-based index of the row to return.
+ The index value is greater than the number of items in the collection.
+ The specified .
+
+
+ Returns a singleton instance of the class.
+
+
+ Gets a singleton instance of . This property is read-only.
+ An instance of a .
+
+
+ Compares two objects for equivalence by using value-based comparison.
+ The type of objects to be compared, typically .
+
+
+ Compares two objects by using a column-by-column, value-based comparison.
+ The first object to compare.
+ The second object to compare.
+ One or both of the source objects are .
+
+ if the two objects have ordered sets of column values that are equal; otherwise, .
+
+
+ Returns a hash code for the specified object.
+ The to compute the hash code from.
+ The source objects does not belong to a .
+ The source objects is .
+ An value representing the hash code of the row.
+
+
+ Gets a singleton instance of . This property is read-only.
+ An instance of a .
+
+
+ Defines the extension methods to the class. This is a static class.
+
+
+ Provides strongly-typed access to each of the column values in the specified row. The method also supports nullable types.
+ The input , which acts as the instance for the extension method.
+ The input object that specifies the column to return the value of.
+ A generic parameter that specifies the return type of the column.
+ The value type of the underlying column could not be cast to the type specified by the generic parameter, .
+ The column specified by does not occur in the that the is a part of.
+ A null value was assigned to a non-nullable type.
+ The value, of type , of the specified by .
+
+
+ Provides strongly-typed access to each of the column values in the specified row. The method also supports nullable types.
+ The input , which acts as the instance for the extension method.
+ The input object that specifies the column to return the value of.
+ A enumeration that specifies the version of the column value to return, such as or version.
+ A generic parameter that specifies the return type of the column.
+ The value type of the underlying column could not be cast to the type specified by the generic parameter, .
+ The column specified by does not exist in the that the is a part of.
+ A null value was assigned to a non-nullable type.
+ The value, of type , of the specified by and .
+
+
+ Provides strongly-typed access to each of the column values in the specified row. The method also supports nullable types.
+ The input , which acts as the instance for the extension method.
+ The column index.
+ A generic parameter that specifies the return type of the column.
+ The value type of the underlying column could not be cast to the type specified by the generic parameter, .
+ The column specified by does not exist in the that the is a part of.
+ A null value was assigned to a non-nullable type.
+ The value, of type , of the specified by .
+
+
+ Provides strongly-typed access to each of the column values in the specified row. The method also supports nullable types.
+ The input , which acts as the instance for the extension method.
+ The zero-based ordinal of the column to return the value of.
+ A enumeration that specifies the version of the column value to return, such as or version.
+ A generic parameter that specifies the return type of the column.
+ The value type of the underlying column could not be cast to the type specified by the generic parameter, .
+ The column specified by does not exist in the that the is a part of.
+ A null value was assigned to a non-nullable type.
+ The value, of type , of the specified by and .
+
+
+ Provides strongly-typed access to each of the column values in the specified row. The method also supports nullable types.
+ The input , which acts as the instance for the extension method.
+ The name of the column to return the value of.
+ A generic parameter that specifies the return type of the column.
+ The value type of the underlying column could not be cast to the type specified by the generic parameter, .
+ The column specified by does not occur in the that the is a part of.
+ A value was assigned to a non-nullable type.
+ The value, of type , of the specified by .
+
+
+ Provides strongly-typed access to each of the column values in the specified row. The method also supports nullable types.
+ The input , which acts as the instance for the extension method.
+ The name of the column to return the value of.
+ A enumeration that specifies the version of the column value to return, such as or version.
+ A generic parameter that specifies the return type of the column.
+ The value type of the underlying column could not be cast to the type specified by the generic parameter, .
+ The column specified by does not exist in the that the is a part of.
+ A null value was assigned to a non-nullable type.
+ The value, of type , of the specified by and .
+
+
+ Sets a new value for the specified column in the . The method also supports nullable types.
+ The input , which acts as the instance for the extension method.
+ The input specifies which row value to retrieve.
+ The new row value for the specified column, of type .
+ A generic parameter that specifies the value type of the column.
+ The column specified by cannot be found.
+ The is null.
+ Occurs when attempting to set a value on a deleted row.
+ The value type of the underlying column could not be cast to the type specified by the generic parameter, .
+
+
+ Sets a new value for the specified column in the the method is called on. The method also supports nullable types.
+ The input , which acts as the instance for the extension method.
+ The zero-based ordinal of the column to set the value of.
+ The new row value for the specified column, of type .
+ A generic parameter that specifies the value type of the column.
+ Occurs when attempting to set a value on a deleted row.
+ The argument is out of range.
+ The value type of the underlying column could be not cast to the type specified by the generic parameter, .
+
+
+ Sets a new value for the specified column in the . The method also supports nullable types.
+ The input , which acts as the instance for the extension method.
+ The name of the column to set the value of.
+ The new row value for the specified column, of type .
+ A generic parameter that specifies the value type of the column.
+ The column specified by cannot be found.
+ Occurs when attempting to set a value on a deleted row.
+ The value type of the underlying column could not be cast to the type specified by the generic parameter, .
+
+
+ Gets the state of a object.
+
+
+ The row has been added to a , and has not been called.
+
+
+ The row was deleted using the method of the .
+
+
+ The row has been created but is not part of any . A is in this state immediately after it has been created and before it is added to a collection, or if it has been removed from a collection.
+
+
+ The row has been modified and has not been called.
+
+
+ The row has not changed since was last called.
+
+
+ Describes the version of a .
+
+
+ The row contains current values.
+
+
+ The default version of . For a value of , or , the default version is . For a value of , the version is .
+
+
+ The row contains its original values.
+
+
+ The row contains a proposed value.
+
+
+ Represents a customized view of a .
+
+
+ Event that is raised when a property is changed.
+
+
+ Begins an edit procedure.
+
+
+ Cancels an edit procedure.
+
+
+ Returns a for the child with the specified child .
+ The object.
+ a for the child .
+
+
+ Returns a for the child with the specified and parent.
+ The object.
+ The parent object.
+
+ is .
+ A for the child .
+
+
+ Returns a for the child with the specified child name.
+ A string containing the name.
+ a for the child .
+
+
+ Returns a for the child with the specified name and parent.
+ A string containing the name.
+
+ to keep the created child view in sync with the parent; otherwise, .
+
+ is .
+ a for the child .
+
+
+ Deletes a row.
+
+
+ Commits changes to the underlying and ends the editing session that was begun with . Use to discard the changes made to the .
+
+
+ Gets a value indicating whether the current is identical to the specified object.
+ An to be compared.
+
+ if is a and it returns the same row as the current ; otherwise .
+
+
+ Returns the hash code of the object.
+ A 32-bit signed integer hash code 1, which represents Boolean if the value of this instance is nonzero; otherwise the integer zero, which represents Boolean .
+
+
+ Returns a collection of custom attributes for this instance of a component.
+ An AttributeCollection containing the attributes for this object.
+
+
+ Returns the class name of this instance of a component.
+ The class name of this instance of a component.
+
+
+ Returns the name of this instance of a component.
+ The name of this instance of a component.
+
+
+ Returns a type converter for this instance of a component.
+ The type converter for this instance of a component.
+
+
+ Returns the default event for this instance of a component.
+ The default event for this instance of a component.
+
+
+ Returns the default property for this instance of a component.
+ The default property for this instance of a component.
+
+
+ Returns an editor of the specified type for this instance of a component.
+ A that represents the editor for this object.
+ An of the specified type that is the editor for this object, or if the editor cannot be found.
+
+
+ Returns the events for this instance of a component.
+ The events for this instance of a component.
+
+
+ Returns the events for this instance of a component with specified attributes.
+ The attributes.
+ The events for this instance of a component.
+
+
+ Returns the properties for this instance of a component.
+ The properties for this instance of a component.
+
+
+ Returns the properties for this instance of a component with specified attributes.
+ The attributes.
+ The properties for this instance of a component.
+
+
+ Returns an object that contains the property described by the specified property descriptor.
+ A that represents the property whose owner is to be found.
+ An that represents the owner of the specified property.
+
+
+ Gets the to which this row belongs.
+ The to which this row belongs.
+
+
+ Indicates whether the row is in edit mode.
+
+ if the row is in edit mode; otherwise .
+
+
+ Indicates whether a is new.
+
+ if the row is new; otherwise .
+
+
+ Gets or sets a value in a specified column.
+ The column index.
+ The doesn't allow edits and is not new.
+ No column corresponds to that index value.
+ The value of the column.
+
+
+ Gets or sets a value in a specified column.
+ String that contains the specified column.
+ A column with the specified name or relation was not found.
+
+-or-
+
+The doesn't allow edits and is not new.
+ Unmatched when setting a value.
+ The value of the column.
+
+
+ Gets the being viewed.
+ The being viewed by the .
+
+
+ Gets the current version description of the .
+ One of the values. Possible values for the property are , , , and .
+
+
+ Gets a message that describes any validation errors for the object.
+ The validation error on the object.
+
+
+ Gets the error message for the property with the given name.
+ The name of the property whose error message to get.
+ The error message for the property. The default is an empty string ("").
+
+
+ Represents an in-memory cache of data.
+
+
+ Occurs after the is initialized.
+
+
+ Occurs when a target and source have the same primary key value, and is set to true.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialized data.
+ The serialized data for the data set.
+ Contextual information about the serialized stream.
+ .NET 7 and later versions only: contains binary data.
+
+
+ Initializes a new instance of the class with serialized data.
+ The serialized data for the data set.
+ Contextual information about the serialized stream.
+
+ .NET 7 and later versions only: contains binary data.
+
+
+ Initializes a new instance of the class with the given name.
+ The name of the .
+
+
+ Commits all the changes made to this since it was loaded or since the last time was called.
+
+
+ Begins the initialization of a that is used on a form or used by another component. The initialization occurs at run time.
+
+
+ Clears the of any data by removing all rows in all tables.
+
+
+ Copies the structure of the , including all schemas, relations, and constraints. Does not copy any data.
+ A new with the same schema as the current , but none of the data.
+
+
+ Copies both the structure and data for this .
+ A new with the same structure (table schemas, relations, and constraints) and data as this .
+
+
+ Returns a with one result set per , in the same sequence as the tables appear in the collection.
+ A containing one or more result sets, corresponding to the instances contained within the source .
+
+
+ Returns a with one result set per .
+ An array of DataTables providing the order of the result sets to be returned in the .
+ A containing one or more result sets, corresponding to the instances contained within the source . The returned result sets are in the order specified by the parameter.
+
+
+ Determines the for a .
+ The that a 's protected constructor is invoked with during deserialization in remoting scenarios.
+ The that a 's protected constructor is invoked with during deserialization in remoting scenarios.
+ An enumeration indicating whether schema information has been omitted from the payload.
+
+
+ Determines the for a .
+ The instance that is passed during deserialization of the .
+ An enumeration indicating whether schema information has been omitted from the payload.
+
+
+ Ends the initialization of a that is used on a form or used by another component. The initialization occurs at run time.
+
+
+ Gets a copy of the that contains all changes made to it since it was loaded or since was last called.
+ A copy of the changes from this that can have actions performed on it and later be merged back in using . If no changed rows are found, the method returns .
+
+
+ Gets a copy of the containing all changes made to it since it was last loaded, or since was called, filtered by .
+ One of the values.
+ A filtered copy of the that can have actions performed on it, and subsequently be merged back in using . If no rows of the desired are found, the method returns .
+
+
+ Gets a copy of for the DataSet.
+ The specified schema set.
+ A copy of .
+
+
+ Populates a serialization information object with the data needed to serialize the .
+ A that holds the serialized data associated with the .
+ A that contains the source and destination of the serialized stream associated with the .
+ The parameter is .
+
+
+ Returns a serializable instance.
+ The instance.
+
+
+ Deserializes the table data from the binary or XML stream.
+ The instance.
+ The streaming context.
+
+
+ Returns the XML representation of the data stored in the .
+ A string that is a representation of the data stored in the .
+
+
+ Returns the XML Schema for the XML representation of the data stored in the .
+ String that is the XML Schema for the XML representation of the data stored in the .
+
+
+ Gets a value indicating whether the has changes, including new, deleted, or modified rows.
+
+ if the has changes; otherwise, .
+
+
+ Gets a value indicating whether the has changes, including new, deleted, or modified rows, filtered by .
+ One of the values.
+
+ if the has changes; otherwise, .
+
+
+ Applies the XML schema from the specified to the .
+ The from which to read the schema.
+ An array of namespace Uniform Resource Identifier (URI) strings to be excluded from schema inference.
+
+
+ Applies the XML schema from the specified to the .
+ The from which to read the schema.
+ An array of namespace Uniform Resource Identifier (URI) strings to be excluded from schema inference.
+
+
+ Applies the XML schema from the specified file to the .
+ The name of the file (including the path) from which to read the schema.
+ An array of namespace Uniform Resource Identifier (URI) strings to be excluded from schema inference.
+
+ is not set to .
+
+
+ Applies the XML schema from the specified to the .
+ The from which to read the schema.
+ An array of namespace Uniform Resource Identifier (URI) strings to be excluded from schema inference.
+
+
+ Deserialize all of the tables data of the DataSet from the binary or XML stream.
+
+
+ Inspects the format of the serialized representation of the .
+ The object.
+ The object.
+
+ if the specified represents a serialized in its binary format, otherwise.
+
+
+ Fills a with values from a data source using the supplied , using an array of instances to supply the schema and namespace information.
+ An that provides one or more result sets.
+ A value from the enumeration that indicates how rows already in the instances within the will be combined with incoming rows that share the same primary key.
+ An array of instances, from which the method retrieves name and namespace information. Each of these tables must be a member of the contained by this .
+
+
+ Fills a with values from a data source using the supplied , using an array of instances to supply the schema and namespace information.
+ An that provides one or more result sets.
+ A value from the enumeration that indicates how rows already in the instances within the will be combined with incoming rows that share the same primary key.
+ A delegate to call when an error occurs while loading data.
+ An array of instances, from which the method retrieves name and namespace information.
+
+
+ Fills a with values from a data source using the supplied , using an array of strings to supply the names for the tables within the .
+ An that provides one or more result sets.
+ A value from the enumeration that indicates how rows already in the instances within the will be combined with incoming rows that share the same primary key.
+ An array of strings, from which the method retrieves table name information.
+
+
+ Merges an array of objects into the current .
+ The array of objects to be merged into the .
+
+
+ Merges an array of objects into the current , preserving or discarding changes in the and handling an incompatible schema according to the given arguments.
+ The array of objects to be merged into the .
+
+ to preserve changes in the ; otherwise, .
+ One of the values.
+
+
+ Merges a specified and its schema into the current .
+ The whose data and schema will be merged.
+ One or more constraints cannot be enabled.
+ The is .
+
+
+ Merges a specified and its schema into the current , preserving or discarding any changes in this according to the given argument.
+ The whose data and schema will be merged.
+
+ to preserve changes in the current ; otherwise, .
+
+
+ Merges a specified and its schema with the current , preserving or discarding changes in the current and handling an incompatible schema according to the given arguments.
+ The whose data and schema will be merged.
+
+ to preserve changes in the current ; otherwise, .
+ One of the values.
+ The is .
+
+
+ Merges a specified and its schema into the current .
+ The whose data and schema will be merged.
+ The is .
+
+
+ Merges a specified and its schema into the current , preserving or discarding changes in the and handling an incompatible schema according to the given arguments.
+ The whose data and schema will be merged.
+ One of the values.
+
+ to preserve changes in the ; otherwise, .
+ The is .
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Occurs when a object is removed from a .
+ The being removed.
+
+
+ Occurs when a is removed from a .
+ The being removed.
+
+
+ Sends a notification that the specified property is about to change.
+ The name of the property that is about to change.
+
+
+ Reads XML schema and data into the using the specified .
+ An object that derives from .
+ The used to read the data.
+
+
+ Reads XML schema and data into the using the specified and .
+ The from which to read.
+ One of the values.
+ The used to read the data.
+
+
+ Reads XML schema and data into the using the specified .
+ The from which to read the schema and data.
+ The used to read the data.
+
+
+ Reads XML schema and data into the using the specified and .
+ The from which to read.
+ One of the values.
+ The used to read the data.
+
+
+ Reads XML schema and data into the using the specified file.
+ The filename (including the path) from which to read.
+
+ is not set to .
+ The used to read the data.
+
+
+ Reads XML schema and data into the using the specified file and .
+ The filename (including the path) from which to read.
+ One of the values.
+
+ is not set to .
+ The used to read the data.
+
+
+ Reads XML schema and data into the using the specified .
+ The from which to read.
+ The used to read the data.
+
+
+ Reads XML schema and data into the using the specified and .
+ The from which to read.
+ One of the values.
+ The used to read the data.
+
+
+ Reads the XML schema from the specified into the .
+ The from which to read.
+
+
+ Reads the XML schema from the specified into the .
+ The from which to read.
+
+
+ Reads the XML schema from the specified file into the .
+ The file name (including the path) from which to read.
+
+ is not set to .
+
+
+ Reads the XML schema from the specified into the .
+ The from which to read.
+
+
+ Ignores attributes and returns an empty DataSet.
+ The specified XML reader.
+
+
+ Rolls back all the changes made to the since it was created, or since the last time was called.
+
+
+ Clears all tables and removes all relations, foreign constraints, and tables from the . Subclasses should override to restore a to its original state.
+
+
+ Gets a value indicating whether property should be persisted.
+
+ if the property value has been changed from its default; otherwise, .
+
+
+ Gets a value indicating whether property should be persisted.
+
+ if the property value has been changed from its default; otherwise, .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ A .
+
+
+ For a description of this member, see .
+ A .
+
+
+ Writes the current data for the using the specified .
+ A object used to write to a file.
+
+
+ Writes the current data, and optionally the schema, for the using the specified and . To write the schema, set the value for the parameter to .
+ A object used to write to a file.
+ One of the values.
+
+
+ Writes the current data for the using the specified .
+ The object with which to write.
+
+
+ Writes the current data, and optionally the schema, for the using the specified and . To write the schema, set the value for the parameter to .
+ A object used to write the document.
+ One of the values.
+
+
+ Writes the current data for the to the specified file.
+ The file name (including the path) to which to write.
+
+ is not set to .
+
+
+ Writes the current data, and optionally the schema, for the to the specified file using the specified . To write the schema, set the value for the parameter to .
+ The file name (including the path) to which to write.
+ One of the values.
+
+ is not set to .
+
+
+ Writes the current data for the to the specified .
+ The with which to write.
+
+
+ Writes the current data, and optionally the schema, for the using the specified and . To write the schema, set the value for the parameter to .
+ The with which to write.
+ One of the values.
+
+
+ Writes the structure as an XML schema to the specified object.
+ A object used to write to a file.
+
+
+ Writes the structure as an XML schema to the specified object.
+ A object to write to.
+ A delegate used to convert to string.
+
+
+ Writes the structure as an XML schema to the specified object.
+ The object with which to write.
+
+
+ Writes the structure as an XML schema to the specified .
+ A object to write to.
+ A delegate used to convert to string.
+
+
+ Writes the structure as an XML schema to a file.
+ The file name (including the path) to which to write.
+
+ is not set to .
+
+
+ Writes the structure as an XML schema to a file.
+ The name of the file to write to.
+ A delegate used to convert to string.
+
+
+ Writes the structure as an XML schema to an object.
+ The to write to.
+
+
+ Writes the structure as an XML schema to the specified .
+ A object to write to.
+ A delegate used to convert to string.
+
+
+ Gets or sets a value indicating whether string comparisons within objects are case-sensitive.
+
+ if string comparisons are case-sensitive; otherwise, . The default is .
+
+
+ Gets or sets the name of the current .
+ The name of the .
+
+
+ Gets a custom view of the data contained in the to allow filtering, searching, and navigating using a custom .
+ A object.
+
+
+ Gets or sets a value indicating whether constraint rules are followed when attempting any update operation.
+ One or more constraints cannot be enforced.
+
+ if rules are enforced; otherwise, . The default is .
+
+
+ Gets the collection of customized user information associated with the .
+ A with all custom user information.
+
+
+ Gets a value indicating whether there are errors in any of the objects within this .
+
+ if any table contains an error; otherwise, .
+
+
+ Gets a value that indicates whether the is initialized.
+
+ to indicate the component has completed initialization; otherwise, .
+
+
+ Gets or sets the locale information used to compare strings within the table.
+ A that contains data about the user's machine locale. The default is .
+
+
+ Gets or sets the namespace of the .
+ The namespace already has data.
+ The namespace of the .
+
+
+ Gets or sets an XML prefix that aliases the namespace of the .
+ The XML prefix for the namespace.
+
+
+ Gets the collection of relations that link tables and allow navigation from parent tables to child tables.
+ A that contains a collection of objects. An empty collection is returned if no objects exist.
+
+
+ Gets or sets the serialization format for the that's used during remoting.
+ .NET 7 and later versions only: is .
+ One of the enumeration values that specifies the serialization format.
+
+
+ Gets or sets a for a .
+ A for a .
+
+
+ Gets or sets an for the .
+ An for the .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ Gets the collection of tables contained in the .
+ The contained by this . An empty collection is returned if no objects exist.
+
+
+ Describes the serialization format for columns in a .
+
+
+
+ is always stored in Local. If or is assigned to a column in this mode, it is first converted into Local. Serialization in this mode is always performed in Local. There is an offset during serialization.
+
+
+
+ is always stored in Unspecified. If or is assigned to a column in this mode, it is first converted into . Serialization in this mode does not cause an offset.
+
+
+
+ is stored in Unspecified. If or is assigned to a column in this mode, it is first converted into . Serialization in this mode causes offset. This is the default behavior and is backward compatible. This option should be thought of as being Unspecified in storage but applying an offset that is similar to during serialization.
+
+
+
+ is stored in Universal Coordinated Time (UTC). If or is assigned to a column in this mode, it is first converted into format. Serialization in this mode is always performed in . There is no offset during serialization.
+
+
+ Marks a property, event, or extender with a description. Visual designers can display this description when referencing the member.
+
+
+ Initializes a new instance of the class using the specified description string.
+ The description string.
+
+
+ Gets the text for the description.
+ The description string.
+
+
+ Represents one table of in-memory data.
+
+
+ Occurs after a value has been changed for the specified in a .
+
+
+ Occurs when a value is being changed for the specified in a .
+
+
+ Occurs after the is initialized.
+
+
+ Occurs after a has been changed successfully.
+
+
+ Occurs when a is changing.
+
+
+ Occurs after a row in the table has been deleted.
+
+
+ Occurs before a row in the table is about to be deleted.
+
+
+ Occurs after a is cleared.
+
+
+ Occurs when a is cleared.
+
+
+ Occurs when a new is inserted.
+
+
+ Checks whether initialization is in progress. The initialization occurs at run time.
+
+
+ Initializes a new instance of the class with no arguments.
+
+
+ Initializes a new instance of the class with serialized data.
+ The serialized data for the data set.
+ Contextual information about the serialized stream.
+ .NET 7 and later versions only: contains binary data.
+
+
+ Initializes a new instance of the class with the specified table name.
+ The name to give the table. If is or an empty string, a default name is given when added to the .
+
+
+ Initializes a new instance of the class using the specified table name and namespace.
+ The name to give the table. If is or an empty string, a default name is given when added to the .
+ The namespace for the XML representation of the data stored in the .
+
+
+ Commits all the changes made to this table since the last time was called.
+
+
+ Begins the initialization of a that is used on a form or used by another component. The initialization occurs at run time.
+
+
+ Turns off notifications, index maintenance, and constraints while loading data.
+
+
+ Clears the of all data.
+
+
+ Clones the structure of the , including all schemas and constraints.
+ A new with the same schema as the current .
+
+
+ Computes the given expression on the current rows that pass the filter criteria.
+ The expression to compute.
+ The filter to limit the rows that evaluate in the expression.
+ An , set to the result of the computation. If the expression evaluates to null, the return value will be .
+
+
+ Copies both the structure and data for this .
+ A new with the same structure (table schemas and constraints) and data as this .
+
+ If these classes have been derived, the copy will also be of the same derived classes.
+
+ creates a new with the same structure and data as the original . To copy the structure to a new , but not the data, use .
+
+
+ Returns a corresponding to the data within this .
+ A containing one result set, corresponding to the source instance.
+
+
+ Creates a new instance of .
+ The new expression.
+
+
+ Ends the initialization of a that is used on a form or used by another component. The initialization occurs at run time.
+
+
+ Turns on notifications, index maintenance, and constraints after loading data.
+
+
+ Gets a copy of the that contains all changes made to it since it was loaded or was last called.
+ A copy of the changes from this , or if no changes are found.
+
+
+ Gets a copy of the containing all changes made to it since it was last loaded, or since was called, filtered by .
+ One of the values.
+ A filtered copy of the that can have actions performed on it, and later be merged back in the using . If no rows of the desired are found, the method returns .
+
+
+ This method returns an instance containing the Web Services Description Language (WSDL) that describes the for Web Services.
+ An instance.
+ The instance.
+
+
+ Gets an array of objects that contain errors.
+ An array of objects that have errors.
+
+
+ Populates a serialization information object with the data needed to serialize the .
+ A object that holds the serialized data associated with the .
+ A object that contains the source and destination of the serialized stream associated with the .
+ The parameter is a null reference ( in Visual Basic).
+
+
+ Gets the row type.
+ The type of the .
+
+
+ For a description of this member, see .
+ An that describes the XML representation of the object that is produced by the method and consumed by the method.
+
+
+ Copies a into a , preserving any property settings, as well as original and current values.
+ The to be imported.
+
+
+ Fills a with values from a data source using the supplied . If the already contains rows, the incoming data from the data source is merged with the existing rows.
+ An that provides a result set.
+
+
+ Fills a with values from a data source using the supplied . If the already contains rows, the incoming data from the data source is merged with the existing rows according to the value of the parameter.
+ An that provides one or more result sets.
+ A value from the enumeration that indicates how rows already in the are combined with incoming rows that share the same primary key.
+
+
+ Fills a with values from a data source using the supplied using an error-handling delegate.
+ A that provides a result set.
+ A value from the enumeration that indicates how rows already in the are combined with incoming rows that share the same primary key.
+ A delegate to call when an error occurs while loading data.
+
+
+ Finds and updates a specific row. If no matching row is found, a new row is created using the given values.
+ An array of values used to create the new row.
+
+ to accept changes; otherwise .
+ The array is larger than the number of columns in the table.
+ A value doesn't match its respective column type.
+ Adding the row invalidates a constraint.
+ Attempting to put a null in a column where is false.
+ The new .
+
+
+ Finds and updates a specific row. If no matching row is found, a new row is created using the given values.
+ An array of values used to create the new row.
+ Used to determine how the array values are applied to the corresponding values in an existing row.
+ The new .
+
+
+ Merge the specified with the current .
+ The to be merged with the current .
+
+
+ Merge the specified with the current , indicating whether to preserve changes in the current .
+ The to be merged with the current .
+
+ , to preserve changes in the current ; otherwise .
+
+
+ Merge the specified with the current , indicating whether to preserve changes and how to handle missing schema in the current .
+ The to be merged with the current .
+
+ , to preserve changes in the current ; otherwise .
+ One of the values.
+
+
+ Creates a new with the same schema as the table.
+ A with the same schema as the .
+
+
+ Returns an array of .
+ A value that describes the size of the array.
+ The new array.
+
+
+ Creates a new row from an existing row.
+ A object.
+ A derived class.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Notifies the that a is being removed.
+ The being removed.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Reads XML schema and data into the using the specified .
+ An object that derives from .
+ The used to read the data.
+
+
+ Reads XML schema and data into the using the specified .
+ The that will be used to read the data.
+ The used to read the data.
+
+
+ Reads XML schema and data into the from the specified file.
+ The name of the file from which to read the data.
+ The used to read the data.
+
+
+ Reads XML Schema and Data into the using the specified .
+ The that will be used to read the data.
+ The used to read the data.
+
+
+ Reads an XML schema into the using the specified stream.
+ The stream used to read the schema.
+
+
+ Reads an XML schema into the using the specified .
+ The used to read the schema information.
+
+
+ Reads an XML schema into the from the specified file.
+ The name of the file from which to read the schema information.
+
+
+ Reads an XML schema into the using the specified .
+ The used to read the schema information.
+
+
+ Reads from an XML stream.
+ A object.
+
+
+ Rolls back all changes that have been made to the table since it was loaded, or the last time was called.
+
+
+ Resets the to its original state. Reset removes all data, indexes, relations, and columns of the table. If a DataSet includes a DataTable, the table will still be part of the DataSet after the table is reset.
+
+
+ Gets an array of all objects.
+ An array of objects.
+
+
+ Gets an array of all objects that match the filter criteria.
+ The criteria to use to filter the rows. For examples on how to filter rows, see DataView RowFilter Syntax [C#].
+ An array of objects.
+
+
+ Gets an array of all objects that match the filter criteria, in the specified sort order.
+ The criteria to use to filter the rows. For examples on how to filter rows, see DataView RowFilter Syntax [C#].
+ A string specifying the column and sort direction.
+ An array of objects matching the filter expression.
+
+
+ Gets an array of all objects that match the filter in the order of the sort that match the specified state.
+ The criteria to use to filter the rows. For examples on how to filter rows, see DataView RowFilter Syntax [C#].
+ A string specifying the column and sort direction.
+ One of the values.
+ An array of objects.
+
+
+ For a description of this member, see .
+ An that can be bound to a data source from the object.
+
+
+ For a description of this member, see .
+ An that describes the XML representation of the object that is produced by the method and consumed by the method.
+
+
+ For a description of this member, see .
+ An XmlReader.
+
+
+ For a description of this member, see .
+ An XmlWriter.
+
+
+ Gets the and , if there is one as a concatenated string.
+ A string consisting of the and the values.
+
+
+ Writes the current contents of the as XML using the specified .
+ The stream to which the data will be written.
+
+
+ Writes the current contents of the as XML using the specified . To save the data for the table and all its descendants, set the parameter to .
+ The stream to which the data will be written.
+ If , write the contents of the current table and all its descendants. If (the default value), write the data for the current table only.
+
+
+ Writes the current data, and optionally the schema, for the to the specified file using the specified . To write the schema, set the value for the parameter to .
+ The stream to which the data will be written.
+ One of the values.
+
+
+ Writes the current data, and optionally the schema, for the to the specified file using the specified . To write the schema, set the value for the parameter to . To save the data for the table and all its descendants, set the parameter to .
+ The stream to which the data will be written.
+ One of the values.
+ If , write the contents of the current table and all its descendants. If (the default value), write the data for the current table only.
+
+
+ Writes the current contents of the as XML using the specified .
+ The with which to write the content.
+
+
+ Writes the current contents of the as XML using the specified . To save the data for the table and all its descendants, set the parameter to .
+ The with which to write the content.
+ If , write the contents of the current table and all its descendants. If (the default value), write the data for the current table only.
+
+
+ Writes the current data, and optionally the schema, for the using the specified and . To write the schema, set the value for the parameter to .
+ The used to write the document.
+ One of the values.
+
+
+ Writes the current data, and optionally the schema, for the using the specified and . To write the schema, set the value for the parameter to . To save the data for the table and all its descendants, set the parameter to .
+ The used to write the document.
+ One of the values.
+ If , write the contents of the current table and all its descendants. If (the default value), write the data for the current table only.
+
+
+ Writes the current contents of the as XML using the specified file.
+ The file to which to write the XML data.
+
+
+ Writes the current contents of the as XML using the specified file. To save the data for the table and all its descendants, set the parameter to .
+ The file to which to write the XML data.
+ If , write the contents of the current table and all its descendants. If (the default value), write the data for the current table only.
+
+
+ Writes the current data, and optionally the schema, for the using the specified file and . To write the schema, set the value for the parameter to .
+ The name of the file to which the data will be written.
+ One of the values.
+
+
+ Writes the current data, and optionally the schema, for the using the specified file and . To write the schema, set the value for the parameter to . To save the data for the table and all its descendants, set the parameter to .
+ The name of the file to which the data will be written.
+ One of the values.
+ If , write the contents of the current table and all its descendants. If (the default value), write the data for the current table only.
+
+
+ Writes the current contents of the as XML using the specified .
+ The with which to write the contents.
+
+
+ Writes the current contents of the as XML using the specified .
+ The with which to write the contents.
+ If , write the contents of the current table and all its descendants. If (the default value), write the data for the current table only.
+
+
+ Writes the current data, and optionally the schema, for the using the specified and . To write the schema, set the value for the parameter to .
+ The used to write the document.
+ One of the values.
+
+
+ Writes the current data, and optionally the schema, for the using the specified and . To write the schema, set the value for the parameter to . To save the data for the table and all its descendants, set the parameter to .
+ The used to write the document.
+ One of the values.
+ If , write the contents of the current table and all its descendants. If (the default value), write the data for the current table only.
+
+
+ Writes the current data structure of the as an XML schema to the specified stream.
+ The stream to which the XML schema will be written.
+
+
+ Writes the current data structure of the as an XML schema to the specified stream. To save the schema for the table and all its descendants, set the parameter to .
+ The stream to which the XML schema will be written.
+ If , write the schema of the current table and all its descendants. If (the default value), write the schema for the current table only.
+
+
+ Writes the current data structure of the as an XML schema using the specified .
+ The with which to write.
+
+
+ Writes the current data structure of the as an XML schema using the specified . To save the schema for the table and all its descendants, set the parameter to .
+ The with which to write.
+ If , write the schema of the current table and all its descendants. If (the default value), write the schema for the current table only.
+
+
+ Writes the current data structure of the as an XML schema to the specified file.
+ The name of the file to use.
+
+
+ Writes the current data structure of the as an XML schema to the specified file. To save the schema for the table and all its descendants, set the parameter to .
+ The name of the file to use.
+ If , write the schema of the current table and all its descendants. If (the default value), write the schema for the current table only.
+
+
+ Writes the current data structure of the as an XML schema using the specified .
+ The to use.
+
+
+ Writes the current data structure of the as an XML schema using the specified . To save the schema for the table and all its descendants, set the parameter to .
+ The used to write the document.
+ If , write the schema of the current table and all its descendants. If (the default value), write the schema for the current table only.
+
+
+ Indicates whether string comparisons within the table are case-sensitive.
+
+ if the comparison is case-sensitive; otherwise . The default is set to the parent object's property, or if the was created independently of a .
+
+
+ Gets the collection of child relations for this .
+ A that contains the child relations for the table. An empty collection is returned if no objects exist.
+
+
+ Gets the collection of columns that belong to this table.
+ A that contains the collection of objects for the table. An empty collection is returned if no objects exist.
+
+
+ Gets the collection of constraints maintained by this table.
+ A that contains the collection of objects for the table. An empty collection is returned if no objects exist.
+
+
+ Gets the to which this table belongs.
+ The to which this table belongs.
+
+
+ Gets a customized view of the table that may include a filtered view, or a cursor position.
+ The associated with the .
+
+
+ Gets or sets the expression that returns a value used to represent this table in the user interface. The property lets you display the name of this table in a user interface.
+ A display string.
+
+
+ Gets the collection of customized user information.
+ A that contains custom user information.
+
+
+ Gets a value indicating whether there are errors in any of the rows in any of the tables of the to which the table belongs.
+
+ if errors exist; otherwise .
+
+
+ Gets a value that indicates whether the is initialized.
+
+ to indicate the component has completed initialization; otherwise .
+
+
+ Gets or sets the locale information used to compare strings within the table.
+ A that contains data about the user's machine locale. The default is the object's (returned by the property) to which the belongs; if the table doesn't belong to a , the default is the current system .
+
+
+ Gets or sets the initial starting size for this table.
+ The initial starting size in rows of this table. The default is 50.
+
+
+ Gets or sets the namespace for the XML representation of the data stored in the .
+ The namespace of the .
+
+
+ Gets the collection of parent relations for this .
+ A that contains the parent relations for the table. An empty collection is returned if no objects exist.
+
+
+ Gets or sets the namespace for the XML representation of the data stored in the .
+ The prefix of the .
+
+
+ Gets or sets an array of columns that function as primary keys for the data table.
+ The key is a foreign key.
+ An array of objects.
+
+
+ Gets or sets the serialization format.
+ .NET 7 and later versions only: is .
+ One of the enumeration values that specifies the serialization format.
+
+
+ Gets the collection of rows that belong to this table.
+ A that contains objects.
+
+
+ Gets or sets an for the .
+ An for the .
+
+
+ For a description of this member, see .
+
+ if the collection is a collection of objects; otherwise, .
+
+
+ Gets or sets the name of the .
+
+ or empty string ("") is passed in and this table belongs to a collection.
+ The table belongs to a collection that already has a table with the same name. (Comparison is case-sensitive).
+ The name of the .
+
+
+ Provides data for the method.
+
+
+ Initializes a new instance of the class.
+ The whose rows are being cleared.
+
+
+ Gets the table whose rows are being cleared.
+ The whose rows are being cleared.
+
+
+ Gets the table name whose rows are being cleared.
+ A indicating the table name.
+
+
+ Gets the namespace of the table whose rows are being cleared.
+ A indicating the namespace name.
+
+
+ Represents the method that handles the method.
+ The source of the event.
+ A that contains the event data.
+
+
+ Represents the collection of tables for the .
+
+
+ Occurs after the is changed because of objects being added or removed.
+
+
+ Occurs while the is changing because of objects being added or removed.
+
+
+ Creates a new object by using a default name and adds it to the collection.
+ The newly created .
+
+
+ Adds the specified to the collection.
+ The object to add.
+ The value specified for the table is .
+ The table already belongs to this collection, or belongs to another collection.
+ A table in the collection has the same name. The comparison is not case sensitive.
+
+
+ Creates a object by using the specified name and adds it to the collection.
+ The name to give the created .
+ A table in the collection has the same name. (The comparison is not case sensitive.)
+ The newly created .
+
+
+ Creates a object by using the specified name and adds it to the collection.
+ The name to give the created .
+ The namespace to give the created .
+ A table in the collection has the same name. (The comparison is not case sensitive.)
+ The newly created .
+
+
+ Copies the elements of the specified array to the end of the collection.
+ The array of objects to add to the collection.
+
+
+ Verifies whether the specified object can be removed from the collection.
+ The in the collection to perform the check against.
+
+ if the table can be removed; otherwise .
+
+
+ Clears the collection of all objects.
+
+
+ Gets a value that indicates whether a object with the specified name exists in the collection.
+ The name of the to find.
+
+ if the specified table exists; otherwise .
+
+
+ Gets a value that indicates whether a object with the specified name and table namespace exists in the collection.
+ The name of the to find.
+ The name of the namespace to look in.
+
+ if the specified table exists; otherwise .
+
+
+ Copies all the elements of the current to a one-dimensional , starting at the specified destination array index.
+ The one-dimensional to copy the current object's elements into.
+ The destination index to start copying into.
+
+
+ Gets the index of the specified object.
+ The to search for.
+ The zero-based index of the table, or -1 if the table is not found in the collection.
+
+
+ Gets the index in the collection of the object with the specified name.
+ The name of the object to look for.
+ The zero-based index of the with the specified name, or -1 if the table does not exist in the collection.
+
+
+ Gets the index in the collection of the specified object.
+ The name of the object to look for.
+ The name of the namespace to look in.
+ The zero-based index of the with the specified name, or -1 if the table does not exist in the collection.
+
+
+ Removes the specified object from the collection.
+ The to remove.
+ The value specified for the table is .
+ The table does not belong to this collection.
+
+ -or-
+
+ The table is part of a relationship.
+
+
+ Removes the object with the specified name from the collection.
+ The name of the object to remove.
+ The collection does not have a table with the specified name.
+
+
+ Removes the object with the specified name from the collection.
+ The name of the object to remove.
+ The name of the namespace to look in.
+ The collection does not have a table with the specified name.
+
+
+ Removes the object at the specified index from the collection.
+ The index of the to remove.
+ The collection does not have a table at the specified index.
+
+
+ Gets the object at the specified index.
+ The zero-based index of the to find.
+ The index value is greater than the number of items in the collection.
+ A with the specified index; otherwise if the does not exist.
+
+
+ Gets the object with the specified name.
+ The name of the to find.
+ A with the specified name; otherwise if the does not exist.
+
+
+ Gets the object with the specified name in the specified namespace.
+ The name of the to find.
+ The name of the namespace to look in.
+ A with the specified name; otherwise if the does not exist.
+
+
+ Defines the extension methods to the class. is a static class.
+
+
+ Creates and returns a LINQ-enabled object.
+ The source from which the LINQ-enabled is created.
+ A LINQ-enabled object.
+
+
+ Creates and returns a LINQ-enabled object representing the LINQ to DataSet query.
+ The source LINQ to DataSet query from which the LINQ-enabled is created.
+ The type of objects in the source sequence, typically .
+ A LINQ-enabled object.
+
+
+ Returns an object, where the generic parameter is . This object can be used in a LINQ expression or method query.
+ The source to make enumerable.
+ The source is .
+ An object, where the generic parameter is .
+
+
+ Returns a that contains copies of the objects, given an input object where the generic parameter is .
+ The source sequence.
+ The type of objects in the source sequence, typically .
+ The source sequence is and a new table cannot be created.
+ A in the source sequence has a state of .
+
+ The source sequence does not contain any objects.
+
+ A in the source sequence is .
+ A that contains the input sequence as the type of objects.
+
+
+ Copies objects to the specified , given an input object where the generic parameter is .
+ The source sequence.
+ The destination .
+ A enumeration that specifies the load options.
+ The type of objects in the source sequence, typically .
+ The copied objects do not fit the schema of the destination .
+ The source sequence is or the destination is .
+ A in the source sequence has a state of .
+
+ The source sequence does not contain any objects.
+
+ A in the source sequence is .
+
+
+ Copies objects to the specified , given an input object where the generic parameter is .
+ The source sequence.
+ The destination .
+ A enumeration that specifies the load options.
+ A delegate that represents the method that will handle an error.
+ The type of objects in the source sequence, typically .
+ The copied objects do not fit the schema of the destination .
+ The source sequence is or the destination is .
+ A in the source sequence has a state of .
+
+ -or-
+
+ The source sequence does not contain any objects.
+
+ -or-
+
+ A in the source sequence is .
+
+
+ Provides data for the method.
+
+
+ Initializes a new instance of .
+ The being added.
+
+
+ Gets the row that is being added.
+ The that is being added.
+
+
+ Represents the method that handles the method.
+ The source of the event.
+ A that contains the event data.
+
+
+ The obtains the contents of one or more objects in the form of one or more read-only, forward-only result sets.
+
+
+ Initializes a new instance of the class by using data from the supplied .
+ The from which the new obtains its result set.
+
+
+ Initializes a new instance of the class using the supplied array of objects.
+ The array of objects that supplies the results for the new object.
+
+
+ Closes the current .
+
+
+ Gets the value of the specified column as a .
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The specified column does not contain a .
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a byte.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The specified column does not contain a byte.
+ The value of the specified column.
+
+
+ Reads a stream of bytes starting at the specified column offset into the buffer as an array starting at the specified buffer offset.
+ The zero-based column ordinal.
+ The index within the field from which to start the read operation.
+ The buffer into which to read the stream of bytes.
+ The index within the buffer at which to start placing the data.
+ The maximum length to copy into the buffer.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The specified column does not contain a byte array.
+ The actual number of bytes read.
+
+
+ Gets the value of the specified column as a character.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The specified field does not contain a character.
+ The value of the column.
+
+
+ Returns the value of the specified column as a character array.
+ The zero-based column ordinal.
+ The index within the field from which to start the read operation.
+ The buffer into which to read the stream of chars.
+ The index within the buffer at which to start placing the data.
+ The maximum length to copy into the buffer.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The specified column does not contain a character array.
+ The actual number of characters read.
+
+
+ Gets a string representing the data type of the specified column.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to read or access a column in a closed .
+ A string representing the column's data type.
+
+
+ Gets the value of the specified column as a object.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The specified column does not contain a DateTime value.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a .
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The specified column does not contain a value.
+ The value of the specified column.
+
+
+ Gets the value of the column as a double-precision floating point number.
+ The zero-based ordinal of the column.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The specified column does not contain a double-precision floating point number.
+ The value of the specified column.
+
+
+ Returns an enumerator that can be used to iterate through the item collection.
+ An attempt was made to read or access a column in a closed .
+ An object that represents the item collection.
+
+
+ Gets the that is the data type of the object.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to read or access a column in a closed .
+ The that is the data type of the object.
+
+
+ Gets the value of the specified column as a single-precision floating point number.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The specified column does not contain a single-precision floating point number.
+ The value of the column.
+
+
+ Gets the value of the specified column as a globally-unique identifier (GUID).
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The specified column does not contain a GUID.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 16-bit signed integer.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The specified column does not contain a 16-bit signed integer.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 32-bit signed integer.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The specified column does not contain a 32-bit signed integer value.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a 64-bit signed integer.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The specified column does not contain a 64-bit signed integer value.
+ The value of the specified column.
+
+
+ Gets the value of the specified column as a .
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to read or access a column in a closed .
+ The name of the specified column.
+
+
+ Gets the column ordinal, given the name of the column.
+ The name of the column.
+ An attempt was made to read or access a column in a closed .
+ The name specified is not a valid column name.
+ The zero-based column ordinal.
+
+
+ Gets the type of the specified column in provider-specific format.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to read or access a column in a closed .
+ The that is the data type of the object.
+
+
+ Gets the value of the specified column in provider-specific format.
+ The zero-based number of the column whose value is retrieved.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed
+ The value of the specified column in provider-specific format.
+
+
+ Fills the supplied array with provider-specific type information for all the columns in the .
+ An array of objects to be filled in with type information for the columns in the .
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The number of column values copied into the array.
+
+
+ Returns a that describes the column metadata of the .
+ The is closed.
+ A that describes the column metadata.
+
+
+ Gets the value of the specified column as a string.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The specified column does not contain a string.
+ The value of the specified column.
+
+
+ Gets the value of the specified column in its native format.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access columns in a closed .
+ The value of the specified column. This method returns for null columns.
+
+
+ Populates an array of objects with the column values of the current row.
+ An array of into which to copy the column values from the .
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The number of column values copied into the array.
+
+
+ Gets a value that indicates whether the column contains non-existent or missing values.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+
+ if the specified column value is equivalent to ; otherwise, .
+
+
+ Advances the to the next result set, if any.
+ An attempt was made to navigate within a closed .
+
+ if there was another result set; otherwise .
+
+
+ Advances the to the next record.
+ An attempt was made to read or access a column in a closed .
+
+ if there was another row to read; otherwise .
+
+
+ The depth of nesting for the current row of the .
+ The depth of nesting for the current row; always zero.
+
+
+ Returns the number of columns in the current row.
+ An attempt was made to retrieve the field count in a closed .
+ When not positioned in a valid result set, 0; otherwise the number of columns in the current row.
+
+
+ Gets a value that indicates whether the contains one or more rows.
+ An attempt was made to retrieve information about a closed .
+
+ if the contains one or more rows; otherwise .
+
+
+ Gets a value that indicates whether the is closed.
+
+ if the is closed; otherwise, .
+
+
+ Gets the value of the specified column in its native format given the column ordinal.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 to - 1.
+ The value of the specified column in its native format.
+
+
+ Gets the value of the specified column in its native format given the column name.
+ The name of the column.
+ The name specified is not a valid column name.
+ An attempt was made to retrieve data from a deleted row.
+ An attempt was made to read or access a column in a closed .
+ The value of the specified column in its native format.
+
+
+ Gets the number of rows inserted, changed, or deleted by execution of the SQL statement.
+ The does not support this property and always returns 0.
+
+
+ Represents a databindable, customized view of a for sorting, filtering, searching, editing, and navigation. The does not store data, but instead represents a connected view of its corresponding . Changes to the 's data will affect the . Changes to the 's data will affect all s associated with it.
+
+
+ Occurs when initialization of the is completed.
+
+
+ Occurs when the list managed by the changes.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified .
+ A to add to the .
+
+
+ Initializes a new instance of the class with the specified , , , and .
+ A to add to the .
+ A to apply to the .
+ A to apply to the .
+ A to apply to the .
+
+
+ Adds a new row to the .
+ A new object.
+
+
+ Starts the initialization of a that is used on a form or used by another component. The initialization occurs at runtime.
+
+
+ Closes the .
+
+
+ Occurs after a has been changed successfully.
+ The source of the event.
+ A that contains the event data.
+
+
+ Copies items into an array. Only for Web Forms Interfaces.
+ array to copy into.
+ index to start at.
+
+
+ Deletes a row at the specified index.
+ The index of the row to delete.
+
+
+ Disposes of the resources (other than memory) used by the object.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Ends the initialization of a that is used on a form or used by another component. The initialization occurs at runtime.
+
+
+ Determines whether the specified instances are considered equal.
+ The to be compared.
+
+ if the two instances are equal; otherwise, .
+
+
+ Finds a row in the by the specified sort key value.
+ The object to search for.
+ The index of the row in the that contains the sort key value specified; otherwise -1 if the sort key value does not exist.
+
+
+ Finds a row in the by the specified sort key values.
+ An array of values, typed as .
+ The index of the position of the first row in the that matches the sort key values specified; otherwise -1 if there are no matching sort key values.
+
+
+ Returns an array of objects whose columns match the specified sort key value.
+ The column value, typed as , to search for.
+ An array of objects whose columns match the specified sort key value; or, if no rows contain the specified sort key values, an empty array.
+
+
+ Returns an array of objects whose columns match the specified sort key value.
+ An array of column values, typed as , to search for.
+ An array of objects whose columns match the specified sort key value; or, if no rows contain the specified sort key values, an empty array.
+
+
+ Gets an enumerator for this .
+ An for navigating through the list.
+
+
+ Occurs after a has been changed successfully.
+ The source of the event.
+ A that contains the event data.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Opens a .
+
+
+ Reserved for internal use only.
+
+
+ For a description of this member, see .
+ An value.
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ An value.
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ An value.
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ An value.
+ An value to be inserted.
+
+
+ For a description of this member, see .
+ An value.
+
+
+ For a description of this member, see .
+ An value.
+
+
+ For a description of this member, see .
+ A object.
+
+
+ For a description of this member, see .
+ The item added to the list.
+
+
+ For a description of this member, see .
+ A object.
+ A object.
+
+
+ For a description of this member, see .
+ A object.
+ An value.
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ A object.
+
+
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ A object.
+
+
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ An array of objects to find in the collection as bindable. This can be .
+ The that represents the properties on each item used to bind data.
+
+
+ For a description of this member, see .
+ An array of objects.
+ For a description of this member, see .
+
+
+ Creates and returns a new based on rows in an existing .
+ A new instance that contains the requested rows and columns.
+
+
+ Creates and returns a new based on rows in an existing .
+ If , the returned contains rows that have distinct values for all its columns. The default value is .
+ A string array that contains a list of the column names to be included in the returned . The contains the specified columns in the order they appear within this array.
+ A new instance that contains the requested rows and columns.
+
+
+ Creates and returns a new based on rows in an existing .
+ The name of the returned .
+ A new instance that contains the requested rows and columns.
+
+
+ Creates and returns a new based on rows in an existing .
+ The name of the returned .
+ If , the returned contains rows that have distinct values for all its columns. The default value is .
+ A string array that contains a list of the column names to be included in the returned . The contains the specified columns in the order they appear within this array.
+ A new instance that contains the requested rows and columns.
+
+
+ Reserved for internal use only.
+
+
+ Reserved for internal use only.
+ Reserved for internal use only.
+
+
+ Gets or sets a value that indicates whether deletes are allowed.
+
+ , if deletes are allowed; otherwise, .
+
+
+ Gets or sets a value that indicates whether edits are allowed.
+
+ , if edits are allowed; otherwise, .
+
+
+ Gets or sets a value that indicates whether the new rows can be added by using the method.
+
+ , if new rows can be added; otherwise, .
+
+
+ Gets or sets a value that indicates whether to use the default sort. The default sort is (ascending) by all primary keys as specified by .
+
+ , if the default sort is used; otherwise, .
+
+
+ Gets the number of records in the after and have been applied.
+ The number of records in the .
+
+
+ Gets the associated with this view.
+ The that created this view. If this is the default for a , the property returns the default for the . Otherwise, if the was created without a , this property is .
+
+
+ Gets a value that indicates whether the component is initialized.
+
+ to indicate the component has completed initialization; otherwise, .
+
+
+ Gets a value that indicates whether the data source is currently open and projecting views of data on the .
+
+ , if the source is open; otherwise, .
+
+
+ Gets a row of data from a specified table.
+ The index of a record in the .
+ A of the row that you want.
+
+
+ Gets or sets the expression used to filter which rows are viewed in the .
+ A string that specifies how rows are to be filtered.
+
+
+ Gets or sets the row state filter used in the .
+ One of the values.
+
+
+ Gets or sets the sort column or columns, and sort order for the .
+ A string that contains the column name followed by "ASC" (ascending) or "DESC" (descending). Columns are sorted ascending by default. Multiple columns can be separated by commas.
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ An value.
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ Gets or sets the source .
+ A that provides the data for this view.
+
+
+ Contains a default for each in a .
+
+
+ Occurs after a row is added to or deleted from a .
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class for the specified .
+ The name of the to use.
+
+
+ Creates a for the specified .
+ The name of the to use in the .
+ A object.
+
+
+ Raises the event.
+ A that contains the event data.
+
+
+ Raises a event when a is added to or removed from the .
+ The source of the event.
+ A that contains the event data.
+
+
+ Copies the elements of the to an , starting at a particular index.
+ The one-dimensional that is the destination of the elements copied from . The must have zero-based indexing.
+ The zero-based index in at which copying begins.
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ Adds an item to the .
+ The to add to the .
+ The position into which the new element was inserted.
+
+
+ For a description of this member, see .
+
+
+ Determines whether the contains a specific value.
+ The to locate in the .
+
+ if the is found in the ; otherwise, .
+
+
+ Determines the index of a specific item in the .
+ The to locate in the .
+ The index of if found in the list; otherwise, -1.
+
+
+ Inserts an item to the at the specified index.
+ The zero-based index at which should be inserted.
+ The to insert into the .
+
+
+ Removes the first occurrence of a specific object from the .
+ The to remove from the .
+
+
+ Removes the item at the specified index.
+ The zero-based index of the item to remove.
+
+
+ Adds the to the indexes used for searching.
+ The to add to the indexes used for searching.
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ Sorts the list based on a and a .
+ The to sort by.
+ One of the values.
+
+
+ Returns the index of the row that has the given .
+ The to search on.
+ The value of the property parameter to search for.
+ The index of the row that has the given .
+
+
+ Removes the from the indexes used for searching.
+ The to remove from the indexes used for searching.
+
+
+ Removes any sort applied using .
+
+
+ Returns the that represents the properties on each item used to bind data.
+ An array of objects to find in the collection as bindable. This can be .
+ The that represents the properties on each item used to bind data.
+
+
+ Returns the name of the list.
+ An array of objects, for which the list name is returned. This can be .
+ The name of the list.
+
+
+ Raises a event when a is added to or removed from the .
+ The source of the event.
+ A that contains the event data.
+
+
+ Gets or sets the to use with the .
+ The to use.
+
+
+ Gets or sets a value that is used for code persistence.
+ A value that is used for code persistence.
+
+
+ Gets the for each in the .
+ A for each .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+
+ if access to the is synchronized (thread safe); otherwise, .
+
+
+ For a description of this member, see .
+ An object that can be used to synchronize access to the .
+
+
+ For a description of this member, see .
+
+ if the has a fixed size; otherwise, .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ Gets or sets the element at the specified index.
+ The zero-based index of the element to get or set.
+ The element at the specified index.
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ For a description of this member, see .
+ For a description of this member, see .
+
+
+ Describes the version of data in a .
+
+
+ A new row.
+
+
+ Current rows including unchanged, new, and modified rows. By default, is set to CurrentRows.
+
+
+ A deleted row.
+
+
+ A current version of original data that has been modified (see ).
+
+
+ The original version of the data that was modified. (Although the data has since been modified, it is available as ).
+
+
+ None.
+
+
+ Original rows including unchanged and deleted rows.
+
+
+ An unchanged row.
+
+
+ Represents the default settings for , , , , , and for DataViews created from the .
+
+
+ Gets or sets a value indicating whether to use the default sort.
+
+ if the default sort is used; otherwise .
+
+
+ Gets the that contains this .
+ A object.
+
+
+ Gets or sets the filter to apply in the . See for a code sample using RowFilter.
+ A string that contains the filter to apply.
+
+
+ Gets or sets a value indicating whether to display Current, Deleted, Modified Current, ModifiedOriginal, New, Original, Unchanged, or no rows in the .
+ A value that indicates which rows to display.
+
+
+ Gets or sets a value indicating the sort to apply in the .
+ The sort to apply in the .
+
+
+ Gets the to which the properties apply.
+ A object.
+
+
+ Contains a read-only collection of objects for each in a .
+
+
+ Copies the collection objects to a one-dimensional instance starting at the specified index.
+ The one-dimensional that is the destination of the values copied from the collection.
+ The index of the array at which to start inserting.
+
+
+ Copies the collection objects to a one-dimensional instance starting at the specified index.
+ The one-dimensional that is the destination of the values copied from the collection.
+ The index of the array at which to start inserting.
+
+
+ Gets an for the collection.
+ An object.
+
+
+ Gets the number of objects in the .
+ The number of objects in the collection.
+
+
+ Gets a value that indicates whether the is read-only.
+ Always returns to indicate the collection is read-only.
+
+
+ Gets a value that indicates whether access to the is synchronized (thread-safe).
+ This property is always , unless overridden by a derived class.
+
+
+ Gets the objects of the specified from the collection.
+ The to find.
+ A collection of objects.
+
+
+ Gets the objects of the specified by its index.
+ The zero-based index of the to find.
+ A collection of objects.
+
+
+ Gets the of the specified by its name.
+ The name of the to find.
+ A collection of objects.
+
+
+ Gets an object that can be used to synchronize access to the .
+ An object that can be used to synchronize access to the .
+
+
+ The exception that is thrown by the during an insert, update, or delete operation if the number of rows affected equals zero.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The text string describing the details of the exception.
+
+
+ Initializes a new instance of the class.
+ The text string describing the details of the exception.
+ A reference to an inner exception.
+
+
+ Initializes a new instance of the class.
+ The error message that explains the reason for this exception.
+ The exception that is the cause of the current exception, or a null reference ( in Visual Basic) if no inner exception is specified.
+ An array containing the objects whose update failure generated this exception.
+
+
+ Copies the objects whose update failure generated this exception, to the specified array of objects.
+ The one-dimensional array of objects to copy the objects into.
+
+
+ Copies the objects whose update failure generated this exception, to the specified array of objects, starting at the specified destination array index.
+ The one-dimensional array of objects to copy the objects into.
+ The destination array index to start copying into.
+
+
+ Populates the specified serialization information object with the data needed to serialize the .
+ A that holds the serialized data associated with the .
+ A that contains the source and destination of the serialized stream associated with the .
+ The parameter is a null reference ( in Visual Basic).
+
+
+ Gets or sets the value of the that generated the .
+ The value of the .
+
+
+ Gets the number of rows whose update failed, generating this exception.
+ An integer containing a count of the number of rows whose update failed.
+
+
+ Specifies the data type of a field, a property, or a object of a .NET data provider.
+
+
+ A variable-length stream of non-Unicode characters ranging between 1 and 8,000 characters.
+
+
+ A fixed-length stream of non-Unicode characters.
+
+
+ A variable-length stream of binary data ranging between 1 and 8,000 bytes.
+
+
+ A simple type representing Boolean values of or .
+
+
+ An 8-bit unsigned integer ranging in value from 0 to 255.
+
+
+ A currency value ranging from -2 63 (or -922,337,203,685,477.5808) to 2 63 -1 (or +922,337,203,685,477.5807) with an accuracy to a ten-thousandth of a currency unit.
+
+
+ A type representing a date value.
+
+
+ A type representing a date and time value.
+
+
+ Date and time data. Date value range is from January 1,1 AD through December 31, 9999 AD. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds.
+
+
+ Date and time data with time zone awareness. Date value range is from January 1,1 AD through December 31, 9999 AD. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds. Time zone value range is -14:00 through +14:00.
+
+
+ A simple type representing values ranging from 1.0 x 10 -28 to approximately 7.9 x 10 28 with 28-29 significant digits.
+
+
+ A floating point type representing values ranging from approximately 5.0 x 10 -324 to 1.7 x 10 308 with a precision of 15-16 digits.
+
+
+ A globally unique identifier (or GUID).
+
+
+ An integral type representing signed 16-bit integers with values between -32768 and 32767.
+
+
+ An integral type representing signed 32-bit integers with values between -2147483648 and 2147483647.
+
+
+ An integral type representing signed 64-bit integers with values between -9223372036854775808 and 9223372036854775807.
+
+
+ A general type representing any reference or value type not explicitly represented by another value.
+
+
+ An integral type representing signed 8-bit integers with values between -128 and 127.
+
+
+ A floating point type representing values ranging from approximately 1.5 x 10 -45 to 3.4 x 10 38 with a precision of 7 digits.
+
+
+ A type representing Unicode character strings.
+
+
+ A fixed-length string of Unicode characters.
+
+
+ A type representing a SQL Server value. If you want to use a SQL Server value, use .
+
+
+ An integral type representing unsigned 16-bit integers with values between 0 and 65535.
+
+
+ An integral type representing unsigned 32-bit integers with values between 0 and 4294967295.
+
+
+ An integral type representing unsigned 64-bit integers with values between 0 and 18446744073709551615.
+
+
+ A variable-length numeric value.
+
+
+ A parsed representation of an XML document or fragment.
+
+
+ Represents the exception that is thrown when an action is tried on a that has been deleted.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialization information.
+ The data that is required to serialize or deserialize an object.
+ Description of the source and destination of the specified serialized stream.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference ( in Visual Basic) if no inner exception is specified.
+
+
+ Represents the exception that is thrown when a duplicate database object name is encountered during an add operation in a -related object.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialization information.
+ The data that is required to serialize or deserialize an object.
+ Description of the source and destination of the specified serialized stream.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class with the specified string and exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference ( in Visual Basic) if no inner exception is specified.
+
+
+ Represents a collection of objects returned from a LINQ to DataSet query. This API supports the .NET infrastructure and is not intended to be used directly from your code.
+
+
+ Returns an enumerator for the collection of objects. This API supports the .NET infrastructure and is not intended to be used directly from your code.
+ An that can be used to traverse the collection of objects.
+
+
+ Represents a collection of objects returned from a query.
+ The type of objects in the source sequence, typically .
+
+
+ Returns an enumerator for the collection of contained row objects.
+ A strongly-typed that can be used to traverse the collection of objects.
+
+
+ Returns an enumerator for the collection of objects.
+ An that can be used to traverse the collection of objects.
+
+
+ Contains the extension methods for the data row collection classes.
+
+
+ Converts the elements of an to the specified type.
+ The that contains the elements to be converted.
+ The type to convert the elements of source to.
+
+ is .
+ An element in the sequence cannot be cast to type .
+ An that contains each element of the source sequence converted to the specified type.
+
+
+ Sorts the rows of a in ascending order according to the specified key.
+ An containing the elements to be ordered.
+ A function to extract a key from an element.
+ The type of the row elements in , typically .
+ The type of the key returned by .
+ An whose elements are sorted by the specified key.
+
+
+ Sorts the rows of a in ascending order according to the specified key and comparer.
+ An containing the elements to be ordered.
+ A function to extract a key from an element.
+ An to compare keys.
+ The type of the row elements in , typically .
+ The type of the key returned by .
+ An whose elements are sorted by the specified key and comparer.
+
+
+ Sorts the rows of a in descending order according to the specified key.
+ An containing the elements to be ordered.
+ A function to extract a key from an element.
+ The type of the row elements in , typically .
+ The type of the key returned by .
+ An whose elements are sorted by the specified key.
+
+
+ Sorts the rows of a in descending order according to the specified key and comparer.
+ An containing the elements to be ordered.
+ A function to extract a key from an element.
+ An to compare keys.
+ The type of the row elements in , typically .
+ The type of the key returned by .
+ An whose elements are sorted by the specified key and comparer.
+
+
+ Projects each element of an into a new form.
+ An containing the elements to invoke a transform function upon.
+ A transform function to apply to each element.
+ The type of the row elements in , typically .
+ The type that will be transformed into.
+ An whose elements are the result of invoking the transform function on each element of .
+
+
+ Performs a secondary ordering of the rows of a in ascending order according to the specified key.
+ An containing the elements to be ordered.
+ A function to extract a key from an element.
+ The type of the row elements in , typically .
+ The type of the key returned by .
+ An whose elements are sorted by the specified key.
+
+
+ Performs a secondary ordering of the rows of a in ascending order according to the specified key and comparer.
+ An containing the elements to be ordered.
+ A function to extract a key from an element.
+ An to compare keys.
+ The type of the row elements in , typically .
+ The type of the key returned by .
+ An whose elements are sorted by the specified key and comparer.
+
+
+ Performs a secondary ordering of the rows of a in descending order according to the specified key.
+ An containing the elements to be ordered.
+ A function to extract a key from an element.
+ The type of the row elements in , typically .
+ The type of the key returned by .
+ An whose elements are sorted by the specified key.
+
+
+ Performs a secondary ordering of the rows of a in descending order according to the specified key and comparer.
+ An containing the elements to be ordered.
+ A function to extract a key from an element.
+ An to compare keys.
+ The type of the row elements in , typically .
+ The type of the key returned by .
+ An whose elements are sorted by the specified key and comparer.
+
+
+ Filters a sequence of rows based on the specified predicate.
+ An containing the elements to filter.
+ A function to test each element for a condition.
+ The type of the row elements in , typically .
+ An that contains rows from the input sequence that satisfy the condition.
+
+
+ Represents the exception that is thrown when the property of a cannot be evaluated.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the and the .
+ The data needed to serialize or deserialize an object.
+ The source and destination of a particular serialized stream.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference ( in Visual Basic) if no inner exception is specified.
+
+
+ Provides data for the event of a .
+
+
+ Initializes a new instance of the class.
+ The being updated.
+ The values for the row being updated.
+
+
+ Gets or sets a value indicating whether to continue the fill operation despite the error.
+
+ if the fill operation should continue; otherwise, .
+
+
+ Gets the being updated when the error occurred.
+ The being updated.
+
+
+ Gets the errors being handled.
+ The errors being handled.
+
+
+ Gets the values for the row being updated when the error occurred.
+ The values for the row being updated.
+
+
+ Represents the method that will handle the event.
+ The source of the event.
+ The that contains the event data.
+
+
+ Represents an action restriction enforced on a set of columns in a primary key/foreign key relationship when a value or row is either deleted or updated.
+
+
+ Initializes a new instance of the class with the specified parent and child objects.
+ The parent in the constraint.
+ The child in the constraint.
+ One or both of the columns is .
+ The columns have different data types.
+
+ -Or -
+
+ The tables don't belong to the same .
+
+
+ Initializes a new instance of the class with the specified arrays of parent and child objects.
+ An array of parent in the constraint.
+ An array of child in the constraint.
+ One or both of the columns is .
+ The columns have different data types.
+
+ -Or -
+
+ The tables don't belong to the same .
+
+
+ Initializes a new instance of the class with the specified name, parent and child objects.
+ The name of the constraint.
+ The parent in the constraint.
+ The child in the constraint.
+ One or both of the columns is .
+ The columns have different data types.
+
+ -Or -
+
+ The tables don't belong to the same .
+
+
+ Initializes a new instance of the class with the specified name, and arrays of parent and child objects.
+ The name of the . If or empty string, a default name will be given when added to the constraints collection.
+ An array of parent in the constraint.
+ An array of child in the constraint.
+ One or both of the columns is .
+ The columns have different data types.
+
+ -Or -
+
+ The tables don't belong to the same .
+
+
+ This constructor is provided for design time support in the Visual Studio environment. objects created by using this constructor must then be added to the collection via . Tables and columns with the specified names must exist at the time the method is called, or if has been called prior to calling this constructor, the tables and columns with the specified names must exist at the time that is called.
+ The name of the constraint.
+ The name of the parent that contains parent objects in the constraint.
+ The name of the .
+ An array of the names of parent objects in the constraint.
+ An array of the names of child objects in the constraint.
+ One of the values. Possible values include , , and .
+ One of the values to use when a row is deleted. The default is . Possible values include: , , , , and .
+ One of the values to use when a row is updated. The default is . Possible values include: , , , , and .
+ One or both of the columns is .
+ The columns have different data types.
+
+ -Or -
+
+ The tables don't belong to the same .
+
+
+ This constructor is provided for design time support in the Visual Studio environment. objects created by using this constructor must then be added to the collection via . Tables and columns with the specified names must exist at the time the method is called, or if has been called prior to calling this constructor, the tables and columns with the specified names must exist at the time that is called.
+ The name of the constraint.
+ The name of the parent that contains parent objects in the constraint.
+ An array of the names of parent objects in the constraint.
+ An array of the names of child objects in the constraint.
+ One of the values. Possible values include , , and .
+ One of the values to use when a row is deleted. The default is . Possible values include: , , , , and .
+ One of the values to use when a row is updated. The default is . Possible values include: , , , , and .
+ One or both of the columns is .
+ The columns have different data types.
+
+ -Or -
+
+ The tables don't belong to the same .
+
+
+ Gets a value indicating whether the current is identical to the specified object.
+ The object to which this is compared. Two are equal if they constrain the same columns.
+
+ , if the objects are identical; otherwise, .
+
+
+ Gets the hash code of this instance of the object.
+ A 32-bit signed integer hash code.
+
+
+ Indicates the action that should take place across this constraint when is invoked.
+ One of the values. Possible values include , and . The default is .
+
+
+ Gets the child columns of this constraint.
+ An array of objects that are the child columns of the constraint.
+
+
+ Gets or sets the action that occurs across this constraint when a row is deleted.
+ One of the values. The default is .
+
+
+ The parent columns of this constraint.
+ An array of objects that are the parent columns of the constraint.
+
+
+ Gets the parent table of this constraint.
+ The parent of this constraint.
+
+
+ Gets the child table of this constraint.
+ A that is the child table in the constraint.
+
+
+ Gets or sets the action that occurs across this constraint on when a row is updated.
+ One of the values. The default is .
+
+
+ Associates a data source column with a column, and is implemented by the class, which is used in common by .NET data providers.
+
+
+ Gets or sets the name of the column within the to map to.
+ The name of the column within the to map to. The name is not case sensitive.
+
+
+ Gets or sets the name of the column within the data source to map from. The name is case-sensitive.
+ The case-sensitive name of the column in the data source.
+
+
+ Contains a collection of DataColumnMapping objects, and is implemented by the , which is used in common by .NET data providers.
+
+
+ Adds a ColumnMapping object to the ColumnMapping collection using the source column and column names.
+ The case-sensitive name of the source column.
+ The name of the column.
+ The ColumnMapping object that was added to the collection.
+
+
+ Gets a value indicating whether the contains a object with the specified source column name.
+ The case-sensitive name of the source column.
+
+ if a object with the specified source column name exists, otherwise .
+
+
+ Gets the ColumnMapping object with the specified column name.
+ The name of the column within the collection.
+ The ColumnMapping object with the specified column name.
+
+
+ Gets the location of the object with the specified source column name. The name is case-sensitive.
+ The case-sensitive name of the source column.
+ The zero-based location of the object with the specified source column name.
+
+
+ Removes the object with the specified name from the collection.
+ The case-sensitive name.
+ A object does not exist with the specified name.
+
+
+ Gets or sets the object with the specified name.
+ The name of the object to find.
+ The object with the specified name.
+
+
+ Allows an object to implement a DataAdapter, and represents a set of methods and mapping action-related properties that are used to fill and update a and update a data source.
+
+ instances are for data sources that are (or resemble) relational databases with textual commands (like Transact-SQL), while instances could can use any type of data source.
+
+
+ Adds or updates rows in the to match those in the data source using the name, and creates a named "Table".
+ A to fill with records and, if necessary, schema.
+ The number of rows successfully added to or refreshed in the . This does not include rows affected by statements that do not return rows.
+
+
+ Adds a named "Table" to the specified and configures the schema to match that in the data source based on the specified .
+ The to be filled with the schema from the data source.
+ One of the values.
+ An array of objects that contain schema information returned from the data source.
+
+
+ Gets the parameters set by the user when executing an SQL SELECT statement.
+ An array of objects that contains the parameters set by the user.
+
+
+ Calls the respective INSERT, UPDATE, or DELETE statements for each inserted, updated, or deleted row in the specified from a named "Table".
+ The used to update the data source.
+ An attempt to execute an INSERT, UPDATE, or DELETE statement resulted in zero records affected.
+ The number of rows successfully updated from the .
+
+
+ Indicates or specifies whether unmapped source tables or columns are passed with their source names in order to be filtered or to raise an error.
+ The value set is not one of the values.
+ One of the values. The default is .
+
+
+ Indicates or specifies whether missing source tables, columns, and their relationships are added to the dataset schema, ignored, or cause an error to be raised.
+ The value set is not one of the values.
+ One of the values. The default is .
+
+
+ Gets a collection that indicates how a source table is mapped to a dataset table.
+ A collection that provides the primary mapping between the returned records and the . The default value is an empty collection.
+
+
+ Represents a parameter to a Command object, and optionally, its mapping to columns; and is implemented by .NET data providers that access data sources.
+
+
+ Gets or sets the of the parameter.
+ The property was not set to a valid .
+ One of the values. The default is .
+
+
+ Gets or sets a value indicating whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter.
+ The property was not set to one of the valid values.
+ One of the values. The default is .
+
+
+ Gets a value indicating whether the parameter accepts null values.
+
+ if null values are accepted; otherwise, . The default is .
+
+
+ Gets or sets the name of the .
+ The name of the . The default is an empty string.
+
+
+ Gets or sets the name of the source column that is mapped to the and used for loading or returning the .
+ The name of the source column that is mapped to the . The default is an empty string.
+
+
+ Gets or sets the to use when loading .
+ The property was not set one of the values.
+ One of the values. The default is .
+
+
+ Gets or sets the value of the parameter.
+ An that is the value of the parameter. The default value is null.
+
+
+ Collects all parameters relevant to a Command object and their mappings to columns, and is implemented by .NET data providers that access data sources.
+
+
+ Gets a value indicating whether a parameter in the collection has the specified name.
+ The name of the parameter.
+
+ if the collection contains the parameter; otherwise, .
+
+
+ Gets the location of the within the collection.
+ The name of the parameter.
+ The zero-based location of the within the collection.
+
+
+ Removes the from the collection.
+ The name of the parameter.
+
+
+ Gets or sets the parameter at the specified index.
+ The name of the parameter to retrieve.
+ An at the specified index.
+
+
+ Provides a means of reading one or more forward-only streams of result sets obtained by executing a command at a data source, and is implemented by .NET data providers that access relational databases.
+
+
+ Closes the Object.
+
+
+ Returns a that describes the column metadata of the .
+
+Returns if the executed command returned no resultset, or after returns .
+ The is closed.
+ A that describes the column metadata.
+
+
+ Advances the data reader to the next result, when reading the results of batch SQL statements.
+
+ if there are more rows; otherwise, .
+
+
+ Advances the to the next record.
+
+ if there are more rows; otherwise, .
+
+
+ Gets a value indicating the depth of nesting for the current row.
+ The level of nesting.
+
+
+ Gets a value indicating whether the data reader is closed.
+
+ if the data reader is closed; otherwise, .
+
+
+ Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.
+ The number of rows changed, inserted, or deleted; 0 if no rows were affected or the statement failed; and -1 for SELECT statements.
+
+
+ Provides access to the column values within each row for a , and is implemented by .NET data providers that access relational databases.
+
+
+ Gets the value of the specified column as a Boolean.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 through .
+ The value of the column.
+
+
+ Gets the 8-bit unsigned integer value of the specified column.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 through .
+ The 8-bit unsigned integer value of the specified column.
+
+
+ Reads a stream of bytes from the specified column offset into the buffer as an array, starting at the given buffer offset.
+ The zero-based column ordinal.
+ The index within the field from which to start the read operation.
+ The buffer into which to read the stream of bytes.
+ The index for to start the read operation.
+ The number of bytes to read.
+ The index passed was outside the range of 0 through .
+ The actual number of bytes read.
+
+
+ Gets the character value of the specified column.
+ The zero-based column ordinal.
+ The index passed was outside the range of 0 through .
+ The character value of the specified column.
+
+
+ Reads a stream of characters from the specified column offset into the buffer as an array, starting at the given buffer offset.
+ The zero-based column ordinal.
+ The index within the row from which to start the read operation.
+ The buffer into which to read the stream of bytes.
+ The index for to start the read operation.
+ The number of bytes to read.
+ The index passed was outside the range of 0 through .
+ The actual number of characters read.
+
+
+ Returns an for the specified column ordinal.
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+ The for the specified column ordinal.
+
+
+ Gets the data type information for the specified field.
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+ The data type information for the specified field.
+
+
+ Gets the date and time data value of the specified field.
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+ The date and time data value of the specified field.
+
+
+ Gets the fixed-position numeric value of the specified field.
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+ The fixed-position numeric value of the specified field.
+
+
+ Gets the double-precision floating point number of the specified field.
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+ The double-precision floating point number of the specified field.
+
+
+ Gets the information corresponding to the type of that would be returned from .
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+ The information corresponding to the type of that would be returned from .
+
+
+ Gets the single-precision floating point number of the specified field.
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+ The single-precision floating point number of the specified field.
+
+
+ Returns the GUID value of the specified field.
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+ The GUID value of the specified field.
+
+
+ Gets the 16-bit signed integer value of the specified field.
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+ The 16-bit signed integer value of the specified field.
+
+
+ Gets the 32-bit signed integer value of the specified field.
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+ The 32-bit signed integer value of the specified field.
+
+
+ Gets the 64-bit signed integer value of the specified field.
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+ The 64-bit signed integer value of the specified field.
+
+
+ Gets the name for the field to find.
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+ The name of the field or the empty string (""), if there is no value to return.
+
+
+ Return the index of the named field.
+ The name of the field to find.
+ The index of the named field.
+
+
+ Gets the string value of the specified field.
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+ The string value of the specified field.
+
+
+ Return the value of the specified field.
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+ The which will contain the field value upon return.
+
+
+ Populates an array of objects with the column values of the current record.
+ An array of to copy the attribute fields into.
+ The number of instances of in the array.
+
+
+ Return whether the specified field is set to null.
+ The index of the field to find.
+ The index passed was outside the range of 0 through .
+
+ if the specified field is set to null; otherwise, .
+
+
+ Gets the number of columns in the current row.
+ When not positioned in a valid recordset, 0; otherwise, the number of columns in the current record. The default is -1.
+
+
+ Gets the column located at the specified index.
+ The zero-based index of the column to get.
+ The index passed was outside the range of 0 through .
+ The column located at the specified index as an .
+
+
+ Gets the column with the specified name.
+ The name of the column to find.
+ No column with the specified name was found.
+ The column with the specified name as an .
+
+
+ Represents an SQL statement that is executed while connected to a data source, and is implemented by .NET data providers that access relational databases.
+
+
+ Attempts to cancels the execution of an .
+
+
+ Creates a new instance of an object.
+ An object.
+
+
+ Executes an SQL statement against the object of a .NET data provider, and returns the number of rows affected.
+ The connection does not exist.
+
+ -or-
+
+ The connection is not open.
+ The number of rows affected.
+
+
+ Executes the against the and builds an .
+ An object.
+
+
+ Executes the against the , and builds an using one of the values.
+ One of the values.
+ An object.
+
+
+ Executes the query, and returns the first column of the first row in the resultset returned by the query. Extra columns or rows are ignored.
+ The first column of the first row in the resultset.
+
+
+ Creates a prepared (or compiled) version of the command on the data source.
+ The is not set.
+
+ -or-
+
+ The is not .
+
+
+ Gets or sets the text command to run against the data source.
+ The text command to execute. The default value is an empty string ("").
+
+
+ Gets or sets the wait time (in seconds) before terminating the attempt to execute a command and generating an error.
+ The property value assigned is less than 0.
+ The time (in seconds) to wait for the command to execute. The default value is 30 seconds.
+
+
+ Indicates or specifies how the property is interpreted.
+ One of the values. The default is .
+
+
+ Gets or sets the used by this instance of the .
+ The connection to the data source.
+
+
+ Gets the .
+ The parameters of the SQL statement or stored procedure.
+
+
+ Gets or sets the transaction within which the object of a .NET data provider executes.
+ the object of a .NET Framework data provider executes. The default value is .
+
+
+ Gets or sets how command results are applied to the when used by the method of a .
+ The value entered was not one of the values.
+ One of the values. The default is unless the command is automatically generated. Then the default is .
+
+
+ Represents an open connection to a data source, and is implemented by .NET data providers that access relational databases.
+
+
+ Begins a database transaction.
+ An object representing the new transaction.
+
+
+ Begins a database transaction with the specified value.
+ One of the values.
+ An object representing the new transaction.
+
+
+ Changes the current database for an open object.
+ The name of the database to use in place of the current database.
+
+
+ Closes the connection to the database.
+
+
+ Creates and returns a Command object associated with the connection.
+ A Command object associated with the connection.
+
+
+ Opens a database connection with the settings specified by the property of the provider-specific Connection object.
+
+
+ Gets or sets the string used to open a database.
+ A string containing connection settings.
+
+
+ Gets the time to wait (in seconds) while trying to establish a connection before terminating the attempt and generating an error.
+ The time (in seconds) to wait for a connection to open. The default value is 15 seconds.
+
+
+ Gets the name of the current database or the database to be used after a connection is opened.
+ The name of the current database or the name of the database to be used once a connection is open. The default value is an empty string.
+
+
+ Gets the current state of the connection.
+ One of the values.
+
+
+ Represents a set of command-related properties that are used to fill the and update a data source, and is implemented by .NET data providers that access relational databases.
+
+
+ Gets or sets an SQL statement for deleting records from the data set.
+ An used during to delete records in the data source for deleted rows in the data set.
+
+
+ Gets or sets an SQL statement used to insert new records into the data source.
+ An used during to insert records in the data source for new rows in the data set.
+
+
+ Gets or sets an SQL statement used to select records in the data source.
+ An that is used during to select records from data source for placement in the data set.
+
+
+ Gets or sets an SQL statement used to update records in the data source.
+ An used during to update records in the data source for modified rows in the data set.
+
+
+ Used by the Visual Basic .NET Data Designers to represent a parameter to a Command object, and optionally, its mapping to columns.
+
+
+ Indicates the precision of numeric parameters.
+ The maximum number of digits used to represent the Value property of a data provider Parameter object. The default value is 0, which indicates that a data provider sets the precision for Value.
+
+
+ Indicates the scale of numeric parameters.
+ The number of decimal places to which is resolved. The default is 0.
+
+
+ The size of the parameter.
+ The maximum size, in bytes, of the data within the column. The default value is inferred from the parameter value.
+
+
+ Represents a transaction to be performed at a data source, and is implemented by .NET data providers that access relational databases.
+
+
+ Commits the database transaction.
+ An error occurred while trying to commit the transaction.
+ The transaction has already been committed or rolled back.
+
+ -or-
+
+ The connection is broken.
+
+
+ Rolls back a transaction from a pending state.
+ An error occurred while trying to commit the transaction.
+ The transaction has already been committed or rolled back.
+
+ -or-
+
+ The connection is broken.
+
+
+ Specifies the Connection object to associate with the transaction.
+ The Connection object to associate with the transaction.
+
+
+ Specifies the for this transaction.
+ The for this transaction. The default is .
+
+
+ Represents the exception that is thrown when you call the method within the event.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialization information.
+ The data that is required to serialize or deserialize an object.
+ Description of the source and destination of the specified serialized stream.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference ( in Visual Basic) if no inner exception is specified.
+
+
+ Provides the base functionality for creating collections.
+
+
+ Initializes a new instance of the class.
+
+
+ Copies all the elements of the current to a one-dimensional , starting at the specified index.
+ The one-dimensional to copy the current object's elements into.
+ The destination index to start copying into.
+
+
+ Gets an for the collection.
+ An for the collection.
+
+
+ Gets the total number of elements in a collection.
+ The total number of elements in a collection.
+
+
+ Gets a value that indicates whether the is read-only.
+
+ if the collection is read-only; otherwise, . The default is .
+
+
+ Gets a value that indicates whether the is synchronized.
+
+ if the collection is synchronized; otherwise, . The default is .
+
+
+ Gets the items of the collection as a list.
+ An that contains the collection.
+
+
+ Gets an object that can be used to synchronize the collection.
+ The used to synchronize the collection.
+
+
+ Represents the exception that is thrown when incorrectly trying to create or access a relation.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialization information.
+ The data that is required to serialize or deserialize an object.
+ Description of the source and destination of the specified serialized stream.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference ( in Visual Basic) if no inner exception is specified.
+
+
+ Represents the exception that is thrown when you try to add a that contains an invalid to a .
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the and the .
+ The data needed to serialize or deserialize an object.
+ The source and destination of a given serialized stream.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference ( in Visual Basic) if no inner exception is specified.
+
+
+ Specifies the transaction locking behavior for the connection.
+
+
+ The pending changes from more highly isolated transactions cannot be overwritten.
+
+
+ Shared locks are held while the data is being read to avoid dirty reads, but the data can be changed before the end of the transaction, resulting in non-repeatable reads or phantom data.
+
+
+ A dirty read is possible, meaning that no shared locks are issued and no exclusive locks are honored.
+
+
+ Locks are placed on all data that is used in a query, preventing other users from updating the data. Prevents non-repeatable reads but phantom rows are still possible.
+
+
+ A range lock is placed on the , preventing other users from updating or inserting rows into the dataset until the transaction is complete.
+
+
+ Reduces blocking by storing a version of data that one application can read while another is modifying the same data. Indicates that from one transaction you cannot see changes made in other transactions, even if you requery.
+
+
+ A different isolation level than the one specified is being used, but the level cannot be determined.
+
+
+ Associates a source table with a table in a , and is implemented by the class, which is used in common by .NET data providers.
+
+
+ Gets the derived for the .
+ A collection of data column mappings.
+
+
+ Gets or sets the case-insensitive name of the table within the .
+ The case-insensitive name of the table within the .
+
+
+ Gets or sets the case-sensitive name of the source table.
+ The case-sensitive name of the source table.
+
+
+ Contains a collection of TableMapping objects, and is implemented by the , which is used in common by .NET data providers.
+
+
+ Adds a table mapping to the collection.
+ The case-sensitive name of the source table.
+ The name of the table.
+ A reference to the newly-mapped object.
+
+
+ Gets a value indicating whether the collection contains a table mapping with the specified source table name.
+ The case-sensitive name of the source table.
+
+ if a table mapping with the specified source table name exists, otherwise .
+
+
+ Gets the TableMapping object with the specified table name.
+ The name of the table within the collection.
+ The TableMapping object with the specified table name.
+
+
+ Gets the location of the object within the collection.
+ The case-sensitive name of the source table.
+ The zero-based location of the object within the collection.
+
+
+ Removes the object with the specified name from the collection.
+ The case-sensitive name of the .
+
+
+ Gets or sets the instance of with the specified name.
+ The name of the .
+ The instance of with the specified name.
+
+
+ Identifies a list of connection string parameters identified by the property that are either allowed or not allowed.
+
+
+ Default. Identifies the only additional connection string parameters that are allowed.
+
+
+ Identifies additional connection string parameters that are not allowed.
+
+
+ Controls how the values from the data source will be applied to existing rows when using the or method.
+
+
+ The incoming values for this row will be written to both the current value and the original value versions of the data for each column.
+
+
+ The incoming values for this row will be written to the original value version of each column. The current version of the data in each column will not be changed. This is the default.
+
+
+ The incoming values for this row will be written to the current version of each column. The original version of each column's data will not be changed.
+
+
+ Specifies how a is mapped.
+
+
+ The column is mapped to an XML attribute.
+
+
+ The column is mapped to an XML element.
+
+
+ The column is mapped to an internal structure.
+
+
+ The column is mapped to an node.
+
+
+ Occurs when a target and source have the same primary key value, and the property is set to true.
+
+
+ Initializes a new instance of the class with the and a description of the merge conflict.
+ The object.
+ A description of the merge conflict.
+
+
+ Returns a description of the merge conflict.
+ A description of the merge conflict.
+
+
+ Returns the object.
+ The object.
+
+
+ Represents the method that will handle the event.
+ The source of the event.
+ The data for the event.
+
+
+ Determines the action that occurs when a mapping is missing from a source table or a source column.
+
+
+ An is generated if the specified column mapping is missing.
+
+
+ The column or table not having a mapping is ignored. Returns .
+
+
+ The source column or source table is created and added to the using its original name.
+
+
+ Represents the exception that is thrown when you try to access a row in a table that has no primary key.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialization information.
+ The data that is required to serialize or deserialize an object.
+ A description of the source and destination of the specified serialized stream.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference ( in Visual Basic) if no inner exception is specified.
+
+
+ Specifies the action to take when adding data to the and the required or is missing.
+
+
+ Adds the necessary columns to complete the schema.
+
+
+
+ Adds the necessary columns and primary key information to complete the schema. For more information about how primary key information is added to a , see .
+ To function properly with the .NET Framework Data Provider for OLE DB, requires that the native OLE DB provider obtains necessary primary key information by setting the DBPROP_UNIQUEROWS property, and then determines which columns are primary key columns by examining DBCOLUMN_KEYCOLUMN in the IColumnsRowset. As an alternative, the user may explicitly set the primary key constraints on each . This ensures that incoming records that match existing records are updated instead of appended. When using , the .NET Framework Data Provider for SQL Server appends a FOR BROWSE clause to the statement being executed. The user should be aware of potential side effects, such as interference with the use of SET FMTONLY ON statements. For more information, see SET FMTONLY (Transact-SQL).
+
+
+
+ An is generated if the specified column mapping is missing.
+
+
+ Ignores the extra columns.
+
+
+ Represents the exception that is thrown when you try to insert a null value into a column where is set to .
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialization information.
+ The data that is required to serialize or deserialize an object.
+ Description of the source and destination of the specified serialized stream.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference ( in Visual Basic) if no inner exception is specified.
+
+
+ Represents a collection of ordered objects returned from a query.
+ The type of objects in the source sequence, typically .
+
+
+ Specifies the type of a parameter within a query relative to the .
+
+
+ The parameter is an input parameter.
+
+
+ The parameter is capable of both input and output.
+
+
+ The parameter is an output parameter.
+
+
+ The parameter represents a return value from an operation such as a stored procedure, built-in function, or user-defined function.
+
+
+ Represents a collection of properties that can be added to , , or .
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The data needed to serialize or deserialize an object.
+ The source and destination of a given serialized stream.
+
+
+ Creates a shallow copy of the object.
+ Returns , a shallow copy of the object.
+
+
+ Represents the exception that is thrown when you try to change the value of a read-only column.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialization information.
+ The data that is required to serialize or deserialize an object.
+ Description of the source and destination of the specified serialized stream.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference ( in Visual Basic) if no inner exception is specified.
+
+
+ Represents the exception that is thrown when you try to perform an operation on a that is not in a .
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialization information.
+ The data that is required to serialize or deserialize an object.
+ Description of the source and destination of the specified serialized stream.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference ( in Visual Basic) if no inner exception is specified.
+
+
+ Indicates the action that occurs when a is enforced.
+
+
+ Delete or update related rows. This is the default.
+
+
+ No action taken on related rows.
+
+
+ Set values in related rows to the value contained in the property.
+
+
+ Set values in related rows to .
+
+
+ Indicates the schema serialization mode for a typed .
+
+
+ Skips schema serialization for a typed .
+
+
+ Includes schema serialization for a typed . The default.
+
+
+ Specifies how to handle existing schema mappings when performing a operation.
+
+
+ Apply any existing table mappings to the incoming schema. Configure the with the transformed schema.
+
+
+ Ignore any table mappings on the DataAdapter. Configure the using the incoming schema without applying any transformations.
+
+
+ Determines the serialization format for a .
+
+
+ Serialize as binary content. Available in ADO.NET 2.0 and later versions only. This field is obsolete starting in .NET 7.
+
+
+ Serialize as XML content. The default.
+
+
+ Specifies SQL Server-specific data type of a field, property, for use in a .
+
+
+
+ . A 64-bit signed integer.
+
+
+
+ of type . A fixed-length stream of binary data ranging between 1 and 8,000 bytes.
+
+
+
+ . An unsigned numeric value that can be 0, 1, or .
+
+
+
+ . A fixed-length stream of non-Unicode characters ranging between 1 and 8,000 characters.
+
+
+ Date data ranging in value from January 1,1 AD through December 31, 9999 AD.
+
+
+
+ . Date and time data ranging in value from January 1, 1753 to December 31, 9999 to an accuracy of 3.33 milliseconds.
+
+
+ Date and time data. Date value range is from January 1,1 AD through December 31, 9999 AD. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds.
+
+
+ Date and time data with time zone awareness. Date value range is from January 1,1 AD through December 31, 9999 AD. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds. Time zone value range is -14:00 through +14:00.
+
+
+
+ . A fixed precision and scale numeric value between -10 38 -1 and 10 38 -1.
+
+
+
+ . A floating point number within the range of -1.79E +308 through 1.79E +308.
+
+
+
+ of type . A variable-length stream of binary data ranging from 0 to 2 31 -1 (or 2,147,483,647) bytes.
+
+
+
+ . A 32-bit signed integer.
+
+
+
+ . A currency value ranging from -2 63 (or -9,223,372,036,854,775,808) to 2 63 -1 (or +9,223,372,036,854,775,807) with an accuracy to a ten-thousandth of a currency unit.
+
+
+
+ . A fixed-length stream of Unicode characters ranging between 1 and 4,000 characters.
+
+
+
+ . A variable-length stream of Unicode data with a maximum length of 2 30 - 1 (or 1,073,741,823) characters.
+
+
+
+ . A variable-length stream of Unicode characters ranging between 1 and 4,000 characters. Implicit conversion fails if the string is greater than 4,000 characters. Explicitly set the object when working with strings longer than 4,000 characters. Use when the database column is .
+
+
+
+ . A floating point number within the range of -3.40E +38 through 3.40E +38.
+
+
+
+ . Date and time data ranging in value from January 1, 1900 to June 6, 2079 to an accuracy of one minute.
+
+
+
+ . A 16-bit signed integer.
+
+
+
+ . A currency value ranging from -214,748.3648 to +214,748.3647 with an accuracy to a ten-thousandth of a currency unit.
+
+
+ A special data type for specifying structured data contained in table-valued parameters.
+
+
+
+ . A variable-length stream of non-Unicode data with a maximum length of 2 31 -1 (or 2,147,483,647) characters.
+
+
+ Time data based on a 24-hour clock. Time value range is 00:00:00 through 23:59:59.9999999 with an accuracy of 100 nanoseconds. Corresponds to a SQL Server value.
+
+
+
+ of type . Automatically generated binary numbers, which are guaranteed to be unique within a database. is used typically as a mechanism for version-stamping table rows. The storage size is 8 bytes.
+
+
+
+ . An 8-bit unsigned integer.
+
+
+ A SQL Server user-defined type (UDT).
+
+
+
+ . A globally unique identifier (or GUID).
+
+
+
+ of type . A variable-length stream of binary data ranging between 1 and 8,000 bytes. Implicit conversion fails if the byte array is greater than 8,000 bytes. Explicitly set the object when working with byte arrays larger than 8,000 bytes.
+
+
+
+ . A variable-length stream of non-Unicode characters ranging between 1 and 8,000 characters. Use when the database column is .
+
+
+
+ . A special data type that can contain numeric, string, binary, or date data as well as the SQL Server values Empty and Null, which is assumed if no other type is declared.
+
+
+ An XML value. Obtain the XML as a string using the method or property, or as an by calling the method.
+
+
+ All the objects and structures implement the interface.
+
+
+ Indicates whether a structure is null. This property is read-only.
+
+
+ if the value of this object is null. Otherwise, .
+
+
+ The class is not intended for use as a stand-alone component, but as a class from which other classes derive standard functionality.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class.
+ The string to display when the exception is thrown.
+ A reference to an inner exception.
+
+
+ Represents a variable-length stream of binary data to be stored in or retrieved from a database.
+
+
+ Represents a that can be assigned to this instance of the structure.
+
+
+ Initializes a new instance of the structure, setting the property to the contents of the supplied byte array.
+ The byte array to be stored or retrieved.
+
+
+ Concatenates two specified values to create a new structure.
+ A .
+ A .
+ A that is the concatenated value of x and y.
+
+
+ Compares this object to the supplied object and returns an indication of their relative values.
+ The object to be compared to this structure.
+ A signed number that indicates the relative values of this structure and the object.
+
+ Return value Condition- Less than zero The value of this object is less than the object.
- Zero This object is the same as object.
- Greater than zero This object is greater than object, or the object is a null reference.
+
+
+ Compares this object to the supplied object and returns an indication of their relative values.
+ The object to be compared to this structure.
+ A signed number that indicates the relative values of this structure and the object.
+
+ Return value Condition- Less than zero The value of this object is less than the object.
- Zero This object is the same as object.
- Greater than zero This object is greater than object, or the object is a null reference.
+
+
+ Concatenates two structures to create a new structure.
+ A structure.
+ A structure.
+ The concatenated values of the and parameters.
+
+
+ Indicates whether the current instance is equal to another instance of the same type.
+ An instance to compare with this instance.
+
+ if the current instance is equal to the other instance; otherwise, .
+
+
+ Compares two structures to determine whether they are equal.
+ A structure.
+ A structure.
+
+ if the two values are equal. Otherwise, . If either instance is null, then the will be null.
+
+
+ Compares the supplied object parameter to the property of the object.
+ The object to be compared.
+
+ if object is an instance of and the two are equal; otherwise .
+
+
+ Returns the hash code for this structure.
+ A 32-bit signed integer hash code.
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ An .
+ A that indicates the XSD of the specified .
+
+
+ Compares two structures to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise . If either instance of is null, the of the will be .
+
+
+ Compares two structures to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise . If either instance of is null, the of the will be .
+
+
+ Compares two structures to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise . If either instance of is null, the of the will be .
+
+
+ Compares two structures to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise . If either instance of is null, the of the will be .
+
+
+ Compares two structures to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Concatenates the two parameters to create a new structure.
+ A object.
+ A object.
+ The concatenated values of the and parameters.
+
+
+ Compares two structures to determine whether they are equal.
+ A object.
+ A object.
+ A that is if the two instances are equal or if the two instances are not equal. If either instance of is null, the of the will be .
+
+
+ Converts a structure to a array.
+ The structure to be converted.
+ A array.
+
+
+ Converts a structure to a structure.
+ The structure to be converted.
+ The structure to be converted.
+
+
+ Compares two structures to determine whether the first is greater than the second.
+ A object.
+ A object.
+ A that is if the first instance is greater than the second instance. Otherwise . If either instance of is null, the of the will be .
+
+
+ Compares two structures to determine whether the first is greater than or equal to the second.
+ A object.
+ A object.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise . If either instance of is null, the of the will be .
+
+
+ Converts an array of bytes to a structure.
+ The array of bytes to be converted.
+ A structure that represents the converted array of bytes.
+
+
+ Compares two structures to determine whether they are not equal.
+ A object.
+ A object.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Compares two structures to determine whether the first is less than the second.
+ A object.
+ A object.
+ A that is if the first instance is less than the second instance. Otherwise . If either instance of is null, the of the will be .
+
+
+ Compares two structures to determine whether the first is less than or equal to the second.
+ A object.
+ A object.
+ A that is if the first instance is less than or equal to the second instance. Otherwise . If either instance of is null, the of the will be .
+
+
+ For a description of this member, see .
+ An instance.
+
+
+ For a description of this member, see .
+ A .
+
+
+ For a description of this member, see .
+ A .
+
+
+ Converts this instance of to .
+ A structure.
+
+
+ Converts this object to a string.
+ A string that contains the of the . If the is null the string will contain "null".
+
+
+ Converts an array of bytes into a structure.
+ The array of bytes to be used to create the structure.
+ A structure created from an array of bytes.
+
+
+ Indicates whether this structure is null. This property is read-only.
+
+ if ; otherwise, .
+
+
+ Gets the single byte from the property located at the position indicated by the integer parameter, . If indicates a position beyond the end of the byte array, a will be raised. This property is read-only.
+ The position of the byte to be retrieved.
+ The property is read when the property contains
+
+-or-
+
+ The parameter indicates a position beyond the length of the byte array as indicated by the property.
+ The byte located at the position indicated by the integer parameter.
+
+
+ Gets the length in bytes of the property. This property is read-only.
+ The property is read when the property contains .
+ The length of the binary data in the property.
+
+
+ Gets the value of the structure. This property is read-only.
+ The property is read when the property contains .
+ The value of the structure.
+
+
+ Represents an integer value that is either 1 or 0 to be stored in or retrieved from a database.
+
+
+ Represents a false value that can be assigned to the property of an instance of the structure.
+
+
+ Represents that can be assigned to this instance of the structure.
+
+
+ Represents a one value that can be assigned to the property of an instance of the structure.
+
+
+ Represents a true value that can be assigned to the property of an instance of the structure.
+
+
+ Represents a zero value that can be assigned to the property of an instance of the structure.
+
+
+ Initializes a new instance of the structure using the supplied Boolean value.
+ The value for the new structure; either or .
+
+
+ Initializes a new instance of the structure using the specified integer value.
+ The integer whose value is to be used for the new structure.
+
+
+ Computes the bitwise AND operation of two specified structures.
+ A structure.
+ A structure.
+ The result of the logical AND operation.
+
+
+ Compares this object to the supplied object and returns an indication of their relative values.
+ A object to compare, or a null reference ( in Visual Basic).
+ A signed number that indicates the relative values of the instance and value.
+
+ Value Description- A negative integer This instance is less than .
- Zero This instance is equal to .
- A positive integer This instance is greater than , or is a null reference ( in Visual Basic).
+
+
+ Compares this structure to a specified object and returns an indication of their relative values.
+ An object to compare, or a null reference ( in Visual Basic).
+ A signed number that indicates the relative values of the instance and value.
+
+ Value Description- A negative integer This instance is less than .
- Zero This instance is equal to .
- A positive integer This instance is greater than , or is a null reference ( in Visual Basic).
+
+
+ Indicates whether the current instance is equal to another instance of the same type.
+ An instance to compare with this instance.
+
+ if the current instance is equal to the other instance; otherwise, .
+
+
+ Compares two structures to determine whether they are equal.
+ A structure.
+ A structure.
+
+ if the two instances are equal or if the two instances are not equal. If either instance of is null, the of the will be .
+
+
+ Compares the supplied object parameter to the .
+ The object to be compared.
+
+ if object is an instance of and the two are equal; otherwise, .
+
+
+ Returns the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ A .
+ A value that indicates the XSD of the specified .
+
+
+ Compares two instances of to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+
+ if the first instance is greater than the second instance; otherwise, .
+
+
+ Compares two instances of to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+
+ if the first instance is greater than or equal to the second instance; otherwise, .
+
+
+ Compares two instances of to determine whether the first is less than the second.
+ A structure.
+ A structure.
+
+ if the first instance is less than the second instance; otherwise, .
+
+
+ Compares two instances of to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+
+ if the first instance is less than or equal to the second instance; otherwise, .
+
+
+ Compares two instances of for equality.
+ A structure.
+ A structure.
+
+ if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Performs a one's complement operation on the supplied structures.
+ A structure.
+ The one's complement of the supplied .
+
+
+ Computes the bitwise AND operation of two specified structures.
+ A structure.
+ A structure.
+ The result of the logical AND operation.
+
+
+ Computes the bitwise OR of its operands.
+ A structure.
+ A structure.
+ The results of the logical OR operation.
+
+
+ Compares two instances of for equality.
+ A .
+ A .
+
+ if the two instances are equal or if the two instances are not equal. If either instance of is null, the of the will be .
+
+
+ Performs a bitwise exclusive-OR (XOR) operation on the supplied parameters.
+ A structure.
+ A structure.
+ The result of the logical XOR operation.
+
+
+ Converts a to a Boolean.
+ A to convert.
+ A Boolean set to the of the .
+
+
+ Converts the parameter to a structure.
+ A to be converted to a structure.
+ A new structure whose value equals the of the parameter.
+
+
+ Converts the parameter to a structure.
+ A to be converted to a structure.
+ A new structure whose value equals the property of the parameter.
+
+
+ Converts the parameter to a structure.
+ A to be converted to a structure.
+ A new structure whose value equals the property of the parameter.
+
+
+ Converts the parameter to a structure.
+ A to be converted to a structure.
+ A new structure whose value equals the property of the parameter.
+
+
+ Converts the parameter to a structure.
+ A to be converted to a structure.
+ A new structure whose value equals the property of the parameter.
+
+
+ Converts the parameter to a structure.
+ A to be converted to a structure.
+ A new structure whose value equals the property of the parameter.
+
+
+ Converts the parameter to a structure.
+ A to be converted to a structure.
+ A new structure whose value equals the property of the parameter.
+
+
+ Converts the parameter to a structure.
+ A to be converted to a structure.
+ A new structure whose value equals the property of the parameter.
+
+
+ Converts the parameter to a structure.
+ A to be converted to a structure.
+ A new structure whose value equals the property of the parameter.
+
+
+ The false operator can be used to test the of the to determine whether it is false.
+ The structure to be tested.
+
+ if the supplied parameter is is ; otherwise, .
+
+
+ Compares two structures to determine whether the first is greater than the second.
+ A object.
+ A object.
+
+ if the first instance is greater than the second instance; otherwise, .
+
+
+ Compares two structures to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+
+ if the first instance is greater than or equal to the second instance; otherwise, .
+
+
+ Converts the supplied byte value to a .
+ A byte value to be converted to .
+ A value that contains 0 or 1.
+
+
+ Compares two instances of to determine whether they are not equal.
+ A .
+ A .
+
+ if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than the second.
+ A structure.
+ A structure.
+
+ if the first instance is less than the second instance; otherwise, .
+
+
+ Compares two instances of to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+
+ if the first instance is less than or equal to the second instance; otherwise, .
+
+
+ Performs a NOT operation on a .
+ The on which the NOT operation will be performed.
+ A with the if argument was true, if argument was null, and otherwise.
+
+
+ Performs a one's complement operation on the supplied structures.
+ A structure.
+ The one's complement of the supplied .
+
+
+ The true operator can be used to test the of the to determine whether it is true.
+ The structure to be tested.
+
+ if the supplied parameter is is ; otherwise, .
+
+
+ Performs a bitwise OR operation on the two specified structures.
+ A structure.
+ A structure.
+ A new structure whose Value is the result of the bitwise OR operation.
+
+
+ Converts the specified representation of a logical value to its equivalent.
+ The to be converted.
+ A structure that contains the parsed value.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ An .
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ Converts this structure to .
+ A new structure whose value is 1 or 0. If the structure's value equals , the new structure's value is 1. Otherwise, the new structure's value is 0.
+
+
+ Converts this structure to .
+ A new structure whose value is 1 or 0. If the structure's value equals then the new structure's value is 1. Otherwise, the new structure's value is 0.
+
+
+ Converts this structure to .
+ A new structure whose value is 1 or 0. If the structure's value equals then the new structure's value is 1. Otherwise, the new structure's value is 0.
+
+
+ Converts this structure to .
+ A new structure whose value is 1 or 0. If the structure's value equals then the new structure's value is 1. Otherwise, the new structure's value is 0.
+
+
+ Converts this structure to .
+ A new structure whose value is 1 or 0. If the structure's value equals , the new structure's value is 1. Otherwise, the new structure's value is 0.
+
+
+ Converts this structure to .
+ A new structure whose value is 1 or 0. If the structure's value equals , the new structure's value is 1. Otherwise, the new structure's value is 0.
+
+
+ Converts this structure to .
+ A new structure whose value is 1 or 0. If the structure's value equals , the new value is 1. If the structure's value equals , the new value is 0. If structure's value is neither 1 nor 0, the new value is .
+
+
+ Converts this structure to .
+ A new structure whose value is 1 or 0.
+
+ If the structure's value equals true, the new structure's value is 1; otherwise the new structure's value is 0.
+
+
+ Converts this structure to .
+ A new structure whose value is 1 or 0. If the structure's value equals then structure's value is 1. Otherwise, the new structure's value is 0.
+
+
+ Converts this structure to a string.
+ A string that contains the value of the . If the value is null, the string will contain "null".
+
+
+ Performs a bitwise exclusive-OR operation on the supplied parameters.
+ A structure.
+ A structure.
+ The result of the logical XOR operation.
+
+
+ Gets the value of the structure as a byte.
+ A byte representing the value of the structure.
+
+
+ Indicates whether the current is .
+
+ if is ; otherwise, .
+
+
+ Indicates whether this structure is null.
+
+ if the structure is null; otherwise, .
+
+
+ Gets a value that indicates whether the current is .
+
+ if is ; otherwise, .
+
+
+ Gets the structure's value. This property is read-only.
+ The property is set to null.
+
+ if the is ; otherwise, .
+
+
+ Represents an 8-bit unsigned integer, in the range of 0 through 255, to be stored in or retrieved from a database.
+
+
+ A constant representing the largest possible value of a .
+
+
+ A constant representing the smallest possible value of a .
+
+
+ Represents a that can be assigned to this instance of the structure.
+
+
+ Represents a zero value that can be assigned to the property of an instance of the structure.
+
+
+ Initializes a new instance of the structure using the specified byte value.
+ A byte value to be stored in the property of the new structure.
+
+
+ Computes the sum of the two specified structures.
+ A structure.
+ A structure.
+ A structure whose property contains the results of the addition.
+
+
+ Computes the bitwise AND of its operands.
+ A structure.
+ A structure.
+ The results of the bitwise AND operation.
+
+
+ Computes the bitwise OR of its two operands.
+ A structure.
+ A structure.
+ The results of the bitwise OR operation.
+
+
+ Compares this instance to the supplied object and returns an indication of their relative values.
+ The object to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return Value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic)
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return Value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic)
+
+
+ Divides its first operand by its second.
+ A structure.
+ A structure.
+ A new structure whose property contains the results of the division.
+
+
+ Indicates whether the current instance is equal to another instance of the same type.
+ An instance to compare with this instance.
+
+ if the current instance is equal to the other instance; otherwise, .
+
+
+ Performs a logical comparison of two structures to determine whether they are equal.
+ A structure.
+ A structure.
+
+ if the two values are equal. Otherwise, . If either instance is null, then the will be null.
+
+
+ Compares the supplied parameter to the property of the object.
+ The to be compared.
+
+ if object is an instance of and the two are equal; otherwise .
+
+
+ Returns the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ A .
+ A value that indicates the XSD of the specified .
+
+
+ Compares two instances of to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two structures to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Computes the remainder after dividing its first operand by its second.
+ A structure.
+ A structure.
+ A structure whose contains the remainder.
+
+
+ Divides two values and returns the remainder.
+ A .
+ A .
+ The remainder left after division is performed on and .
+
+
+ Computes the product of the two operands.
+ A structure.
+ A structure.
+ A new structure whose property contains the product of the multiplication.
+
+
+ Compares two instances of to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ The ones complement operator performs a bitwise one's complement operation on its operand.
+ A structure.
+ A structure whose property contains the ones complement of the parameter.
+
+
+ Computes the sum of the two specified structures.
+ A structure.
+ A structure.
+ A whose property contains the sum of the two operands.
+
+
+ Computes the bitwise AND of its operands.
+ A structure.
+ A structure.
+ The results of the bitwise AND operation.
+
+
+ Computes the bitwise OR of its two operands.
+ A structure.
+ A structure.
+ The results of the bitwise OR operation.
+
+
+ Divides its first operand by its second.
+ A structure.
+ A structure.
+ A new structure whose property contains the results of the division.
+
+
+ Performs a logical comparison of two structures to determine whether they are equal.
+ A structure.
+ A structure.
+ A that is if the two instances are equal or if the two instances are not equal. If either instance of is null, the of the will be .
+
+
+ Performs a bitwise exclusive-OR operation on the supplied parameters.
+ A structure.
+ A structure.
+ The results of the bitwise XOR operation.
+
+
+ Converts the parameter to a .
+ The parameter to be converted to a .
+ A whose property equals the of the supplied parameter.
+
+
+ Converts the supplied structure to a byte.
+ The structure to be converted to a byte.
+ A byte whose value equals the property of the parameter.
+
+
+ Converts the supplied to .
+ A structure.
+ A structure whose property is equal to the of the parameter.
+
+
+ Converts the supplied to .
+ A structure.
+ A structure whose property is equal to the of the parameter.
+
+
+ Converts the parameter to a .
+ A structure.
+ A structure whose property is equal to the of the parameter.
+
+
+ Converts the supplied to .
+ A structure.
+ A structure whose property is equal to the of the parameter.
+
+
+ Converts the supplied to .
+ A structure.
+ A structure whose property is equal to the of the parameter.
+
+
+ Converts the parameter to a .
+ A structure.
+ A structure whose property is equal to the of the parameter.
+
+
+ Converts the supplied structure to .
+ A structure.
+ A structure whose property is equal to the of the parameter.
+
+
+ Converts the supplied to .
+ An instance of the class.
+ A structure whose property is equal to the numeric value represented by the .
+
+
+ Compares two instances of to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Converts the supplied byte value to a .
+ A byte value to be converted to .
+ A structure whose property is equal to the supplied parameter.
+
+
+ Compares two instances of to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Computes the remainder after dividing its first operand by its second.
+ A structure.
+ A structure.
+ A structure whose contains the remainder.
+
+
+ Computes the product of the two operands.
+ A structure.
+ A structure.
+ A new structure whose property contains the product of the multiplication.
+
+
+ The ones complement operator performs a bitwise one's complement operation on its operand.
+ A structure.
+ A structure whose property contains the ones complement of the parameter.
+
+
+ Subtracts the second operand from the first.
+ A structure.
+ A structure.
+ The results of subtracting the second operand from the first.
+
+
+ Converts the representation of a number to its 8-bit unsigned integer equivalent.
+ The to be parsed.
+ A structure that contains the 8-bit number represented by the parameter.
+
+
+ Subtracts the second operand from the first.
+ A structure.
+ A structure.
+ The results of subtracting the second operand from the first.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ An .
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ Converts this structure to .
+
+ if the is non-zero; if zero; otherwise Null.
+
+
+ Converts this structure to .
+ A structure whose equals the of this structure.
+
+
+ Converts this structure to .
+ A structure with the same value as this .
+
+
+ Converts this structure to .
+ A structure with the same value as this .
+
+
+ Converts this to .
+ A structure with the same value as this .
+
+
+ Converts this structure to .
+ A structure who equals the of this .
+
+
+ Converts this structure to .
+ A structure whose equals the of this structure.
+
+
+ Converts this structure to .
+ A structure that has the same as this structure.
+
+
+ Converts this instance of to .
+ A that contains the string representation of the structure's .
+
+
+ Converts this structure to a .
+ A string that contains the of the . If the is null, the will be a null string.
+
+
+ Performs a bitwise exclusive-OR operation on the supplied parameters.
+ A structure.
+ A structure.
+ The results of the XOR operation.
+
+
+ Gets a Boolean value that indicates whether this structure is null.
+
+ if null. Otherwise, .
+
+
+ Gets the value of the structure. This property is read-only.
+ The value of the structure.
+
+
+ Represents a mutable reference type that wraps either a or a .
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class based on the specified byte array.
+ The array of unsigned bytes.
+
+
+ Initializes a new instance of the class based on the specified value.
+ A value.
+
+
+ Initializes a new instance of the class based on the specified value.
+ A .
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ A .
+ A that indicates the XSD of the specified .
+
+
+ Converts a structure to a structure.
+ The structure to be converted.
+ A structure.
+
+
+ Converts a structure to a structure.
+ The structure to be converted.
+ A structure.
+
+
+ Copies bytes from this instance to the passed-in buffer and returns the number of copied bytes.
+ An long value offset into the value that is contained in the instance.
+ The byte array buffer to copy into.
+ An integer offset into the buffer to start copying into.
+ An integer representing the number of bytes to copy.
+ An long value representing the number of copied bytes.
+
+
+ Sets the length of this instance.
+ The long value representing the length.
+
+
+ Sets this instance to null.
+
+
+ Gets serialization information with all the data needed to reinstantiate this instance.
+ The object to be populated with serialization information.
+ The destination context of the serialization.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ Constructs and returns a from this instance.
+ A from this instance.
+
+
+ Copies bytes from the passed-in buffer to this instance.
+ An long value offset into the value that is contained in the instance.
+ The byte array buffer to copy into.
+ An integer offset into the buffer to start copying into.
+ An integer representing the number of bytes to copy.
+
+
+ Returns a reference to the internal buffer.
+ A reference to the internal buffer. For instances created on top of unmanaged pointers, it returns a managed copy of the internal buffer.
+
+
+ Gets a Boolean value that indicates whether this is null.
+
+ if the is null, otherwise.
+
+
+ Gets or sets the instance at the specified index.
+ A value.
+ A value.
+
+
+ Gets the length of the value that is contained in the instance.
+ A value representing the length of the value that is contained in the instance.
+
+ Returns -1 if no buffer is available to the instance or if the value is null.
+
+ Returns a for a stream-wrapped instance.
+
+
+ Gets the maximum length of the value of the internal buffer of this .
+ A long representing the maximum length of the value of the internal buffer. Returns -1 for a stream-wrapped .
+
+
+ Gets a null instance of this .
+ An instance whose property returns .
+
+
+ Returns information about the storage state of this instance.
+ A enumeration.
+
+
+ Gets or sets the data of this as a stream.
+ The stream that contains the SqlBytes data.
+
+
+ Returns a managed copy of the value held by this .
+ The value of this as an array of bytes.
+
+
+
+ is a mutable reference type that wraps a array or a instance.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class based on the specified character array.
+ A array.
+
+
+ Initializes a new instance of the class based on the specified value.
+ A .
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ A .
+ A value that indicates the XSD of the specified .
+
+
+ Converts a structure to a structure.
+ The structure to be converted.
+ A structure.
+
+
+ Converts a structure to a structure.
+ The structure to be converted.
+ A structure.
+
+
+ Copies characters from this instance to the passed-in buffer and returns the number of copied characters.
+ An value offset into the value that is contained in the instance.
+ The character array buffer to copy into.
+ An integer offset into the buffer to start copying into.
+ An integer value representing the number of characters to copy.
+ An value representing the number of copied bytes.
+
+
+ Sets the length of this instance.
+ The value representing the length.
+
+
+ Sets this instance to null.
+
+
+ Gets serialization information with all the data needed to reinstantiate this instance.
+ The object to be populated with serialization information.
+ The destination context of the serialization.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ Converts this instance to its equivalent representation.
+ A representation of this type.
+
+
+ Copies characters from the passed-in buffer to this instance.
+ A value offset into the value that is contained in the instance.
+ The character array buffer to copy into.
+ An integer offset into the buffer to start copying into.
+ An integer representing the number of characters to copy.
+
+
+ Returns a reference to the internal buffer.
+ A reference to the internal buffer. For instances created on top of unmanaged pointers, it returns a managed copy of the internal buffer.
+
+
+ Gets a Boolean value that indicates whether this is null.
+
+ if the is null. Otherwise, .
+
+
+ Gets or sets the instance at the specified index.
+ An value.
+ A value.
+
+
+ Gets the length of the value that is contained in the instance.
+ A value that indicates the length in characters of the value that is contained in the instance.
+
+ Returns -1 if no buffer is available to the instance, or if the value is null.
+
+ Returns a for a stream-wrapped instance.
+
+
+ Gets the maximum length in two-byte characters of the value the internal buffer can hold.
+ An value representing the maximum length in two-byte characters of the value of the internal buffer.
+
+ Returns -1 for a stream-wrapped .
+
+
+ Returns a null instance of this .
+ An instance whose property returns . For more information, see Handling Null Values.
+
+
+ Returns information about the storage state of this instance.
+ A enumeration.
+
+
+ Returns a managed copy of the value held by this .
+ The value of this as an array of characters.
+
+
+ Specifies the compare option values for a structure.
+
+
+ Specifies that sorts should be based on a characters numeric value instead of its alphabetical value.
+
+
+ Performs a binary sort.
+
+
+ Specifies that comparisons must ignore case.
+
+
+ Specifies that comparisons must ignore the Kana type. Kana type refers to Japanese hiragana and katakana characters that represent phonetic sounds in the Japanese language. Hiragana is used for native Japanese expressions and words, while katakana is used for words borrowed from other languages, such as "computer" or "Internet". A phonetic sound can be expressed in both hiragana and katakana. If this value is selected, the hiragana character for one sound is considered equal to the katakana character for the same sound.
+
+
+ Specifies that comparisons must ignore nonspace combining characters, such as diacritics. The Unicode Standard defines combining characters as characters that are combined with base characters to produce a new character. Non-space combining characters do not use character space by themselves when rendered. For more information about non-space combining characters, see the Unicode Standard at https://www.unicode.org.
+
+
+ Specifies that comparisons must ignore the character width. For example, Japanese katakana characters can be written as full-width or half-width and, if this value is selected, the katakana characters written as full-width are considered equal to the same characters written in half-width.
+
+
+ Specifies the default option settings for comparisons.
+
+
+ Represents the date and time data ranging in value from January 1, 1753 to December 31, 9999 to an accuracy of 3.33 milliseconds to be stored in or retrieved from a database. The structure has a different underlying data structure from its corresponding .NET type, , which can represent any time between 12:00:00 AM 1/1/0001 and 11:59:59 PM 12/31/9999, to the accuracy of 100 nanoseconds. actually stores the relative difference to 00:00:00 AM 1/1/1900. Therefore, a conversion from "00:00:00 AM 1/1/1900" to an integer will return 0.
+
+
+ Represents the maximum valid date value for a structure.
+
+
+ Represents the minimum valid date value for a structure.
+
+
+ Represents a that can be assigned to this instance of the structure.
+
+
+ A constant whose value is the number of ticks equivalent to one hour.
+
+
+ A constant whose value is the number of ticks equivalent to one minute.
+
+
+ A constant whose value is the number of ticks equivalent to one second.
+
+
+ Initializes a new instance of the structure using the specified value.
+ A structure.
+
+
+ Initializes a new instance of the structure using the supplied parameters.
+ An integer value that represents the date as ticks.
+ An integer value that represents the time as ticks.
+
+
+ Initializes a new instance of the structure using the supplied parameters to initialize the year, month, day.
+ An integer representing the year of the of the new structure.
+ An integer value representing the month of the new structure.
+ An integer value representing the day number of the new structure.
+
+
+ Initializes a new instance of the structure using the supplied parameters to initialize the year, month, day, hour, minute, and second of the new structure.
+ An integer value representing the year of the new structure.
+ An integer value representing the month of the new structure.
+ An integer value representing the day of the month of the new structure.
+ An integer value representing the hour of the new structure.
+ An integer value representing the minute of the new structure.
+ An integer value representing the second of the new structure.
+
+
+ Initializes a new instance of the structure using the supplied parameters to initialize the year, month, day, hour, minute, second, and millisecond of the new structure.
+ An integer value representing the year of the new structure.
+ An integer value representing the month of the new structure.
+ An integer value representing the day of the month of the new structure.
+ An integer value representing the hour of the new structure.
+ An integer value representing the minute of the new structure.
+ An integer value representing the second of the new structure.
+ An double value representing the millisecond of the new structure.
+
+
+ Initializes a new instance of the structure using the supplied parameters to initialize the year, month, day, hour, minute, second, and microsecond of the new structure.
+ An integer value representing the year of the new structure.
+ An integer value representing the month of the new structure.
+ An integer value representing the day of the new structure.
+ An integer value representing the hour of the new structure.
+ An integer value representing the minute of the new structure.
+ An integer value representing the second of the new structure.
+ An integer value representing the microsecond (thousandths of a millisecond) of the new structure.
+
+
+ Adds a to the specified .
+ A value.
+ A value.
+ A value.
+
+
+ Compares this structure to the supplied structure and returns an indication of their relative values.
+ The structure to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than .
- Zero This instance is the same as .
- Greater than zero This instance is greater than
+
+ -or-
+
+ is a null reference ( in Visual Basic)
+
+
+ Compares this structure to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( as Visual Basic).
+
+
+ Indicates whether the current instance is equal to another instance of the same type.
+ An instance to compare with this instance.
+
+ if the current instance is equal to the other instance; otherwise, .
+
+
+ Performs a logical comparison of two structures to determine whether they are equal.
+ A structure.
+ A structure.
+
+ if the two values are equal. Otherwise, .
+
+
+ Compares the supplied object parameter to the property of the object.
+ The object to be compared.
+
+ if the object is an instance of and the two are equal; otherwise .
+
+
+ Gets the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ A .
+ A value that indicates the XSD of the specified .
+
+
+ Compares two instances of to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of two instances of to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Adds the period of time indicated by the supplied parameter, , to the supplied structure.
+ A structure.
+ A structure.
+ A new . If either argument is , the new is .
+
+
+ Performs a logical comparison of two structures to determine whether they are equal.
+ A structure.
+ A structure.
+
+ if the two values are equal. Otherwise, .
+
+
+ Converts the structure to a structure.
+ A structure.
+ A object whose and properties contain the same date and time values as the property of the supplied structure.
+
+
+ Converts the parameter to a .
+ A .
+ A structure whose is equal to the date and time represented by the parameter. If the is null, the of the newly created structure will be null.
+
+
+ Compares two instances of to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Converts a structure to a structure.
+ A structure.
+ A structure whose is equal to the combined and properties of the supplied structure.
+
+
+ Performs a logical comparison of two instances of to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Subtracts the supplied structure, , from the supplied structure.
+ A structure.
+ A structure.
+ A structure representing the results of the subtraction.
+
+
+ Converts the specified representation of a date and time to its equivalent.
+ The to be parsed.
+ A structure equal to the date and time represented by the specified .
+
+
+ Subtracts the specified from this instance.
+ A value.
+ A value.
+ A value.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ An .
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ Converts this structure to .
+ A structure whose value is a string representing the date and time that is contained in this structure.
+
+
+ Converts this structure to a .
+ A representing the property of this structure.
+
+
+ Gets the number of ticks representing the date of this structure.
+ The exception that is thrown when the property of a structure is set to null.
+ The number of ticks representing the date that is contained in the property of this structure.
+
+
+ Indicates whether this structure is null.
+
+ if null. Otherwise, .
+
+
+ Gets the number of ticks representing the time of this structure.
+ The number of ticks representing the time of this structure.
+
+
+ Gets the value of the structure. This property is read-only.
+ The exception that is thrown when the property of a structure is set to null.
+ The value of this structure.
+
+
+ Represents a numeric value between - 10^38 +1 and 10^38 - 1, with fixed precision and scale.
+
+
+ A constant representing the largest possible value for the property.
+
+
+ A constant representing the maximum value for the property.
+
+
+ A constant representing the maximum value of a structure.
+
+
+ A constant representing the minimum value for a structure.
+
+
+ Represents a that can be assigned to this instance of the class.
+
+
+ Initializes a new instance of the structure using the supplied parameters.
+ The maximum number of digits that can be used to represent the property of the new structure.
+ The number of decimal places to which the property will be resolved for the new structure.
+ A Boolean value that indicates whether the new structure represents a positive or negative number.
+ An 32-bit unsigned integer which will be combined with data2, data3, and data4 to make up the 128-bit unsigned integer that represents the new structures value.
+ An 32-bit unsigned integer which will be combined with data1, data3, and data4 to make up the 128-bit unsigned integer that represents the new structures value.
+ An 32-bit unsigned integer which will be combined with data1, data2, and data4 to make up the 128-bit unsigned integer that represents the new structures value.
+ An 32-bit unsigned integer which will be combined with data1, data2, and data3 to make up the 128-bit unsigned integer that represents the new structures value.
+
+
+ Initializes a new instance of the structure using the supplied parameters.
+ The maximum number of digits that can be used to represent the property of the new structure.
+ The number of decimal places to which the property will be resolved for the new structure.
+ A Boolean value that indicates whether the new structure represents a positive or negative number.
+ The 128-bit unsigned integer that provides the value of the new .
+
+
+ Initializes a new instance of the structure using the supplied value.
+ The value to be stored as a structure.
+
+
+ Initializes a new instance of the structure using the supplied double parameter.
+ A double, representing the value for the new structure.
+
+
+ Initializes a new instance of the structure using the supplied integer value.
+ The supplied integer value which will the used as the value of the new structure.
+
+
+ Initializes a new instance of the structure using the supplied long integer value.
+ The supplied long integer value which will the used as the value of the new structure.
+
+
+ The Abs method gets the absolute value of the parameter.
+ A structure.
+ A structure whose property contains the unsigned number representing the absolute value of the parameter.
+
+
+ Calculates the sum of the two operators.
+ A structure.
+ A structure.
+ A new structure whose property contains the sum.
+
+
+ The scale of the operand will be adjusted to the number of digits indicated by the digits parameter. Depending on the value of the fRound parameter, the value will either be rounded to the appropriate number of digits or truncated.
+ The structure to be adjusted.
+ The number of digits in the adjusted structure.
+ If this parameter is , the new Value will be rounded, if , the value will be truncated.
+ A new structure whose property contains the adjusted number.
+
+
+ Returns the smallest whole number greater than or equal to the specified structure.
+ The structure for which the ceiling value is to be calculated.
+ A representing the smallest whole number greater than or equal to the specified structure.
+
+
+ Compares this instance to the supplied object and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic)
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return Value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic)
+
+
+ Adjusts the value of the operand to the indicated precision and scale.
+ The structure whose value is to be adjusted.
+ The precision for the new structure.
+ The scale for the new structure.
+ A new structure whose Value has been adjusted to the precision and scale indicated in the parameters.
+
+
+ The division operator calculates the results of dividing the first operand by the second.
+ A structure.
+ A structure.
+ A new structure whose property contains the results of the division.
+
+
+ Indicates whether the current instance is equal to another instance of the same type.
+ An instance to compare with this instance.
+
+ if the current instance is equal to the other instance; otherwise, .
+
+
+ Performs a logical comparison of the two operands to determine whether they are equal.
+ A structure.
+ A structure.
+
+ if the two values are equal. Otherwise, . If either instance is null, the value of the will be null.
+
+
+ Compares the supplied parameter to the property of the instance.
+ The to be compared.
+
+ if object is an instance of and the two are equal. Otherwise, .
+
+
+ Rounds a specified number to the next lower whole number.
+ The structure for which the floor value is to be calculated.
+ A structure that contains the whole number part of this structure.
+
+
+ Returns the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ A .
+ A value that indicates the XSD of the specified .
+
+
+ Performs a logical comparison of two structures to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of two structures to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ The multiplication operator computes the product of the two parameters.
+ A structure.
+ A structure.
+ A new structure whose property contains the product of the multiplication.
+
+
+ Performs a logical comparison of the two parameters to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Calculates the sum of the two operators.
+ A structure.
+ A structure.
+ A new structure whose property contains the sum.
+
+
+ The division operator calculates the results of dividing the first operand by the second.
+ A structure.
+ A structure.
+ A new structure whose property contains the results of the division.
+
+
+ Performs a logical comparison of the two operands to determine whether they are equal.
+ A structure.
+ A structure.
+ A that is if the two instances are equal or if the two instances are not equal. If either instance of is null, the of the will be .
+
+
+ Converts the supplied structure to .
+ The structure to be converted.
+ A new structure whose is equal to the of the parameter.
+
+
+ Converts the parameter to .
+ The structure to be converted.
+ A new structure whose value equals the of the parameter.
+
+
+ Converts the supplied structure to .
+ The structure to be converted.
+ A new structure whose equals the of the parameter.
+
+
+ Converts the supplied structure to .
+ The structure to be converted.
+ A new structure whose property equals the of the parameter.
+
+
+ Converts the supplied parameter to .
+ The object to be converted.
+ A new structure whose equals the value represented by the parameter.
+
+
+ Converts the parameter to .
+ The structure to be converted.
+ A new structure whose value equals the value of the parameter.
+
+
+ Performs a logical comparison of two structures to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Converts the supplied structure to .
+ The structure to be converted.
+ A new structure whose property equals the property of the parameter.
+
+
+ Converts the supplied structure to .
+ The structure to be converted.
+ A new structure whose property equals the property of the parameter.
+
+
+ Converts the supplied structure to .
+ The structure to be converted.
+ A new structure whose property is equal to the property of the parameter.
+
+
+ Converts the supplied structure to SqlDecimal.
+ The structure to be converted.
+ A new structure whose equals the of the parameter.
+
+
+ Converts the operand to .
+ The structure to be converted.
+ A new structure whose equals the of the parameter.
+
+
+ Converts the value to .
+ The value to be converted.
+ A new structure whose property equals the value of the parameter.
+
+
+ Converts the supplied structure to .
+ The structure to be converted.
+ A new structure whose property equals the value of the parameter.
+
+
+ Performs a logical comparison of the two parameters to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of two structures to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ The multiplication operator computes the product of the two parameters.
+ A structure.
+ A structure.
+ A new structure whose property contains the product of the multiplication.
+
+
+ Calculates the results of subtracting the second operand from the first.
+ A structure.
+ A structure.
+ A new structure whose Value property contains the results of the subtraction.
+
+
+ The unary minus operator negates the parameter.
+ The structure to be negated.
+ A new structure whose value contains the results of the negation.
+
+
+ Converts the representation of a number to its equivalent.
+ The to be parsed.
+ A equivalent to the value that is contained in the specified .
+
+
+ Raises the value of the specified structure to the specified exponential power.
+ The structure to be raised to a power.
+ A double value that indicates the power to which the number should be raised.
+ A structure that contains the results.
+
+
+ Gets the number nearest the specified structure's value with the specified precision.
+ The structure to be rounded.
+ The number of significant fractional digits (precision) in the return value.
+ A structure that contains the results of the rounding operation.
+
+
+ Gets a value that indicates the sign of a structure's property.
+ The structure whose sign is to be evaluated.
+ A number that indicates the sign of the structure.
+
+
+ Calculates the results of subtracting the second operand from the first.
+ A structure.
+ A structure.
+ A new structure whose Value property contains the results of the subtraction.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ An .
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ Returns the a double equal to the contents of the property of this instance.
+ The decimal representation of the property.
+
+
+ Converts this structure to .
+
+ if the is non-zero; if zero; otherwise Null.
+
+
+ Converts this structure to .
+ A structure whose equals the of this structure. If the structure's Value is , the structure's will be 1. Otherwise, the structure's will be 0.
+
+
+ Converts this structure to .
+ A structure with the same value as this instance of .
+
+
+ Converts this structure to .
+ A structure with the same value as this instance of .
+
+
+ Converts this structure to .
+ A structure with the same value as this instance of .
+
+
+ Converts this structure to .
+ A structure with the same value as this instance of .
+
+
+ Converts this structure to .
+ A structure with the same value as this instance of .
+
+
+ Converts this structure to .
+ A structure with the same value as this instance of .
+
+
+ Converts this structure to .
+ A structure whose value is a string representing the value contained in this structure.
+
+
+ Converts this structure to .
+ A new object that contains the string representation of the structure's property.
+
+
+ Truncates the specified structure's value to the that you want position.
+ The structure to be truncated.
+ The decimal position to which the number will be truncated.
+ Supply a negative value for the parameter in order to truncate the value to the corresponding position to the left of the decimal point.
+
+
+ Writes the four 32-bit unsigned integer values that make up the structure into the span.
+ A of 32-bit unsigned integers.
+ The number of items written to the .
+
+
+ Gets the binary representation of the value of this structure as an array of bytes.
+ An array of bytes that contains the binary representation of the structure's value.
+
+
+ Gets the binary representation of this structure as an array of integers.
+ An array of integers that contains the binary representation of this structure.
+
+
+ Indicates whether this structure is null.
+
+ if this structure is null. Otherwise, .
+
+
+ Indicates whether the of this structure is greater than zero.
+
+ if the is assigned to null. Otherwise, .
+
+
+ Gets the maximum number of digits used to represent the property.
+ The maximum number of digits used to represent the of this structure.
+
+
+ Gets the number of decimal places to which is resolved.
+ The number of decimal places to which the property is resolved.
+
+
+ Gets the value of the structure. This property is read-only.
+ A number in the range -79,228,162,514,264,337,593,543,950,335 through 79,228,162,514,162,514,264,337,593,543,950,335.
+
+
+ Represents a floating-point number within the range of -1.79E +308 through 1.79E +308 to be stored in or retrieved from a database.
+
+
+ A constant representing the maximum value for a structure.
+
+
+ A constant representing the minimum possible value of .
+
+
+ Represents a that can be assigned to this instance of the structure.
+
+
+ Represents a zero value that can be assigned to the property of an instance of the structure.
+
+
+ Initializes a new instance of the structure using the supplied double parameter to set the new structure's property.
+ A double whose value will be used for the new .
+
+
+ The addition operator computes the sum of the two operands.
+ A structure.
+ A structure.
+ The sum of the two operands.
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic)
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to compare.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic).
+
+
+ The division operator divides the first operand by the second.
+ A structure.
+ A structure.
+ A structure that contains the results of the division operation.
+
+
+ Indicates whether the current instance is equal to another instance of the same type.
+ An instance to compare with this instance.
+
+ if the current instance is equal to the other instance; otherwise, .
+
+
+ Performs a logical comparison on two instances of to determine whether they are equal.
+ A structure.
+ A structure.
+
+ if the two values are equal. Otherwise, .
+
+
+ Compares the supplied object parameter to the property of the object.
+ The object to be compared.
+
+ if the two values are equal. Otherwise, .
+
+
+ Returns the hash code for this structure.
+ A 32-bit signed integer hash code.
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ An .
+ A value that indicates the XSD of the specified .
+
+
+ Compares two instances of to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ The multiplication operator computes the product of the two operands.
+ A structure.
+ A structure.
+ The product of the two operands.
+
+
+ Compares two instances of to determine whether they are notequal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ The addition operator computes the sum of the two operands.
+ A structure.
+ A structure.
+ The sum of the two operands.
+
+
+ The division operator divides the first operand by the second.
+ A structure.
+ A structure.
+ A structure that contains the results of the division operation.
+
+
+ Performs a logical comparison on two instances of to determine whether they are equal.
+ A structure.
+ A structure.
+
+ if the two values are equal. Otherwise, .
+
+
+ Converts the supplied parameter to .
+ The to be converted.
+ A new structure whose is either 0 or 1, depending on the property of the parameter. If the is , the structure will be .
+
+
+ Converts the supplied structure to double.
+ A structure.
+ A double equivalent to the specified structure's value.
+
+
+ Converts the supplied parameter to .
+ A object.
+ A new whose is equal to the value of the number represented by the . If the is , the structure will be .
+
+
+ Compares two instances of to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Converts the supplied parameter to .
+ A structure.
+ A structure whose is equal to the of the parameter. If the is , the structure will be .
+
+
+ Converts the supplied parameter to .
+ A structure.
+ A new structure whose is equal to the of the parameter. If the is , the structure will be .
+
+
+ Converts the supplied parameter to .
+ A structure.
+ A new structure whose is equal to the of the parameter. If the is , the structure will be .
+
+
+ Converts the supplied parameter to .
+ A structure.
+ A new whose is equal to the of the parameter. If the is , the structure will be .
+
+
+ Converts the supplied parameter to .
+ A structure.
+ A new whose is equal to the of the parameter. If the is , the structure will be .
+
+
+ Converts the supplied parameter to .
+ A structure.
+ A new whose is equal to the of the parameter. If the is , the structure will be .
+
+
+ Converts the supplied parameter to .
+ A structure.
+ A new structure whose is equal to the of the parameter. If the is , the structure will be .
+
+
+ Converts the supplied double value to a .
+ The double value to convert.
+ A with the same value as the specified double parameter.
+
+
+ Compares two instances of to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ The multiplication operator computes the product of the two operands.
+ A structure.
+ A structure.
+ The product of the two operands.
+
+
+ The subtraction operator the second operand from the first.
+ A structure.
+ A structure.
+ The results of the subtraction operation.
+
+
+ Returns the negated value of the specified structure.
+ A structure.
+ A structure that contains the negated value.
+
+
+ Converts the representation of a number to its double-precision floating point number equivalent.
+ The to be parsed.
+ A that contains the value represented by the .
+
+
+ The subtraction operator the second operand from the first.
+ A structure.
+ A structure.
+ The results of the subtraction operation.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ An XML schema consumed by .NET Framework.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ A .
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ A .
+
+
+ Converts this structure to .
+ A structure whose will be if the structure's is non-zero, if the is zero and if the structure is .
+
+
+ Converts this structure to .
+ A structure whose equals the of this structure.
+
+
+ Converts this structure to .
+ A new structure whose converted value equals the rounded value of this .
+
+
+ Converts this structure to .
+ A new structure whose equals the integer part of the structure's value.
+
+
+ Converts this structure to .
+ A new structure whose equals the integer part of the structure's value.
+
+
+ Converts this structure to .
+ A new structure whose equals the integer part of the structure's value.
+
+
+ Converts this structure to .
+ A new structure whose is equal to the value of this .
+
+
+ Converts this structure to .
+ A new structure whose is equal to the of this .
+
+
+ Converts this structure to .
+ A representing the of this .
+
+
+ Converts this structure to a string.
+ A string representing the of this .
+
+
+ Returns a Boolean value that indicates whether this instance is null.
+
+ if is null. Otherwise, .
+
+
+ Gets the value of the structure. This property is read-only.
+ The value of the structure.
+
+
+ Represents a GUID to be stored in or retrieved from a database.
+
+
+ Represents a that can be assigned to this instance of the structure.
+
+
+ Initializes a new instance of the structure using the supplied byte array parameter.
+ A byte array.
+
+
+ Initializes a new instance of the structure using the specified parameter.
+ A .
+
+
+ Initializes a new instance of the structure using the specified values.
+ The first four bytes of the .
+ The next two bytes of the .
+ The next two bytes of the .
+ The next byte of the .
+ The next byte of the .
+ The next byte of the .
+ The next byte of the .
+ The next byte of the .
+ The next byte of the .
+ The next byte of the .
+ The next byte of the .
+
+
+ Initializes a new instance of the structure using the specified parameter.
+ A object.
+
+
+ Compares this structure to the supplied and returns an indication of their relative values. Compares more than the last 6 bytes, but treats the last 6 bytes as the most significant ones in comparisons.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return Value Condition- Less than zero This instance is less than object.
- Zero This instance is the same as object.
- Greater than zero This instance is greater than object
+
+ -or-
+
+ object is a null reference ().
+
+
+ Compares this structure to the supplied object and returns an indication of their relative values. Compares more than the last 6 bytes, but treats the last 6 bytes as the most significant ones in comparisons.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return Value Condition- Less than zero This instance is less than object.
- Zero This instance is the same as object.
- Greater than zero This instance is greater than object
+
+ -or-
+
+ object is a null reference ()
+
+
+ Indicates whether the current instance is equal to another instance of the same type.
+ An instance to compare with this instance.
+
+ if the current instance is equal to the other instance; otherwise, .
+
+
+ Performs a logical comparison of two structures to determine whether they are equal.
+ A structure.
+ A structure.
+
+ if the two values are equal. Otherwise, . If either instance is null, then the will be null.
+
+
+ Compares the supplied object parameter to the property of the object.
+ The object to be compared.
+
+ if object is an instance of and the two are equal; otherwise .
+
+
+ Returns the hash code of this structure.
+ A 32-bit signed integer hash code.
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ A .
+ A value that indicates the XSD of the specified .
+
+
+ Compares two instances of to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison on two structures to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of two structures to determine whether they are equal.
+ A structure.
+ A structure.
+ A that is if the two instances are equal or if the two instances are not equal. If either instance of is null, the of the will be .
+
+
+ Converts the parameter to .
+ A object.
+ A new whose is equal to the of the parameter.
+
+
+ Converts the supplied parameter to .
+ A structure.
+ A new equal to the of the .
+
+
+ Converts the specified structure to .
+ A object.
+ A whose equals the value represented by the parameter.
+
+
+ Compares two instances of to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Converts the supplied parameter to .
+ A .
+ A new whose is equal to the parameter.
+
+
+ Performs a logical comparison on two structures to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Converts the specified structure to .
+ The to be parsed.
+ A equivalent to the value that is contained in the specified .
+
+
+ Populates a with the data needed to serialize the target object.
+ The to populate with data.
+ The destination (see ) for this serialization.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ An .
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ Converts this structure to a byte array.
+ An array of bytes representing the of this structure.
+
+
+ Converts this structure to .
+ A structure that contains the bytes in the structure.
+
+
+ Converts this structure to .
+ A structure that contains the string representation of the structure.
+
+
+ Converts this structure to a .
+ A that contains the string representation of the structure.
+
+
+ Gets a Boolean value that indicates whether this structure is null.
+
+ if . Otherwise, .
+
+
+ Gets the value of the structure. This property is read-only.
+ A structure.
+
+
+ Represents a 16-bit signed integer to be stored in or retrieved from a database.
+
+
+ A constant representing the largest possible value of a .
+
+
+ A constant representing the smallest possible value of a .
+
+
+ Represents a that can be assigned to this instance of the structure.
+
+
+ Represents a zero value that can be assigned to the property of an instance of the structure.
+
+
+ Initializes a new instance of the structure using the supplied short integer parameter.
+ A short integer.
+
+
+ Computes the sum of the two operands.
+ A structure.
+ A structure.
+ A structure whose property contains the sum of the two operands.
+
+
+ Computes the bitwise AND of its operands.
+ A structure.
+ A structure.
+ A structure whose property contains the results of the bitwise AND.
+
+
+ Computes the bitwise OR of its two operands.
+ A structure.
+ A structure.
+ A structure whose property contains the results of the bitwise OR.
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object, or the object is a null reference ( in Visual Basic)
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ object is a null reference ( in Visual Basic)
+
+
+ Divides the first operand by the second.
+ A structure.
+ A structure.
+ A whose property contains the results of the division.
+
+
+ Indicates whether the current instance is equal to another instance of the same type.
+ An instance to compare with this instance.
+
+ if the current instance is equal to the other instance; otherwise, .
+
+
+ Performs a logical comparison of two structures to determine whether they are equal.
+ A structure.
+ A structure.
+
+ if the two values are equal. Otherwise, . If either instance is null, then the will be null.
+
+
+ Compares the specified object to the property of the object.
+ The object to be compared.
+
+ if object is an instance of and the two are equal; otherwise .
+
+
+ Returns the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ An .
+ A value that indicates the XSD of the specified .
+
+
+ Compares two instances of to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two structures to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two structures to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Computes the remainder after dividing its first operand by its second.
+ A structure.
+ A structure.
+ A structure whose contains the remainder.
+
+
+ Divides two values and returns the remainder.
+ A value.
+ A value.
+ The remainder left after division is performed on and .
+
+
+ Computes the product of the two parameters.
+ A structure.
+ A structure.
+ A structure whose contains the product of the two parameters.
+
+
+ Performs a logical comparison of two structures to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ The ~ operator performs a bitwise one's complement operation on its operand.
+ A structure.
+ A structure whose property contains the complement of the specified structure.
+
+
+ Computes the sum of the two operands.
+ A structure.
+ A structure.
+ A structure whose property contains the sum of the two operands.
+
+
+ Computes the bitwise AND of its operands.
+ A structure.
+ A structure.
+ A structure whose property contains the results of the bitwise AND.
+
+
+ Computes the bitwise OR of its two operands.
+ A structure.
+ A structure.
+ A structure whose property contains the results of the bitwise OR.
+
+
+ Divides the first operand by the second.
+ A structure.
+ A structure.
+ A whose property contains the results of the division.
+
+
+ Performs a logical comparison of two structures to determine whether they are equal.
+ A structure.
+ A structure.
+ A that is if the two instances are equal or if the two instances are not equal. If either instance of is null, the of the will be .
+
+
+ Performs a bitwise exclusive-OR operation on the supplied parameters.
+ A structure.
+ A structure.
+ A structure whose property contains the results of the bitwise XOR.
+
+
+ Converts the supplied structure to .
+ A structure.
+ A new structure whose property is equal to the property of the parameter.
+
+
+ Converts the supplied structure to .
+ A structure.
+ A new structure whose property is equal to the property of the parameter.
+
+
+ Converts the supplied structure to .
+ A structure.
+ A new structure whose property is equal to the integer part of the parameter.
+
+
+ Converts the supplied structure to a short integer.
+ A structure.
+ A short integer whose value is the Value of the parameter.
+
+
+ Converts the supplied structure to .
+ A structure.
+ A new structure whose property is equal to the of the supplied parameter.
+
+
+ Converts the supplied structure to .
+ A structure.
+ A new structure whose property is equal to the of the parameter.
+
+
+ Converts the supplied structure to .
+ A structure.
+ A new structure whose property is equal to the property of the parameter.
+
+
+ Converts the supplied structure to .
+ A structure.
+ A new structure whose property is equal to the integer part of the parameter.
+
+
+ Converts the supplied object to .
+ A object.
+ A new structure whose property is equal to the value represented by the object parameter.
+
+
+ Compares two instances of to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two structures to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Converts the supplied structure to .
+ A structure.
+ A new structure whose property is equal to the property of the parameter.
+
+
+ Converts the supplied short integer to .
+ A short integer value.
+ A structure with the same value as the specified short integer.
+
+
+ Performs a logical comparison of two structures to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Compares two instances of to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares two structures to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Computes the remainder after dividing its first operand by its second.
+ A structure.
+ A structure.
+ A structure whose contains the remainder.
+
+
+ Computes the product of the two parameters.
+ A structure.
+ A structure.
+ A structure whose contains the product of the two parameters.
+
+
+ The ~ operator performs a bitwise one's complement operation on its operand.
+ A structure.
+ A structure whose property contains the complement of the specified structure.
+
+
+ Subtracts the second parameter from the first.
+ A structure.
+ A structure.
+ A structure whose property contains the results of the subtraction.
+
+
+ The unary minus operator negates the of the operand.
+ A structure.
+ A structure that contains the negated value.
+
+
+ Converts the representation of a number to its 16-bit signed integer equivalent.
+ The to be parsed.
+ A 16-bit signed integer equivalent to the value that is contained in the specified .
+
+
+ Subtracts the second parameter from the first.
+ A structure.
+ A structure.
+ A structure whose property contains the results of the subtraction.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ An XML schema consumed by .NET Framework.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ Converts this structure to .
+
+ if the is non-zero; if zero; otherwise Null.
+
+
+ Converts this structure to .
+ A structure whose equals the of this structure. If the value of the is less than 0 or greater than 255, an occurs.
+
+
+ Converts this structure to .
+ A new structure whose equals the value of this structure.
+
+
+ Converts this structure to .
+ A new structure whose equals the value of this structure.
+
+
+ Converts this structure to .
+ A new structure whose equals the value of this structure.
+
+
+ Converts this structure to .
+ A new structure whose equals the value of this structure.
+
+
+ Converts this structure to .
+ A new structure whose equals the value of this structure.
+
+
+ Converts this structure to .
+ A new structure whose equals the value of this structure.
+
+
+ Converts this structure to .
+ A representing the of this instance of .
+
+
+ Converts a structure to .
+ A object representing the of this instance of .
+
+
+ Performs a bitwise exclusive-OR operation on the supplied parameters.
+ A structure.
+ A structure.
+ A structure that contains the results of the XOR operation.
+
+
+ Indicates whether this structure is null.
+
+ if null. Otherwise, . For more information, see Handling Null Values.
+
+
+ Gets the value of this instance of structure. This property is read-only.
+ A short integer representing the value of this structure.
+
+
+ Represents a 32-bit signed integer to be stored in or retrieved from a database.
+
+
+ A constant representing the largest possible value of a .
+
+
+ A constant representing the smallest possible value of a .
+
+
+ Represents a that can be assigned to this instance of the class.
+
+
+ Represents a zero value that can be assigned to the property of an instance of the structure.
+
+
+ Initializes a new instance of the structure using the supplied integer value.
+ The integer to be converted.
+
+
+ Computes the sum of the two specified structures.
+ A structure.
+ A structure.
+ A structure whose property contains the sum of the specified structures.
+
+
+ Computes the bitwise AND of its operands.
+ A structure.
+ A structure.
+ A structure that contains the results of the bitwise AND operation.
+
+
+ Computes the bitwise OR of the specified structures.
+ A structure.
+ A structure.
+ A structure that contains the results of the bitwise OR operation.
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic)
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic).
+
+
+ Divides the first parameter from the second.
+ A structure.
+ A structure.
+ A whose property contains the results of the division.
+
+
+ Indicates whether the current instance is equal to another instance of the same type.
+ An instance to compare with this instance.
+
+ if the current instance is equal to the other instance; otherwise, .
+
+
+ Performs a logical comparison of the two parameters to determine whether they are equal.
+ A structure.
+ A structure.
+
+ if the two values are equal. Otherwise, . If either instance is null, then the will be null.
+
+
+ Compares the supplied object parameter to the property of the object.
+ The object to be compared.
+
+ if object is an instance of and the two are equal; otherwise .
+
+
+ Returns the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ An .
+ A value that indicates the XSD of the specified .
+
+
+ Compares the two parameters to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares the two parameters to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares the two parameters to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares the two parameters to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Computes the remainder after dividing the first parameter by the second.
+ A structure.
+ A structure.
+ A structure whose contains the remainder.
+
+
+ Divides two values and returns the remainder.
+ A value.
+ A value.
+ The remainder left after division is performed on and .
+
+
+ Computes the product of the two parameters.
+ A structure.
+ A structure.
+ A structure whose contains the product of the two parameters.
+
+
+ Performs a logical comparison of the two parameters to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Performs a bitwise one's complement operation on the specified structure.
+ A structure.
+ A structure that contains the results of the one's complement operation.
+
+
+ Computes the sum of the two specified structures.
+ A structure.
+ A structure.
+ A structure whose property contains the sum of the specified structures.
+
+
+ Computes the bitwise AND of its operands.
+ A structure.
+ A structure.
+ A structure that contains the results of the bitwise AND operation.
+
+
+ Computes the bitwise OR of the specified structures.
+ A structure.
+ A structure.
+ A structure that contains the results of the bitwise OR operation.
+
+
+ Divides the first parameter from the second.
+ A structure.
+ A structure.
+ A whose property contains the results of the division.
+
+
+ Performs a logical comparison of the two parameters to determine whether they are equal.
+ A structure.
+ A structure.
+ A that is if the two instances are equal or if the two instances are not equal. If either instance of is null, the of the will be .
+
+
+ Performs a bitwise exclusive-OR operation on the specified structures.
+ A structure.
+ A structure.
+ A structure that contains the results of the bitwise XOR operation.
+
+
+ Converts the supplied to .
+ A structure.
+ A new structure whose property is equal to the property of the parameter.
+
+
+ Converts the supplied structure to .
+ A structure.
+ A new structure whose property equals the property of the parameter.
+
+
+ Converts the supplied to .
+ A structure.
+ A new structure whose property equals the integer part of the parameter.
+
+
+ Converts the supplied structure to an integer.
+ A structure.
+ The converted integer value.
+
+
+ Converts the supplied to .
+ A structure.
+ A new structure whose property equals the property of the parameter.
+
+
+ Converts the supplied structure to .
+ A structure.
+ A new structure whose property equals the property of the parameter.
+
+
+ Converts the supplied to .
+ A structure.
+ A new structure whose property equals the integer part of the parameter.
+
+
+ Converts the supplied object to .
+ A object.
+ A new structure whose property equals the value represented by the parameter.
+
+
+ Compares the two parameters to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares the two parameters to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Converts the supplied property to .
+ A structure.
+ A new structure whose property equals the property of the parameter.
+
+
+ Converts the supplied to .
+ A structure.
+ A new structure whose property equals the property of the parameter.
+
+
+ Converts the supplied integer to .
+ An integer value.
+ A new structure whose Value property is equal to the integer parameter.
+
+
+ Performs a logical comparison of the two parameters to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Compares the two parameters to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Compares the two parameters to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Computes the remainder after dividing the first parameter by the second.
+ A structure.
+ A structure.
+ A structure whose contains the remainder.
+
+
+ Computes the product of the two parameters.
+ A structure.
+ A structure.
+ A structure whose contains the product of the two parameters.
+
+
+ Performs a bitwise one's complement operation on the specified structure.
+ A structure.
+ A structure that contains the results of the one's complement operation.
+
+
+ Subtracts the second parameter from the first.
+ A structure.
+ A structure.
+ A structure whose property contains the results of the subtraction.
+
+
+ Negates the of the operand.
+ A structure.
+ A structure that contains the negated value.
+
+
+ Converts the representation of a number to its 32-bit signed integer equivalent.
+ The to be parsed.
+ A 32-bit signed integer equivalent to the value that is contained in the specified .
+
+
+ Subtracts the second parameter from the first.
+ A structure.
+ A structure.
+ A structure whose property contains the results of the subtraction.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ An .
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ Converts this structure to .
+
+ if the is non-zero; if zero; otherwise Null.
+
+
+ Converts this structure to .
+ A structure whose equals the of this structure. If the value of the is less than 0 or greater than 255, an occurs.
+
+
+ Converts this structure to .
+ A new structure equal to the value of this .
+
+
+ Converts this structure to .
+ A new structure equal to the value of this .
+
+
+ Converts this structure to .
+ A new structure equal to the value of this .
+
+
+ Converts this structure to .
+ A new structure equal to the value of this .
+
+
+ Converts this structure to .
+ A new structure equal to the value of this .
+
+
+ Converts this structure to .
+ A new structure equal to the value of this .
+
+
+ Converts this structure to .
+ A new structure equal to the value of this .
+
+
+ Converts a structure to a .
+ A structure equal to the value of this .
+
+
+ Performs a bitwise exclusive-OR operation on the specified structures.
+ A structure.
+ A structure.
+ A structure that contains the results of the bitwise XOR operation.
+
+
+ Indicates whether this structure is null.
+ This property is if is null. Otherwise, .
+
+
+ Gets the value of this structure. This property is read-only.
+ The property contains .
+ An integer representing the value of this structure.
+
+
+ Represents a 64-bit signed integer to be stored in or retrieved from a database.
+
+
+ A constant representing the largest possible value for a structure.
+
+
+ A constant representing the smallest possible value for a structure.
+
+
+ Represents a that can be assigned to this instance of the structure.
+
+
+ Represents a zero value that can be assigned to the property of an instance of the structure.
+
+
+ Initializes a new instance of the structure using the supplied long integer.
+ A long integer.
+
+
+ Computes the sum of the two parameters.
+ A structure.
+ A structure.
+ A new structure whose is equal to the sum of the two parameters.
+
+
+ Computes the bitwise AND of its operands.
+ A structure.
+ A structure.
+ A structure that contains the results of the bitwise AND operation.
+
+
+ Computes the bitwise OR of its two operands.
+ A structure.
+ A structure.
+ A structure that contains the results of the bitwise OR operation.
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic).
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic).
+
+
+ Divides the first parameter by the second.
+ A structure.
+ A structure.
+ A new structure whose property contains the results of the division operation.
+
+
+ Indicates whether the current instance is equal to another instance of the same type.
+ An instance to compare with this instance.
+
+ if the current instance is equal to the other instance; otherwise, .
+
+
+ Performs a logical comparison of the two parameters to determine whether they are equal.
+ A structure.
+ A structure.
+
+ if the two values are equal. Otherwise, . If either instance is null, then the will be null.
+
+
+ Compares the supplied object parameter to the property of the object.
+ The object to be compared.
+
+ if object is an instance of and the two are equal; otherwise .
+
+
+ Returns the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ An .
+ A that indicates the XSD of the specified .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison on the two parameters to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison on the two parameters to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Computes the remainder after dividing the first parameter by the second.
+ A structure.
+ A structure.
+ A new structure whose property contains the remainder.
+
+
+ Divides two values and returns the remainder.
+ A value.
+ A value.
+ The remainder left after division is performed on and .
+
+
+ Computes the product of the two parameters.
+ A structure.
+ A structure.
+ A new structure whose is equal to the product of the two parameters.
+
+
+ Performs a logical comparison on the two SqlInt64 parameters to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Performs a bitwise one's complement operation on its operand.
+ A structure.
+ A new structure whose is equal to the ones complement of the parameter.
+
+
+ Computes the sum of the two parameters.
+ A structure.
+ A structure.
+ A new structure whose is equal to the sum of the two parameters.
+
+
+ Computes the bitwise AND of its operands.
+ A structure.
+ A structure.
+ A structure that contains the results of the bitwise AND operation.
+
+
+ Computes the bitwise OR of its two operands.
+ A structure.
+ A structure.
+ A structure that contains the results of the bitwise OR operation.
+
+
+ Divides the first parameter by the second.
+ A structure.
+ A structure.
+ A new structure whose property contains the results of the division operation.
+
+
+ Performs a logical comparison of the two parameters to determine whether they are equal.
+ A structure.
+ A structure.
+ A that is if the two instances are equal or if the two instances are not equal. If either instance of is null, the of the will be .
+
+
+ Performs a bitwise exclusive-OR operation on the supplied parameters.
+ A structure.
+ A structure.
+ A structure that contains the results of the bitwise XOR operation.
+
+
+ Converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property is equal to the of the parameter.
+
+
+ Converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose is equal to the integer part of the parameter.
+
+
+ Converts the supplied structure to .
+ The structure to be converted.
+ A new structure whose property equals the integer part of the parameter.
+
+
+ Converts the parameter to long.
+ A structure.
+ A new long value equal to the of the .
+
+
+ Converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property equals the integer part of the parameter.
+
+
+ Converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property contains the integer part of the parameter.
+
+
+ Converts the supplied parameter to .
+ The object to be converted.
+ A new whose is equal to the value represented by the parameter.
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property equals the property of the parameter.
+
+
+ Converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property equals the property of the parameter.
+
+
+ Converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property equals the property of the parameter.
+
+
+ Converts the long parameter to .
+ A long integer value.
+ A new structure whose equals the value of the long parameter.
+
+
+ Performs a logical comparison on the two SqlInt64 parameters to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison on the two parameters to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison on the two parameters to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Computes the remainder after dividing the first parameter by the second.
+ A structure.
+ A structure.
+ A new structure whose property contains the remainder.
+
+
+ Computes the product of the two parameters.
+ A structure.
+ A structure.
+ A new structure whose is equal to the product of the two parameters.
+
+
+ Performs a bitwise one's complement operation on its operand.
+ A structure.
+ A new structure whose is equal to the ones complement of the parameter.
+
+
+ Subtracts the second parameter from the first.
+ A structure.
+ A structure.
+ A new structure whose property equals the results of the subtraction operation.
+
+
+ The unary minus operator negates the of the operand.
+ A structure.
+ A structure whose is equal to the negated of the parameter.
+
+
+ Converts the representation of a number to its 64-bit signed integer equivalent.
+ The to be parsed.
+ A 64-bit signed integer equivalent to the value that is contained in the specified .
+
+
+ Subtracts the second parameter from the first.
+ A structure.
+ A structure.
+ A new structure whose property equals the results of the subtraction operation.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ An .
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ Converts this structure to .
+
+ if the is non-zero; if zero; otherwise Null.
+
+
+ Converts this structure to .
+ A structure whose equals the of this structure.
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A representing the value of this .
+
+
+ Converts this instance of to .
+ A representing the value of this .
+
+
+ Performs a bitwise exclusive-OR operation on the supplied parameters.
+ A structure.
+ A structure.
+ A structure that contains the results of the bitwise XOR operation.
+
+
+ Gets a Boolean value that indicates whether this structure is null.
+
+ if null. Otherwise, .
+
+
+ Gets the value of this structure. This property is read-only.
+ A long integer representing the value of this structure.
+
+
+ Represents a currency value ranging from -2 63 (or -922,337,203,685,477.5808) to 2 63 -1 (or +922,337,203,685,477.5807) with an accuracy to a ten-thousandth of currency unit to be stored in or retrieved from a database.
+
+
+ Represents the maximum value that can be assigned to the property of an instance of the class.
+
+
+ Represents the minimum value that can be assigned to property of an instance of the class.
+
+
+ Represents a that can be assigned to this instance of the class.
+
+
+ Represents the zero value that can be assigned to the property of an instance of the class.
+
+
+ Initializes a new instance of the class with the specified value.
+ The monetary value to initialize.
+
+
+ Initializes a new instance of the class with specified double value.
+ The monetary value to initialize.
+
+
+ Initializes a new instance of the class with the specified integer value.
+ The monetary value to initialize.
+
+
+ Initializes a new instance of the class with the specified long integer value.
+ The monetary value to initialize.
+
+
+ Calculates the sum of the two parameters.
+ A structure.
+ A structure.
+ A new structure whose contains the sum of the two parameters.
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic)
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic)
+
+
+ The division operator divides the first parameter by the second.
+ A structure.
+ A structure.
+ A new structure whose contains the results of the division.
+
+
+ Indicates whether the current instance is equal to another instance of the same type.
+ An instance to compare with this instance.
+
+ if the current instance is equal to the other instance; otherwise, .
+
+
+ Performs a logical comparison of the two parameters to determine whether they are equal.
+ A structure.
+ A structure.
+
+ if the two values are equal. Otherwise, . If either instance is null, then the will be null.
+
+
+ Compares the supplied object parameter to the property of the object.
+ The object to be compared.
+
+ if the object is an instance of and the two are equal; otherwise, .
+
+
+ Initializes a new instance of the class with the specified Tabular Data Stream (TDS) long value.
+ The TDS long representation of the monetary value to initialize.
+ A new structure whose property is equal to the TDS value of the parameter.
+
+
+ Gets the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Returns the Tabular Data Stream (TDS) long value that makes up the structure of the instance.
+ A that represents the TDS long value.
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ An .
+ A that indicates the XSD of the specified .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ The multiplication operator calculates the product of the two parameters.
+ A structure.
+ A structure.
+ A new structure whose contains the product of the multiplication.
+
+
+ Performs a logical comparison of the two parameters to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Calculates the sum of the two parameters.
+ A structure.
+ A structure.
+ A new structure whose contains the sum of the two parameters.
+
+
+ The division operator divides the first parameter by the second.
+ A structure.
+ A structure.
+ A new structure whose contains the results of the division.
+
+
+ Performs a logical comparison of the two parameters to determine whether they are equal.
+ A structure.
+ A structure.
+ A that is if the two instances are equal or if the two instances are not equal. If either instance of is null, the of the will be .
+
+
+ This implicit operator converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property equals the property of the parameter.
+
+
+ This operator converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property equals the of the parameter.
+
+
+ This operator converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property equals the of the parameter.
+
+
+ Converts the specified structure to .
+ A structure.
+ A new structure whose value equals the of the parameter.
+
+
+ This operator converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property equals the of the parameter.
+
+
+ This operator converts the parameter to .
+ The object to be converted.
+ A new structure whose property equals the value represented by the parameter.
+
+
+ This implicit operator converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property equals the property of the parameter.
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ This implicit operator converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property is equal to the of the parameter.
+
+
+ This implicit operator converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property equals the of the parameter.
+
+
+ This implicit operator converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property equals the of the parameter.
+
+
+ This implicit operator converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property equals the of the parameter.
+
+
+ Converts the parameter to .
+ The value to be converted.
+ A new structure whose equals the value of the parameter.
+
+
+ This implicit operator converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose property is equal to the value of the parameter.
+
+
+ Performs a logical comparison of the two parameters to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ The multiplication operator calculates the product of the two parameters.
+ A structure.
+ A structure.
+ A new structure whose contains the product of the multiplication.
+
+
+ The subtraction operator subtracts the second parameter from the first.
+ A structure.
+ A structure.
+ A new structure that contains the results of the subtraction.
+
+
+ The unary minus operator negates the parameter.
+ The structure to be negated.
+ A structure whose contains the results of the negation.
+
+
+ Converts the representation of a number to its equivalent.
+ The to be parsed.
+ A equivalent to the value that is contained in the specified .
+
+
+ The subtraction operator subtracts the second parameter from the first.
+ A structure.
+ A structure.
+ A new structure that contains the results of the subtraction.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ An .
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ Converts the Value of this instance of as a structure.
+ A structure whose value equals the property of this structure.
+
+
+ Converts this structure to a .
+ A double with a value equal to this structure.
+
+
+ Converts this structure to an .
+ A 32-bit integer whose value equals the integer part of this structure.
+
+
+ Converts the Value of this structure to an .
+ A 64-bit integer whose value equals the integer part of this structure.
+
+
+ Converts this structure to .
+ A structure. If the value of the structure is zero, the structure's value will be . Otherwise, .
+
+
+ Converts this structure to .
+ A equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A structure whose value is a string representing the value of this .
+
+
+ Converts this instance of to string.
+ A string whose value is the string representation of the value of this .
+
+
+ Returns a Boolean value that indicates whether this structure is null.
+
+ if null. Otherwise, .
+
+
+ Gets the monetary value of an instance of the structure. This property is read-only.
+ The property is set to null.
+ The monetary value of an instance of the structure.
+
+
+ The class is not intended for use as a stand-alone component, but as a class from which other classes derive standard functionality.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class.
+ The string to display when the exception is thrown.
+ A reference to an inner exception.
+
+
+ The exception that is thrown when the property of a structure is set to null.
+
+
+ Initializes a new instance of the class with a system-supplied message that describes the error.
+
+
+ Initializes a new instance of the class with a specified message that describes the error.
+ The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture.
+ The exception that is the cause of the current exception. If the innerException parameter is not , the current exception is raised in a block that handles the inner exception.
+
+
+ Represents a floating point number within the range of -3.40E +38 through 3.40E +38 to be stored in or retrieved from a database.
+
+
+ Represents the maximum value that can be assigned to the property of an instance of the class.
+
+
+ Represents the minimum value that can be assigned to property of an instance of the class.
+
+
+ Represents a that can be assigned to this instance of the structure.
+
+
+ Represents the zero value that can be assigned to the property of an instance of the class.
+
+
+ Initializes a new instance of the structure using the supplied double parameter.
+ A double value which will be used as the of the new structure.
+
+
+ Initializes a new instance of the structure.
+ A floating point number which will be used as the of the new structure.
+
+
+ Computes the sum of the two specified structures.
+ A structure.
+ A structure.
+ A structure that contains the sum of the two specified structures.
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return Value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic)
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic)
+
+
+ Divides the first structure by the second.
+ A structure.
+ A structure.
+ A structure that contains the results of the division.
+
+
+ Indicates whether the current instance is equal to another instance of the same type.
+ An instance to compare with this instance.
+
+ if the current instance is equal to the other instance; otherwise, .
+
+
+ Performs a logical comparison of the two parameters to determine whether they are equal.
+ A structure.
+ A structure.
+
+ if the two values are equal. Otherwise, . If either instance is null, then the will be null.
+
+
+ Compares the supplied object parameter to the property of the object.
+ The object to be compared.
+
+ if the object is an instance of and the two are equal. Otherwise, .
+
+
+ Gets the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ A .
+ A value that indicates the XSD of the specified .
+
+
+ Performs a logical comparison of the two operands to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of two structures to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Computes the product of the two specified structures.
+ A structure.
+ A structure.
+ A structure that contains the product of the multiplication.
+
+
+ Performs a logical comparison of the two parameters to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Computes the sum of the two specified structures.
+ A structure.
+ A structure.
+ A structure that contains the sum of the two specified structures.
+
+
+ Divides the first structure by the second.
+ A structure.
+ A structure.
+ A structure that contains the results of the division.
+
+
+ Performs a logical comparison of the two SqlSingle parameters to determine whether they are equal.
+ A structure.
+ A structure.
+ A that is if the two instances are equal or if the two instances are not equal. If either instance of is null, the of the will be .
+
+
+ This implicit operator converts the supplied to .
+ The structure to be converted.
+ A new structure whose is equal to the of the parameter.
+
+
+ Converts the supplied parameter to .
+ The parameter to be converted.
+ A new structure whose is equal to the of the parameter.
+
+
+ Converts the specified structure to float.
+ The value to be converted to float.
+ A float that contains the value of the structure.
+
+
+ Converts the supplied parameter to .
+ The object to be converted.
+ A new structure whose is equal to the value represented by the parameter.
+
+
+ Performs a logical comparison of the two operands to determine whether the first is greater than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of two structures to determine whether the first is greater than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ This implicit operator converts the parameter to .
+ The to be converted.
+ A new structure whose property equals the of the parameter.
+
+
+ Converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose is equal to the of the parameter.
+
+
+ Converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose is equal to the of the parameter.
+
+
+ Converts the supplied structure to .
+ The structure to be converted.
+ A new structure whose is equal to the of the parameter.
+
+
+ Converts the supplied parameter to .
+ The structure to be converted.
+ A new structure whose is equal to the of the parameter.
+
+
+ Converts the supplied structure to .
+ The structure to be converted.
+ A new structure whose is equal to the of the parameter.
+
+
+ Converts the specified floating point value to .
+ The float value to be converted to .
+ A structure that contains the value of the specified float.
+
+
+ Performs a logical comparison of the two parameters to determine whether they are not equal.
+ A structure.
+ A structure.
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is less than the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two parameters to determine whether the first is less than or equal to the second.
+ A structure.
+ A structure.
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Computes the product of the two specified structures.
+ A structure.
+ A structure.
+ A structure that contains the product of the multiplication.
+
+
+ Subtracts the second structure from the first.
+ A structure.
+ A structure.
+ A structure that contains the results of the subtraction.
+
+
+ Negates the of the specified structure.
+ A structure.
+ A structure that contains the negated value.
+
+
+ Converts the specified to a structure.
+ The to be parsed.
+ A equivalent to the value that is contained in the specified .
+
+
+ Subtracts the second structure from the first.
+ A structure.
+ A structure.
+ A structure that contains the results of the subtraction.
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ An .
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ Converts this structure to .
+
+ if the is non-zero; if zero; otherwise Null.
+
+
+ Converts this structure to .
+ A structure whose equals the of this structure. If the structure's Value is , the structure's will be 1. Otherwise, the structure's will be 0.
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A new equal to the value of this .
+
+
+ Converts this structure to .
+ A equal to the value of this .
+
+
+ Converts this structure to .
+ A representing the value of this .
+
+
+ Converts this structure to .
+ A object representing the value of this .
+
+
+ Indicates whether this structure is null.
+
+ if null. Otherwise, .
+
+
+ Gets the value of this structure. This property is read-only.
+ A floating point value in the range -3.40E+38 through 3.40E+38.
+
+
+ Represents a variable-length stream of characters to be stored in or retrieved from the database. has a different underlying data structure from its corresponding .NET data type.
+
+
+ Specifies that sorts should be based on a characters numeric value instead of its alphabetical value.
+
+
+ Specifies that sorts should be based on a character's numeric value instead of its alphabetical value.
+
+
+ Specifies that comparisons should ignore case.
+
+
+ Specifies that the string comparison must ignore the Kana type.
+
+
+ Specifies that the string comparison must ignore non-space combining characters, such as diacritics.
+
+
+ Specifies that the string comparison must ignore the character width.
+
+
+ Represents a that can be assigned to this instance of the structure.
+
+
+ Initializes a new instance of the structure using the specified locale id, compare options, and data.
+ Specifies the geographical locale and language for the new structure.
+ Specifies the compare options for the new structure.
+ The data array to store.
+
+
+ Initializes a new instance of the class.
+ Specifies the geographical locale and language for the new structure.
+ Specifies the compare options for the new structure.
+ The data array to store.
+
+ if Unicode encoded. Otherwise, .
+
+
+ Initializes a new instance of the class.
+ Specifies the geographical locale and language for the new structure.
+ Specifies the compare options for the new structure.
+ The data array to store.
+ The starting index within the array.
+ The number of characters from index to copy.
+
+
+ Initializes a new instance of the class.
+ Specifies the geographical locale and language for the new structure.
+ Specifies the compare options for the new structure.
+ The data array to store.
+ The starting index within the array.
+ The number of characters from index to copy.
+
+ if Unicode encoded. Otherwise, .
+
+
+ Initializes a new instance of the structure using the specified string.
+ The string to store.
+
+
+ Initializes a new instance of the structure using the specified string and locale id values.
+ The string to store.
+ Specifies the geographical locale and language for the new structure.
+
+
+ Initializes a new instance of the structure using the specified string, locale id, and compare option values.
+ The string to store.
+ Specifies the geographical locale and language for the new structure.
+ Specifies the compare options for the new structure.
+
+
+ Concatenates two specified values to create a new structure.
+ A .
+ A .
+ A that is the concatenated value of and .
+
+
+ Creates a copy of this object.
+ A new object in which all property values are the same as the original.
+
+
+ Gets the enumeration equivalent of the specified value.
+ A value that describes the comparison options for this structure.
+ A value that corresponds to the for this structure.
+
+
+ Compares this instance to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic).
+
+
+ Compares this object to the supplied and returns an indication of their relative values.
+ The to be compared.
+ A signed number that indicates the relative values of the instance and the object.
+
+ Return Value Condition- Less than zero This instance is less than the object.
- Zero This instance is the same as the object.
- Greater than zero This instance is greater than the object
+
+ -or-
+
+ The object is a null reference ( in Visual Basic)
+
+
+ Concatenates the two specified structures.
+ A .
+ A .
+ A that contains the newly concatenated value representing the contents of the two parameters.
+
+
+ Indicates whether the current instance is equal to another instance of the same type.
+ An instance to compare with this instance.
+
+ if the current instance is equal to the other instance; otherwise, .
+
+
+ Performs a logical comparison of the two operands to determine whether they are equal.
+ A .
+ A .
+
+ if the two values are equal. Otherwise, . If either instance is null, then the will be null.
+
+
+ Compares the supplied object parameter to the property of the object.
+ The object to be compared.
+
+ if the object is an instance of and the two are equal; otherwise, .
+
+
+ Gets the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Gets an array of bytes, that contains the contents of the in ANSI format.
+ An byte array, that contains the contents of the in ANSI format.
+
+
+ Gets an array of bytes, that contains the contents of the in Unicode format.
+ An byte array, that contains the contents of the in Unicode format.
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ A .
+ A value that indicates the XSD of the specified .
+
+
+ Performs a logical comparison of the two operands to determine whether the first is greater than the second.
+ A .
+ A .
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two operands to determine whether the first is greater than or equal to the second.
+ A .
+ A .
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two operands to determine whether the first is less than the second.
+ A .
+ A .
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two operands to determine whether the first is less than or equal to the second.
+ A .
+ A .
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two operands to determine whether they are not equal.
+ A .
+ A .
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Concatenates the two specified structures.
+ A .
+ A .
+ A that contains the newly concatenated value representing the contents of the two parameters.
+
+
+ Performs a logical comparison of the two operands to determine whether they are equal.
+ A .
+ A .
+ A that is if the two instances are equal or if the two instances are not equal. If either instance of is null, the of the will be .
+
+
+ Converts the specified structure to .
+ The structure to be converted.
+ A new that contains the string representation of the parameter.
+
+
+ Converts the specified structure to .
+ The structure to be converted.
+ A new object that contains the string representation of the parameter.
+
+
+ Converts the specified parameter to .
+ The structure to be converted.
+ A new that contains the string representation of the parameter.
+
+
+ Converts the specified parameter to .
+ The structure to be converted.
+ A new that contains the string representation of the parameter.
+
+
+ Converts the specified parameter to .
+ The structure to be converted.
+ A new that contains the string representation of the parameter.
+
+
+ Converts the specified parameter to .
+ The structure to be converted.
+ A whose value is the string representation of the specified .
+
+
+ Converts the specified parameter to .
+ The structure to be converted.
+ A new object that contains the string representation of the parameter.
+
+
+ Converts the specified parameter to .
+ The SqlInt32 structure to be converted.
+ A new object that contains the string representation of the parameter.
+
+
+ Converts the specified parameter to .
+ The structure to be converted.
+ A new object that contains the string representation of the parameter.
+
+
+ Converts the specified parameter to .
+ The structure to be converted.
+ A new that contains the string representation of the parameter.
+
+
+ Converts the specified parameter to .
+ The structure to be converted.
+ A new that contains the string representation of the parameter.
+
+
+ Converts a to a .
+ The to be converted.
+ A , whose contents are the same as the property of the parameter.
+
+
+ Performs a logical comparison of the two operands to determine whether the first is greater than the second.
+ A .
+ A .
+ A that is if the first instance is greater than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two operands to determine whether the first is greater than or equal to the second.
+ A .
+ A .
+ A that is if the first instance is greater than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Converts the parameter to a .
+ The to be converted.
+ A that contains the value of the specified .
+
+
+ Performs a logical comparison of the two operands to determine whether they are not equal.
+ A .
+ A .
+ A that is if the two instances are not equal or if the two instances are equal. If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two operands to determine whether the first is less than the second.
+ A .
+ A .
+ A that is if the first instance is less than the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ Performs a logical comparison of the two operands to determine whether the first is less than or equal to the second.
+ A .
+ A .
+ A that is if the first instance is less than or equal to the second instance. Otherwise, . If either instance of is null, the of the will be .
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+ An .
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+
+
+
+ Converts this structure to .
+
+ if the is non-zero; if zero; otherwise Null.
+
+
+ Converts this structure to .
+ A new structure whose equals the number represented by this structure.
+
+
+ Converts this structure to .
+ A new structure that contains the date value represented by this .
+
+
+ Converts this structure to .
+ A new that contains the value of this .
+
+
+ Converts this structure to .
+ A new that is equal to the numeric value of this .
+
+
+ Converts this structure to .
+ A new structure whose is the represented by this structure.
+
+
+ Converts this structure to .
+ A new that is equal to the numeric value of this .
+
+
+ Converts this structure to .
+ A new that is equal to the numeric value of this .
+
+
+ Converts this structure to .
+ A new that is equal to the numeric value of this .
+
+
+ Converts this structure to .
+ A new that is equal to the numeric value of this .
+
+
+ Converts this structure to .
+ A new that is equal to the numeric value of this .
+
+
+ Converts a object to a .
+ A with the same value as this structure.
+
+
+ Gets the object that defines how string comparisons should be performed for this structure.
+ A object that defines string comparison for this structure.
+
+
+ Gets the structure that represents information about the culture of this object.
+ A structure that describes information about the culture of this SqlString structure including the names of the culture, the writing system, and the calendar used, and also access to culture-specific objects that provide methods for common operations, such as formatting dates and sorting strings.
+
+
+ Indicates whether this structure is null.
+
+ if is . Otherwise, .
+
+
+ Specifies the geographical locale and language for the structure.
+ The locale id for the string stored in the property.
+
+
+ A combination of one or more of the enumeration values that represent the way in which this should be compared to other structures.
+ A value specifying how this should be compared to other structures.
+
+
+ Gets the string that is stored in this structure. This property is read-only.
+ The value of the string is .
+ The string that is stored.
+
+
+ The exception that is thrown when you set a value into a structure would truncate that value.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with a specified error message.
+ The error message that explains the reason for the exception.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the .
+ The error message that explains the reason for the exception.
+ A reference to an inner .
+
+
+ The base exception class for the .
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialized data.
+ The object that holds the serialized object data.
+ The contextual information about the source or destination.
+
+
+ Initializes a new instance of the class with a specified error message.
+ The error message that explains the reason for the exception.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The message that describes the exception. The caller of this constructor is required to ensure that this string has been localized for the current system culture.
+ The exception that is the cause of the current exception. If the innerException parameter is not , the current exception is raised in a block that handles the inner exception.
+
+
+ Represents XML data stored in or retrieved from a server.
+
+
+ Creates a new instance.
+
+
+ Creates a new instance, supplying the XML value from the supplied -derived instance.
+ A -derived instance (such as ) from which to load the instance's Xml content.
+
+
+ Creates a new instance and associates it with the content of the supplied .
+ An -derived class instance to be used as the value of the new instance.
+
+
+ Gets the value of the XML content of this as a .
+ Attempt was made to access this property on a null instance of .
+ A -derived instance that contains the XML content. The actual type may vary (for example, the return value might be ) depending on how the information is represented internally, on the server.
+
+
+ Returns the XML Schema definition language (XSD) of the specified .
+ An .
+ A string that indicates the XSD of the specified .
+
+
+ For a description of this member, see .
+ An that describes the XML representation of the object that is produced by the method and consumed by the method.
+
+
+ For a description of this member, see .
+ An XmlReader.
+
+
+ For a description of this member, see .
+ The stream to which the object is serialized.
+
+
+ Indicates whether this instance represents a null value.
+
+ if is null. Otherwise, .
+
+
+ Represents a null instance of the type.
+ A null instance of the type.
+
+
+ Gets the string representation of the XML content of this instance.
+ The string representation of the XML content.
+
+
+ The enumeration is not intended for use as a stand-alone component, but as an enumeration from which other classes derive standard functionality.
+
+
+ Buffer size.
+
+
+ Stream.
+
+
+ Unmanaged buffer.
+
+
+ Provides data for the state change event of a .NET data provider.
+
+
+ Initializes a new instance of the class, when given the original state and the current state of the object.
+ One of the values.
+ One of the values.
+
+
+ Gets the new state of the connection. The connection object will be in the new state already when the event is fired.
+ One of the values.
+
+
+ Gets the original state of the connection.
+ One of the values.
+
+
+ Represents the method that will handle the event.
+ The source of the event.
+ The that contains the event data.
+
+
+ Provides additional information for the event.
+
+
+ Creates a new instance of the class.
+ Indicates the number of rows affected by the statement that caused the event to occur.
+
+
+ Indicates the number of rows affected by the statement that caused the event to occur.
+ The number of rows affected.
+
+
+ The delegate type for the event handlers of the event.
+ The source of the event.
+ The data for the event.
+
+
+ Specifies the type of SQL query to be used by the , , , or class.
+
+
+ A SQL query that is a batch statement.
+
+
+ An SQL query that is a DELETE statement.
+
+
+ An SQL query that is an INSERT statement.
+
+
+ An SQL query that is a SELECT statement.
+
+
+ An SQL query that is an UPDATE statement.
+
+
+ The exception that is thrown by a strongly typed when the user accesses a value.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the specified serialization information and streaming context.
+ A object.
+ A structure.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class with the specified string and inner exception.
+ The string to display when the exception is thrown.
+ A reference to an inner exception.
+
+
+ Represents the exception that is thrown when the property of a contains a syntax error.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the and the .
+ The data needed to serialize or deserialize an object.
+ The source and destination of a specific serialized stream.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference ( in Visual Basic) if no inner exception is specified.
+
+
+ This type is used as a base class for typed- object generation by Visual Studio and the XSD.exe .NET Framework tool, and is not intended to be used directly from your code.
+ The type of objects in the source sequence represented by the table, typically .
+
+
+ Initializes a new . This method supports typed- object generation by Visual Studio and the XSD.exe .NET Framework tool. This type is not intended to be used directly from your code.
+
+
+ Initializes a new . This method supports typed- object generation by Visual Studio and the XSD.exe .NET Framework tool. This method is not intended to be used directly from your code.
+ A that contains data to construct the object.
+ The streaming context for the object being deserialized.
+
+
+ Converts the elements of an to the specified type. This method supports typed object generation by Visual Studio and the XSD.exe .NET Framework tool. This method is not intended to be used directly from your code.
+ The type to convert the elements to.
+ An that contains each element of the source sequence converted to the specified type.
+
+
+ Returns an enumerator for the typed-. This method supports typed- object generation by Visual Studio and the XSD.exe .NET Framework tool. This method is not intended to be used directly from your code.
+ An object that implements the interface.
+
+
+ Returns an enumerator for the typed-. This method supports typed- object generation by Visual Studio and the XSD.exe .NET Framework tool. This method is not intended to be used directly from your code.
+ An object that implements the interface.
+
+
+ Contains the extension methods for the class.
+
+
+ Enumerates the data row elements of the and returns an object, where the generic parameter is . This object can be used in a LINQ expression or method query.
+ The source to make enumerable.
+ The type to convert the elements of the source to.
+ An object, where the generic parameter is .
+
+
+ Returns the element at a specified row in a sequence or a default value if the row is out of range.
+ An enumerable object to return an element from.
+ The zero-based index of the element to retrieve.
+ The type of the elements or the row.
+ The element at a specified row in a sequence.
+
+
+ Sorts the rows of a in ascending order according to the specified key.
+ A that contains the elements to be ordered.
+ A function to extract a key from an element.
+ The type of the row elements in , typically .
+ The type of the key returned by .
+ An whose elements are sorted by the specified key.
+
+
+ Sorts the rows of a in ascending order according to the specified key and comparer.
+ A that contains the elements to be ordered.
+ A function to extract a key from an element.
+ An to compare keys.
+ The type of the row elements in , typically .
+ The type of the key returned by .
+ An whose elements are sorted by the specified key and comparer.
+
+
+ Sorts the rows of a in descending order according to the specified key.
+ A that contains the elements to be ordered.
+ A function to extract a key from an element.
+ The type of the row elements in , typically .
+ The type of the key returned by .
+ An whose elements are sorted by the specified key.
+
+
+ Sorts the rows of a in descending order according to the specified key and comparer.
+ A that contains the elements to be ordered.
+ A function to extract a key from an element.
+ An to compare keys.
+ The type of the row elements in , typically .
+ The type of the key returned by .
+ An whose elements are sorted by the specified key and comparer.
+
+
+ Projects each element of a into a new form.
+ A that contains the elements to invoke a transformation function upon.
+ A transformation function to apply to each element.
+ The type of the row elements in , .
+
+ An whose elements are the result of invoking the transformation function on each element of .
+
+
+ Filters a sequence of rows based on the specified predicate.
+ A that contains the elements to filter.
+ A function to test each element for a condition.
+ The type of the row elements in , .
+ An that contains rows from the input sequence that satisfy the condition.
+
+
+ Represents a restriction on a set of columns in which all values must be unique.
+
+
+ Initializes a new instance of the class with the specified .
+ The to constrain.
+
+
+ Initializes a new instance of the class with the to constrain, and a value specifying whether the constraint is a primary key.
+ The to constrain.
+
+ to indicate that the constraint is a primary key; otherwise, .
+
+
+ Initializes a new instance of the class with the given array of objects.
+ The array of objects to constrain.
+
+
+ Initializes a new instance of the class with an array of objects to constrain, and a value specifying whether the constraint is a primary key.
+ An array of objects to constrain.
+
+ to indicate that the constraint is a primary key; otherwise, .
+
+
+ Initializes a new instance of the class with the specified name and .
+ The name of the constraint.
+ The to constrain.
+
+
+ Initializes a new instance of the class with the specified name, the to constrain, and a value specifying whether the constraint is a primary key.
+ The name of the constraint.
+ The to constrain.
+
+ to indicate that the constraint is a primary key; otherwise, .
+
+
+ Initializes a new instance of the class with the specified name and array of objects.
+ The name of the constraint.
+ The array of objects to constrain.
+
+
+ Initializes a new instance of the class with the specified name, an array of objects to constrain, and a value specifying whether the constraint is a primary key.
+ The name of the constraint.
+ An array of objects to constrain.
+
+ to indicate that the constraint is a primary key; otherwise, .
+
+
+ Initializes a new instance of the class with the specified name, an array of objects to constrain, and a value specifying whether the constraint is a primary key.
+ The name of the constraint.
+ An array of objects to constrain.
+
+ to indicate that the constraint is a primary key; otherwise, .
+
+
+ Compares this constraint to a second to determine if both are identical.
+ The object to which this is compared.
+
+ , if the constraints are equal; otherwise, .
+
+
+ Gets the hash code of this instance of the object.
+ A 32-bit signed integer hash code.
+
+
+ Gets the array of columns that this constraint affects.
+ An array of objects.
+
+
+ Gets a value indicating whether or not the constraint is on a primary key.
+
+ , if the constraint is on a primary key; otherwise, .
+
+
+ Gets the table to which this constraint belongs.
+ The to which the constraint belongs.
+
+
+ Specifies how query command results are applied to the row being updated.
+
+
+ Both the output parameters and the first returned row are mapped to the changed row in the .
+
+
+ The data in the first returned row is mapped to the changed row in the .
+
+
+ Any returned parameters or rows are ignored.
+
+
+ Output parameters are mapped to the changed row in the .
+
+
+ Specifies the action to take with regard to the current and remaining rows during an .
+
+
+ The is to continue processing rows.
+
+
+ The event handler reports that the update should be treated as an error.
+
+
+ The current row and all remaining rows are not to be updated.
+
+
+ The current row is not to be updated.
+
+
+ Represents the exception that is thrown when you try to return a version of a that has been deleted.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialization information.
+ The data that is required to serialize or deserialize an object.
+ Description of the source and destination of the specified serialized stream.
+
+
+ Initializes a new instance of the class with the specified string.
+ The string to display when the exception is thrown.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or a null reference ( in Visual Basic) if no inner exception is specified.
+
+
+ Specifies how to read XML data and a relational schema into a .
+
+
+ The default read mode.
+
+
+ Reads a DiffGram, applying changes from the DiffGram to the . The semantics are identical to those of a operation. As with the operation, values are preserved. Input to with DiffGrams should only be obtained using the output from as a DiffGram.
+
+The target must have the same schema as the on which as DiffGram is called. Otherwise the DiffGram merge operation fails and an exception is thrown.
+
+
+ Reads XML fragments, such as those generated by executing FOR XML queries, against an instance of SQL Server. When is set to , the default namespace is read as the inline schema.
+
+
+ Ignores any inline schema and reads data into the existing schema. If any data does not match the existing schema, it is discarded (including data from differing namespaces defined for the ). If the data is a DiffGram, has the same functionality as .
+
+
+ Ignores any inline schema, infers schema from the data and loads the data. If the already contains a schema, the current schema is extended by adding new tables or adding columns to existing tables. An exception is thrown if the inferred table already exists but with a different namespace, or if any of the inferred columns conflict with existing columns.
+
+
+ Ignores any inline schema, infers a strongly typed schema from the data, and loads the data. If the type cannot be inferred from the data, it is interpreted as string data. If the already contains a schema, the current schema is extended, either by adding new tables or by adding columns to existing tables. An exception is thrown if the inferred table already exists but with a different namespace, or if any of the inferred columns conflict with existing columns.
+
+
+ Reads any inline schema and loads the data. If the already contains schema, new tables may be added to the schema, but an exception is thrown if any tables in the inline schema already exist in the .
+
+
+ Specifies how to write XML data and a relational schema from a .
+
+
+ Writes the entire as a DiffGram, including original and current values. To generate a DiffGram containing only changed values, call , and then call as a DiffGram on the returned .
+
+
+ Writes the current contents of the as XML data, without an XSD schema. If no data is loaded into the , nothing is written.
+
+
+ Writes the current contents of the as XML data with the relational structure as inline XSD schema. If the has only a schema with no data, only the inline schema is written. If the does not have a current schema, nothing is written.
+
+
+ Allows structured data to be stored, retrieved, and manipulated through a relational .
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified .
+ The to load into .
+
+
+ Creates a duplicate of the current node.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself.
+ The cloned node.
+
+
+ Creates an element with the specified , , and .
+ The prefix of the new element. If String.Empty or , there is no prefix.
+ The local name of the new element.
+ The namespace Uniform Resource Identifier (URI) of the new element. If String.Empty or , there is no namespaceURI.
+ A new .
+
+
+ Creates an with the specified name.
+ The name of the entity reference.
+ Calling this method.
+ An with the specified name.
+
+
+ Creates a new object for navigating this document. The is positioned on the node specified in the parameter.
+ The you want the navigator initially positioned on.
+ An used to navigate the document.
+
+
+ Gets the with the specified ID. This method is not supported by the class. Calling this method throws an exception.
+ The attribute ID to match.
+ Calling this method.
+ An with the specified ID.
+
+
+ Retrieves the associated with the specified .
+ The whose associated you want to retrieve.
+ The containing a representation of the specified .
+
+
+ Returns an containing a list of all descendant elements that match the specified .
+ The qualified name to match. It is matched against the property of the matching node. The special value "*" matches all tags.
+ An containing a list of all matching nodes.
+
+
+ Retrieves the associated with the specified .
+ The whose associated you want to retrieve.
+ The containing a representation of the ; if there is no associated with the .
+
+
+ Loads the from the specified stream.
+ The stream containing the XML document to load.
+
+
+ Loads the from the specified .
+ The used to feed the XML data into the document.
+
+
+ Loads the using the specified URL.
+ The URL of the file containing the XML document to load.
+
+
+ Loads the from the specified .
+ The containing the XML document to load.
+ The XML being loaded contains entity references, and the reader cannot resolve entities.
+
+
+ Gets a that provides a relational representation of the data in the .
+ A that can be used to access the data in the using a relational model.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Data.DataSetExtensions.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Data.DataSetExtensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9e67c09a4005402db401b458b9838bee5bbe3f50
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Data.DataSetExtensions.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.Contracts.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.Contracts.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e7a2b7824895f6ae6f46a81b20e92f1b6f32ca94
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.Contracts.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.DiagnosticSource.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.DiagnosticSource.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cbc7cbe6e6ca6f761bc8faedc0d064162046d52f
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.DiagnosticSource.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.FileVersionInfo.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.FileVersionInfo.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f5a7867c7915164a4eedbb6a99acb1a61849cec3
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.FileVersionInfo.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.Process.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.Process.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cb848bb884aa82ac0cc4ae259a8bb5d2b1b74e5e
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.Process.xml
@@ -0,0 +1,1211 @@
+
+
+
+ System.Diagnostics.Process
+
+
+
+ Provides a managed wrapper for a process handle.
+
+
+ Creates a .
+
+
+ Initializes a new instance of the class from the specified handle, indicating whether to release the handle during the finalization phase.
+ The handle to be wrapped.
+
+ to reliably let release the handle during the finalization phase; otherwise, .
+
+
+ Provides data for the and events.
+
+
+ Gets the line of characters that was written to a redirected output stream.
+ The line that was written by an associated to its redirected or stream.
+
+
+ Represents the method that will handle the event or event of a .
+ The source of the event.
+ A that contains the event data.
+
+
+ Specifies a description for a property or event.
+
+
+ Initializes a new instance of the class, using the specified description.
+ The application-defined description text.
+
+
+ Gets description text associated with the item monitored.
+ An application-defined description.
+
+
+ Provides access to local and remote processes and enables you to start and stop local system processes.
+
+
+ Occurs when an application writes to its redirected stream.
+
+
+ Occurs when a process exits.
+
+
+ Occurs each time an application writes a line to its redirected stream.
+
+
+ Initializes a new instance of the class.
+
+
+ Begins asynchronous read operations on the redirected stream of the application.
+ The property is .
+
+-or-
+
+ An asynchronous read operation is already in progress on the stream.
+
+-or-
+
+ The stream has been used by a synchronous read operation.
+
+
+ Begins asynchronous read operations on the redirected stream of the application.
+ The property is .
+
+-or-
+
+ An asynchronous read operation is already in progress on the stream.
+
+-or-
+
+ The stream has been used by a synchronous read operation.
+
+
+ Cancels the asynchronous read operation on the redirected stream of an application.
+ The stream is not enabled for asynchronous read operations.
+
+
+ Cancels the asynchronous read operation on the redirected stream of an application.
+ The stream is not enabled for asynchronous read operations.
+
+
+ Frees all the resources that are associated with this component.
+
+
+ Closes a process that has a user interface by sending a close message to its main window.
+ The process has already exited.
+
+ -or-
+
+ No process is associated with this object.
+
+ if the close message was successfully sent; if the associated process does not have a main window or if the main window is disabled (for example if a modal dialog is being shown).
+
+
+ Release all resources used by this process.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Puts a component in state to interact with operating system processes that run in a special mode by enabling the native property on the current thread.
+
+
+ Gets a new component and associates it with the currently active process.
+ A new component associated with the process resource that is running the calling application.
+
+
+ Returns a new component, given the identifier of a process on the local computer.
+ The system-unique identifier of a process resource.
+ The process specified by the parameter is not running. The identifier might be expired.
+ A component that is associated with the local process resource identified by the parameter.
+
+
+ Returns a new component, given a process identifier and the name of a computer on the network.
+ The system-unique identifier of a process resource.
+ The name of a computer on the network.
+ The process specified by the parameter is not running. The identifier might be expired.
+
+ -or-
+
+ The parameter syntax is invalid. The name might have length zero (0).
+ The parameter is .
+ A component that is associated with a remote process resource identified by the parameter.
+
+
+ Creates a new component for each process resource on the local computer.
+ An array of type that represents all the process resources running on the local computer.
+
+
+ Creates a new component for each process resource on the specified computer.
+ The computer from which to read the list of processes.
+ The parameter syntax is invalid. It might have length zero (0).
+ The parameter is .
+ The operating system platform does not support this operation on remote computers.
+ There are problems accessing the performance counter APIs used to get process information. This exception is specific to Windows NT, Windows 2000, and Windows XP.
+ A problem occurred accessing an underlying system API.
+ An array of type that represents all the process resources running on the specified computer.
+
+
+ Creates an array of new components and associates them with all the process resources on the local computer that share the specified process name.
+ The friendly name of the process.
+ There are problems accessing the performance counter APIs used to get process information. This exception is specific to Windows NT, Windows 2000, and Windows XP.
+ An array of type that represents the process resources running the specified application or file.
+
+
+ Creates an array of new components and associates them with all the process resources on a remote computer that share the specified process name.
+ The friendly name of the process.
+ The name of a computer on the network.
+ The parameter syntax is invalid. It might have length zero (0).
+ The parameter is .
+ The operating system platform does not support this operation on remote computers.
+ The attempt to connect to has failed.
+
+ -or-
+
+There are problems accessing the performance counter APIs used to get process information. This exception is specific to Windows NT, Windows 2000, and Windows XP.
+ A problem occurred accessing an underlying system API.
+ An array of type that represents the process resources running the specified application or file.
+
+
+ Immediately stops the associated process.
+ The associated process could not be terminated.
+ You are attempting to call for a process that is running on a remote computer. The method is available only for processes running on the local computer.
+ There is no process associated with this object.
+
+
+ Immediately stops the associated process, and optionally its child/descendent processes.
+
+ to kill the associated process and its descendants; to kill only the associated process.
+ The associated process could not be terminated.
+
+ -or-
+
+ The process is terminating.
+ You are attempting to call for a process that is running on a remote computer. The method is available only for processes running on the local computer.
+ .NET Framework and .NET Core 3.0 and earlier versions only: The process has already exited.
+
+-or-
+
+There is no process associated with this object.
+
+-or-
+
+The calling process is a member of the associated process's descendant tree.
+ Not all processes in the associated process's descendant tree could be terminated.
+
+
+ Takes a component out of the state that lets it interact with operating system processes that run in a special mode.
+
+
+ Raises the event.
+
+
+ Discards any information about the associated process that has been cached inside the process component.
+
+
+ Starts (or reuses) the process resource that is specified by the property of this component and associates it with the component.
+ No file name was specified in the component's .
+
+-or-
+
+The member of the property is while , , or is .
+ There was an error in opening the associated file.
+ The process object has already been disposed.
+ Method not supported on operating systems without shell support such as Nano Server (.NET Core only).
+
+ if a process resource is started; if no new process resource is started (for example, if an existing process is reused).
+
+
+ Starts the process resource that is specified by the parameter containing process start information (for example, the file name of the process to start) and associates the resource with a new component.
+ The that contains the information that is used to start the process, including the file name and any command-line arguments.
+ No file name was specified in the parameter's property.
+
+ -or-
+
+ The property of the parameter is and the , , or property is also .
+
+ -or-
+
+ The property of the parameter is and the property is not or empty or the property is not .
+ The parameter is .
+ The process object has already been disposed.
+ An error occurred when opening the associated file.
+
+ -or-
+
+ The file specified in the parameter's property could not be found.
+
+ -or-
+
+ The sum of the length of the arguments and the length of the full path to the process exceeds 2080. The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." or "Access is denied."
+ Method not supported on operating systems without shell support such as Nano Server (.NET Core only).
+ A new that is associated with the process resource, or if no process resource is started. Note that a new process that's started alongside already running instances of the same process will be independent from the others. In addition, Start may return a non-null Process with its property already set to . In this case, the started process may have activated an existing instance of itself and then exited.
+
+
+ Starts a process resource by specifying the name of a document or application file and associates the resource with a new component.
+ The name of a document or application file to run in the process.
+ An error occurred when opening the associated file.
+
+-or-
+
+The file specified in the could not be found.
+ The process object has already been disposed.
+ The PATH environment variable has a string containing quotes.
+ A new that is associated with the process resource, or if no process resource is started. Note that a new process that's started alongside already running instances of the same process will be independent from the others. In addition, Start may return a non-null Process with its property already set to . In this case, the started process may have activated an existing instance of itself and then exited.
+
+
+ Starts a process resource by specifying the name of an application and a set of command line arguments.
+ The name of a document or application file to run in the process.
+ The command-line arguments to pass when starting the process.
+ A new that is associated with the process resource, or if no process resource is started.
+
+
+ Starts a process resource by specifying the name of an application and a set of command-line arguments, and associates the resource with a new component.
+ The name of an application file to run in the process.
+ Command-line arguments to pass when starting the process.
+ The or parameter is .
+ An error occurred when opening the associated file.
+
+-or-
+
+The file specified in the could not be found.
+
+ -or-
+
+ The sum of the length of the arguments and the length of the full path to the process exceeds 2080. The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." or "Access is denied."
+ The process object has already been disposed.
+ The PATH environment variable has a string containing quotes.
+ A new that is associated with the process resource, or if no process resource is started. Note that a new process that's started alongside already running instances of the same process will be independent from the others. In addition, Start may return a non-null Process with its property already set to . In this case, the started process may have activated an existing instance of itself and then exited.
+
+
+ Starts a process resource by specifying the name of an application, a user name, a password, and a domain and associates the resource with a new component.
+ The name of an application file to run in the process.
+ The user name to use when starting the process.
+ A that contains the password to use when starting the process.
+ The domain to use when starting the process.
+ No file name was specified.
+ There was an error in opening the associated file.
+
+-or-
+
+The file specified in the could not be found.
+ The process object has already been disposed.
+ This member is not supported on Linux or macOS (.NET Core only).
+ A new that is associated with the process resource, or if no process resource is started. Note that a new process that's started alongside already running instances of the same process will be independent from the others. In addition, Start may return a non-null Process with its property already set to . In this case, the started process may have activated an existing instance of itself and then exited.
+
+
+ Starts a process resource by specifying the name of an application, a set of command-line arguments, a user name, a password, and a domain and associates the resource with a new component.
+ The name of an application file to run in the process.
+ Command-line arguments to pass when starting the process.
+ The user name to use when starting the process.
+ A that contains the password to use when starting the process.
+ The domain to use when starting the process.
+ No file name was specified.
+ An error occurred when opening the associated file.
+
+-or-
+
+The file specified in the could not be found.
+
+ -or-
+
+ The sum of the length of the arguments and the length of the full path to the associated file exceeds 2080. The error message associated with this exception can be one of the following: "The data area passed to a system call is too small." or "Access is denied."
+ The process object has already been disposed.
+ This member is not supported on Linux or macOS (.NET Core only).
+ A new that is associated with the process resource, or if no process resource is started. Note that a new process that's started alongside already running instances of the same process will be independent from the others. In addition, Start may return a non-null Process with its property already set to . In this case, the started process may have activated an existing instance of itself and then exited.
+
+
+ Formats the process's name as a string, combined with the parent component type, if applicable.
+ The , combined with the base component's return value.
+
+
+ Instructs the component to wait indefinitely for the associated process to exit.
+ The wait setting could not be accessed.
+ No process has been set, and a from which the property can be determined does not exist.
+
+ -or-
+
+ There is no process associated with this object.
+
+ -or-
+
+ You are attempting to call for a process that is running on a remote computer. This method is available only for processes that are running on the local computer.
+
+
+ Instructs the component to wait the specified number of milliseconds for the associated process to exit.
+ The amount of time, in milliseconds, to wait for the associated process to exit. A value of 0 specifies an immediate return, and a value of -1 specifies an infinite wait.
+ The wait setting could not be accessed.
+ No process has been set, and a from which the property can be determined does not exist.
+
+ -or-
+
+ There is no process associated with this object.
+
+ -or-
+
+ You are attempting to call for a process that is running on a remote computer. This method is available only for processes that are running on the local computer.
+
+ is a negative number other than -1, which represents an infinite time-out.
+
+ if the associated process has exited; otherwise, .
+
+
+ Instructs the Process component to wait the specified amount of time for the associated process to exit.
+ The amount of time to wait for the associated process to exit.
+
+ if the associated process has exited; otherwise, .
+
+
+ Instructs the process component to wait for the associated process to exit, or for the to be cancelled.
+ An optional token to cancel the asynchronous operation.
+ A task that will complete when the process has exited, cancellation has been requested, or an error occurs.
+
+
+ Causes the component to wait indefinitely for the associated process to enter an idle state. This overload applies only to processes with a user interface and, therefore, a message loop.
+ The process does not have a graphical interface.
+
+ -or-
+
+ An unknown error occurred. The process failed to enter an idle state.
+
+ -or-
+
+ The process has already exited.
+
+ -or-
+
+ No process is associated with this object.
+
+ if the associated process has reached an idle state.
+
+
+ Causes the component to wait the specified number of milliseconds for the associated process to enter an idle state. This overload applies only to processes with a user interface and, therefore, a message loop.
+ A value of 1 to Int32.MaxValue that specifies the amount of time, in milliseconds, to wait for the associated process to become idle. A value of 0 specifies an immediate return, and a value of -1 specifies an infinite wait.
+ The process does not have a graphical interface.
+
+ -or-
+
+ An unknown error occurred. The process failed to enter an idle state.
+
+ -or-
+
+ The process has already exited.
+
+ -or-
+
+ No process is associated with this object.
+
+ if the associated process has reached an idle state; otherwise, .
+
+
+ Causes the component to wait the specified for the associated process to enter an idle state.
+ This overload applies only to processes with a user interface and, therefore, a message loop.
+ The amount of time, in milliseconds, to wait for the associated process to become idle.
+ The process does not have a graphical interface.
+
+-or-
+
+An unknown error occurred. The process failed to enter an idle state.
+
+-or-
+
+The process has already exited.
+
+-or-
+
+No process is associated with this object.
+
+ if the associated process has reached an idle state; otherwise, .
+
+
+ Gets the base priority of the associated process.
+ The process has exited.
+
+ -or-
+
+ The process has not started, so there is no process ID.
+ The base priority, which is computed from the of the associated process.
+
+
+ Gets or sets whether the event should be raised when the process terminates.
+
+ if the event should be raised when the associated process is terminated (through either an exit or a call to ); otherwise, . The default is . Note that even if the value of is , the event will be raised by the property accessor, if it determines that the process has exited.
+
+
+ Gets the value that the associated process specified when it terminated.
+ The process has not exited.
+
+ -or-
+
+ The process is not valid.
+ You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ The code that the associated process specified when it terminated.
+
+
+ Gets the time that the associated process exited.
+ You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ A that indicates when the associated process was terminated.
+
+
+ Gets the native handle of the associated process.
+ The process has not been started or has exited. The property cannot be read because there is no process associated with this instance.
+
+ -or-
+
+ The instance has been attached to a running process but you do not have the necessary permissions to get a handle with full access rights.
+ You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ The handle that the operating system assigned to the associated process when the process was started. The system uses this handle to keep track of process attributes.
+
+
+ Gets the number of handles opened by the process.
+ The number of operating system handles the process has opened.
+
+
+ Gets a value indicating whether the associated process has been terminated.
+ There is no process associated with the object.
+ The exit code for the process could not be retrieved.
+ You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+
+ if the operating system process referenced by the component has terminated; otherwise, .
+
+
+ Gets the unique identifier for the associated process.
+ The process's property has not been set.
+
+ -or-
+
+ There is no process associated with this object.
+ The system-generated unique identifier of the process that is referenced by this instance.
+
+
+ Gets the name of the computer the associated process is running on.
+ There is no process associated with this object.
+ The name of the computer that the associated process is running on.
+
+
+ Gets the main module for the associated process.
+ You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ A 32-bit process is trying to access the modules of a 64-bit process.
+ The process is not available.
+
+ -or-
+
+ The process has exited.
+ The that was used to start the process.
+
+
+ Gets the window handle of the main window of the associated process.
+ The is not defined because the process has exited.
+ You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ The system-generated window handle of the main window of the associated process.
+
+
+ Gets the caption of the main window of the process.
+ The property is not defined because the process has exited.
+ You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ The main window title of the process.
+
+
+ Gets or sets the maximum allowable working set size, in bytes, for the associated process.
+ The maximum working set size is invalid. It must be greater than or equal to the minimum working set size.
+ Working set information cannot be retrieved from the associated process resource.
+
+ -or-
+
+ The process identifier or process handle is zero because the process has not been started.
+ You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ The process is not available.
+
+ -or-
+
+ The process has exited.
+ The maximum working set size that is allowed in memory for the process, in bytes.
+
+
+ Gets or sets the minimum allowable working set size, in bytes, for the associated process.
+ The minimum working set size is invalid. It must be less than or equal to the maximum working set size.
+ Working set information cannot be retrieved from the associated process resource.
+
+ -or-
+
+ The process identifier or process handle is zero because the process has not been started.
+ You are trying to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ The process is not available.
+
+ -or-
+
+ The process has exited.
+ The minimum working set size that is required in memory for the process, in bytes.
+
+
+ Gets the modules that have been loaded by the associated process.
+ You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ The process is not available.
+ You are attempting to access the property for either the system process or the idle process. These processes do not have modules.
+ An array of type that represents the modules that have been loaded by the associated process.
+
+
+ Gets the amount of nonpaged system memory, in bytes, allocated for the associated process.
+ The amount of memory, in bytes, the system has allocated for the associated process that cannot be written to the virtual memory paging file.
+
+
+ Gets the amount of nonpaged system memory, in bytes, allocated for the associated process.
+ The amount of system memory, in bytes, allocated for the associated process that cannot be written to the virtual memory paging file.
+
+
+ Gets the amount of paged memory, in bytes, allocated for the associated process.
+ The amount of memory, in bytes, allocated by the associated process that can be written to the virtual memory paging file.
+
+
+ Gets the amount of paged memory, in bytes, allocated for the associated process.
+ The amount of memory, in bytes, allocated in the virtual memory paging file for the associated process.
+
+
+ Gets the amount of pageable system memory, in bytes, allocated for the associated process.
+ The amount of memory, in bytes, the system has allocated for the associated process that can be written to the virtual memory paging file.
+
+
+ Gets the amount of pageable system memory, in bytes, allocated for the associated process.
+ The amount of system memory, in bytes, allocated for the associated process that can be written to the virtual memory paging file.
+
+
+ Gets the maximum amount of memory in the virtual memory paging file, in bytes, used by the associated process.
+ The maximum amount of memory, in bytes, allocated by the associated process that could be written to the virtual memory paging file.
+
+
+ Gets the maximum amount of memory in the virtual memory paging file, in bytes, used by the associated process.
+ The maximum amount of memory, in bytes, allocated in the virtual memory paging file for the associated process since it was started.
+
+
+ Gets the maximum amount of virtual memory, in bytes, used by the associated process.
+ The maximum amount of virtual memory, in bytes, that the associated process has requested.
+
+
+ Gets the maximum amount of virtual memory, in bytes, used by the associated process.
+ The maximum amount of virtual memory, in bytes, allocated for the associated process since it was started.
+
+
+ Gets the peak working set size for the associated process, in bytes.
+ The maximum amount of physical memory that the associated process has required all at once, in bytes.
+
+
+ Gets the maximum amount of physical memory, in bytes, used by the associated process.
+ The maximum amount of physical memory, in bytes, allocated for the associated process since it was started.
+
+
+ Gets or sets a value indicating whether the associated process priority should temporarily be boosted by the operating system when the main window has the focus.
+ Priority boost information could not be retrieved from the associated process resource.
+ The process identifier or process handle is zero. (The process has not been started.)
+ You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ The process is not available.
+
+ if dynamic boosting of the process priority should take place for a process when it is taken out of the wait state; otherwise, . The default is .
+
+
+ Gets or sets the overall priority category for the associated process.
+ Process priority information could not be set or retrieved from the associated process resource.
+
+ -or-
+
+ The process identifier or process handle is zero. (The process has not been started.)
+ You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ The process is not available.
+ Priority class cannot be set because it does not use a valid value, as defined in the enumeration.
+ The priority category for the associated process, from which the of the process is calculated.
+
+
+ Gets the amount of private memory, in bytes, allocated for the associated process.
+ The number of bytes allocated by the associated process that cannot be shared with other processes.
+
+
+ Gets the amount of private memory, in bytes, allocated for the associated process.
+ The amount of memory, in bytes, allocated for the associated process that cannot be shared with other processes.
+
+
+ Gets the privileged processor time for this process.
+ You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ A that indicates the amount of time that the process has spent running code inside the operating system core.
+
+
+ Gets the name of the process.
+ The process does not have an identifier, or no process is associated with the .
+
+ -or-
+
+ The associated process has exited.
+ The process is not on this computer.
+ The name that the system uses to identify the process to the user.
+
+
+ Gets or sets the processors on which the threads in this process can be scheduled to run.
+
+ information could not be set or retrieved from the associated process resource.
+
+ -or-
+
+ The process identifier or process handle is zero. (The process has not been started.)
+ You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ The process was not available.
+
+ -or-
+
+ The process has exited.
+ A bitmask representing the processors that the threads in the associated process can run on. The default depends on the number of processors on the computer. The default value is 2 n -1, where n is the number of processors.
+
+
+ Gets a value indicating whether the user interface of the process is responding.
+ There is no process associated with this object.
+ You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+
+ if the user interface of the associated process is responding to the system; otherwise, .
+
+
+ Gets the native handle to this process.
+ The native handle to this process.
+
+
+ Gets the Terminal Services session identifier for the associated process.
+ There is no session associated with this process.
+ There is no process associated with this session identifier.
+
+ -or-
+
+ The associated process is not on this machine.
+ The Terminal Services session identifier for the associated process.
+
+
+ Gets a stream used to read the error output of the application.
+ The stream has not been defined for redirection; ensure is set to and is set to .
+
+-or-
+
+ The stream has been opened for asynchronous read operations with .
+ A that can be used to read the standard error stream of the application.
+
+
+ Gets a stream used to write the input of the application.
+ The stream has not been defined because is set to .
+ A that can be used to write the standard input stream of the application.
+
+
+ Gets a stream used to read the textual output of the application.
+ The stream has not been defined for redirection; ensure is set to and is set to .
+
+-or-
+
+ The stream has been opened for asynchronous read operations with .
+ A that can be used to read the standard output stream of the application.
+
+
+ Gets or sets the properties to pass to the method of the .
+ The value that specifies the is .
+ .NET Core and .NET 5+ only: The method was not used to start the process.
+ The that represents the data with which to start the process. These arguments include the name of the executable file or document used to start the process.
+
+
+ Gets the time that the associated process was started.
+ You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ The process has exited.
+
+ -or-
+
+ The process has not been started.
+ An error occurred in the call to the Windows function.
+ An object that indicates when the process started. An exception is thrown if the process is not running.
+
+
+ Gets or sets the object used to marshal the event handler calls that are issued as a result of a process exit event.
+ The used to marshal event handler calls that are issued as a result of an event on the process.
+
+
+ Gets the set of threads that are running in the associated process.
+ The process does not have an , or no process is associated with the instance.
+
+ -or-
+
+ The associated process has exited.
+ An array of type representing the operating system threads currently running in the associated process.
+
+
+ Gets the total processor time for this process.
+ You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ A that indicates the amount of time that the associated process has spent utilizing the CPU. This value is the sum of the and the .
+
+
+ Gets the user processor time for this process.
+ You are attempting to access the property for a process that is running on a remote computer. This property is available only for processes that are running on the local computer.
+ A that indicates the amount of time that the associated process has spent running code inside the application portion of the process (not inside the operating system core).
+
+
+ Gets the size of the process's virtual memory, in bytes.
+ The amount of virtual memory, in bytes, that the associated process has requested.
+
+
+ Gets the amount of the virtual memory, in bytes, allocated for the associated process.
+ The amount of virtual memory, in bytes, allocated for the associated process.
+
+
+ Gets the associated process's physical memory usage, in bytes.
+ The total amount of physical memory the associated process is using, in bytes.
+
+
+ Gets the amount of physical memory, in bytes, allocated for the associated process.
+ The amount of physical memory, in bytes, allocated for the associated process.
+
+
+ Represents a .dll or .exe file that is loaded into a particular process.
+
+
+ Converts the name of the module to a string.
+ The value of the property.
+
+
+ Gets the memory address where the module was loaded.
+ The load address of the module.
+
+
+ Gets the memory address for the function that runs when the system loads and runs the module.
+ The entry point of the module.
+
+
+ Gets the full path to the module.
+ The fully qualified path that defines the location of the module.
+
+
+ Gets version information about the module.
+ A that contains the module's version information.
+
+
+ Gets the amount of memory that is required to load the module.
+ The size, in bytes, of the memory that the module occupies.
+
+
+ Gets the name of the process module.
+ The name of the module.
+
+
+ Provides a strongly typed collection of objects.
+
+
+ Initializes a new instance of the class, with no associated instances.
+
+
+ Initializes a new instance of the class, using the specified array of instances.
+ An array of instances with which to initialize this instance.
+
+
+ Determines whether the specified process module exists in the collection.
+ A instance that indicates the module to find in this collection.
+
+ if the module exists in the collection; otherwise, .
+
+
+ Copies an array of instances to the collection, at the specified index.
+ An array of instances to add to the collection.
+ The location at which to add the new instances.
+
+
+ Provides the location of a specified module within the collection.
+ The whose index is retrieved.
+ The zero-based index that defines the location of the module within the .
+
+
+ Gets an index for iterating over the set of process modules.
+ The zero-based index value of the module in the collection.
+ A that indexes the modules in the collection.
+
+
+ Indicates the priority that the system associates with a process. This value, together with the priority value of each thread of the process, determines each thread's base priority level.
+
+
+ Specifies that the process has priority higher than but lower than .
+
+
+ Specifies that the process has priority above but below .
+
+
+ Specifies that the process performs time-critical tasks that must be executed immediately, such as the dialog, which must respond quickly when called by the user, regardless of the load on the operating system. The threads of the process preempt the threads of normal or idle priority class processes.
Use extreme care when specifying for the process's priority class, because a high priority class application can use nearly all available processor time.
+
+
+ Specifies that the threads of this process run only when the system is idle, such as a screen saver. The threads of the process are preempted by the threads of any process running in a higher priority class. This priority class is inherited by child processes.
+
+
+ Specifies that the process has no special scheduling needs.
+
+
+ Specifies that the process has the highest possible priority.
The threads of a process with priority preempt the threads of all other processes, including operating system processes performing important tasks. Thus, a priority process that executes for more than a very brief interval can cause disk caches not to flush or cause the mouse to be unresponsive.
+
+
+ Specifies a set of values that are used when you start a process.
+
+
+ Initializes a new instance of the class without specifying a file name with which to start the process.
+
+
+ Initializes a new instance of the class and specifies a file name such as an application or document with which to start the process.
+ An application or document with which to start a process.
+
+
+
+
+
+
+ Initializes a new instance of the class, specifies an application file name with which to start the process, and specifies a set of command-line arguments to pass to the application.
+ An application with which to start a process.
+ Command-line arguments to pass to the application when the process starts.
+
+
+ Gets a collection of command-line arguments to use when starting the application. Strings added to the list don't need to be previously escaped.
+ A collection of command-line arguments.
+
+
+ Gets or sets the set of command-line arguments to use when starting the application.
+ A single string containing the arguments to pass to the target application specified in the property. The default is an empty string ("").
+
+
+ Gets or sets a value indicating whether to start the process in a new window.
+
+ if the process should be started without creating a new window to contain it; otherwise, . The default is .
+
+
+ Gets or sets a value that identifies the domain to use when starting the process. If this value is , the property must be specified in UPN format.
+ The Active Directory domain to use when starting the process. If this value is , the property must be specified in UPN format.
+
+
+ Gets the environment variables that apply to this process and its child processes.
+ A generic dictionary containing the environment variables that apply to this process and its child processes. The default is .
+
+
+ Gets search paths for files, directories for temporary files, application-specific options, and other similar information.
+ A string dictionary that provides environment variables that apply to this process and child processes. The default is .
+
+
+ Gets or sets a value indicating whether an error dialog box is displayed to the user if the process cannot be started.
+
+ if an error dialog box should be displayed on the screen if the process cannot be started; otherwise, . The default is .
+
+
+ Gets or sets the window handle to use when an error dialog box is shown for a process that cannot be started.
+ A pointer to the handle of the error dialog box that results from a process start failure.
+
+
+ Gets or sets the application or document to start.
+ The name of the application to start, or the name of a document of a file type that is associated with an application and that has a default open action available to it. The default is an empty string ("").
+
+
+ Gets or sets a value that indicates whether the Windows user profile is to be loaded from the registry.
+
+ if the Windows user profile should be loaded; otherwise, . The default is .
+
+
+ Gets or sets a secure string that contains the user password to use when starting the process.
+ The user password to use when starting the process.
+
+
+ Gets or sets the user password in clear text to use when starting the process.
+ The user password in clear text.
+
+
+ Gets or sets a value that indicates whether the error output of an application is written to the stream.
+
+ if error output should be written to ; otherwise, . The default is .
+
+
+ Gets or sets a value indicating whether the input for an application is read from the stream.
+
+ if input should be read from ; otherwise, . The default is .
+
+
+ Gets or sets a value that indicates whether the textual output of an application is written to the stream.
+
+ if output should be written to ; otherwise, . The default is .
+
+
+ Gets or sets the preferred encoding for error output.
+ An object that represents the preferred encoding for error output. The default is .
+
+
+ Gets or sets the preferred encoding for standard input.
+ An object that represents the preferred encoding for standard input. The default is .
+
+
+ Gets or sets the preferred encoding for standard output.
+ An object that represents the preferred encoding for standard output. The default is .
+
+
+
+ Gets or sets the user name to use when starting the process. If you use the UPN format, @, the property must be .
+ The user name to use when starting the process. If you use the UPN format, @, the property must be .
+
+
+ Gets or sets a value indicating whether to use the operating system shell to start the process.
+ An attempt to set the value to on Universal Windows Platform (UWP) apps occurs.
+
+ if the shell should be used when starting the process; if the process should be created directly from the executable file. The default is on .NET Framework apps and on .NET Core apps.
+
+
+ Gets or sets the verb to use when opening the application or document specified by the property.
+ The action to take with the file that the process opens. The default is an empty string (""), which signifies no action.
+
+
+ Gets the set of verbs associated with the type of file specified by the property.
+ The actions that the system can apply to the file indicated by the property.
+
+
+ Gets or sets the window state to use when the process is started.
+ The window style is not one of the enumeration members.
+ One of the enumeration values that indicates whether the process is started in a window that is maximized, minimized, normal (neither maximized nor minimized), or not visible. The default is .
+
+
+ When the property is , gets or sets the working directory for the process to be started. When is , gets or sets the directory that contains the process to be started.
+ When is , the fully qualified name of the directory that contains the process to be started. When the property is , the working directory for the process to be started. The default is an empty string ("").
+
+
+ Represents an operating system process thread.
+
+
+ Resets the ideal processor for this thread to indicate that there is no single ideal processor. In other words, so that any processor is ideal.
+ The ideal processor could not be reset.
+ The process is on a remote computer.
+
+
+ Gets the base priority of the thread.
+ The base priority of the thread, which the operating system computes by combining the process priority class with the priority level of the associated thread.
+
+
+ Gets the current priority of the thread.
+ The current priority of the thread, which may deviate from the base priority based on how the operating system is scheduling the thread. The priority may be temporarily boosted for an active thread.
+
+
+ Gets the unique identifier of the thread.
+ The unique identifier associated with a specific thread.
+
+
+ Sets the preferred processor for this thread to run on.
+ The system could not set the thread to start on the specified processor.
+ The process is on a remote computer.
+ The preferred processor for the thread, used when the system schedules threads, to determine which processor to run the thread on.
+
+
+ Gets or sets a value indicating whether the operating system should temporarily boost the priority of the associated thread whenever the main window of the thread's process receives the focus.
+ The priority boost information could not be retrieved.
+
+ -or-
+
+ The priority boost information could not be set.
+ The process is on a remote computer.
+
+ to boost the thread's priority when the user interacts with the process's interface; otherwise, . The default is .
+
+
+ Gets or sets the priority level of the thread.
+ The thread priority level information could not be retrieved.
+
+ -or-
+
+ The thread priority level could not be set.
+ The process is on a remote computer.
+ One of the values, specifying a range that bounds the thread's priority.
+
+
+ Gets the amount of time that the thread has spent running code inside the operating system core.
+ The thread time could not be retrieved.
+ The process is on a remote computer.
+ A indicating the amount of time that the thread has spent running code inside the operating system core.
+
+
+ Sets the processors on which the associated thread can run.
+ The processor affinity could not be set.
+ The process is on a remote computer.
+ An that points to a set of bits, each of which represents a processor that the thread can run on.
+
+
+ Gets the memory address of the function that the operating system called that started this thread.
+ The process is on a remote computer.
+ The thread's starting address, which points to the application-defined function that the thread executes.
+
+
+ Gets the time that the operating system started the thread.
+ The thread time could not be retrieved.
+ The process is on a remote computer.
+ A representing the time that was on the system when the operating system started the thread.
+
+
+ Gets the current state of this thread.
+ The process is on a remote computer.
+ A that indicates the thread's execution, for example, running, waiting, or terminated.
+
+
+ Gets the total amount of time that this thread has spent using the processor.
+ The thread time could not be retrieved.
+ The process is on a remote computer.
+ A that indicates the amount of time that the thread has had control of the processor.
+
+
+ Gets the amount of time that the associated thread has spent running code inside the application.
+ The thread time could not be retrieved.
+ The process is on a remote computer.
+ A indicating the amount of time that the thread has spent running code inside the application, as opposed to inside the operating system core.
+
+
+ Gets the reason that the thread is waiting.
+ The thread is not in the wait state.
+ The process is on a remote computer.
+ A representing the reason that the thread is in the wait state.
+
+
+ Provides a strongly typed collection of objects.
+
+
+ Initializes a new instance of the class, with no associated instances.
+
+
+ Initializes a new instance of the class, using the specified array of instances.
+ An array of instances with which to initialize this instance.
+
+
+ Appends a process thread to the collection.
+ The thread to add to the collection.
+ The zero-based index of the thread in the collection.
+
+
+ Determines whether the specified process thread exists in the collection.
+ A instance that indicates the thread to find in this collection.
+
+ if the thread exists in the collection; otherwise, .
+
+
+ Copies an array of instances to the collection, at the specified index.
+ An array of instances to add to the collection.
+ The location at which to add the new instances.
+
+
+ Provides the location of a specified thread within the collection.
+ The whose index is retrieved.
+ The zero-based index that defines the location of the thread within the .
+
+
+ Inserts a process thread at the specified location in the collection.
+ The zero-based index indicating the location at which to insert the thread.
+ The thread to insert into the collection.
+
+
+ Deletes a process thread from the collection.
+ The thread to remove from the collection.
+
+
+ Gets an index for iterating over the set of process threads.
+ The zero-based index value of the thread in the collection.
+ A that indexes the threads in the collection.
+
+
+ Specified how a new window should appear when the system starts a process.
+
+
+ The hidden window style. A window can be either visible or hidden. The system displays a hidden window by not drawing it. If a window is hidden, it is effectively disabled. A hidden window can process messages from the system or from other windows, but it cannot process input from the user or display output. Frequently, an application may keep a new window hidden while it customizes the window's appearance, and then make the window style . To use , the property must be .
+
+
+ The maximized window style. By default, the system enlarges a maximized window so that it fills the screen or, in the case of a child window, the parent window's client area. If the window has a title bar, the system automatically moves it to the top of the screen or to the top of the parent window's client area. Also, the system disables the window's sizing border and the window-positioning capability of the title bar so that the user cannot move the window by dragging the title bar.
+
+
+ The minimized window style. By default, the system reduces a minimized window to the size of its taskbar button and moves the minimized window to the taskbar.
+
+
+ The normal, visible window style. The system displays a window with style on the screen, in a default location. If a window is visible, the user can supply input to the window and view the window's output. Frequently, an application may initialize a new window to the style while it customizes the window's appearance, and then make the window style .
+
+
+ Specifies the priority level of a thread.
+
+
+ Specifies one step above the normal priority for the associated .
+
+
+ Specifies one step below the normal priority for the associated .
+
+
+ Specifies highest priority. This is two steps above the normal priority for the associated .
+
+
+ Specifies idle priority. This is the lowest possible priority value of all threads, independent of the value of the associated .
+
+
+ Specifies lowest priority. This is two steps below the normal priority for the associated .
+
+
+ Specifies normal priority for the associated .
+
+
+ Specifies time-critical priority. This is the highest priority of all threads, independent of the value of the associated .
+
+
+ Specifies the current execution state of the thread.
+
+
+ A state that indicates the thread has been initialized, but has not yet started.
+
+
+ A state that indicates the thread is waiting to use a processor because no processor is free. The thread is prepared to run on the next available processor.
+
+
+ A state that indicates the thread is currently using a processor.
+
+
+ A state that indicates the thread is about to use a processor. Only one thread can be in this state at a time.
+
+
+ A state that indicates the thread has finished executing and has exited.
+
+
+ A state that indicates the thread is waiting for a resource, other than the processor, before it can execute. For example, it might be waiting for its execution stack to be paged in from disk.
+
+
+ The state of the thread is unknown.
+
+
+ A state that indicates the thread is not ready to use the processor because it is waiting for a peripheral operation to complete or a resource to become free. When the thread is ready, it will be rescheduled.
+
+
+ Specifies the reason a thread is waiting.
+
+
+ The thread is waiting for event pair high.
+
+
+ The thread is waiting for event pair low.
+
+
+ Thread execution is delayed.
+
+
+ The thread is waiting for the scheduler.
+
+
+ The thread is waiting for a free virtual memory page.
+
+
+ The thread is waiting for a local procedure call to arrive.
+
+
+ The thread is waiting for reply to a local procedure call to arrive.
+
+
+ The thread is waiting for a virtual memory page to arrive in memory.
+
+
+ The thread is waiting for a virtual memory page to be written to disk.
+
+
+ Thread execution is suspended.
+
+
+ The thread is waiting for system allocation.
+
+
+ The thread is waiting for an unknown reason.
+
+
+ The thread is waiting for a user request.
+
+
+ The thread is waiting for the system to allocate virtual memory.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.StackTrace.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.StackTrace.xml
new file mode 100644
index 0000000000000000000000000000000000000000..abe2f7cb5a0f9a89964bf7adf0be9417ae0c74c7
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.StackTrace.xml
@@ -0,0 +1,726 @@
+
+
+
+ System.Diagnostics.StackTrace
+
+
+
+ Provides information about a , which represents a function call on the call stack for the current thread.
+
+
+ Defines the value that is returned from the or method when the native or Microsoft intermediate language (MSIL) offset is unknown. This field is constant.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class, optionally capturing source information.
+
+
+
+ Initializes a new instance of the class that corresponds to a frame above the current stack frame.
+ The number of frames up the stack to skip.
+
+
+ Initializes a new instance of the class that corresponds to a frame above the current stack frame, optionally capturing source information.
+ The number of frames up the stack to skip.
+
+
+
+ Initializes a new instance of the class that contains only the given file name and line number.
+ The file name.
+ The line number in the specified file.
+
+
+ Initializes a new instance of the class that contains only the given file name, line number, and column number.
+ The file name.
+ The line number in the specified file.
+ The column number in the specified file.
+
+
+ Gets the column number in the file that contains the code that is executing. This information is typically extracted from the debugging symbols for the executable.
+ The file column number, or 0 (zero) if the file column number cannot be determined.
+
+
+ Gets the line number in the file that contains the code that is executing. This information is typically extracted from the debugging symbols for the executable.
+ The file line number, or 0 (zero) if the file line number cannot be determined.
+
+
+ Gets the file name that contains the code that is executing. This information is typically extracted from the debugging symbols for the executable.
+ The file name, or if the file name cannot be determined.
+
+
+ Gets the offset from the start of the Microsoft intermediate language (MSIL) code for the method that is executing. This offset might be an approximation depending on whether or not the just-in-time (JIT) compiler is generating debugging code. The generation of this debugging information is controlled by the .
+ The offset from the start of the MSIL code for the method that is executing.
+
+
+ Gets the method in which the frame is executing.
+ The method in which the frame is executing.
+
+
+ Gets the offset from the start of the native just-in-time (JIT)-compiled code for the method that is being executed. The generation of this debugging information is controlled by the class.
+ The offset from the start of the JIT-compiled code for the method that is being executed.
+
+
+ Builds a readable representation of the stack trace.
+ A readable representation of the stack trace.
+
+
+ Provides extension methods for the class, which represents a function call on the call stack for the current thread.
+
+
+ Returns a pointer to the base address of the native image that this stack frame is executing.
+ A stack frame.
+ A pointer to the base address of the native image or if you're targeting the .NET Framework.
+
+
+ Gets an interface pointer to the start of the native code for the method that is being executed.
+ A stack frame.
+ An interface pointer to the start of the native code for the method that is being executed or if you're targeting the .NET Framework.
+
+
+ Indicates whether an offset from the start of the IL code for the method that is executing is available.
+ A stack frame.
+
+ if the offset is available; otherwise, .
+
+
+ Indicates whether information about the method in which the specified frame is executing is available.
+ A stack frame.
+
+ if information about the method in which the current frame is executing is available; otherwise, .
+
+
+ Indicates whether the native image is available for the specified stack frame.
+ A stack frame.
+
+ if a native image is available for this stack frame; otherwise, .
+
+
+ Indicates whether the file that contains the code that the specified stack frame is executing is available.
+ A stack frame.
+
+ if the code that the specified stack frame is executing is available; otherwise, .
+
+
+ Represents a stack trace, which is an ordered collection of one or more stack frames.
+
+
+ Defines the default for the number of methods to omit from the stack trace. This field is constant.
+
+
+ Initializes a new instance of the class from the caller's frame.
+
+
+ Initializes a new instance of the class from the caller's frame, optionally capturing source information.
+
+ to capture the file name, line number, and column number; otherwise, .
+
+
+ Constructs a stack trace from a set of objects.
+ The set of stack frames that should be present in the stack trace.
+
+
+ Initializes a new instance of the class that contains a single frame.
+ The frame that the object should contain.
+
+
+ Initializes a new instance of the class using the provided exception object.
+ The exception object from which to construct the stack trace.
+ The parameter is .
+
+
+ Initializes a new instance of the class, using the provided exception object and optionally capturing source information.
+ The exception object from which to construct the stack trace.
+
+ to capture the file name, line number, and column number; otherwise, .
+ The parameter is .
+
+
+ Initializes a new instance of the class using the provided exception object and skipping the specified number of frames.
+ The exception object from which to construct the stack trace.
+ The number of frames up the stack from which to start the trace.
+ The parameter is .
+ The parameter is negative.
+
+
+ Initializes a new instance of the class using the provided exception object, skipping the specified number of frames and optionally capturing source information.
+ The exception object from which to construct the stack trace.
+ The number of frames up the stack from which to start the trace.
+
+ to capture the file name, line number, and column number; otherwise, .
+ The parameter is .
+ The parameter is negative.
+
+
+ Initializes a new instance of the class from the caller's frame, skipping the specified number of frames.
+ The number of frames up the stack from which to start the trace.
+ The parameter is negative.
+
+
+ Initializes a new instance of the class from the caller's frame, skipping the specified number of frames and optionally capturing source information.
+ The number of frames up the stack from which to start the trace.
+
+ to capture the file name, line number, and column number; otherwise, .
+ The parameter is negative.
+
+
+ Gets the specified stack frame.
+ The index of the stack frame requested.
+ The specified stack frame.
+
+
+ Returns a copy of all stack frames in the current stack trace.
+ An array of type representing the function calls in the stack trace.
+
+
+ Builds a readable representation of the stack trace.
+ A readable representation of the stack trace.
+
+
+ Gets the number of frames in the stack trace.
+ The number of frames in the stack trace.
+
+
+ Represents a symbol binder for managed code.
+
+
+ Gets the interface of the symbol reader for the current file.
+ The metadata import interface.
+ The name of the file for which the reader interface is required.
+ The search path used to locate the symbol file.
+ The interface that reads the debugging symbols.
+
+
+ Represents a symbol binder for managed code.
+
+
+ Gets the interface of the symbol reader for the current file.
+ An that refers to the metadata import interface.
+ The name of the file for which the reader interface is required.
+ The search path used to locate the symbol file.
+ The interface that reads the debugging symbols.
+
+
+ Represents a document referenced by a symbol store.
+
+
+ Returns the closest line that is a sequence point, given a line in the current document that might or might not be a sequence point.
+ The specified line in the document.
+ The closest line that is a sequence point.
+
+
+ Gets the checksum.
+ The checksum.
+
+
+ Gets the embedded document source for the specified range.
+ The starting line in the current document.
+ The starting column in the current document.
+ The ending line in the current document.
+ The ending column in the current document.
+ The document source for the specified range.
+
+
+ Gets the checksum algorithm identifier.
+ A GUID identifying the checksum algorithm. The value is all zeros, if there is no checksum.
+
+
+ Gets the type of the current document.
+ The type of the current document.
+
+
+ Checks whether the current document is stored in the symbol store.
+
+ if the current document is stored in the symbol store; otherwise, .
+
+
+ Gets the language of the current document.
+ The language of the current document.
+
+
+ Gets the language vendor of the current document.
+ The language vendor of the current document.
+
+
+ Gets the length, in bytes, of the embedded source.
+ The source length of the current document.
+
+
+ Gets the URL of the current document.
+ The URL of the current document.
+
+
+ Represents a document referenced by a symbol store.
+
+
+ Sets checksum information.
+ The GUID representing the algorithm ID.
+ The checksum.
+
+
+ Stores the raw source for a document in the symbol store.
+ The document source represented as unsigned bytes.
+
+
+ Represents a method within a symbol store.
+
+
+ Gets the namespace that the current method is defined within.
+ The namespace that the current method is defined within.
+
+
+ Gets the Microsoft intermediate language (MSIL) offset within the method that corresponds to the specified position.
+ The document for which the offset is requested.
+ The document line corresponding to the offset.
+ The document column corresponding to the offset.
+ The offset within the specified document.
+
+
+ Gets the parameters for the current method.
+ The array of parameters for the current method.
+
+
+ Gets an array of start and end offset pairs that correspond to the ranges of Microsoft intermediate language (MSIL) that a given position covers within this method.
+ The document for which the offset is requested.
+ The document line corresponding to the ranges.
+ The document column corresponding to the ranges.
+ An array of start and end offset pairs.
+
+
+ Returns the most enclosing lexical scope when given an offset within a method.
+ The byte offset within the method of the lexical scope.
+ The most enclosing lexical scope for the given byte offset within the method.
+
+
+ Gets the sequence points for the current method.
+ The array of byte offsets from the beginning of the method for the sequence points.
+ The array of documents in which the sequence points are located.
+ The array of lines in the documents at which the sequence points are located.
+ The array of columns in the documents at which the sequence points are located.
+ The array of lines in the documents at which the sequence points end.
+ The array of columns in the documents at which the sequence points end.
+
+
+ Gets the start and end positions for the source of the current method.
+ The starting and ending source documents.
+ The starting and ending lines in the corresponding source documents.
+ The starting and ending columns in the corresponding source documents.
+
+ if the positions were defined; otherwise, .
+
+
+ Gets the root lexical scope for the current method. This scope encloses the entire method.
+ The root lexical scope that encloses the entire method.
+
+
+ Gets a count of the sequence points in the method.
+ The count of the sequence points in the method.
+
+
+ Gets the containing the metadata for the current method.
+ The metadata token for the current method.
+
+
+ Represents a namespace within a symbol store.
+
+
+ Gets the child members of the current namespace.
+ The child members of the current namespace.
+
+
+ Gets all the variables defined at global scope within the current namespace.
+ The variables defined at global scope within the current namespace.
+
+
+ Gets the current namespace.
+ The current namespace.
+
+
+ Represents a symbol reader for managed code.
+
+
+ Gets a document specified by the language, vendor, and type.
+ The URL that identifies the document.
+ The document language. You can specify this parameter as .
+ The identity of the vendor for the document language. You can specify this parameter as .
+ The type of the document. You can specify this parameter as .
+ The specified document.
+
+
+ Gets an array of all documents defined in the symbol store.
+ An array of all documents defined in the symbol store.
+
+
+ Gets all global variables in the module.
+ An array of all variables in the module.
+
+
+ Gets a symbol reader method object when given the identifier of a method.
+ The metadata token of the method.
+ The symbol reader method object for the specified method identifier.
+
+
+ Gets a symbol reader method object when given the identifier of a method and its edit and continue version.
+ The metadata token of the method.
+ The edit and continue version of the method.
+ The symbol reader method object for the specified method identifier.
+
+
+ Gets a symbol reader method object that contains a specified position in a document.
+ The document in which the method is located.
+ The position of the line within the document. The lines are numbered, beginning with 1.
+ The position of column within the document. The columns are numbered, beginning with 1.
+ The reader method object for the specified position in the document.
+
+
+ Gets the namespaces that are defined in the global scope within the current symbol store.
+ The namespaces defined in the global scope within the current symbol store.
+
+
+ Gets an attribute value when given the attribute name.
+ The metadata token for the object for which the attribute is requested.
+ The attribute name.
+ The value of the attribute.
+
+
+ Gets the variables that are not local when given the parent.
+ The metadata token for the type for which the variables are requested.
+ An array of variables for the parent.
+
+
+ Gets the metadata token for the method that was specified as the user entry point for the module, if any.
+ The metadata token for the method that is the user entry point for the module.
+
+
+ Represents a lexical scope within , providing access to the start and end offsets of the scope, as well as its child and parent scopes.
+
+
+ Gets the child lexical scopes of the current lexical scope.
+ The child lexical scopes that of the current lexical scope.
+
+
+ Gets the local variables within the current lexical scope.
+ The local variables within the current lexical scope.
+
+
+ Gets the namespaces that are used within the current scope.
+ The namespaces that are used within the current scope.
+
+
+ Gets the end offset of the current lexical scope.
+ The end offset of the current lexical scope.
+
+
+ Gets the method that contains the current lexical scope.
+ The method that contains the current lexical scope.
+
+
+ Gets the parent lexical scope of the current scope.
+ The parent lexical scope of the current scope.
+
+
+ Gets the start offset of the current lexical scope.
+ The start offset of the current lexical scope.
+
+
+ Represents a variable within a symbol store.
+
+
+ Gets the variable signature.
+ The variable signature as an opaque blob.
+
+
+ Gets the first address of a variable.
+ The first address of the variable.
+
+
+ Gets the second address of a variable.
+ The second address of the variable.
+
+
+ Gets the third address of a variable.
+ The third address of the variable.
+
+
+ Gets the value describing the type of the address.
+ The type of the address. One of the values.
+
+
+ Gets the attributes of the variable.
+ The variable attributes.
+
+
+ Gets the end offset of a variable within the scope of the variable.
+ The end offset of the variable.
+
+
+ Gets the name of the variable.
+ The name of the variable.
+
+
+ Gets the start offset of the variable within the scope of the variable.
+ The start offset of the variable.
+
+
+ Represents a symbol writer for managed code.
+
+
+ Closes and commits the symbols to the symbol store.
+
+
+ Closes the current method.
+
+
+ Closes the most recent namespace.
+
+
+ Closes the current lexical scope.
+ The points past the last instruction in the scope.
+
+
+ Defines a source document.
+ The URL that identifies the document.
+ The document language. This parameter can be .
+ The identity of the vendor for the document language. This parameter can be .
+ The type of the document. This parameter can be .
+ The object that represents the document.
+
+
+ Defines a field in a type or a global field.
+ The metadata type or method token.
+ The field name.
+ A bitwise combination of the field attributes.
+ The field signature.
+ The address types for and .
+ The first address for the field specification.
+ The second address for the field specification.
+ The third address for the field specification.
+
+
+ Defines a single global variable.
+ The global variable name.
+ A bitwise combination of the global variable attributes.
+ The global variable signature.
+ The address types for , , and .
+ The first address for the global variable specification.
+ The second address for the global variable specification.
+ The third address for the global variable specification.
+
+
+ Defines a single variable in the current lexical scope.
+ The local variable name.
+ A bitwise combination of the local variable attributes.
+ The local variable signature.
+ The address types for , , and .
+ The first address for the local variable specification.
+ The second address for the local variable specification.
+ The third address for the local variable specification.
+ The start offset for the variable. If this parameter is zero, it is ignored and the variable is defined throughout the entire scope. If the parameter is nonzero, the variable falls within the offsets of the current scope.
+ The end offset for the variable. If this parameter is zero, it is ignored and the variable is defined throughout the entire scope. If the parameter is nonzero, the variable falls within the offsets of the current scope.
+
+
+ Defines a single parameter in the current method. The type of each parameter is taken from its position within the signature of the method.
+ The parameter name.
+ A bitwise combination of the parameter attributes.
+ The parameter signature.
+ The address types for , , and .
+ The first address for the parameter specification.
+ The second address for the parameter specification.
+ The third address for the parameter specification.
+
+
+ Defines a group of sequence points within the current method.
+ The document object for which the sequence points are being defined.
+ The sequence point offsets measured from the beginning of methods.
+ The document lines for the sequence points.
+ The document positions for the sequence points.
+ The document end lines for the sequence points.
+ The document end positions for the sequence points.
+
+
+ Sets the metadata emitter interface to associate with a writer.
+ The metadata emitter interface.
+ The file name for which the debugging symbols are written. Some writers require a file name, and others do not. If a file name is specified for a writer that does not use file names, this parameter is ignored.
+
+ indicates that this is a full rebuild; indicates that this is an incremental compilation.
+
+
+ Opens a method to place symbol information into.
+ The metadata token for the method to be opened.
+
+
+ Opens a new namespace.
+ The name of the new namespace.
+
+
+ Opens a new lexical scope in the current method.
+ The offset, in bytes, from the beginning of the method to the first instruction in the lexical scope.
+ An opaque scope identifier that can be used with to define the start and end offsets of a scope at a later time. In this case, the offsets passed to and are ignored. A scope identifier is valid only in the current method.
+
+
+ Specifies the true start and end of a method within a source file. Use to specify the extent of a method, independent of the sequence points that exist within the method.
+ The document that contains the starting position.
+ The starting line number.
+ The starting column.
+ The document that contains the ending position.
+ The ending line number.
+ The ending column number.
+
+
+ Defines the offset range for the specified lexical scope.
+ The identifier of the lexical scope.
+ The byte offset of the beginning of the lexical scope.
+ The byte offset of the end of the lexical scope.
+
+
+ Defines an attribute when given the attribute name and the attribute value.
+ The metadata token for which the attribute is being defined.
+ The attribute name.
+ The attribute value.
+
+
+ Sets the underlying (the corresponding unmanaged interface) that a managed uses to emit symbols.
+ A pointer to code that represents the underlying writer.
+
+
+ Identifies the user-defined method as the entry point for the current module.
+ The metadata token for the method that is the user entry point.
+
+
+ Specifies that the given, fully qualified namespace name is used within the open lexical scope.
+ The fully qualified name of the namespace.
+
+
+ Specifies address types for local variables, parameters, and fields in the methods , , and of the interface.
+
+
+ A bit field. The parameter is the position where the field starts, and the parameter is the field length.
+
+
+ A Microsoft intermediate language (MSIL) offset. The parameter is the MSIL local variable or parameter index.
+
+
+ A native offset. The parameter is the offset from the start of the parent.
+
+
+ A native register address. The parameter is the register in which the variable is stored.
+
+
+ A register-relative address. The parameter is the low-order register, and the parameter is the high-order register.
+
+
+ A register-relative address. The parameter is the register, and the parameter is the offset.
+
+
+ A register-relative address. The parameter is the low-order register, the parameter is the stack register, and the parameter is the offset from the stack pointer to the high-order part of the value.
+
+
+ A native Relevant Virtual Address (RVA). The parameter is the RVA in the module.
+
+
+ A native section offset. The parameter is the section, and the parameter is the offset.
+
+
+ A register-relative address. The parameter is the stack register, the parameter is the offset from the stack pointer to the low-order part of the value, and the parameter is the high-order register.
+
+
+ The structure is an object representation of a token that represents symbolic information.
+
+
+ Initializes a new instance of the structure when given a value.
+ The value to be used for the token.
+
+
+ Determines whether is equal to this instance.
+ The to check.
+
+ if is equal to this instance; otherwise, .
+
+
+ Determines whether is an instance of and is equal to this instance.
+ The object to check.
+
+ if is an instance of and is equal to this instance; otherwise, .
+
+
+ Generates the hash code for the current token.
+ The hash code for the current token.
+
+
+ Gets the value of the current token.
+ The value of the current token.
+
+
+ Returns a value indicating whether two objects are equal.
+ A structure.
+ A structure.
+
+ if and are equal; otherwise, .
+
+
+ Returns a value indicating whether two objects are not equal.
+ A structure.
+ A structure.
+
+ if and are not equal; otherwise, .
+
+
+ Holds the public GUIDs for document types to be used with the symbol store.
+
+
+ Specifies the GUID of the document type to be used with the symbol store.
+
+
+ Initializes a new instance of the class.
+
+
+ Holds the public GUIDs for language types to be used with the symbol store.
+
+
+ Specifies the GUID of the Basic language type to be used with the symbol store.
+
+
+ Specifies the GUID of the C language type to be used with the symbol store.
+
+
+ Specifies the GUID of the Cobol language type to be used with the symbol store.
+
+
+ Specifies the GUID of the C++ language type to be used with the symbol store.
+
+
+ Specifies the GUID of the C# language type to be used with the symbol store.
+
+
+ Specifies the GUID of the ILAssembly language type to be used with the symbol store.
+
+
+ Specifies the GUID of the Java language type to be used with the symbol store.
+
+
+ Specifies the GUID of the JScript language type to be used with the symbol store.
+
+
+ Specifies the GUID of the C++ language type to be used with the symbol store.
+
+
+ Specifies the GUID of the Pascal language type to be used with the symbol store.
+
+
+ Specifies the GUID of the SMC language type to be used with the symbol store.
+
+
+ Initializes a new instance of the class.
+
+
+ Holds the public GUIDs for language vendors to be used with the symbol store.
+
+
+ Specifies the GUID of the Microsoft language vendor.
+
+
+ Initializes a new instance of the class.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.TraceSource.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.TraceSource.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8011c9c9d4130a4cf9bbdf79103b9d2f7741090d
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.TraceSource.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.Tracing.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.Tracing.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b2380f0124a7a8727b4d5b6f5018624ad9a1063e
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Diagnostics.Tracing.xml
@@ -0,0 +1,1024 @@
+
+
+
+ System.Diagnostics.Tracing
+
+
+
+
+ is an abstract class that serves as the parent class for various Counter* classes, namely , , , and .
+
+
+ Adds key-value metadata to the counter that will be included as a part of the payload.
+ The metadata key.
+ The metadata value.
+
+
+ Removes the counter from the set that the will report on.
+
+
+ Gets or sets the display name of the counter.
+ The display name of the counter.
+
+
+ Gets or sets the display units of the counter.
+ The display units of the counter.
+
+
+ Gets the EventSource that this counter is attached to.
+ The EventSource that this counter is attached to.
+
+
+ Gets the name of this counter.
+ The name of this counter.
+
+
+ Specifies the tracking of activity start and stop events.
+
+
+ Allow overlapping activities. By default, activity starts and stops must be property nested. That is, a sequence of Start A, Start B, Stop A, Stop B is not allowed will result in B stopping at the same time as A.
+
+
+ Turn off start and stop tracking.
+
+
+ Use the default behavior for start and stop tracking.
+
+
+ Allow recursive activity starts. By default, an activity cannot be recursive. That is, a sequence of Start A, Start A, Stop A, Stop A is not allowed. Unintentional recursive activities can occur if the app executes and for some the stop is not reached before another start is called.
+
+
+ Specifies additional event schema information for an event.
+
+
+ Initializes a new instance of the class with the specified event identifier.
+ The event identifier for the event.
+
+
+ Specifies the behavior of the start and stop events of an activity. An activity is the region of time in an app between the start and the stop.
+ Returns .
+
+
+ Gets or sets an additional event log where the event should be written.
+ An additional event log where the event should be written.
+
+
+ Gets or sets the identifier for the event.
+ The event identifier. This value should be between 0 and 65535.
+
+
+ Gets or sets the keywords for the event.
+ A bitwise combination of the enumeration values.
+
+
+ Gets or sets the level for the event.
+ One of the enumeration values that specifies the level for the event.
+
+
+ Gets or sets the message for the event.
+ The message for the event.
+
+
+ Gets or sets the operation code for the event.
+ One of the enumeration values that specifies the operation code.
+
+
+ Gets or sets the value for this object. An event tag is a user-defined value that is passed through when the event is logged.
+ The value for this object. An event tag is a user-defined value that is passed through when the event is logged.
+
+
+ Gets or sets the task for the event.
+ The task for the event.
+
+
+ Gets or sets the version of the event.
+ The version of the event.
+
+
+ Specifies the event log channel for the event.
+
+
+ The administrator log channel.
+
+
+ The analytic channel.
+
+
+ The debug channel.
+
+
+ No channel specified.
+
+
+ The operational channel.
+
+
+ Describes the command ( property) that is passed to the callback.
+
+
+ Disable the event.
+
+
+ Enable the event.
+
+
+ Send the manifest.
+
+
+ Update the event.
+
+
+ Provides the arguments for the callback.
+
+
+ Disables the event that have the specified identifier.
+ The identifier of the event to disable.
+
+ if is in range; otherwise, .
+
+
+ Enables the event that has the specified identifier.
+ The identifier of the event to enable.
+
+ if is in range; otherwise, .
+
+
+ Gets the array of arguments for the callback.
+ An array of callback arguments.
+
+
+ Gets the command for the callback.
+ The callback command.
+
+
+ Provides the ability to collect statistics for very frequent events through the class.
+
+
+ Initializes a new instance of the class.
+ The event counter name.
+ The event source.
+
+ is .
+
+ -or-
+
+ is .
+
+
+ Returns a string representation of the current event counter instance.
+ The name, count and mean of the current event counter.
+
+
+ Writes the metric if performance counters are on.
+ The value to be written.
+
+
+ Writes the metric if performance counters are on.
+ The value to be written.
+
+
+ Specifies a type to be passed to the method.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the name to apply to an event if the event type or property is not explicitly named.
+ The name to apply to the event or property.
+
+
+ The is placed on fields of user-defined types that are passed as payloads.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the value that specifies how to format the value of a user-defined type.
+ The value that specifies how to format the value of a user-defined type.
+
+
+ Gets or sets the user-defined value that is required for fields that contain data that isn't one of the supported types.
+ Returns .
+
+
+ Specifies how to format the value of a user-defined type and can be used to override the default formatting for a field.
+
+
+ Boolean.
+
+
+ Default.
+
+
+ Hexadecimal.
+
+
+ HResult.
+
+
+ JSON.
+
+
+ String.
+
+
+ XML.
+
+
+ Specifies the user-defined tag that is placed on fields of user-defined types that are passed as payloads through the .
+
+
+ Specifies no tag and is equal to zero.
+
+
+ Specifies a property should be ignored when writing an event type with the method.
+
+
+ Initializes a new instance of the class.
+
+
+ Defines the standard keywords that apply to events.
+
+
+ All the bits are set to 1, representing every possible group of events.
+
+
+ Attached to all failed security audit events. Use this keyword only for events in the security log.
+
+
+ Attached to all successful security audit events. Use this keyword only for events in the security log.
+
+
+ Attached to transfer events where the related activity ID (correlation ID) is a computed value and is not guaranteed to be unique (that is, it is not a real GUID).
+
+
+ Attached to events that are raised by using the function.
+
+
+ Attached to all Microsoft telemetry events.
+
+
+ No filtering on keywords is performed when the event is published.
+
+
+ Attached to all Service Quality Mechanism (SQM) events.
+
+
+ Attached to all Windows Diagnostics Infrastructure (WDI) context events.
+
+
+ Attached to all Windows Diagnostics Infrastructure (WDI) diagnostic events.
+
+
+ Identifies the level of an event.
+
+
+ This level corresponds to a critical error, which is a serious error that has caused a major failure.
+
+
+ This level adds standard errors that signify a problem.
+
+
+ This level adds informational events or messages that are not errors. These events can help trace the progress or state of an application.
+
+
+ No level filtering is done on the event. When used as a level filter for enabling events, for example in EventListener.EnableEvents(), events of all levels will be included.
+
+
+ This level adds lengthy events or messages. It causes all events to be logged.
+
+
+ This level adds warning events (for example, events that are published because a disk is nearing full capacity).
+
+
+ Provides methods for enabling and disabling events from event sources.
+
+
+ Occurs when an event source ( object) is attached to the dispatcher.
+
+
+ Occurs when an event has been written by an event source ( object) for which the event listener has enabled events.
+
+
+ Creates a new instance of the class.
+
+
+ Disables all events for the specified event source.
+ The event source to disable events for.
+
+
+ Releases the resources used by the current instance of the class.
+
+
+ Enables events for the specified event source that has the specified verbosity level or lower.
+ The event source to enable events for.
+ The level of events to enable. Using EventLevel.LogAlways includes events of all levels.
+
+
+ Enables events for the specified event source that has the specified verbosity level or lower, and matching keyword flags.
+ The event source to enable events for.
+ The level of events to enable. Using EventLevel.LogAlways includes events of all levels.
+ The keyword flags necessary to enable the events.
+
+
+ Enables events for the specified event source that has the specified verbosity level or lower, matching event keyword flag, and matching arguments.
+ The event source to enable events for.
+ The level of events to enable. Using EventLevel.LogAlways includes events of all levels.
+ The keyword flags necessary to enable the events.
+ The arguments to be matched to enable the events.
+
+
+ Gets a small non-negative number that represents the specified event source.
+ The event source to find the index for.
+ A small non-negative number that represents the specified event source.
+
+
+ Called for all existing event sources when the event listener is created and when a new event source is attached to the listener.
+ The event source.
+
+
+ Called whenever an event has been written by an event source for which the event listener has enabled events.
+ The event arguments that describe the event.
+
+
+ Specifies how the ETW manifest for the event source is generated.
+
+
+ Generates a resources node under the localization folder for every satellite assembly provided.
+
+
+ Overrides the default behavior that the current must be the base class of the user-defined type passed to the write method. This enables the validation of .NET event sources.
+
+
+ No options are specified.
+
+
+ A manifest is generated only the event source must be registered on the host computer.
+
+
+ Causes an exception to be raised if any inconsistencies occur when writing the manifest file.
+
+
+ Defines the standard operation codes that the event source attaches to events.
+
+
+ A trace collection start event.
+
+
+ A trace collection stop event.
+
+
+ An extension event.
+
+
+ An informational event.
+
+
+ An event that is published when one activity in an application receives data.
+
+
+ An event that is published after an activity in an application replies to an event.
+
+
+ An event that is published after an activity in an application resumes from a suspended state. The event should follow an event that has the operation code.
+
+
+ An event that is published when one activity in an application transfers data or system resources to another activity.
+
+
+ An event that is published when an application starts a new transaction or activity. This operation code can be embedded within another transaction or activity when multiple events that have the code follow each other without an intervening event that has a code.
+
+
+ An event that is published when an activity or a transaction in an application ends. The event corresponds to the last unpaired event that has a operation code.
+
+
+ An event that is published when an activity in an application is suspended.
+
+
+ Provides the ability to create events for event tracing across platforms.
+
+
+ Occurs when a command comes from an event listener.
+
+
+ Creates a new instance of the class.
+
+
+ Creates a new instance of the class and specifies whether to throw an exception when an error occurs in the underlying Windows code.
+
+ to throw an exception when an error occurs in the underlying Windows code; otherwise, .
+
+
+ Creates a new instance of the class with the specified configuration settings.
+ A bitwise combination of the enumeration values that specify the configuration settings to apply to the event source.
+
+
+ Initializes a new instance of the to be used with non-contract events that contains the specified settings and traits.
+ A bitwise combination of the enumeration values that specify the configuration settings to apply to the event source.
+ The key-value pairs that specify traits for the event source.
+
+ is not specified in key-value pairs.
+
+
+ Creates a new instance of the class with the specified name.
+ The name to apply to the event source. Must not be .
+
+ is .
+
+
+ Creates a new instance of the class with the specified name and settings.
+ The name to apply to the event source. Must not be .
+ A bitwise combination of the enumeration values that specify the configuration settings to apply to the event source.
+
+ is .
+
+
+ Creates a new instance of the class with the specified configuration settings.
+ The name to apply to the event source. Must not be .
+ A bitwise combination of the enumeration values that specify the configuration settings to apply to the event source.
+ The key-value pairs that specify traits for the event source.
+
+ is .
+
+ is not specified in key-value pairs.
+
+
+ Releases all resources used by the current instance of the class.
+
+
+ Releases the unmanaged resources used by the class and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Allows the object to attempt to free resources and perform other cleanup operations before the object is reclaimed by garbage collection.
+
+
+ Returns a string of the XML manifest that is associated with the current event source.
+ The type of the event source.
+ The path to the assembly file (.dll) to include in the provider element of the manifest.
+ The XML data string.
+
+
+ Returns a string of the XML manifest that is associated with the current event source.
+ The type of the event source.
+ The path to the assembly file (.dll) file to include in the provider element of the manifest.
+ A bitwise combination of the enumeration values that specify how the manifest is generated.
+ The XML data string or .
+
+
+ Gets the unique identifier for this implementation of the event source.
+ The type of the event source.
+ A unique identifier for this event source type.
+
+
+ Gets the friendly name of the event source.
+ The type of the event source.
+ The friendly name of the event source. The default is the simple name of the class.
+
+
+ Gets a snapshot of all the event sources for the application domain.
+ An enumeration of all the event sources in the application domain.
+
+
+ Gets the trait value associated with the specified key.
+ The key of the trait to get.
+ The trait value associated with the specified key. If the key is not found, returns .
+
+
+ Determines whether the current event source is enabled.
+
+ if the current event source is enabled; otherwise, .
+
+
+ Determines whether the current event source that has the specified level and keyword is enabled.
+ The level of the event source.
+ The keyword of the event source.
+
+ if the event source is enabled; otherwise, .
+
+
+ Determines whether the current event source is enabled for events with the specified level, keywords and channel.
+ The event level to check. An event source will be considered enabled when its level is greater than or equal to .
+ The event keywords to check.
+ The event channel to check.
+
+ if the event source is enabled for the specified event level, keywords and channel; otherwise, .
+
+ The result of this method is only an approximation of whether a particular event is active. Use it to avoid expensive computation for logging when logging is disabled. Event sources may have additional filtering that determines their activity.
+
+
+ Called when the current event source is updated by the controller.
+ The arguments for the event.
+
+
+ Sends a command to a specified event source.
+ The event source to send the command to.
+ The event command to send.
+ The arguments for the event command.
+
+
+ Sets the activity ID on the current thread.
+ The current thread's new activity ID, or to indicate that work on the current thread is not associated with any activity.
+
+
+ Sets the activity ID on the current thread, and returns the previous activity ID.
+ The current thread's new activity ID, or to indicate that work on the current thread is not associated with any activity.
+ When this method returns, contains the previous activity ID on the current thread.
+
+
+ Obtains a string representation of the current event source instance.
+ The name and unique identifier that identify the current event source.
+
+
+ Writes an event without fields, but with the specified name and default options.
+ The name of the event to write.
+
+ is .
+
+
+ Writes an event without fields, but with the specified name and options.
+ The name of the event to write.
+ The options such as level, keywords and operation code for the event.
+
+ is .
+
+
+ Writes an event with the specified name and data.
+ The name of the event.
+ The event data. This type must be an anonymous type or marked with the attribute.
+ The type that defines the event and its associated data. This type must be an anonymous type or marked with the attribute.
+
+
+ Writes an event with the specified name, event data and options.
+ The name of the event.
+ The event options.
+ The event data. This type must be an anonymous type or marked with the attribute.
+ The type that defines the event and its associated data. This type must be an anonymous type or marked with the attribute.
+
+
+ Writes an event with the specified name, options and event data.
+ The name of the event.
+ The event options.
+ The event data. This type must be an anonymous type or marked with the attribute.
+ The type that defines the event and its associated data. This type must be an anonymous type or marked with the attribute.
+
+
+ Writes an event with the specified name, options, related activity and event data.
+ The name of the event.
+ The event options.
+ The ID of the activity associated with the event.
+ The ID of an associated activity, or if there is no associated activity.
+ The event data. This type must be an anonymous type or marked with the attribute.
+ The type that defines the event and its associated data. This type must be an anonymous type or marked with the attribute.
+
+
+ Writes an event by using the provided event identifier.
+ The event identifier. This value should be between 0 and 65535.
+
+
+ Writes an event by using the provided event identifier and byte array argument.
+ The event identifier. This value should be between 0 and 65535.
+ A byte array argument.
+
+
+ Writes an event by using the provided event identifier and a variable number of event source primitives.
+ The event identifier. This value should be between 0 and 65535.
+ The event source primitives.
+
+
+ Writes an event by using the provided event identifier and 32-bit integer argument.
+ The event identifier. This value should be between 0 and 65535.
+ An integer argument.
+
+
+ Writes an event by using the provided event identifier and 32-bit integer arguments.
+ The event identifier. This value should be between 0 and 65535.
+ An integer argument.
+ An integer argument.
+
+
+ Writes an event by using the provided event identifier and 32-bit integer arguments.
+ The event identifier. This value should be between 0 and 65535.
+ An integer argument.
+ An integer argument.
+ An integer argument.
+
+
+ Writes an event by using the provided event identifier and 32-bit integer and string arguments.
+ The event identifier. This value should be between 0 and 65535.
+ A 32-bit integer argument.
+ A string argument.
+
+
+ Writes an event by using the provided event identifier and 64-bit integer argument.
+ The event identifier. This value should be between 0 and 65535.
+ A 64 bit integer argument.
+
+
+ Writes the event data using the specified identifier and 64-bit integer and byte array arguments.
+ The event identifier. This value should be between 0 and 65535.
+ A 64-bit integer argument.
+ A byte array argument.
+
+
+ Writes an event by using the provided event identifier and 64-bit arguments.
+ The event identifier. This value should be between 0 and 65535.
+ A 64 bit integer argument.
+ A 64 bit integer argument.
+
+
+ Writes an event by using the provided event identifier and 64-bit arguments.
+ The event identifier. This value should be between 0 and 65535.
+ A 64 bit integer argument.
+ A 64 bit integer argument.
+ A 64 bit integer argument.
+
+
+ Writes an event by using the provided event identifier and 64-bit integer, and string arguments.
+ The event identifier. This value should be between 0 and 65535.
+ A 64-bit integer argument.
+ A string argument.
+
+
+ Writes an event by using the provided event identifier and array of arguments.
+ The event identifier. This value should be between 0 and 65535.
+ An array of objects.
+
+
+ Writes an event by using the provided event identifier and string argument.
+ The event identifier. This value should be between 0 and 65535.
+ A string argument.
+
+
+ Writes an event by using the provided event identifier and arguments.
+ The event identifier. This value should be between 0 and 65535.
+ A string argument.
+ A 32 bit integer argument.
+
+
+ Writes an event by using the provided event identifier and arguments.
+ The event identifier. This value should be between 0 and 65535.
+ A string argument.
+ A 32 bit integer argument.
+ A 32 bit integer argument.
+
+
+ Writes an event by using the provided event identifier and arguments.
+ The event identifier. This value should be between 0 and 65535.
+ A string argument.
+ A 64 bit integer argument.
+
+
+ Writes an event by using the provided event identifier and string arguments.
+ The event identifier. This value should be between 0 and 65535.
+ A string argument.
+ A string argument.
+
+
+ Writes an event by using the provided event identifier and string arguments.
+ The event identifier. This value should be between 0 and 65535.
+ A string argument.
+ A string argument.
+ A string argument.
+
+
+ Creates a new overload by using the provided event identifier and event data.
+ The event identifier.
+ The number of event data items.
+ The structure that contains the event data.
+
+
+ Writes an event that indicates that the current activity is related to another activity.
+ An identifier that uniquely identifies this event within the .
+ The related activity identifier.
+ An array of objects that contain data about the event.
+
+
+ Writes an event that indicates that the current activity is related to another activity.
+ An identifier that uniquely identifies this event within the .
+ A pointer to the GUID of the related activity ID.
+ The number of items in the field.
+ A pointer to the first item in the event data field.
+
+
+ Gets any exception that was thrown during the construction of the event source.
+ The exception that was thrown during the construction of the event source, or if no exception was thrown.
+
+
+ Gets the activity ID of the current thread.
+ The activity ID of the current thread.
+
+
+ The unique identifier for the event source.
+ A unique identifier for the event source.
+
+
+ The friendly name of the class that is derived from the event source.
+ The friendly name of the derived class. The default is the simple name of the class.
+
+
+ Gets the settings applied to this event source.
+ The settings applied to this event source.
+
+
+ Provides the event data for creating fast overloads by using the method.
+
+
+ Gets or sets the pointer to the data for the new overload.
+ The pointer to the data.
+
+
+ Gets or sets the number of payload items in the new overload.
+ The number of payload items in the new overload.
+
+
+ A wrapper type for separating primitive types (for example, int, long, and string) from other types in the EventSource API. This type shouldn't be used directly, but just as implicit conversions when using the WriteEvent API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Allows the event tracing for Windows (ETW) name to be defined independently of the name of the event source class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the event source identifier.
+ The event source identifier.
+
+
+ Gets or sets the name of the localization resource file.
+ The name of the localization resource file, or if the localization resource file does not exist.
+
+
+ Gets or sets the name of the event source.
+ The name of the event source.
+
+
+ Provides data for the event.
+
+
+ Initializes a new instance of the class.
+
+
+ Get the event source that is attaching to the listener.
+ The event source that is attaching to the listener.
+
+
+ The exception that is thrown when an error occurs during event tracing for Windows (ETW).
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with serialized data.
+ The object that holds the serialized object data.
+ The contextual information about the source or destination.
+
+
+ Initializes a new instance of the class with a specified error message.
+ The message that describes the error.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception, or if no inner exception is specified.
+
+
+ Specifies overrides of default event settings such as the log level, keywords and operation code when the method is called.
+
+
+ The activity options defined for this event source.
+ Returns .
+
+
+ Gets or sets the keywords applied to the event. If this property is not set, the event's keywords will be .
+ The keywords applied to the event, or if no keywords are set.
+
+
+ Gets or sets the event level applied to the event.
+ The event level for the event. If not set, the default is Verbose (5).
+
+
+ Gets or sets the operation code to use for the specified event.
+ The operation code to use for the specified event. If not set, the default is (0).
+
+
+ The event tags defined for this event source.
+ Returns .
+
+
+ Specifies configuration options for an event source.
+
+
+ None of the special configuration options are enabled.
+
+
+ The ETW listener should use a manifest-based format when raising events. Setting this option is a directive to the ETW listener should use manifest-based format when raising events. This is the default option when defining a type derived from using one of the protected constructors.
+
+
+ The ETW listener should use self-describing event format. This is the default option when creating a new instance of the using one of the public constructors.
+
+
+ The event source throws an exception when an error occurs.
+
+
+ Specifies the tracking of activity start and stop events. You should only use the lower 24 bits. For more information, see and .
+
+
+ Specifies no tag and is equal to zero.
+
+
+ Defines the tasks that apply to events.
+
+
+ Undefined task.
+
+
+ Provides data for the callback.
+
+
+ Gets the activity ID on the thread that the event was written to.
+ The activity ID on the thread that the event was written to.
+
+
+ Gets the channel for the event.
+ The channel for the event.
+
+
+ Gets the event identifier.
+ The event identifier.
+
+
+ Gets the name of the event.
+ The name of the event.
+
+
+ Gets the event source object.
+ The event source object.
+
+
+ Gets the keywords for the event.
+ The keywords for the event.
+
+
+ Gets the level of the event.
+ The level of the event.
+
+
+ Gets the message for the event.
+ The message for the event.
+
+
+ Gets the operation code for the event.
+ The operation code for the event.
+
+
+ Gets the thread identifier for the OS thread that wrote the event. (.NET Core 2.2 and later only.)
+ The thread identifier for the OS thread that wrote the event.
+
+
+ Gets the payload for the event.
+ The payload for the event.
+
+
+ Returns a list of strings that represent the property names of the event.
+ Returns .
+
+
+ Gets the identifier of an activity that is related to the activity represented by the current instance.
+ The identifier of the related activity, or if there is no related activity.
+
+
+ Returns the tags specified in the call to the method.
+ Returns .
+
+
+ Gets the task for the event.
+ The task for the event.
+
+
+ Gets the time that the event was originally generated as a timestamp. (.NET Core 2.2 and later only.)
+ The date and time when the event was logged. The system tries to be as precise as possible.
+
+
+ Gets the version of the event.
+ The version of the event.
+
+
+ Provides a variant of for variables that are ever-increasing, such as the number of exceptions in the runtime.
+
+
+ Initializes a new instance of the class.
+ The name for this instance.
+ The event source.
+
+
+ Adds a value to a running total that will be published by the counter at the next timer interval.
+ The value to increment the running total by.
+
+
+ Returns a string representation of the current incrementing event counter instance.
+ The name and increment of the current incrementing event counter.
+
+
+ Gets or sets the rate at which this metric should be displayed as.
+ Gets or sets the rate at which this metric should be displayed.
+
+
+ Provides a variant of for variables that are ever-increasing, such as the number of exceptions in the runtime.
+
+
+ Initializes a new instance of the class.
+ The name for this instance.
+ The event source this instance is a part of.
+ A method that will be used to poll the value.
+
+
+ Returns a string representation of the current incrementing polling counter instance.
+ The name and increment of the current incrementing polling counter.
+
+
+ Gets or sets rate at which this metric should be displayed as.
+ The rate at which this metric should be displayed.
+
+
+ Identifies a method that is not generating an event.
+
+
+ Creates a new instance of the class.
+
+
+ Provides a variant of that collects and calculates similar statistics as .
+
+
+ Initializes a new instance of the class.
+ The name for this instance.
+ The event source.
+ A method that will be used to poll the value.
+
+
+ Returns a string representation of the current polling counter instance.
+ The name and mean of the current polling counter.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Drawing.Primitives.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Drawing.Primitives.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6a2280f9dc729604af3dbef06c0b8d504fa6e7ab
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Drawing.Primitives.xml
@@ -0,0 +1,2319 @@
+
+
+
+ System.Drawing.Primitives
+
+
+
+ Represents an ARGB (alpha, red, green, blue) color.
+
+
+ Represents a color that is .
+
+
+ Indicates whether the current object is equal to another object of the same type.
+ An object to compare with this object.
+
+ if the current object is equal to ; otherwise, .
+
+
+ Tests whether the specified object is a structure and is equivalent to this structure.
+ The object to test.
+
+ if is a structure equivalent to this structure; otherwise, .
+
+
+ Creates a structure from a 32-bit ARGB value.
+ A value specifying the 32-bit ARGB value.
+ The structure that this method creates.
+
+
+ Creates a structure from the specified structure, but with the new specified alpha value. Although this method allows a 32-bit value to be passed for the alpha value, the value is limited to 8 bits.
+ The alpha value for the new . Valid values are 0 through 255.
+ The from which to create the new .
+
+ is less than 0 or greater than 255.
+ The that this method creates.
+
+
+ Creates a structure from the specified 8-bit color values (red, green, and blue). The alpha value is implicitly 255 (fully opaque). Although this method allows a 32-bit value to be passed for each color component, the value of each component is limited to 8 bits.
+ The red component value for the new . Valid values are 0 through 255.
+ The green component value for the new . Valid values are 0 through 255.
+ The blue component value for the new . Valid values are 0 through 255.
+
+ , , or is less than 0 or greater than 255.
+ The that this method creates.
+
+
+ Creates a structure from the four ARGB component (alpha, red, green, and blue) values. Although this method allows a 32-bit value to be passed for each component, the value of each component is limited to 8 bits.
+ The alpha component. Valid values are 0 through 255.
+ The red component. Valid values are 0 through 255.
+ The green component. Valid values are 0 through 255.
+ The blue component. Valid values are 0 through 255.
+
+ , , , or is less than 0 or greater than 255.
+ The that this method creates.
+
+
+ Creates a structure from the specified predefined color.
+ An element of the enumeration.
+ The that this method creates.
+
+
+ Creates a structure from the specified name of a predefined color.
+ A string that is the name of a predefined color. Valid names are the same as the names of the elements of the enumeration.
+ The that this method creates.
+
+
+ Gets the hue-saturation-lightness (HSL) lightness value for this structure.
+ The lightness of this . The lightness ranges from 0.0 through 1.0, where 0.0 represents black and 1.0 represents white.
+
+
+ Returns a hash code for this structure.
+ An integer value that specifies the hash code for this .
+
+
+ Gets the hue-saturation-lightness (HSL) hue value, in degrees, for this structure.
+ The hue, in degrees, of this . The hue is measured in degrees, ranging from 0.0 through 360.0, in HSL color space.
+
+
+ Gets the hue-saturation-lightness (HSL) saturation value for this structure.
+ The saturation of this . The saturation ranges from 0.0 through 1.0, where 0.0 is grayscale and 1.0 is the most saturated.
+
+
+ Tests whether two specified structures are equivalent.
+ The that is to the left of the equality operator.
+ The that is to the right of the equality operator.
+
+ if the two structures are equal; otherwise, .
+
+
+ Tests whether two specified structures are different.
+ The that is to the left of the inequality operator.
+ The that is to the right of the inequality operator.
+
+ if the two structures are different; otherwise, .
+
+
+ Gets the 32-bit ARGB value of this structure.
+ The 32-bit ARGB value of this .
+
+
+ Gets the value of this structure.
+ An element of the enumeration, if the is created from a predefined color by using either the method or the method; otherwise, 0.
+
+
+ Converts this structure to a human-readable string.
+ A string that is the name of this , if the is created from a predefined color by using either the method or the method; otherwise, a string that consists of the ARGB component names and their values.
+
+
+ Gets the alpha component value of this structure.
+ The alpha component value of this .
+
+
+ Gets a system-defined color that has an ARGB value of #FFF0F8FF.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFAEBD7.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF00FFFF.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF7FFFD4.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFF0FFFF.
+ A representing a system-defined color.
+
+
+ Gets the blue component value of this structure.
+ The blue component value of this .
+
+
+ Gets a system-defined color that has an ARGB value of #FFF5F5DC.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFE4C4.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF000000.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFEBCD.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF0000FF.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF8A2BE2.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFA52A2A.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFDEB887.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF5F9EA0.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF7FFF00.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFD2691E.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFF7F50.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF6495ED.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFF8DC.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFDC143C.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF00FFFF.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF00008B.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF008B8B.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFB8860B.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFA9A9A9.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF006400.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFBDB76B.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF8B008B.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF556B2F.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFF8C00.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF9932CC.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF8B0000.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFE9967A.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF8FBC8B.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF483D8B.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF2F4F4F.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF00CED1.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF9400D3.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFF1493.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF00BFFF.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF696969.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF1E90FF.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFB22222.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFFAF0.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF228B22.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFF00FF.
+ A representing a system-defined color.
+
+
+ Gets the green component value of this structure.
+ The green component value of this .
+
+
+ Gets a system-defined color that has an ARGB value of #FFDCDCDC.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFF8F8FF.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFD700.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFDAA520.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF808080.
+ A structure representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF008000.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFADFF2F.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFF0FFF0.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFF69B4.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFCD5C5C.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF4B0082.
+ A representing a system-defined color.
+
+
+ Specifies whether this structure is uninitialized.
+ This property returns if this color is uninitialized; otherwise, .
+
+
+ Gets a value indicating whether this structure is a predefined color. Predefined colors are represented by the elements of the enumeration.
+
+ if this was created from a predefined color by using either the method or the method; otherwise, .
+
+
+ Gets a value indicating whether this structure is a named color or a member of the enumeration.
+
+ if this was created by using either the method or the method; otherwise, .
+
+
+ Gets a value indicating whether this structure is a system color. A system color is a color that is used in a Windows display element. System colors are represented by elements of the enumeration.
+
+ if this was created from a system color by using either the method or the method; otherwise, .
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFFFF0.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFF0E68C.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFE6E6FA.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFF0F5.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF7CFC00.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFFACD.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFADD8E6.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFF08080.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFE0FFFF.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFAFAD2.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFD3D3D3.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF90EE90.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFB6C1.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFA07A.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF20B2AA.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF87CEFA.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF778899.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFB0C4DE.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFFFE0.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF00FF00.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF32CD32.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFAF0E6.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFF00FF.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF800000.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF66CDAA.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF0000CD.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFBA55D3.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF9370DB.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF3CB371.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF7B68EE.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF00FA9A.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF48D1CC.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFC71585.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF191970.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFF5FFFA.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFE4E1.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFE4B5.
+ A representing a system-defined color.
+
+
+ Gets the name of this .
+ The name of this .
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFDEAD.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF000080.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFDF5E6.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF808000.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF6B8E23.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFA500.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFF4500.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFDA70D6.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFEEE8AA.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF98FB98.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFAFEEEE.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFDB7093.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFEFD5.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFDAB9.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFCD853F.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFC0CB.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFDDA0DD.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFB0E0E6.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF800080.
+ A representing a system-defined color.
+
+
+ Gets the red component value of this structure.
+ The red component value of this .
+
+
+ Gets a system-defined color that has an ARGB value of #663399.
+ A system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFF0000.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFBC8F8F.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF4169E1.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF8B4513.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFA8072.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFF4A460.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF2E8B57.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFF5EE.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFA0522D.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFC0C0C0.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF87CEEB.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF6A5ACD.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF708090.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFFAFA.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF00FF7F.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF4682B4.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFD2B48C.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF008080.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFD8BFD8.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFF6347.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF40E0D0.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFEE82EE.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFF5DEB3.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFFFFF.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFF5F5F5.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FFFFFF00.
+ A representing a system-defined color.
+
+
+ Gets a system-defined color that has an ARGB value of #FF9ACD32.
+ A representing a system-defined color.
+
+
+ Translates colors to and from GDI+ structures. This class cannot be inherited.
+
+
+ Translates an HTML color representation to a GDI+ structure.
+ The string representation of the Html color to translate.
+
+ is not a valid HTML color name.
+ The structure that represents the translated HTML color or if is .
+
+
+ Translates an OLE color value to a GDI+ structure.
+ The OLE color to translate.
+ The structure that represents the translated OLE color.
+
+
+ Translates a Windows color value to a GDI+ structure.
+ The Windows color to translate.
+ The structure that represents the translated Windows color.
+
+
+ Translates the specified structure to an HTML string color representation.
+ The structure to translate.
+ The string that represents the HTML color.
+
+
+ Translates the specified structure to an OLE color.
+ The structure to translate.
+ The OLE color value.
+
+
+ Translates the specified structure to a Windows color.
+ The structure to translate.
+ The Windows color value.
+
+
+ Specifies the known system colors.
+
+
+ The system-defined color of the active window's border.
+
+
+ The system-defined color of the background of the active window's title bar.
+
+
+ The system-defined color of the text in the active window's title bar.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ The system-defined color of the application workspace. The application workspace is the area in a multiple-document view that is not being occupied by documents.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ The system-defined face color of a 3-D element.
+
+
+ The system-defined color that is the highlight color of a 3-D element. This color is applied to parts of a 3-D element that face the light source.
+
+
+ The system-defined color that is the shadow color of a 3-D element. This color is applied to parts of a 3-D element that face away from the light source.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ The system-defined face color of a 3-D element.
+
+
+ The system-defined shadow color of a 3-D element. The shadow color is applied to parts of a 3-D element that face away from the light source.
+
+
+ The system-defined color that is the dark shadow color of a 3-D element. The dark shadow color is applied to the parts of a 3-D element that are the darkest color.
+
+
+ The system-defined color that is the light color of a 3-D element. The light color is applied to parts of a 3-D element that face the light source.
+
+
+ The system-defined highlight color of a 3-D element. The highlight color is applied to the parts of a 3-D element that are the lightest color.
+
+
+ The system-defined color of text in a 3-D element.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ The system-defined color of the desktop.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ The system-defined color of the lightest color in the color gradient of an active window's title bar.
+
+
+ The system-defined color of the lightest color in the color gradient of an inactive window's title bar.
+
+
+ A system-defined color.
+
+
+ The system-defined color of dimmed text. Items in a list that are disabled are displayed in dimmed text.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ The system-defined color of the background of selected items. This includes selected menu items as well as selected text.
+
+
+ The system-defined color of the text of selected items.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ The system-defined color used to designate a hot-tracked item. Single-clicking a hot-tracked item executes the item.
+
+
+ The system-defined color of an inactive window's border.
+
+
+ The system-defined color of the background of an inactive window's title bar.
+
+
+ The system-defined color of the text in an inactive window's title bar.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ The system-defined color of the background of a ToolTip.
+
+
+ The system-defined color of the text of a ToolTip.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ The system-defined color of a menu's background.
+
+
+ The system-defined color of the background of a menu bar.
+
+
+ The system-defined color used to highlight menu items when the menu appears as a flat menu.
+
+
+ The system-defined color of a menu's text.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color representing the ARGB value #663399.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ The system-defined color of the background of a scroll bar.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ The system-defined color of the background in the client area of a window.
+
+
+ The system-defined color of a window frame.
+
+
+ The system-defined color of the text in the client area of a window.
+
+
+ A system-defined color.
+
+
+ A system-defined color.
+
+
+ Represents an ordered pair of integer x- and y-coordinates that defines a point in a two-dimensional plane.
+
+
+ Represents a that has and values set to zero.
+
+
+ Initializes a new instance of the struct from a .
+ A that specifies the coordinates for the new .
+
+
+ Initializes a new instance of the struct using coordinates specified by an integer value.
+ A 32-bit integer that specifies the coordinates for the new .
+
+
+ Initializes a new instance of the struct with the specified coordinates.
+ The horizontal position of the point.
+ The vertical position of the point.
+
+
+ Adds the specified to the specified .
+ The to add.
+ The to add.
+ The that is the result of the addition operation.
+
+
+ Converts the specified to a by rounding the values of the to the next higher integer values.
+ The to convert.
+ The this method converts to.
+
+
+ Specifies whether this point instance contains the same coordinates as another point.
+ The point to test for equality.
+
+ if has the same coordinates as this point instance.
+
+
+ Specifies whether this point instance contains the same coordinates as the specified object.
+ The to test for equality.
+
+ if is a and has the same coordinates as this point instance.
+
+
+ Returns a hash code for this .
+ An integer value that specifies a hash value for this .
+
+
+ Translates this by the specified .
+ The used offset this .
+
+
+ Translates this by the specified amount.
+ The amount to offset the x-coordinate.
+ The amount to offset the y-coordinate.
+
+
+ Translates a by a given .
+ The to translate.
+ A that specifies the pair of numbers to add to the coordinates of .
+ The translated .
+
+
+ Compares two objects. The result specifies whether the values of the and properties of the two objects are equal.
+ A to compare.
+ A to compare.
+
+ if the and values of and are equal; otherwise, .
+
+
+ Converts the specified structure to a structure.
+ The to be converted.
+ The that results from the conversion.
+
+
+ Converts the specified structure to a structure.
+ The to be converted.
+ The that results from the conversion.
+
+
+ Compares two objects. The result specifies whether the values of the or properties of the two objects are unequal.
+ A to compare.
+ A to compare.
+
+ if the values of either the properties or the properties of and differ; otherwise, .
+
+
+ Translates a by the negative of a given .
+ The to translate.
+ A that specifies the pair of numbers to subtract from the coordinates of .
+ A structure that is translated by the negative of a given structure.
+
+
+ Converts the specified to a object by rounding the values to the nearest integer.
+ The to convert.
+ The this method converts to.
+
+
+ Returns the result of subtracting specified from the specified .
+ The to be subtracted from.
+ The to subtract from the .
+ The that is the result of the subtraction operation.
+
+
+ Converts this to a human-readable string.
+ A string that represents this .
+
+
+ Converts the specified to a by truncating the values of the .
+ The to convert.
+ The this method converts to.
+
+
+ Gets a value indicating whether this is empty.
+
+ if both and are 0; otherwise, .
+
+
+ Gets or sets the x-coordinate of this .
+ The x-coordinate of this .
+
+
+ Gets or sets the y-coordinate of this .
+ The y-coordinate of this .
+
+
+ Represents an ordered pair of floating-point x- and y-coordinates that defines a point in a two-dimensional plane.
+
+
+ Represents a new instance of the class with member data left uninitialized.
+
+
+ Initializes a new instance of the struct from the specified .
+ The source vector.
+
+
+ Initializes a new instance of the class with the specified coordinates.
+ The horizontal position of the point.
+ The vertical position of the point.
+
+
+ Translates a given by the specified .
+ The to translate.
+ The that specifies the numbers to add to the coordinates of .
+ The translated .
+
+
+ Translates a given by a specified .
+ The to translate.
+ The that specifies the numbers to add to the coordinates of .
+ The translated .
+
+
+ Indicates whether the current object is equal to another object of the same type.
+ An object to compare with this object.
+
+ if the current object is equal to ; otherwise, .
+
+
+ Specifies whether this contains the same coordinates as the specified .
+ The to test.
+ This method returns if is a and has the same coordinates as this .
+
+
+ Returns a hash code for this structure.
+ An integer value that specifies a hash value for this structure.
+
+
+ Translates a by a given .
+ The to translate.
+ A that specifies the pair of numbers to add to the coordinates of .
+ The translated .
+
+
+ Translates the by the specified .
+ The to translate.
+ The that specifies the numbers to add to the x- and y-coordinates of the .
+ The translated .
+
+
+ Compares two structures. The result specifies whether the values of the and properties of the two structures are equal.
+ A to compare.
+ A to compare.
+
+ if the and values of the left and right structures are equal; otherwise, .
+
+
+ Converts the specified to a .
+ The point to convert from.
+ The vector that represents the converted .
+
+
+ Converts the specified to a .
+ The vector to convert.
+ The pair of coordinates that represents the converted .
+
+
+ Determines whether the coordinates of the specified points are not equal.
+ A to compare.
+ A to compare.
+
+ to indicate the and values of and are not equal; otherwise, .
+
+
+ Translates a by the negative of a given .
+ The to translate.
+ The that specifies the numbers to subtract from the coordinates of .
+ The translated .
+
+
+ Translates a by the negative of a specified .
+ The to translate.
+ The that specifies the numbers to subtract from the coordinates of .
+ The translated .
+
+
+ Translates a by the negative of a specified size.
+ The to translate.
+ The that specifies the numbers to subtract from the coordinates of .
+ The translated .
+
+
+ Translates a by the negative of a specified size.
+ The to translate.
+ The that specifies the numbers to subtract from the coordinates of .
+ The translated .
+
+
+ Converts this to a human readable string.
+ A string that represents this .
+
+
+ Creates a new from this .
+ The vector that was created from this .
+
+
+ Gets a value indicating whether this is empty.
+
+ if both and are 0; otherwise, .
+
+
+ Gets or sets the x-coordinate of this .
+ The x-coordinate of this .
+
+
+ Gets or sets the y-coordinate of this .
+ The y-coordinate of this .
+
+
+ Stores a set of four integers that represent the location and size of a rectangle.
+
+
+ Represents a structure with its properties left uninitialized.
+
+
+ Initializes a new instance of the class with the specified location and size.
+ A that represents the upper-left corner of the rectangular region.
+ A that represents the width and height of the rectangular region.
+
+
+ Initializes a new instance of the class with the specified location and size.
+ The x-coordinate of the upper-left corner of the rectangle.
+ The y-coordinate of the upper-left corner of the rectangle.
+ The width of the rectangle.
+ The height of the rectangle.
+
+
+ Converts the specified structure to a structure by rounding the values to the next higher integer values.
+ The structure to be converted.
+ Returns a .
+
+
+ Determines if the specified point is contained within this structure.
+ The to test.
+ This method returns if the point represented by is contained within this structure; otherwise .
+
+
+ Determines if the rectangular region represented by is entirely contained within this structure.
+ The to test.
+ This method returns if the rectangular region represented by is entirely contained within this structure; otherwise .
+
+
+ Determines if the specified point is contained within this structure.
+ The x-coordinate of the point to test.
+ The y-coordinate of the point to test.
+ This method returns if the point defined by and is contained within this structure; otherwise .
+
+
+ Indicates whether the current object is equal to another object of the same type.
+ An object to compare with this object.
+
+ if the current object is equal to ; otherwise, .
+
+
+ Tests whether is a structure with the same location and size of this structure.
+ The to test.
+ This method returns if is a structure and its , , , and properties are equal to the corresponding properties of this structure; otherwise, .
+
+
+ Creates a structure with the specified edge locations.
+ The x-coordinate of the upper-left corner of this structure.
+ The y-coordinate of the upper-left corner of this structure.
+ The x-coordinate of the lower-right corner of this structure.
+ The y-coordinate of the lower-right corner of this structure.
+ The new that this method creates.
+
+
+ Returns the hash code for this structure. For information about the use of hash codes, see .
+ An integer that represents the hash code for this rectangle.
+
+
+ Creates and returns an enlarged copy of the specified structure. The copy is enlarged by the specified amount. The original structure remains unmodified.
+ The with which to start. This rectangle is not modified.
+ The amount to inflate this horizontally.
+ The amount to inflate this vertically.
+ The enlarged .
+
+
+ Enlarges this by the specified amount.
+ The amount to inflate this rectangle.
+
+
+ Enlarges this by the specified amount.
+ The amount to inflate this horizontally.
+ The amount to inflate this vertically.
+
+
+ Replaces this with the intersection of itself and the specified .
+ The with which to intersect.
+
+
+ Returns a third structure that represents the intersection of two other structures. If there is no intersection, an empty is returned.
+ A rectangle to intersect.
+ A rectangle to intersect.
+ A that represents the intersection of and .
+
+
+ Determines if this rectangle intersects with .
+ The rectangle to test.
+ This method returns if there is any intersection, otherwise .
+
+
+ Adjusts the location of this rectangle by the specified amount.
+ Amount to offset the location.
+
+
+ Adjusts the location of this rectangle by the specified amount.
+ The horizontal offset.
+ The vertical offset.
+
+
+ Tests whether two structures have equal location and size.
+ The structure that is to the left of the equality operator.
+ The structure that is to the right of the equality operator.
+ This operator returns if the two structures have equal , , , and properties.
+
+
+ Tests whether two structures differ in location or size.
+ The structure that is to the left of the inequality operator.
+ The structure that is to the right of the inequality operator.
+ This operator returns if any of the , , or properties of the two structures are unequal; otherwise .
+
+
+ Converts the specified to a by rounding the values to the nearest integer values.
+ The to be converted.
+ The rounded integer value of the .
+
+
+ Converts the attributes of this to a human-readable string.
+ A string that contains the position, width, and height of this structure ¾ for example, {X=20, Y=20, Width=100, Height=50}.
+
+
+ Converts the specified to a by truncating the values.
+ The to be converted.
+ The truncated value of the .
+
+
+ Gets a structure that contains the union of two structures.
+ A rectangle to union.
+ A rectangle to union.
+ A structure that bounds the union of the two structures.
+
+
+ Gets the y-coordinate that is the sum of the and property values of this structure.
+ The y-coordinate that is the sum of and of this .
+
+
+ Gets or sets the height of this structure.
+ The height of this structure. The default is 0.
+
+
+ Tests whether all numeric properties of this have values of zero.
+ This property returns if the , , , and properties of this all have values of zero; otherwise, .
+
+
+ Gets the x-coordinate of the left edge of this structure.
+ The x-coordinate of the left edge of this structure.
+
+
+ Gets or sets the coordinates of the upper-left corner of this structure.
+ A that represents the upper-left corner of this structure.
+
+
+ Gets the x-coordinate that is the sum of and property values of this structure.
+ The x-coordinate that is the sum of and of this .
+
+
+ Gets or sets the size of this .
+ A that represents the width and height of this structure.
+
+
+ Gets the y-coordinate of the top edge of this structure.
+ The y-coordinate of the top edge of this structure.
+
+
+ Gets or sets the width of this structure.
+ The width of this structure. The default is 0.
+
+
+ Gets or sets the x-coordinate of the upper-left corner of this structure.
+ The x-coordinate of the upper-left corner of this structure. The default is 0.
+
+
+ Gets or sets the y-coordinate of the upper-left corner of this structure.
+ The y-coordinate of the upper-left corner of this structure. The default is 0.
+
+
+ Stores a set of four floating-point numbers that represent the location and size of a rectangle. For more advanced region functions, use a object.
+
+
+ Represents an instance of the class with its members uninitialized.
+
+
+ Initializes a new instance of the class with the specified location and size.
+ A that represents the upper-left corner of the rectangular region.
+ A that represents the width and height of the rectangular region.
+
+
+ Initializes a new instance of the struct from the specified .
+ The source vector.
+
+
+ Initializes a new instance of the class with the specified location and size.
+ The x-coordinate of the upper-left corner of the rectangle.
+ The y-coordinate of the upper-left corner of the rectangle.
+ The width of the rectangle.
+ The height of the rectangle.
+
+
+ Determines if the specified point is contained within this structure.
+ The to test.
+
+ if the point represented by the parameter is contained within this structure; otherwise, .
+
+
+ Determines if the rectangular region represented by is entirely contained within this structure.
+ The to test.
+
+ if the rectangular region represented by is entirely contained within the rectangular region represented by this ; otherwise, .
+
+
+ Determines if the specified point is contained within this structure.
+ The x-coordinate of the point to test.
+ The y-coordinate of the point to test.
+
+ if the point defined by and is contained within this structure; otherwise, .
+
+
+ Indicates whether the current object is equal to another object of the same type.
+ An object to compare with this object.
+
+ if the current object is equal to ; otherwise, .
+
+
+ Tests whether is a with the same location and size of this .
+ The to test.
+
+ if is a and its , , , and properties are equal to the corresponding properties of this ; otherwise, .
+
+
+ Creates a structure with upper-left corner and lower-right corner at the specified locations.
+ The x-coordinate of the upper-left corner of the rectangular region.
+ The y-coordinate of the upper-left corner of the rectangular region.
+ The x-coordinate of the lower-right corner of the rectangular region.
+ The y-coordinate of the lower-right corner of the rectangular region.
+ The new that this method creates.
+
+
+ Gets the hash code for this structure. For information about the use of hash codes, see .
+ The hash code for this .
+
+
+ Creates and returns an enlarged copy of the specified structure. The copy is enlarged by the specified amount and the original rectangle remains unmodified.
+ The to be copied. This rectangle is not modified.
+ The amount to enlarge the copy of the rectangle horizontally.
+ The amount to enlarge the copy of the rectangle vertically.
+ The enlarged .
+
+
+ Enlarges this by the specified amount.
+ The amount to inflate this rectangle.
+
+
+ Enlarges this structure by the specified amount.
+ The amount to inflate this structure horizontally.
+ The amount to inflate this structure vertically.
+
+
+ Replaces this structure with the intersection of itself and the specified structure.
+ The rectangle to intersect.
+
+
+ Returns a structure that represents the intersection of two rectangles. If there is no intersection, and empty is returned.
+ A rectangle to intersect.
+ A rectangle to intersect.
+ A third structure the size of which represents the overlapped area of the two specified rectangles.
+
+
+ Determines if this rectangle intersects with .
+ The rectangle to test.
+
+ if there is any intersection; otherwise, .
+
+
+ Adjusts the location of this rectangle by the specified amount.
+ The amount to offset the location.
+
+
+ Adjusts the location of this rectangle by the specified amount.
+ The amount to offset the location horizontally.
+ The amount to offset the location vertically.
+
+
+ Tests whether two structures have equal location and size.
+ The structure that is to the left of the equality operator.
+ The structure that is to the right of the equality operator.
+
+ if the two specified structures have equal , , , and properties; otherwise, .
+
+
+ Converts the specified to a .
+ The rectangle to convert.
+ The vector that represents the converted .
+
+
+ Converts the specified to a .
+ The vector to convert.
+ The rectangle that represents the converted .
+
+
+ Converts the specified structure to a structure.
+ The structure to convert.
+ The structure that is converted from the specified structure.
+
+
+ Tests whether two structures differ in location or size.
+ The structure that is to the left of the inequality operator.
+ The structure that is to the right of the inequality operator.
+
+ if any of the , , , or properties of the two structures are unequal; otherwise, .
+
+
+ Converts the and of this to a human-readable string.
+ A string that contains the position, width, and height of this structure. For example, "{X=20, Y=20, Width=100, Height=50}".
+
+
+ Creates a new from this .
+ The rectangle, converted into a new instance.
+
+
+ Creates the smallest possible third rectangle that can contain both of two rectangles that form a union.
+ A rectangle to union.
+ A rectangle to union.
+ A third structure that contains both of the two rectangles that form the union.
+
+
+ Gets the y-coordinate that is the sum of and of this structure.
+ The y-coordinate that is the sum of and of this structure.
+
+
+ Gets or sets the height of this structure.
+ The height of this structure. The default is 0.
+
+
+ Gets a value that indicates whether the or property of this has a value of zero.
+
+ if the or property of this has a value of zero; otherwise, .
+
+
+ Gets the x-coordinate of the left edge of this structure.
+ The x-coordinate of the left edge of this structure.
+
+
+ Gets or sets the coordinates of the upper-left corner of this structure.
+ A that represents the upper-left corner of this structure.
+
+
+ Gets the x-coordinate that is the sum of and of this structure.
+ The x-coordinate that is the sum of and of this structure.
+
+
+ Gets or sets the size of this .
+ A that represents the width and height of this structure.
+
+
+ Gets the y-coordinate of the top edge of this structure.
+ The y-coordinate of the top edge of this structure.
+
+
+ Gets or sets the width of this structure.
+ The width of this structure. The default is 0.
+
+
+ Gets or sets the x-coordinate of the upper-left corner of this structure.
+ The x-coordinate of the upper-left corner of this structure. The default is 0.
+
+
+ Gets or sets the y-coordinate of the upper-left corner of this structure.
+ The y-coordinate of the upper-left corner of this structure. The default is 0.
+
+
+ Stores an ordered pair of integers, which specify a and .
+
+
+ Gets a structure that has a and value of 0.
+
+
+ Initializes a new instance of the structure from the specified structure.
+ The structure from which to initialize this structure.
+
+
+ Initializes a new instance of the structure from the specified dimensions.
+ The width component of the new .
+ The height component of the new .
+
+
+ Adds the width and height of one structure to the width and height of another structure.
+ The first structure to add.
+ The second structure to add.
+ A structure that is the result of the addition operation.
+
+
+ Converts the specified structure to a structure by rounding the values of the structure to the next higher integer values.
+ The structure to convert.
+ The structure this method converts to.
+
+
+ Indicates whether the current object is equal to another object of the same type.
+ An object to compare with this object.
+
+ if the current object is equal to ; otherwise, .
+
+
+ Tests to see whether the specified object is a structure with the same dimensions as this structure.
+ The to test.
+
+ if is a and has the same width and height as this ; otherwise, .
+
+
+ Returns a hash code for this structure.
+ An integer value that specifies a hash value for this structure.
+
+
+ Adds the width and height of one structure to the width and height of another structure.
+ The first to add.
+ The second to add.
+ A structure that is the result of the addition operation.
+
+
+ Divides the specified by the specified integer.
+ The dividend.
+ The divisor.
+ A new , which contains the result of dividing 's height by and 's width by , respectively.
+
+
+ Divides the specified by the specified single-precision floating-point number.
+ The dividend.
+ The divisor.
+ The result of dividing 's width and height by .
+
+
+ Tests whether two structures are equal.
+ The structure on the left side of the equality operator.
+ The structure on the right of the equality operator.
+
+ if and have equal width and height; otherwise, .
+
+
+ Converts the specified structure to a structure.
+ The structure to convert.
+ The structure to which this operator converts.
+
+
+ Converts the specified structure to a structure.
+ The structure to convert.
+ The structure to which this operator converts.
+
+
+ Tests whether two structures are different.
+ The structure on the left of the inequality operator.
+ The structure on the right of the inequality operator.
+
+ if and differ either in width or height; if and are equal.
+
+
+ Multiplies the specified by the specified integer.
+ The multiplicand.
+ The multiplier.
+ The result of multiplying 's width and height by .
+
+
+ Multiplies the specified by the specified single-precision floating-point number.
+ The multiplicand.
+ The multiplier.
+ The result of multiplying 's width and height by .
+
+
+ Multiplies the specified integer by the specified .
+ The multiplier.
+ The multiplicand.
+ The result of multiplying 's width and height by .
+
+
+ Multiplies the specified single-precision floating-point number by the specified .
+ The multiplier.
+ The multiplicand.
+ The result of multiplying 's width and height by .
+
+
+ Subtracts the width and height of one structure from the width and height of another structure.
+ The structure on the left side of the subtraction operator.
+ The structure on the right side of the subtraction operator.
+ A structure that is the result of the subtraction operation.
+
+
+ Converts the specified structure to a structure by rounding the values of the structure to the nearest integer values.
+ The structure to convert.
+ The structure this method converts to.
+
+
+ Subtracts the width and height of one structure from the width and height of another structure.
+ The structure on the left side of the subtraction operator.
+ The structure on the right side of the subtraction operator.
+ A structure that is a result of the subtraction operation.
+
+
+ Creates a human-readable string that represents this structure.
+ A string that represents this .
+
+
+ Converts the specified structure to a structure by truncating the values of the structure to the next lower integer values.
+ The structure to convert.
+ The structure this method converts to.
+
+
+ Gets or sets the vertical component of this structure.
+ The vertical component of this structure, typically measured in pixels.
+
+
+ Tests whether this structure has width and height of 0.
+ This property returns when this structure has both a width and height of 0; otherwise, .
+
+
+ Gets or sets the horizontal component of this structure.
+ The horizontal component of this structure, typically measured in pixels.
+
+
+ Stores an ordered pair of floating-point numbers, typically the width and height of a rectangle.
+
+
+ Gets a structure that has a and value of 0.
+
+
+ Initializes a new instance of the structure from the specified structure.
+ The structure from which to initialize this structure.
+
+
+ Initializes a new instance of the structure from the specified existing structure.
+ The structure from which to create the new structure.
+
+
+ Initializes a new instance of the struct from the specified .
+ The source vector.
+
+
+ Initializes a new instance of the structure from the specified dimensions.
+ The width component of the new structure.
+ The height component of the new structure.
+
+
+ Adds the width and height of one structure to the width and height of another structure.
+ The first structure to add.
+ The second structure to add.
+ A structure that is the result of the addition operation.
+
+
+ Indicates whether the current object is equal to another object of the same type.
+ An object to compare with this object.
+
+ if the current object is equal to ; otherwise, .
+
+
+ Tests to see whether the specified object is a structure with the same dimensions as this structure.
+ The to test.
+
+ if is a and has the same width and height as this ; otherwise, .
+
+
+ Returns a hash code for this structure.
+ An integer value that specifies a hash value for this structure.
+
+
+ Adds the width and height of one structure to the width and height of another structure.
+ The first structure to add.
+ The second structure to add.
+ A structure that is the result of the addition operation.
+
+
+ Divides the specified by the specified single-precision floating-point number.
+ The dividend.
+ The divisor.
+ The result of dividing 's width and height by .
+
+
+ Tests whether two structures are equal.
+ The structure on the left side of the equality operator.
+ The structure on the right of the equality operator.
+
+ if and have equal width and height; otherwise, .
+
+
+ Converts the specified structure to a structure.
+ The structure to be converted.
+ The structure to which this operator converts.
+
+
+ Converts the specified to a .
+ The pair of numbers to convert.
+ The size, converted into a instance.
+
+
+ Converts the specified to a .
+ The vector to convert.
+ The vector, converted into a instance.
+
+
+ Tests whether two structures are different.
+ The structure on the left of the inequality operator.
+ The structure on the right of the inequality operator.
+
+ if and differ either in width or height; if and are equal.
+
+
+ Multiplies the specified by the specified single-precision floating-point number.
+ The multiplicand.
+ The multiplier.
+ The result of multiplying 's width and height by .
+
+
+ Multiplies the specified single-precision floating-point number by the specified .
+ The multiplier.
+ The multiplicand.
+ The result of multiplying 's width and height by .
+
+
+ Subtracts the width and height of one structure from the width and height of another structure.
+ The structure on the left side of the subtraction operator.
+ The structure on the right side of the subtraction operator.
+ A that is the result of the subtraction operation.
+
+
+ Subtracts the width and height of one structure from the width and height of another structure.
+ The structure on the left side of the subtraction operator.
+ The structure on the right side of the subtraction operator.
+ A structure that is a result of the subtraction operation.
+
+
+ Converts a structure to a structure.
+ A structure.
+
+
+ Converts a structure to a structure.
+ A structure.
+
+
+ Creates a human-readable string that represents this structure.
+ A string that represents this structure.
+
+
+ Creates a new from this .
+ The vector that was created from this .
+
+
+ Gets or sets the vertical component of this structure.
+ The vertical component of this structure, typically measured in pixels.
+
+
+ Gets a value that indicates whether this structure has zero width and height.
+
+ when this structure has both a width and height of zero; otherwise, .
+
+
+ Gets or sets the horizontal component of this structure.
+ The horizontal component of this structure, typically measured in pixels.
+
+
+ Each property of the class is a structure that is the color of a Windows display element.
+
+
+ Gets a structure that is the color of the active window's border.
+ A that is the color of the active window's border.
+
+
+ Gets a structure that is the color of the background of the active window's title bar.
+ A that is the color of the active window's title bar.
+
+
+ Gets a structure that is the color of the text in the active window's title bar.
+ A that is the color of the text in the active window's title bar.
+
+
+ Gets a structure that is the color of the application workspace.
+ A that is the color of the application workspace.
+
+
+ Gets a structure that is the face color of a 3-D element.
+ A that is the face color of a 3-D element.
+
+
+ Gets a structure that is the highlight color of a 3-D element.
+ A that is the highlight color of a 3-D element.
+
+
+ Gets a structure that is the shadow color of a 3-D element.
+ A that is the shadow color of a 3-D element.
+
+
+ Gets a structure that is the face color of a 3-D element.
+ A that is the face color of a 3-D element.
+
+
+ Gets a structure that is the shadow color of a 3-D element.
+ A that is the shadow color of a 3-D element.
+
+
+ Gets a structure that is the dark shadow color of a 3-D element.
+ A that is the dark shadow color of a 3-D element.
+
+
+ Gets a structure that is the light color of a 3-D element.
+ A that is the light color of a 3-D element.
+
+
+ Gets a structure that is the highlight color of a 3-D element.
+ A that is the highlight color of a 3-D element.
+
+
+ Gets a structure that is the color of text in a 3-D element.
+ A that is the color of text in a 3-D element.
+
+
+ Gets a structure that is the color of the desktop.
+ A that is the color of the desktop.
+
+
+ Gets a structure that is the lightest color in the color gradient of an active window's title bar.
+ A that is the lightest color in the color gradient of an active window's title bar.
+
+
+ Gets a structure that is the lightest color in the color gradient of an inactive window's title bar.
+ A that is the lightest color in the color gradient of an inactive window's title bar.
+
+
+ Gets a structure that is the color of dimmed text.
+ A that is the color of dimmed text.
+
+
+ Gets a structure that is the color of the background of selected items.
+ A that is the color of the background of selected items.
+
+
+ Gets a structure that is the color of the text of selected items.
+ A that is the color of the text of selected items.
+
+
+ Gets a structure that is the color used to designate a hot-tracked item.
+ A that is the color used to designate a hot-tracked item.
+
+
+ Gets a structure that is the color of an inactive window's border.
+ A that is the color of an inactive window's border.
+
+
+ Gets a structure that is the color of the background of an inactive window's title bar.
+ A that is the color of the background of an inactive window's title bar.
+
+
+ Gets a structure that is the color of the text in an inactive window's title bar.
+ A that is the color of the text in an inactive window's title bar.
+
+
+ Gets a structure that is the color of the background of a ToolTip.
+ A that is the color of the background of a ToolTip.
+
+
+ Gets a structure that is the color of the text of a ToolTip.
+ A that is the color of the text of a ToolTip.
+
+
+ Gets a structure that is the color of a menu's background.
+ A that is the color of a menu's background.
+
+
+ Gets a structure that is the color of the background of a menu bar.
+ A that is the color of the background of a menu bar.
+
+
+ Gets a structure that is the color used to highlight menu items when the menu appears as a flat menu.
+ A that is the color used to highlight menu items when the menu appears as a flat menu.
+
+
+ Gets a structure that is the color of a menu's text.
+ A that is the color of a menu's text.
+
+
+ Gets a structure that is the color of the background of a scroll bar.
+ A that is the color of the background of a scroll bar.
+
+
+ Gets a structure that is the color of the background in the client area of a window.
+ A that is the color of the background in the client area of a window.
+
+
+ Gets a structure that is the color of a window frame.
+ A that is the color of a window frame.
+
+
+ Gets a structure that is the color of the text in the client area of a window.
+ A that is the color of the text in the client area of a window.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Dynamic.Runtime.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Dynamic.Runtime.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5a599b2d0500ec67ddc006c86a141f248734bbb0
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Dynamic.Runtime.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Formats.Asn1.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Formats.Asn1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5ea82c812a8c7e8140c6032b04a70e369416d479
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Formats.Asn1.xml
@@ -0,0 +1,2143 @@
+
+
+
+ System.Formats.Asn1
+
+
+
+ This type represents an ASN.1 tag, as described in ITU-T Recommendation X.680.
+
+
+ Represents the universal class tag for a Boolean value.
+
+
+ Represents the universal class tag for a Bit String value under a constructed encoding.
+
+
+ Represents the universal class tag for a Octet String value under a constructed encoding.
+
+
+ Represents the universal class tag for an Enumerated value.
+
+
+ Represents the universal class tag for a GeneralizedTime value.
+
+
+ Represents the universal class tag for an Integer value.
+
+
+ Represents the universal class tag for a value.
+
+
+ Represents the universal class tag for an Object Identifier value.
+
+
+ Represents the universal class tag for a Bit String value under a primitive encoding.
+
+
+ Represents the universal class tag for an Octet String value under a primitive encoding.
+
+
+ Represents the universal class tag for a Sequence value (always a constructed encoding).
+
+
+ Represents the universal class tag for a SetOf value (always a constructed encoding).
+
+
+ Represents the universal class tag for a UtcTime value.
+
+
+ Create an for a specified value within a specified tag class.
+ The tag class for this tag.
+ The numeric value for this tag.
+
+ for a constructed tag, for a primitive tag.
+
+ is not a known value.
+ -or-
+ is negative.
+
+
+ Create an for a tag from the UNIVERSAL class.
+ One of the enumeration values that specifies the semantic type for this tag.
+
+ for a constructed tag, for a primitive tag.
+
+ is not a known value.
+
+
+ Produces a tag with the same and values, but whose is .
+ A tag with the same and values, but whose is .
+
+
+ Produces a tag with the same and values, but whose is .
+ A tag with the same and values, but whose is .
+
+
+ Reports the number of bytes required for the BER-encoding of this tag.
+ The number of bytes required for the BER-encoding of this tag.
+
+
+ Reads a BER-encoded tag which starts at .
+ The read only byte sequence whose beginning is a BER-encoded tag.
+ When this method returns, contains the number of bytes that contributed to the encoded tag. This parameter is treated as uninitialized.
+ The provided data does not decode to a tag.
+ The decoded tag.
+
+
+ Writes the BER-encoded form of this tag to .
+ The start of where the encoded tag should be written.
+
+ . < .
+ The number of bytes written to .
+
+
+ Tests if has the same encoding as this tag.
+ Tag to test for equality.
+
+ if has the same values for , , and ; otherwise.
+
+
+ Tests if is an with the same encoding as this tag.
+ Object to test for value equality.
+
+ if is not an , otherwise.
+
+
+ Returns the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Tests if has the same and values as this tag, and does not compare .
+ Tag to test for concept equality.
+
+ if has the same and as this tag, otherwise.
+
+
+ Tests if two values have the same BER encoding.
+ The first value to compare.
+ The second value to compare.
+
+ if and have the same BER encoding, otherwise.
+
+
+ Tests if two values have a different BER encoding.
+ The first value to compare.
+ The second value to compare.
+
+ if and have a different BER encoding, otherwise.
+
+
+ Provides a text representation of this tag suitable for debugging.
+ A text representation of this tag suitable for debugging.
+
+
+ Attempts to read a BER-encoded tag which starts at .
+ The read only byte sequence whose beginning is a BER-encoded tag.
+ The decoded tag.
+ When this method returns, contains the number of bytes that contributed to the encoded tag, 0 on failure. This parameter is treated as uninitialized.
+
+ if a tag was correctly decoded; otherwise, .
+
+
+ Attempts to write the BER-encoded form of this tag to .
+ The start of where the encoded tag should be written.
+ Receives the value from on success, 0 on failure.
+
+ if . < (), otherwise.
+
+
+ Indicates if the tag represents a constructed encoding (), or a primitive encoding ().
+
+
+ The tag class to which this tag belongs.
+
+
+ The numeric value for this tag.
+
+
+ The exception that is thrown when an encoded ASN.1 value cannot be successfully decoded.
+
+
+ Initializes a new instance of the class, using the default message.
+
+
+ Initializes a new instance of the class with serialized data.
+ The object that holds the serialized object data.
+ The contextual information about the source or destination.
+
+
+ Initializes a new instance of the class, using the provided message.
+ The error message that explains the reason for the exception.
+
+
+ Initializes a new instance of the class, using the provided message and exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception.
+
+
+ Provides stateless methods for decoding BER-encoded, CER-encoded, and DER-encoded ASN.1 data.
+
+
+ Reads a Bit String value from with a specified tag under the specified encoding rules, returning the contents in a new array.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ On success, receives the number of bits in the last byte which were reported as "unused" by the writer.
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 3).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ An array containing the contents of the Bit String value.
+
+
+ Reads a Boolean value from with a specified tag under the specified encoding rules.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 1).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The decoded value.
+
+
+ Reads the next value as character string with the specified tag and encoding type, returning the decoded string.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ One of the enumeration values which represents the value type to process.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the universal tag that is appropriate to the requested encoding type.
+
+ is not defined.
+
+-or-
+
+ is not a known character string type.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+-or-
+
+The string did not successfully decode.
+
+ . is , but . is not the same as .
+ The decoded value.
+
+
+ Locates the contents range for the encoded value at the beginning of the buffer using the specified encoding rules.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the offset of the content payload relative to the start of .
+ This parameter is treated as uninitialized.
+ When this method returns, the number of bytes in the content payload (which may be 0).
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+
+ is not defined.
+
+ does not represent a value encoded under the specified encoding rules.
+ The tag identifying the content.
+
+
+ Reads an Enumerated value from with a specified tag under the specified encoding rules, returning the contents as a slice of the buffer.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 10).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The slice of the buffer containing the bytes of the Enumerated value, in signed big-endian form.
+
+
+ Reads an Enumerated from with a specified tag under the specified encoding rules, converting it to the non-[] enum specified by .
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ Type object representing the destination type.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 10).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+-or-
+
+The encoded value is too big to fit in a value.
+
+ is not an enum type.
+
+-or-
+
+ was declared with .
+
+-or-
+
+. is , but . is not correct for the method.
+
+ is .
+ The Enumerated value converted to a .
+
+
+ Reads an Enumerated from with a specified tag under the specified encoding rules, converting it to the non-[] enum specified by .
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 10).
+ Destination enum type.
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+-or-
+
+The encoded value is too big to fit in a value.
+
+ is not an enum type.
+
+-or-
+
+ was declared with .
+
+-or-
+
+. is , but . is not correct for the method.
+ The Enumerated value converted to a .
+
+
+ Reads a GeneralizedTime value from with a specified tag under the specified encoding rules.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 24).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The decoded value.
+
+
+ Reads an Integer value from with a specified tag under the specified encoding rules.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 2).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The decoded numeric value.
+
+
+ Reads an Integer value from with a specified tag under the specified encoding rules, returning the contents as a slice of the buffer.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 2).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The slice of the buffer containing the bytes of the Integer value, in signed big-endian form.
+
+
+ Reads a NamedBitList from with a specified tag under the specified encoding rules.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 3).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The bits from the encoded value.
+
+
+ Reads a NamedBitList from with a specified tag under the specified encoding rules, converting it to the [] enum specified by .
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ Type object representing the destination type.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 3).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+-or-
+
+The encoded value is too big to fit in a value.
+
+ is not an enum type.
+
+-or-
+
+ was not declared with
+
+-or-
+
+. is , but . is not correct for the method.
+
+ is
+ The NamedBitList value converted to a .
+
+
+ Reads a NamedBitList from with a specified tag under the specified encoding rules, converting it to the [] enum specified by .
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 3).
+ Destination enum type.
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+-or-
+
+The encoded value is too big to fit in a value.
+
+ is not an enum type.
+
+-or-
+
+ was not declared with
+
+-or-
+
+. is , but . is not correct for the method.
+ The NamedBitList value converted to a .
+
+
+ Reads a value from with a specified tag under the specified encoding rules.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 5).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+
+ Reads an Object Identifier value from with a specified tag under the specified encoding rules.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 6).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The decoded object identifier, in dotted-decimal notation.
+
+
+ Reads an Octet String value from with a specified tag under the specified encoding rules, returning the contents in a new array.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 4).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ An array containing the contents of the Octet String value.
+
+
+ Reads a Sequence or Sequence-Of value from with a specified tag under the specified encoding rules.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the offset of the content payload relative to the start of .
+ This parameter is treated as uninitialized.
+ When this method returns, the number of bytes in the content payload (which may be 0).
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 16).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+
+ Reads a Set-Of value from with a specified tag under the specified encoding rules.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the offset of the content payload relative to the start of .
+ This parameter is treated as uninitialized.
+ When this method returns, the number of bytes in the content payload (which may be 0).
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+
+ to always accept the data in the order it is presented, to verify that the data is sorted correctly when the encoding rules say sorting was required (CER and DER).
+ The tag to check for before reading, or for the default tag (Universal 17).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+
+ Reads a UtcTime value from with a specified tag under the specified encoding rules.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The largest year to represent with this value.
+ The default value, 2049, represents the 1950-2049 range for X.509 certificates.
+ The tag to check for before reading, or for the default tag (Universal 24).
+
+ is not defined.
+
+-or-
+
+ is not in the range [99, 9999].
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The decoded value.
+
+
+ Attempts to copy a Bit String value from with a specified tag under the specified encoding rules into .
+ The buffer containing encoded data.
+ The buffer in which to write.
+ The encoding constraints to use when interpreting the data.
+ On success, receives the number of bits in the last byte which were reported as "unused" by the writer.
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes written to .
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 3).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+-or-
+
+ overlaps .
+
+ if is large enough to receive the value of the Bit String; otherwise, .
+
+
+ Reads a character string value from with a specified tag under the specified encoding rules, copying the decoded string into a provided destination buffer.
+ The buffer containing encoded data.
+ The buffer in which to write.
+ The encoding constraints to use when interpreting the data.
+ One of the enumeration values which represents the value type to process.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ When this method returns, the number of chars written to .
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the universal tag that is appropriate to the requested encoding type.
+
+ is not defined.
+
+-or-
+
+ is not a known character string type.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+-or-
+
+The string did not successfully decode.
+
+ . is , but . is not the same as .
+
+ and advances the reader if had sufficient length to receive the value, otherwise and the reader does not advance.
+
+
+ Attempts to read a character string value from with a specified tag under the specified encoding rules, copying the unprocessed bytes into the provided destination buffer.
+ The buffer containing encoded data.
+ The buffer in which to write.
+ The encoding constraints to use when interpreting the data.
+ The tag to check for before reading.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ On success, receives the number of bytes written to .
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not a character string tag type.
+
+-or-
+
+ overlaps .
+
+ if is large enough to receive the value of the unprocessed character string; otherwise, .
+
+
+ Attempts locate the contents range for the encoded value at the beginning of the buffer using the specified encoding rules.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the tag identifying the content.
+ This parameter is treated as uninitialized.
+ When this method returns, the offset of the content payload relative to the start of .
+ This parameter is treated as uninitialized.
+ When this method returns, the number of bytes in the content payload (which may be 0).
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+
+ is not defined.
+
+ if represents a valid structural encoding for the specified encoding rules; otherwise, .
+
+
+ Attempts to read an Integer value from with a specified tag under the specified encoding rules as a signed 32-bit value.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ On success, receives the interpreted numeric value.
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 2).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+ if the Integer represents value is between Int32.MinValue and Int32.MaxValue, inclusive; otherwise, .
+
+
+ Attempts to read an Integer value from with a specified tag under the specified encoding rules as a signed 64-bit value.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ On success, receives the interpreted numeric value.
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 2).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+ if the Integer represents value is between Int64.MinValue and Int64.MaxValue, inclusive; otherwise, .
+
+
+ Attempts to get an Octet String value from with a specified tag under the specified encoding rules, copying the value into the provided destination buffer.
+ The buffer containing encoded data.
+ The buffer in which to write.
+ The encoding constraints to use when interpreting the data.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes written to .
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 4).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+-or-
+
+ overlaps .
+
+ if is large enough to receive the value of the Octet String; otherwise, .
+
+
+ Attempts to get a Bit String value from with a specified tag under the specified encoding rules, if the value is contained in a single (primitive) encoding.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ On success, receives the number of bits in the last byte which were reported as "unused" by the writer.
+ This parameter is treated as uninitialized.
+ On success, receives a slice of the input buffer that corresponds to the value of the Bit String.
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 3).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+ if the Bit String value has a primitive encoding and all of the bits reported as unused are set to 0; otherwise, .
+
+
+ Attempts to get an unprocessed character string value from with a specified tag under the specified encoding rules, if the value is contained in a single (primitive) encoding.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ The tag to check for before reading.
+ On success, receives a slice of the input buffer that corresponds to the value of the Bit String.
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not a character string tag type.
+
+ if the character string value has a primitive encoding; otherwise, .
+
+
+ Attempts to get an Octet String value from with a specified tag under the specified encoding rules, if the value is contained in a single (primitive) encoding.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ On success, receives a slice of the input buffer that corresponds to the value of the Octet String.
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 4).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+ if the Octet String value has a primitive encoding; otherwise, .
+
+
+ Attempts to read an Integer value from with a specified tag under the specified encoding rules as an unsigned 32-bit value.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ On success, receives the interpreted numeric value.
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 2).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+ if the Integer represents value is between UInt32.MinValue and UInt32.MaxValue, inclusive; otherwise, .
+
+
+ Attempts to read an Integer value from with a specified tag under the specified encoding rules as an unsigned 64-bit value.
+ The buffer containing encoded data.
+ The encoding constraints to use when interpreting the data.
+ On success, receives the interpreted numeric value.
+ This parameter is treated as uninitialized.
+ When this method returns, the total number of bytes for the encoded value.
+ This parameter is treated as uninitialized.
+ The tag to check for before reading, or for the default tag (Universal 2).
+
+ is not defined.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+ if the Integer represents value is between UInt64.MinValue and UInt64.MaxValue, inclusive; otherwise, .
+
+
+ The encoding ruleset for an or .
+
+
+ ITU-T X.690 Basic Encoding Rules.
+
+
+ ITU-T X.690 Canonical Encoding Rules.
+
+
+ ITU-T X.690 Distinguished Encoding Rules.
+
+
+ A stateful, forward-only reader for BER-, CER-, or DER-encoded ASN.1 data.
+
+
+ Construct an over with a given ruleset.
+ The data to read.
+ The encoding constraints for the reader.
+ Additional options for the reader.
+
+ is not defined.
+
+
+ Clones the current reader.
+ A clone of the current reader.
+
+
+ Get a view of the content octets (bytes) of the next encoded value without advancing the reader.
+ The reader is positioned at a point where the tag or length is invalid under the current encoding rules.
+ The bytes of the contents octets of the next encoded value.
+
+
+ Get a view of the next encoded value without advancing the reader. For indefinite length encodings this includes the End of Contents marker.
+ The reader is positioned at a point where the tag or length is invalid under the current encoding rules.
+ The bytes of the next encoded value.
+
+
+ Read the encoded tag at the next data position, without advancing the reader.
+ A tag could not be decoded at the reader's current position.
+ The decoded tag value.
+
+
+ Reads the next value as a BIT STRING with a specified tag, returning the value in a byte array.
+ On success, receives the number of bits in the last byte which were reported as "unused" by the writer.
+ The tag to check for before reading, or for the default tag (Universal 1).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ A copy of the value in a newly allocated, precisely sized, array.
+
+
+ Reads the next value as a Boolean with a specified tag.
+ The tag to check for before reading, or for the default tag (Universal 1).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The decoded value.
+
+
+ Reads the next value as character string with the specified tag and encoding type, returning the decoded value as a string.
+ One of the enumeration values representing the value type to process.
+ The tag to check for before reading, or for the universal tag that is appropriate to the requested encoding type.
+
+ is not a known character string type.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+-or-
+
+The string did not successfully decode.
+
+ . is , but . is not the same as .
+ The decoded value.
+
+
+ Get a view of the next encoded value, and advance the reader past it. For an indefinite length encoding this includes the End of Contents marker.
+ A view of the next encoded value.
+
+
+ Reads the next value as a Enumerated with a specified tag, returning the contents as a over the original data.
+ The tag to check for before reading, or for the default tag (Universal 10).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The bytes of the Enumerated value, in signed big-endian form.
+
+
+ Reads the next value as an Enumerated with a specified tag, converting it to the non-[] enum specified by .
+ Type object representing the destination type.
+ The tag to check for before reading, or for the default tag (Universal 10).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+-or-
+
+The encoded value is too big to fit in a value.
+
+ is not an enum type.
+
+-or-
+
+ was declared with .
+
+-or-
+
+. is , but . is not correct for the method.
+
+ is .
+ The Enumerated value converted to a .
+
+
+ Reads the next value as an Enumerated with a specified tag, converting it to the non-[] enum specified by .
+ The tag to check for before reading, or for the default tag (Universal 10).
+ Destination enum type.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+-or-
+
+The encoded value is too big to fit in a value.
+
+ is not an enum type.
+
+-or-
+
+ was declared with .
+
+-or-
+
+. is , but . is not correct for the method.
+ The Enumerated value converted to a .
+
+
+ Reads the next value as a GeneralizedTime with a specified tag.
+ The tag to check for before reading, or for the default tag (Universal 24).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The decoded value.
+
+
+ Reads the next value as an Integer with a specified tag.
+ The tag to check for before reading, or for the default tag (Universal 2).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The decoded value.
+
+
+ Reads the next value as a Integer with a specified tag, returning the contents as a over the original data.
+ The tag to check for before reading, or for the default tag (Universal 2).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The bytes of the Integer value, in signed big-endian form.
+
+
+ Reads the next value as a NamedBitList with a specified tag.
+ The tag to check for before reading.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The bits from the encoded value.
+
+
+ Reads the next value as a NamedBitList with a specified tag, converting it to the [] enum specified by .
+ Type object representing the destination type.
+ The tag to check for before reading.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+-or-
+
+The encoded value is too big to fit in a value.
+
+ is not an enum type.
+
+-or-
+
+ was not declared with
+
+-or-
+
+. is , but . is not correct for the method.
+
+ is
+ The NamedBitList value converted to a .
+
+
+ Reads the next value as a NamedBitList with a specified tag, converting it to the [] enum specified by .
+ The tag to check for before reading.
+ Destination enum type.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+-or-
+
+The encoded value is too big to fit in a value.
+
+ is not an enum type.
+
+-or-
+
+ was not declared with
+
+-or-
+
+. is , but . is not correct for the method.
+ The NamedBitList value converted to a .
+
+
+ Reads the next value as a NULL with a specified tag.
+ The tag to check for before reading, or for the default tag (Universal 5).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+
+ Reads the next value as an OBJECT IDENTIFIER with a specified tag, returning the value in a dotted decimal format string.
+ The tag to check for before reading, or for the default tag (Universal 6).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The object identifier value in a dotted decimal format string.
+
+
+ Reads the next value as an OCTET STRING with tag UNIVERSAL 4, returning the value in a byte array.
+ The tag to check for before reading, or for the default tag (Universal 4).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ A copy of the value in a newly allocated, precisely sized, array.
+
+
+ Reads the next value as a SEQUENCE or SEQUENCE-OF with the specified tag and returns the result as a new reader positioned at the first value in the sequence (or with == ).
+ The tag to check for before reading, or for the default tag (Universal 16).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ A new reader positioned at the first value in the sequence (or with == ).
+
+
+ Reads the next value as a SET-OF with the specified tag and returns the result as a new reader positioned at the first value in the set-of (or with == ).
+
+ to always accept the data in the order it is presented, to verify that the data is sorted correctly when the encoding rules say sorting was required (CER and DER).
+ The tag to check for before reading, or for the default tag (Universal 17).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ A new reader positioned at the first value in the set-of (or with == ).
+
+
+ Reads the next value as a SET-OF with the specified tag and returns the result as a new reader positioned at the first value in the set-of (or with == ), using the value from the constructor (default ).
+ The tag to check for before reading, or for the default tag (Universal 17).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ A new reader positioned at the first value in the set-of (or with == ).
+
+
+ Reads the next value as a UTCTime with a specified tag.
+ The largest year to represent with this value.
+ The tag to check for before reading, or for the default tag (Universal 23).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The decoded value.
+
+
+ Reads the next value as a UTCTime with a specified tag using the value from options passed to the constructor (with a default of 2049).
+ The tag to check for before reading, or for the default tag (Universal 23).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+ The decoded value.
+
+
+ Throws a standardized if the reader has remaining data, performs no function if returns .
+
+
+ Reads the next value as a BIT STRING with a specified tag, copying the value into a provided destination buffer.
+ The buffer in which to write.
+ On success, receives the number of bits in the last byte which were reported as "unused" by the writer.
+ On success, receives the number of bytes written to .
+ The tag to check for before reading, or for the default tag (Universal 1).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+ and advances the reader if had sufficient length to receive the value, otherwise and the reader does not advance.
+
+
+ Reads the next value as character string with the specified tag and encoding type, copying the decoded value into a provided destination buffer.
+ The buffer in which to write.
+ One of the enumeration values representing the value type to process.
+ On success, receives the number of chars written to .
+ The tag to check for before reading, or for the universal tag that is appropriate to the requested encoding type.
+
+ is not a known character string type.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+-or-
+
+The string did not successfully decode.
+
+ . is , but . is not the same as .
+
+ and advances the reader if had sufficient length to receive the value, otherwise and the reader does not advance.
+
+
+ Reads the next value as character string with the specified tag, copying the unprocessed bytes into a provided destination buffer.
+ The buffer in which to write.
+ The tag to check for before reading.
+ On success, receives the number of bytes written to .
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not a character string tag type.
+
+ and advances the reader if had sufficient length to receive the value, otherwise and the reader does not advance.
+
+
+ Attempts to read the next value as an Integer with a specified tag, as a signed 32-bit value.
+ On success, receives the decoded value.
+ The tag to check for before reading, or for the default tag (Universal 2).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+ and does not advance the reader if the value is not between Int32.MinValue and Int32.MaxValue, inclusive; otherwise is returned and the reader advances.
+
+
+ Attempts to read the next value as an Integer with a specified tag, as a signed 64-bit value.
+ On success, receives the decoded value.
+ The tag to check for before reading, or for the default tag (Universal 2).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+ and does not advance the reader if the value is not between Int64.MinValue and Int64.MaxValue, inclusive; otherwise is returned and the reader advances.
+
+
+ Reads the next value as an OCTET STRING with a specified tag, copying the value into a provided destination buffer.
+ The buffer in which to write.
+ On success, receives the number of bytes written to .
+ The tag to check for before reading, or for the default tag (Universal 4).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+ and advances the reader if had sufficient length to receive the value, otherwise and the reader does not advance.
+
+
+ Reads the next value as a BIT STRING with a specified tag, returning the contents as a over the original data.
+ On success, receives the number of bits in the last byte which were reported as "unused" by the writer.
+ On success, receives a over the original data corresponding to the value of the BIT STRING.
+ The tag to check for before reading, or for the default tag (Universal 1).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+ and advances the reader if the BIT STRING value had a primitive encoding, and does not advance the reader if it had a constructed encoding.
+
+
+ Reads the next value as a character with a specified tag, returning the contents as an unprocessed over the original data.
+ The tag to check for before reading.
+ On success, receives a over the original data corresponding to the value of the character string.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not a character string tag type.
+
+ and advances the reader if the character string value had a primitive encoding, and does not advance the reader if it had a constructed encoding.
+
+
+ Attempts to read the next value as an OCTET STRING with a specified tag, returning the contents as a over the original data.
+ On success, receives a over the original data corresponding to the value of the OCTET STRING.
+ The tag to check for before reading.
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+ and advances the reader if the OCTET STRING value had a primitive encoding, and does not advance the reader if it had a constructed encoding.
+
+
+ Attempts to read the next value as an Integer with a specified tag, as an unsigned 32-bit value.
+ On success, receives the decoded value.
+ The tag to check for before reading, or for the default tag (Universal 2).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+ and does not advance the reader if the value is not between UInt32.MinValue and UInt32.MaxValue, inclusive; otherwise is returned and the reader advances.
+
+
+ Attempts to read the next value as an Integer with a specified tag, as an unsigned 64-bit value.
+ On success, receives the decoded value.
+ The tag to check for before reading, or for the default tag (Universal 2).
+ The next value does not have the correct tag.
+
+-or-
+
+The length encoding is not valid under the current encoding rules.
+
+-or-
+
+The contents are not valid under the current encoding rules.
+
+ . is , but . is not correct for the method.
+
+ and does not advance the reader if the value is not between UInt64.MinValue and UInt64.MaxValue, inclusive; otherwise is returned and the reader advances.
+
+
+ Gets an indication of whether the reader has remaining data available to process.
+
+ if there is more data available for the reader to process; otherwise, .
+
+
+ Gets the encoding rules in use by this reader.
+ The encoding rules in use by this reader.
+
+
+ Specifies options that modify the behavior of an .
+
+
+ Gets or sets a value that indicates whether the reader should bypass sort ordering on a Set or Set-Of value.
+
+ if the reader should not validate that a Set or Set-Of value is sorted correctly for the current encoding rules; otherwise .
+ The default is .
+
+
+ Gets or sets the largest year to represent with a UtcTime value.
+ The largest year to represent with a UtcTime value. The default is 2049.
+
+
+ A writer for BER-, CER-, and DER-encoded ASN.1 data.
+
+
+ Create a new with a given set of encoding rules.
+ The encoding constraints for the writer.
+
+ is not defined.
+
+
+ Initializes a new instance of with a given set of encoding rules and an initial capacity.
+ The encoding constraints for the writer.
+ The minimum capacity with which to initialize the underlying buffer.
+
+ is not defined.
+
+-or-
+
+ is a negative number.
+
+
+ Copy the value of this writer into another.
+ The writer to receive the value.
+
+ is .
+ A or has not been closed via or .
+ -or-
+ This writer is empty.
+ -or-
+ This writer represents more than one top-level value.
+ -or-
+ This writer's value is encoded in a manner that is not compatible with the ruleset for the destination writer.
+
+
+ Return a new array containing the encoded value.
+ A or has not been closed via or .
+ A precisely-sized array containing the encoded value.
+
+
+ Writes the encoded representation of the data to .
+ The buffer in which to write.
+ A or has not been closed via or .
+ The number of bytes written to .
+
+
+ Determines if would produce an output identical to .
+ The instance to compare encoded values against.
+
+ is .
+ A or has not been closed via or .
+
+ if the pending encoded data is identical to , otherwise.
+
+
+ Determines if would produce an output identical to .
+ The encoded value to compare against.
+ A or has not been closed via or .
+
+ if the pending encoded data is identical to , otherwise.
+
+
+ Gets the number of bytes that would be written by .
+
+ , , or was called without the corresponding Pop method.
+ The number of bytes that would be written by .
+
+
+ Indicate that the open Octet String with the tag UNIVERSAL 4 is closed, returning the writer to the parent context.
+ The tag to write, or for the default tag (Universal 4).
+
+ . is , but . is not correct for the method.
+ the writer is not currently positioned within an Octet String with the specified tag.
+
+
+ Indicate that the open Sequence with the specified tag is closed, returning the writer to the parent context.
+ The tag to write, or for the default tag (Universal 16).
+
+ . is , but . is not correct for the method.
+ the writer is not currently positioned within a Sequence with the specified tag.
+
+
+ Indicate that the open Set-Of with the specified tag is closed, returning the writer to the parent context.
+ The tag to write, or for the default tag (Universal 17).
+
+ . is , but . is not correct for the method.
+ the writer is not currently positioned within a Set-Of with the specified tag.
+
+
+ Begin writing an Octet String value with a specified tag.
+ The tag to write, or for the default tag (Universal 4).
+ A disposable value which will automatically call .
+
+
+ Begin writing a Sequence with a specified tag.
+ The tag to write, or for the default tag (Universal 16).
+
+ . is , but . is not correct for the method.
+ A disposable value which will automatically call .
+
+
+ Begin writing a Set-Of with a specified tag.
+ The tag to write, or for the default tag (Universal 17).
+
+ . is , but . is not correct for the method.
+ A disposable value which will automatically call .
+
+
+ Reset the writer to have no data, without releasing resources.
+
+
+ Attempts to write the encoded representation of the data to .
+ The buffer in which to write.
+ On success, receives the number of bytes written to .
+ A or has not been closed via or .
+
+ if the encode succeeded, if is too small.
+
+
+ Write a Bit String value with a specified tag.
+ The value to write.
+ The number of trailing bits which are not semantic.
+ The tag to write, or for the default tag (Universal 3).
+
+ . is , but . is not correct for the method.
+ -or-
+ has length 0 and is not 0
+ -or-
+ is not empty and any of the bits identified by is set.
+
+ is not in the range [0,7].
+
+
+ Write a Boolean value with a specified tag.
+ The value to write.
+ The tag to write, or for the default tag (Universal 1).
+
+ . is , but . is not correct for the method
+
+
+ Write the provided string using the specified encoding type using the specified tag corresponding to the encoding type.
+ One of the enumeration values representing the encoding to use.
+ The string to write.
+ The tag to write, or for the universal tag that is appropriate to the requested encoding type.
+
+ is not a restricted character string encoding type.
+ -or-
+ is a restricted character string encoding type that is not currently supported by this method.
+
+ . is , but . is not correct for the method.
+
+
+ Write the provided string using the specified encoding type using the specified tag corresponding to the encoding type.
+ One of the enumeration values representing the encoding to use.
+ The string to write.
+ The tag to write, or for the universal tag that is appropriate to the requested encoding type.
+
+ is
+
+ is not a restricted character string encoding type.
+ -or-
+ is a restricted character string encoding type that is not currently supported by this method.
+
+ . is , but . is not correct for the method.
+
+
+ Write a single value which has already been encoded.
+ The value to write.
+
+ could not be read under the current encoding rules.
+ -or-
+ has data beyond the end of the first value.
+
+
+ Write a non-[] enum value as an Enumerated with tag UNIVERSAL 10.
+ The boxed enumeration value to write.
+ The tag to write, or for the default tag (Universal 10).
+
+ is .
+
+ . is , but . is not correct for the method.
+ -or-
+ is not a boxed enum value.
+ -or-
+ the unboxed type of is declared [].
+
+
+ Write a non-[] enum value as an Enumerated with tag UNIVERSAL 10.
+ The boxed enumeration value to write.
+ The tag to write, or for the default tag (Universal 10).
+ The non-[] enumeration type to write.
+
+ is .
+
+ . is , but . is not correct for the method.
+ -or-
+ is not an enum.
+ -or-
+ is declared [].
+
+
+ Write the provided as a GeneralizedTime with a specified UNIVERSAL 24, optionally excluding the fractional seconds.
+ The value to write.
+
+ to treat the fractional seconds in as 0 even if a non-zero value is present.
+ The tag to write, or for the default tag (Universal 24).
+
+ . is , but . is not correct for the method.
+
+
+ Write an Integer value with a specified tag.
+ The value to write.
+ The tag to write, or for the default tag (Universal 2).
+
+ . is , but . is not correct for the method.
+
+
+ Write an Integer value with a specified tag.
+ The value to write.
+ The tag to write, or for the default tag (Universal 2).
+
+ . is , but . is not correct for the method.
+
+
+ Write an Integer value with a specified tag.
+ The integer value to write, in signed big-endian byte order.
+ The tag to write, or for the default tag (Universal 2).
+
+ . is , but . is not correct for the method.
+ the 9 most significant bits are all set.
+ -or-
+ the 9 most significant bits are all unset.
+
+
+ Write an Integer value with a specified tag.
+ The value to write.
+ The tag to write, or for the default tag (Universal 2).
+
+ . is , but . is not correct for the method.
+
+
+ Write an Integer value with a specified tag.
+ The integer value to write, in unsigned big-endian byte order.
+ The tag to write, or for the default tag (Universal 2).
+
+ . is , but . is not correct for the method.
+ the 9 most significant bits are all unset.
+
+
+ Write a bit array value as a NamedBitList with a specified tag.
+ The bits to write.
+ The tag to write, or for the default tag (Universal 3).
+
+ . is , but . is not correct for the method.
+
+ is .
+
+
+ Write a [] enum value as a NamedBitList with a specified tag.
+ The boxed enumeration value to write.
+ The tag to write, or for the default tag (Universal 3).
+
+ . is , but . is not correct for the method.
+ -or-
+ is not a boxed enum value.
+ -or-
+ the unboxed type of is not declared [].
+
+ is .
+
+
+ Write a [] enum value as a NamedBitList with a specified tag.
+ The enumeration value to write.
+ The tag to write, or for the default tag (Universal 3).
+ The [] enumeration type to write.
+
+ . is , but . is not correct for the method.
+ -or-
+ is not an enum value.
+ -or-
+ is not declared [].
+
+
+ Write NULL with a specified tag.
+ The tag to write, or for the default tag (Universal 5).
+
+ . is , but . is not correct for the method.
+
+
+ Write an Object Identifier with a specified tag.
+ The object identifier to write.
+ The tag to write, or for the default tag (Universal 6).
+
+ . is , but . is not correct for the method.
+ -or-
+ is not a valid dotted decimal object identifier.
+
+
+ Write an Object Identifier with a specified tag.
+ The object identifier to write.
+ The tag to write, or for the default tag (Universal 6).
+
+ . is , but . is not correct for the method.
+ -or-
+ is not a valid dotted decimal object identifier.
+
+ is .
+
+
+ Write an Octet String value with a specified tag.
+ The value to write.
+ The tag to write, or for the default tag (Universal 4).
+
+ . is , but . is not correct for the method.
+
+
+ Write the provided value as a UTCTime with a specified tag, provided the year is in the allowed range.
+ The value to write.
+ The maximum valid year for , after conversion to UTC.
+ For the X.509 Time.utcTime range of 1950-2049, pass 2049.
+ The tag to write, or for the default tag (Universal 23).
+
+ . is , but . is not correct for the method.
+
+ . (after conversion to UTC) is not in the range ( - 100, ].
+
+
+ Write the provided value as a UTCTime with a specified tag, accepting the two-digit year as valid in context.
+ The value to write.
+ The tag to write, or for the default tag (Universal 23).
+
+ . is , but . is not correct for the method.
+
+
+ Gets the encoding rules in use by this writer.
+ The encoding rules in use by this writer.
+
+
+ Provides an target for safely closing an opened tag by using a lexical scope as a logical scope.
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+ The tag class for a particular ASN.1 tag.
+
+
+ The Application tag class.
+
+
+ The Context-Specific tag class.
+
+
+ The Private tag class.
+
+
+ The Universal tag class.
+
+
+ Tag assignments for the UNIVERSAL class in ITU-T X.680.
+
+
+ The universal class tag value for Bit String.
+
+
+ The universal class tag value for BMPString.
+
+
+ The universal class tag value for Boolean.
+
+
+ The universal class tag value for Date.
+
+
+ The universal class tag value for Date-Time.
+
+
+ The universal class tag value for Duration.
+
+
+ The universal class tag value for Embedded-PDV.
+
+
+ The reserved identifier for the End-of-Contents marker in an indefinite length encoding.
+
+
+ The universal class tag value for Enumerated.
+
+
+ The universal class tag value for External.
+
+
+ The universal class tag value for GeneralizedTime.
+
+
+ The universal class tag value for GeneralString.
+
+
+ The universal class tag value for GraphicString.
+
+
+ The universal class tag value for IA5String.
+
+
+ The universal class tag value for Instance-Of.
+
+
+ The universal class tag value for Integer.
+
+
+ The universal class tag value for ISO646String (VisibleString).
+
+
+ The universal class tag value for Null.
+
+
+ The universal class tag value for NumericString.
+
+
+ The universal class tag value for Object Descriptor.
+
+
+ The universal class tag value for Object Identifier.
+
+
+ The universal class tag value for Object Identifier Internationalized Resource Identifier (IRI).
+
+
+ The universal class tag value for Octet String.
+
+
+ The universal class tag value for PrintableString.
+
+
+ The universal class tag value for Real.
+
+
+ The universal class tag value for Relative Object Identifier.
+
+
+ The universal class tag value for Relative Object Identifier Internationalized Resource Identifier (IRI).
+
+
+ The universal class tag value for Sequence.
+
+
+ The universal class tag value for Sequence-Of.
+
+
+ The universal class tag value for Set.
+
+
+ The universal class tag value for Set-Of.
+
+
+ The universal class tag value for T61String (TeletexString).
+
+
+ The universal class tag value for TeletexString (T61String).
+
+
+ The universal class tag value for Time.
+
+
+ The universal class tag value for Time-Of-Day.
+
+
+ The universal class tag value for UniversalString.
+
+
+ The universal class tag value for an unrestricted character string.
+
+
+ The universal class tag value for UTCTime.
+
+
+ The universal class tag value for UTF8String.
+
+
+ The universal class tag value for VideotexString.
+
+
+ The universal class tag value for VisibleString (ISO646String).
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Formats.Tar.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Formats.Tar.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b5f045583e4cef5e121a247f578fb2489fe625fb
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Formats.Tar.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3ed116941aabe7c9742cefac19844de113c061102e579ce56a92908850c2002b
+size 20256
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Compression.Brotli.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Compression.Brotli.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d49408f6134ae44ecd8d5ce14c7534e163c8c5bd
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Compression.Brotli.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Compression.FileSystem.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Compression.FileSystem.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4023ec37d37b6bc3891a472b4bb608038b2d66d8
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Compression.FileSystem.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Compression.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Compression.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6cef3ba72ef26c2e02b34ccab1bf8b8b9dac0288
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Compression.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.FileSystem.AccessControl.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.FileSystem.AccessControl.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2a09f37b8fe626635eb2e0f4fcee80e518ecd961
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.FileSystem.AccessControl.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.FileSystem.DriveInfo.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.FileSystem.DriveInfo.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3f1c5665191c80cdf294acd64fb4918900ef02a5
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.FileSystem.DriveInfo.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.FileSystem.Watcher.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.FileSystem.Watcher.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7bb5d066bd972e0d6ae6f98208219298dbe61ef2
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.FileSystem.Watcher.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Pipes.AccessControl.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Pipes.AccessControl.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cf3eeadf5f26c742dfc5da83008fc9169d06a826
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Pipes.AccessControl.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Pipes.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Pipes.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5413781066329730a6c84fe46f5f2f4e71891aa9
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.Pipes.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.UnmanagedMemoryStream.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.UnmanagedMemoryStream.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c0f52e78f3bf6e81ddf5e2c71145d289d5a08865
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.UnmanagedMemoryStream.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0e4ab397bd3e2bd005fdd41a4c3ae54b3b74836e
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.IO.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Linq.Expressions.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Linq.Expressions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b74a8b3a4de0ae684a0133a7b017a36e5822bfa4
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Linq.Expressions.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Linq.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Linq.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7e65e675fb624fb3182cb01e828d25869b75fd0b
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Linq.xml
@@ -0,0 +1,2238 @@
+
+
+
+ System.Linq
+
+
+
+ Provides a set of ( in Visual Basic) methods for querying objects that implement .
+
+
+ Applies an accumulator function over a sequence.
+ An to aggregate over.
+ An accumulator function to be invoked on each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The final accumulator value.
+
+
+ Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value.
+ An to aggregate over.
+ The initial accumulator value.
+ An accumulator function to be invoked on each element.
+ The type of the elements of .
+ The type of the accumulator value.
+
+ or is .
+ The final accumulator value.
+
+
+ Applies an accumulator function over a sequence. The specified seed value is used as the initial accumulator value, and the specified function is used to select the result value.
+ An to aggregate over.
+ The initial accumulator value.
+ An accumulator function to be invoked on each element.
+ A function to transform the final accumulator value into the result value.
+ The type of the elements of .
+ The type of the accumulator value.
+ The type of the resulting value.
+
+ or or is .
+ The transformed final accumulator value.
+
+
+ Determines whether all elements of a sequence satisfy a condition.
+ An that contains the elements to apply the predicate to.
+ A function to test each element for a condition.
+ The type of the elements of .
+
+ or is .
+
+ if every element of the source sequence passes the test in the specified predicate, or if the sequence is empty; otherwise, .
+
+
+ Determines whether a sequence contains any elements.
+ The to check for emptiness.
+ The type of the elements of .
+
+ is .
+
+ if the source sequence contains any elements; otherwise, .
+
+
+ Determines whether any element of a sequence satisfies a condition.
+ An whose elements to apply the predicate to.
+ A function to test each element for a condition.
+ The type of the elements of .
+
+ or is .
+
+ if the source sequence is not empty and at least one of its elements passes the test in the specified predicate; otherwise, .
+
+
+ Appends a value to the end of the sequence.
+ A sequence of values.
+ The value to append to .
+ The type of the elements of .
+
+ is .
+ A new sequence that ends with .
+
+
+ Returns the input typed as .
+ The sequence to type as .
+ The type of the elements of .
+ The input sequence typed as .
+
+
+ Computes the average of a sequence of values.
+ A sequence of values to calculate the average of.
+
+ is .
+
+ contains no elements.
+ The average of the sequence of values.
+
+
+ Computes the average of a sequence of values.
+ A sequence of values to calculate the average of.
+
+ is .
+
+ contains no elements.
+ The average of the sequence of values.
+
+
+ Computes the average of a sequence of values.
+ A sequence of values to calculate the average of.
+
+ is .
+
+ contains no elements.
+ The average of the sequence of values.
+
+
+ Computes the average of a sequence of values.
+ A sequence of values to calculate the average of.
+
+ is .
+
+ contains no elements.
+ The average of the sequence of values.
+
+
+ Computes the average of a sequence of nullable values.
+ A sequence of nullable values to calculate the average of.
+
+ is .
+ The sum of the elements in the sequence is larger than Decimal.MaxValue.
+ The average of the sequence of values, or if the source sequence is empty or contains only values that are .
+
+
+ Computes the average of a sequence of nullable values.
+ A sequence of nullable values to calculate the average of.
+
+ is .
+ The average of the sequence of values, or if the source sequence is empty or contains only values that are .
+
+
+ Computes the average of a sequence of nullable values.
+ A sequence of nullable values to calculate the average of.
+
+ is .
+ The sum of the elements in the sequence is larger than Int64.MaxValue.
+ The average of the sequence of values, or if the source sequence is empty or contains only values that are .
+
+
+ Computes the average of a sequence of nullable values.
+ A sequence of nullable values to calculate the average of.
+
+ is .
+ The sum of the elements in the sequence is larger than Int64.MaxValue.
+ The average of the sequence of values, or if the source sequence is empty or contains only values that are .
+
+
+ Computes the average of a sequence of nullable values.
+ A sequence of nullable values to calculate the average of.
+
+ is .
+ The average of the sequence of values, or if the source sequence is empty or contains only values that are .
+
+
+ Computes the average of a sequence of values.
+ A sequence of values to calculate the average of.
+
+ is .
+
+ contains no elements.
+ The average of the sequence of values.
+
+
+ Computes the average of a sequence of values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values that are used to calculate an average.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The sum of the elements in the sequence is larger than Decimal.MaxValue.
+ The average of the sequence of values.
+
+
+ Computes the average of a sequence of values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values to calculate the average of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The average of the sequence of values.
+
+
+ Computes the average of a sequence of values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values to calculate the average of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The sum of the elements in the sequence is larger than Int64.MaxValue.
+ The average of the sequence of values.
+
+
+ Computes the average of a sequence of values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values to calculate the average of.
+ A transform function to apply to each element.
+ The type of the elements of source.
+
+ or is .
+
+ contains no elements.
+ The sum of the elements in the sequence is larger than Int64.MaxValue.
+ The average of the sequence of values.
+
+
+ Computes the average of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values to calculate the average of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The sum of the elements in the sequence is larger than Decimal.MaxValue.
+ The average of the sequence of values, or if the source sequence is empty or contains only values that are .
+
+
+ Computes the average of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values to calculate the average of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The average of the sequence of values, or if the source sequence is empty or contains only values that are .
+
+
+ Computes the average of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values to calculate the average of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The sum of the elements in the sequence is larger than Int64.MaxValue.
+ The average of the sequence of values, or if the source sequence is empty or contains only values that are .
+
+
+ Computes the average of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values to calculate the average of.
+ A transform function to apply to each element.
+ The type of the elements of .
+ The average of the sequence of values, or if the source sequence is empty or contains only values that are .
+
+
+ Computes the average of a sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values to calculate the average of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The average of the sequence of values, or if the source sequence is empty or contains only values that are .
+
+
+ Computes the average of a sequence of values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values to calculate the average of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The average of the sequence of values.
+
+
+ Casts the elements of an to the specified type.
+ The that contains the elements to be cast to type .
+ The type to cast the elements of to.
+
+ is .
+ An element in the sequence cannot be cast to type .
+ An that contains each element of the source sequence cast to the specified type.
+
+
+ Splits the elements of a sequence into chunks of size at most .
+ An whose elements to chunk.
+ The maximum size of each chunk.
+ The type of the elements of .
+
+ is .
+
+ is below 1.
+ An that contains the elements the input sequence split into chunks of size .
+
+
+ Concatenates two sequences.
+ The first sequence to concatenate.
+ The sequence to concatenate to the first sequence.
+ The type of the elements of the input sequences.
+
+ or is .
+ An that contains the concatenated elements of the two input sequences.
+
+
+ Determines whether a sequence contains a specified element by using the default equality comparer.
+ A sequence in which to locate a value.
+ The value to locate in the sequence.
+ The type of the elements of .
+
+ is .
+
+ if the source sequence contains an element that has the specified value; otherwise, .
+
+
+ Determines whether a sequence contains a specified element by using a specified .
+ A sequence in which to locate a value.
+ The value to locate in the sequence.
+ An equality comparer to compare values.
+ The type of the elements of .
+
+ is .
+
+ if the source sequence contains an element that has the specified value; otherwise, .
+
+
+ Returns the number of elements in a sequence.
+ A sequence that contains elements to be counted.
+ The type of the elements of .
+
+ is .
+ The number of elements in is larger than Int32.MaxValue.
+ The number of elements in the input sequence.
+
+
+ Returns a number that represents how many elements in the specified sequence satisfy a condition.
+ A sequence that contains elements to be tested and counted.
+ A function to test each element for a condition.
+ The type of the elements of .
+
+ or is .
+ The number of elements in is larger than Int32.MaxValue.
+ A number that represents how many elements in the sequence satisfy the condition in the predicate function.
+
+
+ Returns the elements of the specified sequence or the type parameter's default value in a singleton collection if the sequence is empty.
+ The sequence to return a default value for if it is empty.
+ The type of the elements of .
+
+ is .
+ An object that contains the default value for the type if is empty; otherwise, .
+
+
+ Returns the elements of the specified sequence or the specified value in a singleton collection if the sequence is empty.
+ The sequence to return the specified value for if it is empty.
+ The value to return if the sequence is empty.
+ The type of the elements of .
+ An that contains if is empty; otherwise, .
+
+
+ Returns distinct elements from a sequence by using the default equality comparer to compare values.
+ The sequence to remove duplicate elements from.
+ The type of the elements of .
+
+ is .
+ An that contains distinct elements from the source sequence.
+
+
+ Returns distinct elements from a sequence by using a specified to compare values.
+ The sequence to remove duplicate elements from.
+ An to compare values.
+ The type of the elements of .
+
+ is .
+ An that contains distinct elements from the source sequence.
+
+
+ Returns distinct elements from a sequence according to a specified key selector function.
+ The sequence to remove duplicate elements from.
+ A function to extract the key for each element.
+ The type of the elements of .
+ The type of key to distinguish elements by.
+
+ is .
+ An that contains distinct elements from the source sequence.
+
+
+ Returns distinct elements from a sequence according to a specified key selector function and using a specified comparer to compare keys.
+ The sequence to remove duplicate elements from.
+ A function to extract the key for each element.
+ An to compare keys.
+ The type of the elements of .
+ The type of key to distinguish elements by.
+
+ is .
+ An that contains distinct elements from the source sequence.
+
+
+ Returns the element at a specified index in a sequence.
+ An to return an element from.
+ The index of the element to retrieve, which is either from the beginning or the end of the sequence.
+ The type of the elements of .
+
+ is .
+
+ is outside the bounds of the sequence.
+ The element at the specified position in the sequence.
+
+
+ Returns the element at a specified index in a sequence.
+ An to return an element from.
+ The zero-based index of the element to retrieve.
+ The type of the elements of .
+
+ is .
+
+ is less than 0 or greater than or equal to the number of elements in .
+ The element at the specified position in the source sequence.
+
+
+ Returns the element at a specified index in a sequence or a default value if the index is out of range.
+ An to return an element from.
+ The index of the element to retrieve, which is either from the beginning or the end of the sequence.
+ The type of the elements of .
+
+ is .
+
+ if is outside the bounds of the sequence; otherwise, the element at the specified position in the sequence.
+
+
+ Returns the element at a specified index in a sequence or a default value if the index is out of range.
+ An to return an element from.
+ The zero-based index of the element to retrieve.
+ The type of the elements of .
+
+ is .
+
+ () if the index is outside the bounds of the source sequence; otherwise, the element at the specified position in the source sequence.
+
+
+ Returns an empty that has the specified type argument.
+ The type to assign to the type parameter of the returned generic .
+ An empty whose type argument is .
+
+
+ Produces the set difference of two sequences by using the default equality comparer to compare values.
+ An whose elements that are not also in will be returned.
+ An whose elements that also occur in the first sequence will cause those elements to be removed from the returned sequence.
+ The type of the elements of the input sequences.
+
+ or is .
+ A sequence that contains the set difference of the elements of two sequences.
+
+
+ Produces the set difference of two sequences by using the specified to compare values.
+ An whose elements that are not also in will be returned.
+ An whose elements that also occur in the first sequence will cause those elements to be removed from the returned sequence.
+ An to compare values.
+ The type of the elements of the input sequences.
+
+ or is .
+ A sequence that contains the set difference of the elements of two sequences.
+
+
+ Produces the set difference of two sequences according to a specified key selector function.
+ An whose keys that are not also in will be returned.
+ An whose keys that also occur in the first sequence will cause those elements to be removed from the returned sequence.
+ A function to extract the key for each element.
+ The type of the elements of the input sequence.
+ The type of key to identify elements by.
+ A sequence that contains the set difference of the elements of two sequences.
+
+
+ Produces the set difference of two sequences according to a specified key selector function.
+ An whose keys that are not also in will be returned.
+ An whose keys that also occur in the first sequence will cause those elements to be removed from the returned sequence.
+ A function to extract the key for each element.
+ The to compare values.
+ The type of the elements of the input sequence.
+ The type of key to identify elements by.
+ A sequence that contains the set difference of the elements of two sequences.
+
+
+ Returns the first element of a sequence.
+ The to return the first element of.
+ The type of the elements of .
+
+ is .
+ The source sequence is empty.
+ The first element in the specified sequence.
+
+
+ Returns the first element in a sequence that satisfies a specified condition.
+ An to return an element from.
+ A function to test each element for a condition.
+ The type of the elements of .
+
+ or is .
+ No element satisfies the condition in .
+
+ -or-
+
+ The source sequence is empty.
+ The first element in the sequence that passes the test in the specified predicate function.
+
+
+ Returns the first element of a sequence, or a default value if the sequence contains no elements.
+ The to return the first element of.
+ The type of the elements of .
+
+ is .
+
+ () if is empty; otherwise, the first element in .
+
+
+ Returns the first element of a sequence, or a specified default value if the sequence contains no elements.
+ The to return the first element of.
+ The default value to return if the sequence is empty.
+ The type of the elements of .
+
+ is .
+
+ if is empty; otherwise, the first element in .
+
+
+ Returns the first element of the sequence that satisfies a condition or a default value if no such element is found.
+ An to return an element from.
+ A function to test each element for a condition.
+ The type of the elements of .
+
+ or is .
+
+ () if is empty or if no element passes the test specified by ; otherwise, the first element in that passes the test specified by .
+
+
+ Returns the first element of the sequence that satisfies a condition, or a specified default value if no such element is found.
+ An to return an element from.
+ A function to test each element for a condition.
+ The default value to return if the sequence is empty.
+ The type of the elements of .
+
+ or is .
+
+ if is empty or if no element passes the test specified by ; otherwise, the first element in that passes the test specified by .
+
+
+ Groups the elements of a sequence according to a specified key selector function.
+ An whose elements to group.
+ A function to extract the key for each element.
+ The type of the elements of .
+ The type of the key returned by .
+
+ or is .
+ An IEnumerable<IGrouping<TKey, TSource>> in C# or IEnumerable(Of IGrouping(Of TKey, TSource)) in Visual Basic where each object contains a sequence of objects and a key.
+
+
+ Groups the elements of a sequence according to a specified key selector function and compares the keys by using a specified comparer.
+ An whose elements to group.
+ A function to extract the key for each element.
+ An to compare keys.
+ The type of the elements of .
+ The type of the key returned by .
+
+ or is .
+ An IEnumerable<IGrouping<TKey, TSource>> in C# or IEnumerable(Of IGrouping(Of TKey, TSource)) in Visual Basic where each object contains a collection of objects and a key.
+
+
+ Groups the elements of a sequence according to a specified key selector function and projects the elements for each group by using a specified function.
+ An whose elements to group.
+ A function to extract the key for each element.
+ A function to map each source element to an element in the .
+ The type of the elements of .
+ The type of the key returned by .
+ The type of the elements in the .
+
+ or or is .
+ An IEnumerable<IGrouping<TKey, TElement>> in C# or IEnumerable(Of IGrouping(Of TKey, TElement)) in Visual Basic where each object contains a collection of objects of type and a key.
+
+
+ Groups the elements of a sequence according to a key selector function. The keys are compared by using a comparer and each group's elements are projected by using a specified function.
+ An whose elements to group.
+ A function to extract the key for each element.
+ A function to map each source element to an element in an .
+ An to compare keys.
+ The type of the elements of .
+ The type of the key returned by .
+ The type of the elements in the .
+
+ or or is .
+ An IEnumerable<IGrouping<TKey, TElement>> in C# or IEnumerable(Of IGrouping(Of TKey, TElement)) in Visual Basic where each object contains a collection of objects of type and a key.
+
+
+ Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key.
+ An whose elements to group.
+ A function to extract the key for each element.
+ A function to create a result value from each group.
+ The type of the elements of .
+ The type of the key returned by .
+ The type of the result value returned by .
+
+ or or is .
+ A collection of elements of type where each element represents a projection over a group and its key.
+
+
+ Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The keys are compared by using a specified comparer.
+ An whose elements to group.
+ A function to extract the key for each element.
+ A function to create a result value from each group.
+ An to compare keys with.
+ The type of the elements of .
+ The type of the key returned by .
+ The type of the result value returned by .
+
+ or or is .
+ A collection of elements of type where each element represents a projection over a group and its key.
+
+
+ Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. The elements of each group are projected by using a specified function.
+ An whose elements to group.
+ A function to extract the key for each element.
+ A function to map each source element to an element in an .
+ A function to create a result value from each group.
+ The type of the elements of .
+ The type of the key returned by .
+ The type of the elements in each .
+ The type of the result value returned by .
+
+ or or or is .
+ A collection of elements of type where each element represents a projection over a group and its key.
+
+
+ Groups the elements of a sequence according to a specified key selector function and creates a result value from each group and its key. Key values are compared by using a specified comparer, and the elements of each group are projected by using a specified function.
+ An whose elements to group.
+ A function to extract the key for each element.
+ A function to map each source element to an element in an .
+ A function to create a result value from each group.
+ An to compare keys with.
+ The type of the elements of .
+ The type of the key returned by .
+ The type of the elements in each .
+ The type of the result value returned by .
+
+ or or or is .
+ A collection of elements of type where each element represents a projection over a group and its key.
+
+
+ Correlates the elements of two sequences based on equality of keys and groups the results. The default equality comparer is used to compare keys.
+ The first sequence to join.
+ The sequence to join to the first sequence.
+ A function to extract the join key from each element of the first sequence.
+ A function to extract the join key from each element of the second sequence.
+ A function to create a result element from an element from the first sequence and a collection of matching elements from the second sequence.
+ The type of the elements of the first sequence.
+ The type of the elements of the second sequence.
+ The type of the keys returned by the key selector functions.
+ The type of the result elements.
+
+ or or or or is .
+ An that contains elements of type that are obtained by performing a grouped join on two sequences.
+
+
+ Correlates the elements of two sequences based on key equality and groups the results. A specified is used to compare keys.
+ The first sequence to join.
+ The sequence to join to the first sequence.
+ A function to extract the join key from each element of the first sequence.
+ A function to extract the join key from each element of the second sequence.
+ A function to create a result element from an element from the first sequence and a collection of matching elements from the second sequence.
+ An to hash and compare keys.
+ The type of the elements of the first sequence.
+ The type of the elements of the second sequence.
+ The type of the keys returned by the key selector functions.
+ The type of the result elements.
+
+ or or or or is .
+ An that contains elements of type that are obtained by performing a grouped join on two sequences.
+
+
+ Produces the set intersection of two sequences by using the default equality comparer to compare values.
+ An whose distinct elements that also appear in will be returned.
+ An whose distinct elements that also appear in the first sequence will be returned.
+ The type of the elements of the input sequences.
+
+ or is .
+ A sequence that contains the elements that form the set intersection of two sequences.
+
+
+ Produces the set intersection of two sequences by using the specified to compare values.
+ An whose distinct elements that also appear in will be returned.
+ An whose distinct elements that also appear in the first sequence will be returned.
+ An to compare values.
+ The type of the elements of the input sequences.
+
+ or is .
+ A sequence that contains the elements that form the set intersection of two sequences.
+
+
+ Produces the set intersection of two sequences according to a specified key selector function.
+ An whose distinct elements that also appear in will be returned.
+ An whose distinct elements that also appear in the first sequence will be returned.
+ A function to extract the key for each element.
+ The type of the elements of the input sequences.
+ The type of key to identify elements by.
+
+ or is .
+ A sequence that contains the elements that form the set intersection of two sequences.
+
+
+ Produces the set intersection of two sequences according to a specified key selector function.
+ An whose distinct elements that also appear in will be returned.
+ An whose distinct elements that also appear in the first sequence will be returned.
+ A function to extract the key for each element.
+ An to compare keys.
+ The type of the elements of the input sequences.
+ The type of key to identify elements by.
+
+ or is .
+ A sequence that contains the elements that form the set intersection of two sequences.
+
+
+ Correlates the elements of two sequences based on matching keys. The default equality comparer is used to compare keys.
+ The first sequence to join.
+ The sequence to join to the first sequence.
+ A function to extract the join key from each element of the first sequence.
+ A function to extract the join key from each element of the second sequence.
+ A function to create a result element from two matching elements.
+ The type of the elements of the first sequence.
+ The type of the elements of the second sequence.
+ The type of the keys returned by the key selector functions.
+ The type of the result elements.
+
+ or or or or is .
+ An that has elements of type that are obtained by performing an inner join on two sequences.
+
+
+ Correlates the elements of two sequences based on matching keys. A specified is used to compare keys.
+ The first sequence to join.
+ The sequence to join to the first sequence.
+ A function to extract the join key from each element of the first sequence.
+ A function to extract the join key from each element of the second sequence.
+ A function to create a result element from two matching elements.
+ An to hash and compare keys.
+ The type of the elements of the first sequence.
+ The type of the elements of the second sequence.
+ The type of the keys returned by the key selector functions.
+ The type of the result elements.
+
+ or or or or is .
+ An that has elements of type that are obtained by performing an inner join on two sequences.
+
+
+ Returns the last element of a sequence.
+ An to return the last element of.
+ The type of the elements of .
+
+ is .
+ The source sequence is empty.
+ The value at the last position in the source sequence.
+
+
+ Returns the last element of a sequence that satisfies a specified condition.
+ An to return an element from.
+ A function to test each element for a condition.
+ The type of the elements of .
+
+ or is .
+ No element satisfies the condition in .
+
+ -or-
+
+ The source sequence is empty.
+ The last element in the sequence that passes the test in the specified predicate function.
+
+
+ Returns the last element of a sequence, or a default value if the sequence contains no elements.
+ An to return the last element of.
+ The type of the elements of .
+
+ is .
+
+ () if the source sequence is empty; otherwise, the last element in the .
+
+
+ Returns the last element of a sequence, or a specified default value if the sequence contains no elements.
+ An to return the last element of.
+ The default value to return if the sequence is empty.
+ The type of the elements of .
+
+ is .
+
+ if the source sequence is empty; otherwise, the last element in the .
+
+
+ Returns the last element of a sequence that satisfies a condition or a default value if no such element is found.
+ An to return an element from.
+ A function to test each element for a condition.
+ The type of the elements of .
+
+ or is .
+
+ () if the sequence is empty or if no elements pass the test in the predicate function; otherwise, the last element that passes the test in the predicate function.
+
+
+ Returns the last element of a sequence that satisfies a condition, or a specified default value if no such element is found.
+ An to return an element from.
+ A function to test each element for a condition.
+ The default value to return if the sequence is empty.
+ The type of the elements of .
+
+ or is .
+
+ if the sequence is empty or if no elements pass the test in the predicate function; otherwise, the last element that passes the test in the predicate function.
+
+
+ Returns an that represents the total number of elements in a sequence.
+ An that contains the elements to be counted.
+ The type of the elements of .
+
+ is .
+ The number of elements exceeds Int64.MaxValue.
+ The number of elements in the source sequence.
+
+
+ Returns an that represents how many elements in a sequence satisfy a condition.
+ An that contains the elements to be counted.
+ A function to test each element for a condition.
+ The type of the elements of .
+
+ or is .
+ The number of matching elements exceeds Int64.MaxValue.
+ A number that represents how many elements in the sequence satisfy the condition in the predicate function.
+
+
+ Returns the maximum value in a sequence of values.
+ A sequence of values to determine the maximum value of.
+
+ is .
+
+ contains no elements.
+ The maximum value in the sequence.
+
+
+ Returns the maximum value in a sequence of values.
+ A sequence of values to determine the maximum value of.
+
+ is .
+
+ contains no elements.
+ The maximum value in the sequence.
+
+
+ Returns the maximum value in a sequence of values.
+ A sequence of values to determine the maximum value of.
+
+ is .
+
+ contains no elements.
+ The maximum value in the sequence.
+
+
+ Returns the maximum value in a sequence of values.
+ A sequence of values to determine the maximum value of.
+
+ is .
+
+ contains no elements.
+ The maximum value in the sequence.
+
+
+ Returns the maximum value in a sequence of nullable values.
+ A sequence of nullable values to determine the maximum value of.
+
+ is .
+ A value of type Nullable<Decimal> in C# or Nullable(Of Decimal) in Visual Basic that corresponds to the maximum value in the sequence.
+
+
+ Returns the maximum value in a sequence of nullable values.
+ A sequence of nullable values to determine the maximum value of.
+
+ is .
+ A value of type Nullable<Double> in C# or Nullable(Of Double) in Visual Basic that corresponds to the maximum value in the sequence.
+
+
+ Returns the maximum value in a sequence of nullable values.
+ A sequence of nullable values to determine the maximum value of.
+
+ is .
+ A value of type Nullable<Int32> in C# or Nullable(Of Int32) in Visual Basic that corresponds to the maximum value in the sequence.
+
+
+ Returns the maximum value in a sequence of nullable values.
+ A sequence of nullable values to determine the maximum value of.
+
+ is .
+ A value of type Nullable<Int64> in C# or Nullable(Of Int64) in Visual Basic that corresponds to the maximum value in the sequence.
+
+
+ Returns the maximum value in a sequence of nullable values.
+ A sequence of nullable values to determine the maximum value of.
+
+ is .
+ A value of type Nullable<Single> in C# or Nullable(Of Single) in Visual Basic that corresponds to the maximum value in the sequence.
+
+
+ Returns the maximum value in a sequence of values.
+ A sequence of values to determine the maximum value of.
+
+ is .
+
+ contains no elements.
+ The maximum value in the sequence.
+
+
+ Returns the maximum value in a generic sequence.
+ A sequence of values to determine the maximum value of.
+ The type of the elements of .
+
+ is .
+ No object in implements the or interface.
+ The maximum value in the sequence.
+
+
+ Returns the maximum value in a generic sequence.
+ A sequence of values to determine the maximum value of.
+ The to compare values.
+ The type of the elements of .
+
+ is .
+ No object in implements the or interface.
+ The maximum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the maximum value.
+ A sequence of values to determine the maximum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The maximum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the maximum value.
+ A sequence of values to determine the maximum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The maximum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the maximum value.
+ A sequence of values to determine the maximum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The maximum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the maximum value.
+ A sequence of values to determine the maximum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The maximum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the maximum nullable value.
+ A sequence of values to determine the maximum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The value of type Nullable<Decimal> in C# or Nullable(Of Decimal) in Visual Basic that corresponds to the maximum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the maximum nullable value.
+ A sequence of values to determine the maximum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The value of type Nullable<Double> in C# or Nullable(Of Double) in Visual Basic that corresponds to the maximum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the maximum nullable value.
+ A sequence of values to determine the maximum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The value of type Nullable<Int32> in C# or Nullable(Of Int32) in Visual Basic that corresponds to the maximum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the maximum nullable value.
+ A sequence of values to determine the maximum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The value of type Nullable<Int64> in C# or Nullable(Of Int64) in Visual Basic that corresponds to the maximum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the maximum nullable value.
+ A sequence of values to determine the maximum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The value of type Nullable<Single> in C# or Nullable(Of Single) in Visual Basic that corresponds to the maximum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the maximum value.
+ A sequence of values to determine the maximum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The maximum value in the sequence.
+
+
+ Invokes a transform function on each element of a generic sequence and returns the maximum resulting value.
+ A sequence of values to determine the maximum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+ The type of the value returned by .
+
+ or is .
+ The maximum value in the sequence.
+
+
+ Returns the maximum value in a generic sequence according to a specified key selector function.
+ A sequence of values to determine the maximum value of.
+ A function to extract the key for each element.
+ The type of the elements of .
+ The type of key to compare elements by.
+
+ is .
+ No key extracted from implements the or interface.
+ The value with the maximum key in the sequence.
+
+
+ Returns the maximum value in a generic sequence according to a specified key selector function and key comparer.
+ A sequence of values to determine the maximum value of.
+ A function to extract the key for each element.
+ The to compare keys.
+ The type of the elements of .
+ The type of key to compare elements by.
+
+ is .
+ No key extracted from implements the or interface.
+ The value with the maximum key in the sequence.
+
+
+ Returns the minimum value in a sequence of values.
+ A sequence of values to determine the minimum value of.
+
+ is .
+
+ contains no elements.
+ The minimum value in the sequence.
+
+
+ Returns the minimum value in a sequence of values.
+ A sequence of values to determine the minimum value of.
+
+ is .
+
+ contains no elements.
+ The minimum value in the sequence.
+
+
+ Returns the minimum value in a sequence of values.
+ A sequence of values to determine the minimum value of.
+
+ is .
+
+ contains no elements.
+ The minimum value in the sequence.
+
+
+ Returns the minimum value in a sequence of values.
+ A sequence of values to determine the minimum value of.
+
+ is .
+
+ contains no elements.
+ The minimum value in the sequence.
+
+
+ Returns the minimum value in a sequence of nullable values.
+ A sequence of nullable values to determine the minimum value of.
+
+ is .
+ A value of type Nullable<Decimal> in C# or Nullable(Of Decimal) in Visual Basic that corresponds to the minimum value in the sequence.
+
+
+ Returns the minimum value in a sequence of nullable values.
+ A sequence of nullable values to determine the minimum value of.
+
+ is .
+ A value of type Nullable<Double> in C# or Nullable(Of Double) in Visual Basic that corresponds to the minimum value in the sequence.
+
+
+ Returns the minimum value in a sequence of nullable values.
+ A sequence of nullable values to determine the minimum value of.
+
+ is .
+ A value of type Nullable<Int32> in C# or Nullable(Of Int32) in Visual Basic that corresponds to the minimum value in the sequence.
+
+
+ Returns the minimum value in a sequence of nullable values.
+ A sequence of nullable values to determine the minimum value of.
+
+ is .
+ A value of type Nullable<Int64> in C# or Nullable(Of Int64) in Visual Basic that corresponds to the minimum value in the sequence.
+
+
+ Returns the minimum value in a sequence of nullable values.
+ A sequence of nullable values to determine the minimum value of.
+
+ is .
+ A value of type Nullable<Single> in C# or Nullable(Of Single) in Visual Basic that corresponds to the minimum value in the sequence.
+
+
+ Returns the minimum value in a sequence of values.
+ A sequence of values to determine the minimum value of.
+
+ is .
+
+ contains no elements.
+ The minimum value in the sequence.
+
+
+ Returns the minimum value in a generic sequence.
+ A sequence of values to determine the minimum value of.
+ The type of the elements of .
+
+ is .
+ No object in implements the or interface.
+ The minimum value in the sequence.
+
+
+ Returns the minimum value in a generic sequence.
+ A sequence of values to determine the minimum value of.
+ The to compare values.
+ The type of the elements of .
+
+ is .
+ No object in implements the or interface.
+ The minimum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the minimum value.
+ A sequence of values to determine the minimum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The minimum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the minimum value.
+ A sequence of values to determine the minimum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The minimum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the minimum value.
+ A sequence of values to determine the minimum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The minimum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the minimum value.
+ A sequence of values to determine the minimum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The minimum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the minimum nullable value.
+ A sequence of values to determine the minimum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The value of type Nullable<Decimal> in C# or Nullable(Of Decimal) in Visual Basic that corresponds to the minimum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the minimum nullable value.
+ A sequence of values to determine the minimum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The value of type Nullable<Double> in C# or Nullable(Of Double) in Visual Basic that corresponds to the minimum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the minimum nullable value.
+ A sequence of values to determine the minimum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The value of type Nullable<Int32> in C# or Nullable(Of Int32) in Visual Basic that corresponds to the minimum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the minimum nullable value.
+ A sequence of values to determine the minimum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The value of type Nullable<Int64> in C# or Nullable(Of Int64) in Visual Basic that corresponds to the minimum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the minimum nullable value.
+ A sequence of values to determine the minimum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The value of type Nullable<Single> in C# or Nullable(Of Single) in Visual Basic that corresponds to the minimum value in the sequence.
+
+
+ Invokes a transform function on each element of a sequence and returns the minimum value.
+ A sequence of values to determine the minimum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+
+ contains no elements.
+ The minimum value in the sequence.
+
+
+ Invokes a transform function on each element of a generic sequence and returns the minimum resulting value.
+ A sequence of values to determine the minimum value of.
+ A transform function to apply to each element.
+ The type of the elements of .
+ The type of the value returned by .
+
+ or is .
+ The minimum value in the sequence.
+
+
+ Returns the minimum value in a generic sequence according to a specified key selector function.
+ A sequence of values to determine the minimum value of.
+ A function to extract the key for each element.
+ The type of the elements of .
+ The type of key to compare elements by.
+
+ is .
+ No key extracted from implements the or interface.
+ The value with the minimum key in the sequence.
+
+
+ Returns the minimum value in a generic sequence according to a specified key selector function and key comparer.
+ A sequence of values to determine the minimum value of.
+ A function to extract the key for each element.
+ The to compare keys.
+ The type of the elements of .
+ The type of key to compare elements by.
+
+ is .
+ No key extracted from implements the or interface.
+ The value with the minimum key in the sequence.
+
+
+ Filters the elements of an based on a specified type.
+ The whose elements to filter.
+ The type to filter the elements of the sequence on.
+
+ is .
+ An that contains elements from the input sequence of type .
+
+
+ Sorts the elements of a sequence in ascending order.
+ A sequence of values to order.
+ The type of the elements of .
+
+ is .
+ An whose elements are sorted.
+
+
+ Sorts the elements of a sequence in ascending order.
+ A sequence of values to order.
+ An to compare keys.
+ The type of the elements of .
+
+ is .
+ An whose elements are sorted.
+
+
+ Sorts the elements of a sequence in ascending order according to a key.
+ A sequence of values to order.
+ A function to extract a key from an element.
+ The type of the elements of .
+ The type of the key returned by .
+
+ or is .
+ An whose elements are sorted according to a key.
+
+
+ Sorts the elements of a sequence in ascending order by using a specified comparer.
+ A sequence of values to order.
+ A function to extract a key from an element.
+ An to compare keys.
+ The type of the elements of .
+ The type of the key returned by .
+
+ or is .
+ An whose elements are sorted according to a key.
+
+
+ Sorts the elements of a sequence in descending order according to a key.
+ A sequence of values to order.
+ A function to extract a key from an element.
+ The type of the elements of .
+ The type of the key returned by .
+
+ or is .
+ An whose elements are sorted in descending order according to a key.
+
+
+ Sorts the elements of a sequence in descending order by using a specified comparer.
+ A sequence of values to order.
+ A function to extract a key from an element.
+ An to compare keys.
+ The type of the elements of .
+ The type of the key returned by .
+
+ or is .
+ An whose elements are sorted in descending order according to a key.
+
+
+ Sorts the elements of a sequence in descending order.
+ A sequence of values to order.
+ The type of the elements of .
+
+ is .
+ An whose elements are sorted.
+
+
+ Sorts the elements of a sequence in descending order.
+ A sequence of values to order.
+ An to compare keys.
+ The type of the elements of .
+
+ is .
+ An whose elements are sorted.
+
+
+ Adds a value to the beginning of the sequence.
+ A sequence of values.
+ The value to prepend to .
+ The type of the elements of .
+
+ is .
+ A new sequence that begins with .
+
+
+ Generates a sequence of integral numbers within a specified range.
+ The value of the first integer in the sequence.
+ The number of sequential integers to generate.
+
+ is less than 0.
+
+ -or-
+
+ + -1 is larger than Int32.MaxValue.
+ An IEnumerable<Int32> in C# or IEnumerable(Of Int32) in Visual Basic that contains a range of sequential integral numbers.
+
+
+ Generates a sequence that contains one repeated value.
+ The value to be repeated.
+ The number of times to repeat the value in the generated sequence.
+ The type of the value to be repeated in the result sequence.
+
+ is less than 0.
+ An that contains a repeated value.
+
+
+ Inverts the order of the elements in a sequence.
+ A sequence of values to reverse.
+ The type of the elements of .
+
+ is .
+ A sequence whose elements correspond to those of the input sequence in reverse order.
+
+
+ Projects each element of a sequence into a new form.
+ A sequence of values to invoke a transform function on.
+ A transform function to apply to each element.
+ The type of the elements of .
+ The type of the value returned by .
+
+ or is .
+ An whose elements are the result of invoking the transform function on each element of .
+
+
+ Projects each element of a sequence into a new form by incorporating the element's index.
+ A sequence of values to invoke a transform function on.
+ A transform function to apply to each source element; the second parameter of the function represents the index of the source element.
+ The type of the elements of .
+ The type of the value returned by .
+
+ or is .
+ An whose elements are the result of invoking the transform function on each element of .
+
+
+ Projects each element of a sequence to an and flattens the resulting sequences into one sequence.
+ A sequence of values to project.
+ A transform function to apply to each element.
+ The type of the elements of .
+ The type of the elements of the sequence returned by .
+
+ or is .
+ An whose elements are the result of invoking the one-to-many transform function on each element of the input sequence.
+
+
+ Projects each element of a sequence to an , and flattens the resulting sequences into one sequence. The index of each source element is used in the projected form of that element.
+ A sequence of values to project.
+ A transform function to apply to each source element; the second parameter of the function represents the index of the source element.
+ The type of the elements of .
+ The type of the elements of the sequence returned by .
+
+ or is .
+ An whose elements are the result of invoking the one-to-many transform function on each element of an input sequence.
+
+
+ Projects each element of a sequence to an , flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein.
+ A sequence of values to project.
+ A transform function to apply to each element of the input sequence.
+ A transform function to apply to each element of the intermediate sequence.
+ The type of the elements of .
+ The type of the intermediate elements collected by .
+ The type of the elements of the resulting sequence.
+
+ or or is .
+ An whose elements are the result of invoking the one-to-many transform function on each element of and then mapping each of those sequence elements and their corresponding source element to a result element.
+
+
+ Projects each element of a sequence to an , flattens the resulting sequences into one sequence, and invokes a result selector function on each element therein. The index of each source element is used in the intermediate projected form of that element.
+ A sequence of values to project.
+ A transform function to apply to each source element; the second parameter of the function represents the index of the source element.
+ A transform function to apply to each element of the intermediate sequence.
+ The type of the elements of .
+ The type of the intermediate elements collected by .
+ The type of the elements of the resulting sequence.
+
+ or or is .
+ An whose elements are the result of invoking the one-to-many transform function on each element of and then mapping each of those sequence elements and their corresponding source element to a result element.
+
+
+ Determines whether two sequences are equal by comparing the elements by using the default equality comparer for their type.
+ An to compare to .
+ An to compare to the first sequence.
+ The type of the elements of the input sequences.
+
+ or is .
+
+ if the two source sequences are of equal length and their corresponding elements are equal according to the default equality comparer for their type; otherwise, .
+
+
+ Determines whether two sequences are equal by comparing their elements by using a specified .
+ An to compare to .
+ An to compare to the first sequence.
+ An to use to compare elements.
+ The type of the elements of the input sequences.
+
+ or is .
+
+ if the two source sequences are of equal length and their corresponding elements compare equal according to ; otherwise, .
+
+
+ Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence.
+ An to return the single element of.
+ The type of the elements of .
+
+ is .
+ The input sequence contains more than one element.
+
+ -or-
+
+ The input sequence is empty.
+ The single element of the input sequence.
+
+
+ Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists.
+ An to return a single element from.
+ A function to test an element for a condition.
+ The type of the elements of .
+
+ or is .
+ No element satisfies the condition in .
+
+ -or-
+
+ More than one element satisfies the condition in .
+
+ -or-
+
+ The source sequence is empty.
+ The single element of the input sequence that satisfies a condition.
+
+
+ Returns the only element of a sequence, or a default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence.
+ An to return the single element of.
+ The type of the elements of .
+
+ is .
+ The input sequence contains more than one element.
+ The single element of the input sequence, or () if the sequence contains no elements.
+
+
+ Returns the only element of a sequence, or a specified default value if the sequence is empty; this method throws an exception if there is more than one element in the sequence.
+ An to return the single element of.
+ The default value to return if the sequence is empty.
+ The type of the elements of .
+
+ is .
+ The input sequence contains more than one element.
+ The single element of the input sequence, or if the sequence contains no elements.
+
+
+ Returns the only element of a sequence that satisfies a specified condition or a default value if no such element exists; this method throws an exception if more than one element satisfies the condition.
+ An to return a single element from.
+ A function to test an element for a condition.
+ The type of the elements of .
+
+ or is .
+ More than one element satisfies the condition in .
+ The single element of the input sequence that satisfies the condition, or () if no such element is found.
+
+
+ Returns the only element of a sequence that satisfies a specified condition, or a specified default value if no such element exists; this method throws an exception if more than one element satisfies the condition.
+ An to return a single element from.
+ A function to test an element for a condition.
+ The default value to return if the sequence is empty.
+ The type of the elements of .
+
+ or is .
+ More than one element satisfies the condition in .
+ The single element of the input sequence that satisfies the condition, or if no such element is found.
+
+
+ Bypasses a specified number of elements in a sequence and then returns the remaining elements.
+ An to return elements from.
+ The number of elements to skip before returning the remaining elements.
+ The type of the elements of .
+
+ is .
+ An that contains the elements that occur after the specified index in the input sequence.
+
+
+ Returns a new enumerable collection that contains the elements from with the last elements of the source collection omitted.
+ An enumerable collection instance.
+ The number of elements to omit from the end of the collection.
+ The type of the elements in the enumerable collection.
+
+ is .
+ A new enumerable collection that contains the elements from minus elements from the end of the collection.
+
+
+ Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.
+ An to return elements from.
+ A function to test each element for a condition.
+ The type of the elements of .
+
+ or is .
+ An that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by .
+
+
+ Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. The element's index is used in the logic of the predicate function.
+ An to return elements from.
+ A function to test each source element for a condition; the second parameter of the function represents the index of the source element.
+ The type of the elements of .
+
+ or is .
+ An that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by .
+
+
+ Computes the sum of a sequence of values.
+ A sequence of values to calculate the sum of.
+
+ is .
+ The sum is larger than Decimal.MaxValue.
+ The sum of the values in the sequence.
+
+
+ Computes the sum of a sequence of values.
+ A sequence of values to calculate the sum of.
+
+ is .
+ The sum of the values in the sequence.
+
+
+ Computes the sum of a sequence of values.
+ A sequence of values to calculate the sum of.
+
+ is .
+ The sum is larger than Int32.MaxValue.
+ The sum of the values in the sequence.
+
+
+ Computes the sum of a sequence of values.
+ A sequence of values to calculate the sum of.
+
+ is .
+ The sum is larger than Int64.MaxValue.
+ The sum of the values in the sequence.
+
+
+ Computes the sum of a sequence of nullable values.
+ A sequence of nullable values to calculate the sum of.
+
+ is .
+ The sum is larger than Decimal.MaxValue.
+ The sum of the values in the sequence.
+
+
+ Computes the sum of a sequence of nullable values.
+ A sequence of nullable values to calculate the sum of.
+
+ is .
+ The sum of the values in the sequence.
+
+
+ Computes the sum of a sequence of nullable values.
+ A sequence of nullable values to calculate the sum of.
+
+ is .
+ The sum is larger than Int32.MaxValue.
+ The sum of the values in the sequence.
+
+
+ Computes the sum of a sequence of nullable values.
+ A sequence of nullable values to calculate the sum of.
+
+ is .
+ The sum is larger than Int64.MaxValue.
+ The sum of the values in the sequence.
+
+
+ Computes the sum of a sequence of nullable values.
+ A sequence of nullable values to calculate the sum of.
+
+ is .
+ The sum of the values in the sequence.
+
+
+ Computes the sum of a sequence of values.
+ A sequence of values to calculate the sum of.
+
+ is .
+ The sum of the values in the sequence.
+
+
+ Computes the sum of the sequence of values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values that are used to calculate a sum.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The sum is larger than Decimal.MaxValue.
+ The sum of the projected values.
+
+
+ Computes the sum of the sequence of values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values that are used to calculate a sum.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The sum of the projected values.
+
+
+ Computes the sum of the sequence of values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values that are used to calculate a sum.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The sum is larger than Int32.MaxValue.
+ The sum of the projected values.
+
+
+ Computes the sum of the sequence of values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values that are used to calculate a sum.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The sum is larger than Int64.MaxValue.
+ The sum of the projected values.
+
+
+ Computes the sum of the sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values that are used to calculate a sum.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The sum is larger than Decimal.MaxValue.
+ The sum of the projected values.
+
+
+ Computes the sum of the sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values that are used to calculate a sum.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The sum of the projected values.
+
+
+ Computes the sum of the sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values that are used to calculate a sum.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The sum is larger than Int32.MaxValue.
+ The sum of the projected values.
+
+
+ Computes the sum of the sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values that are used to calculate a sum.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The sum is larger than Int64.MaxValue.
+ The sum of the projected values.
+
+
+ Computes the sum of the sequence of nullable values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values that are used to calculate a sum.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The sum of the projected values.
+
+
+ Computes the sum of the sequence of values that are obtained by invoking a transform function on each element of the input sequence.
+ A sequence of values that are used to calculate a sum.
+ A transform function to apply to each element.
+ The type of the elements of .
+
+ or is .
+ The sum of the projected values.
+
+
+ Returns a specified number of contiguous elements from the start of a sequence.
+ The sequence to return elements from.
+ The number of elements to return.
+ The type of the elements of .
+
+ is .
+ An that contains the specified number of elements from the start of the input sequence.
+
+
+ Returns a specified range of contiguous elements from a sequence.
+ The sequence to return elements from.
+ The range of elements to return, which has start and end indexes either from the beginning or the end of the sequence.
+ The type of the elements of .
+
+ is .
+ An that contains the specified range of elements from the sequence.
+
+
+ Returns a new enumerable collection that contains the last elements from .
+ An enumerable collection instance.
+ The number of elements to take from the end of the collection.
+ The type of the elements in the enumerable collection.
+
+ is .
+ A new enumerable collection that contains the last elements from .
+
+
+ Returns elements from a sequence as long as a specified condition is true.
+ A sequence to return elements from.
+ A function to test each element for a condition.
+ The type of the elements of .
+
+ or is .
+ An that contains the elements from the input sequence that occur before the element at which the test no longer passes.
+
+
+ Returns elements from a sequence as long as a specified condition is true. The element's index is used in the logic of the predicate function.
+ The sequence to return elements from.
+ A function to test each source element for a condition; the second parameter of the function represents the index of the source element.
+ The type of the elements of .
+
+ or is .
+ An that contains elements from the input sequence that occur before the element at which the test no longer passes.
+
+
+ Performs a subsequent ordering of the elements in a sequence in ascending order according to a key.
+ An that contains elements to sort.
+ A function to extract a key from each element.
+ The type of the elements of .
+ The type of the key returned by .
+
+ or is .
+ An whose elements are sorted according to a key.
+
+
+ Performs a subsequent ordering of the elements in a sequence in ascending order by using a specified comparer.
+ An that contains elements to sort.
+ A function to extract a key from each element.
+ An to compare keys.
+ The type of the elements of .
+ The type of the key returned by .
+
+ or is .
+ An whose elements are sorted according to a key.
+
+
+ Performs a subsequent ordering of the elements in a sequence in descending order, according to a key.
+ An that contains elements to sort.
+ A function to extract a key from each element.
+ The type of the elements of .
+ The type of the key returned by .
+
+ or is .
+ An whose elements are sorted in descending order according to a key.
+
+
+ Performs a subsequent ordering of the elements in a sequence in descending order by using a specified comparer.
+ An that contains elements to sort.
+ A function to extract a key from each element.
+ An to compare keys.
+ The type of the elements of .
+ The type of the key returned by .
+
+ or is .
+ An whose elements are sorted in descending order according to a key.
+
+
+ Creates an array from a .
+ An to create an array from.
+ The type of the elements of .
+
+ is .
+ An array that contains the elements from the input sequence.
+
+
+ Creates a from an according to a specified key selector function.
+ An to create a from.
+ A function to extract a key from each element.
+ The type of the elements of .
+ The type of the key returned by .
+
+ or is .
+
+ -or-
+
+ produces a key that is .
+
+ produces duplicate keys for two elements.
+ A that contains keys and values. The values within each group are in the same order as in .
+
+
+ Creates a from an according to a specified key selector function and key comparer.
+ An to create a from.
+ A function to extract a key from each element.
+ An to compare keys.
+ The type of the elements of .
+ The type of the keys returned by .
+
+ or is .
+
+ -or-
+
+ produces a key that is .
+
+ produces duplicate keys for two elements.
+ A that contains keys and values. The values within each group are in the same order as in .
+
+
+ Creates a dictionary from an enumeration according to the default comparer for the key type.
+ The enumeration to create a dictionary from.
+ The type of the keys from elements of .
+ The type of the values from elements of .
+
+ is a reference.
+
+ contains one or more duplicate keys.
+ A dictionary that contains keys and values from and uses the default comparer for the key type.
+
+
+ Creates a dictionary from an enumeration according to specified key comparer.
+ The enumeration to create a dictionary from.
+ An equality comparer to compare keys.
+ The type of the keys from elements of .
+ The type of the values from elements of .
+
+ is a reference.
+
+ contains one or more duplicate keys.
+ A dictionary that contains keys and values from .
+
+
+ Creates a dictionary from an enumeration according to the default comparer for the key type.
+ The enumeration to create a dictionary from.
+ The type of the keys from elements of .
+ The type of the values from elements of .
+
+ is a reference.
+
+ contains one or more duplicate keys.
+ A dictionary that contains keys and values from and uses default comparer for the key type.
+
+
+ Creates a dictionary from an enumeration according to specified key equality comparer.
+ The enumeration to create a dictionary from.
+ An equality comparer to compare keys.
+ The type of the keys from elements of .
+ The type of the values from elements of .
+
+ is a reference.
+
+ contains one or more duplicate keys.
+ A dictionary that contains keys and values from .
+
+
+ Creates a from an according to specified key selector and element selector functions.
+ An to create a from.
+ A function to extract a key from each element.
+ A transform function to produce a result element value from each element.
+ The type of the elements of .
+ The type of the key returned by .
+ The type of the value returned by .
+
+ or or is .
+
+ -or-
+
+ produces a key that is .
+
+ produces duplicate keys for two elements.
+ A that contains values of type selected from the input sequence.
+
+
+ Creates a from an according to a specified key selector function, a comparer, and an element selector function.
+ An to create a from.
+ A function to extract a key from each element.
+ A transform function to produce a result element value from each element.
+ An to compare keys.
+ The type of the elements of .
+ The type of the key returned by .
+ The type of the value returned by .
+
+ or or is .
+
+ -or-
+
+ produces a key that is .
+
+ produces duplicate keys for two elements.
+ A that contains values of type selected from the input sequence.
+
+
+ Creates a from an .
+ An to create a from.
+ The type of the elements of .
+
+ is .
+ A that contains values of type selected from the input sequence.
+
+
+ Creates a from an using the to compare keys.
+ An to create a from.
+ An to compare keys.
+ The type of the elements of .
+
+ is .
+ A that contains values of type selected from the input sequence.
+
+
+ Creates a from an .
+ The to create a from.
+ The type of the elements of .
+
+ is .
+ A that contains elements from the input sequence.
+
+
+ Creates a from an according to a specified key selector function.
+ The to create a from.
+ A function to extract a key from each element.
+ The type of the elements of .
+ The type of the key returned by .
+
+ or is .
+ A that contains keys and values. The values within each group are in the same order as in .
+
+
+ Creates a from an according to a specified key selector function and key comparer.
+ The to create a from.
+ A function to extract a key from each element.
+ An to compare keys.
+ The type of the elements of .
+ The type of the key returned by .
+
+ or is .
+ A that contains keys and values. The values within each group are in the same order as in .
+
+
+ Creates a from an according to specified key selector and element selector functions.
+ The to create a from.
+ A function to extract a key from each element.
+ A transform function to produce a result element value from each element.
+ The type of the elements of .
+ The type of the key returned by .
+ The type of the value returned by .
+
+ or or is .
+ A that contains values of type selected from the input sequence.
+
+
+ Creates a from an according to a specified key selector function, a comparer and an element selector function.
+ The to create a from.
+ A function to extract a key from each element.
+ A transform function to produce a result element value from each element.
+ An to compare keys.
+ The type of the elements of .
+ The type of the key returned by .
+ The type of the value returned by .
+
+ or or is .
+ A that contains values of type selected from the input sequence.
+
+
+ Attempts to determine the number of elements in a sequence without forcing an enumeration.
+ A sequence that contains elements to be counted.
+ When this method returns, contains the number of elements in , or 0 if the count couldn't be determined without enumeration.
+ The type of the elements of .
+
+ if the count of can be determined without enumeration; otherwise, .
+
+
+ Produces the set union of two sequences by using the default equality comparer.
+ An whose distinct elements form the first set for the union.
+ An whose distinct elements form the second set for the union.
+ The type of the elements of the input sequences.
+
+ or is .
+ An that contains the elements from both input sequences, excluding duplicates.
+
+
+ Produces the set union of two sequences by using a specified .
+ An whose distinct elements form the first set for the union.
+ An whose distinct elements form the second set for the union.
+ The to compare values.
+ The type of the elements of the input sequences.
+
+ or is .
+ An that contains the elements from both input sequences, excluding duplicates.
+
+
+ Produces the set union of two sequences according to a specified key selector function.
+ An whose distinct elements form the first set for the union.
+ An whose distinct elements form the second set for the union.
+ A function to extract the key for each element.
+ The type of the elements of the input sequences.
+ The type of key to identify elements by.
+
+ or is .
+ An that contains the elements from both input sequences, excluding duplicates.
+
+
+ Produces the set union of two sequences according to a specified key selector function.
+ An whose distinct elements form the first set for the union.
+ An whose distinct elements form the second set for the union.
+ A function to extract the key for each element.
+ The to compare values.
+ The type of the elements of the input sequences.
+ The type of key to identify elements by.
+
+ or is .
+ An that contains the elements from both input sequences, excluding duplicates.
+
+
+ Filters a sequence of values based on a predicate.
+ An to filter.
+ A function to test each element for a condition.
+ The type of the elements of .
+
+ or is .
+ An that contains elements from the input sequence that satisfy the condition.
+
+
+ Filters a sequence of values based on a predicate. Each element's index is used in the logic of the predicate function.
+ An to filter.
+ A function to test each source element for a condition; the second parameter of the function represents the index of the source element.
+ The type of the elements of .
+
+ or is .
+ An that contains elements from the input sequence that satisfy the condition.
+
+
+ Produces a sequence of tuples with elements from the two specified sequences.
+ The first sequence to merge.
+ The second sequence to merge.
+ The type of the elements of the first input sequence.
+ The type of the elements of the second input sequence.
+ A sequence of tuples with elements taken from the first and second sequences, in that order.
+
+
+ Produces a sequence of tuples with elements from the three specified sequences.
+ The first sequence to merge.
+ The second sequence to merge.
+ The third sequence to merge.
+ The type of the elements of the first input sequence.
+ The type of the elements of the second input sequence.
+ The type of the elements of the third input sequence.
+ A sequence of tuples with elements taken from the first, second, and third sequences, in that order.
+
+
+ Applies a specified function to the corresponding elements of two sequences, producing a sequence of the results.
+ The first sequence to merge.
+ The second sequence to merge.
+ A function that specifies how to merge the elements from the two sequences.
+ The type of the elements of the first input sequence.
+ The type of the elements of the second input sequence.
+ The type of the elements of the result sequence.
+
+ or is .
+ An that contains merged elements of two input sequences.
+
+
+ Represents a collection of objects that have a common key.
+ The type of the key of the .
+ The type of the values in the .
+
+
+ Gets the key of the .
+ The key of the .
+
+
+ Defines an indexer, size property, and Boolean search method for data structures that map keys to sequences of values.
+ The type of the keys in the .
+ The type of the elements in the sequences that make up the values in the .
+
+
+ Determines whether a specified key exists in the .
+ The key to search for in the .
+
+ if is in the ; otherwise, .
+
+
+ Gets the number of key/value collection pairs in the .
+ The number of key/value collection pairs in the .
+
+
+ Gets the sequence of values indexed by a specified key.
+ The key of the desired sequence of values.
+ The sequence of values indexed by the specified key.
+
+
+ Represents a sorted sequence.
+ The type of the elements of the sequence.
+
+
+ Performs a subsequent ordering on the elements of an according to a key.
+ The used to extract the key for each element.
+ The used to compare keys for placement in the returned sequence.
+
+ to sort the elements in descending order; to sort the elements in ascending order.
+ The type of the key produced by .
+ An whose elements are sorted according to a key.
+
+
+ Represents a collection of keys each mapped to one or more values.
+ The type of the keys in the .
+ The type of the elements of each value in the .
+
+
+ Applies a transform function to each key and its associated values and returns the results.
+ A function to project a result value from each key and its associated values.
+ The type of the result values produced by .
+ A collection that contains one value for each key/value collection pair in the .
+
+
+ Determines whether a specified key is in the .
+ The key to find in the .
+
+ if is in the ; otherwise, .
+
+
+ Returns a generic enumerator that iterates through the .
+ An enumerator for the .
+
+
+ Returns an enumerator that iterates through the . This class cannot be inherited.
+ An enumerator for the .
+
+
+ Gets the number of key/value collection pairs in the .
+ The number of key/value collection pairs in the .
+
+
+ Gets the collection of values indexed by the specified key.
+ The key of the desired collection of values.
+ The collection of values indexed by the specified key.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Memory.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Memory.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ca7f19bb9009374c1c53b029d1f708a3074f0b23
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Memory.xml
@@ -0,0 +1,4045 @@
+
+
+
+ System.Memory
+
+
+
+ Represents a heap-based, array-backed output sink into which data can be written.
+ The type of the items in this instance.
+
+
+ Creates an instance of an to which data can be written, with the default initial capacity.
+
+
+ Creates an instance of an to which data can be written, with a specified initial capacity.
+ The minimum capacity with which to initialize the underlying buffer.
+
+ is less than or equal to 0.
+
+
+ Notifies the that items were written to the output /.
+ The number of items written.
+
+ is negative.
+ The method call attempts to advance past the end of the underlying buffer.
+
+
+ Clears the data written to the underlying buffer.
+
+
+ Returns a to write to that is at least the length specified by .
+ The minimum requested length of the .
+
+ is negative.
+ A whose length is at least . If is not provided or is equal to 0, some non-empty buffer is returned.
+
+
+ Returns a to write to that is at least a specified length.
+ The minimum requested length of the .
+
+ is negative.
+ A span of at least in length. If is not provided or is equal to 0, some non-empty buffer is returned.
+
+
+
+ Gets the total amount of space within the underlying buffer.
+ The total capacity of the underlying buffer.
+
+
+ Gets the amount of available space that can be written to without forcing the underlying buffer to grow.
+ The space available for writing without forcing the underlying buffer to grow.
+
+
+ Gets the amount of data written to the underlying buffer.
+ The amount of data written to the underlying buffer.
+
+
+ Gets a that contains the data written to the underlying buffer so far.
+ The data written to the underlying buffer.
+
+
+ Gets a that contains the data written to the underlying buffer so far.
+ The data written to the underlying buffer.
+
+
+ Reads bytes as primitives with specific endianness.
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The big endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The little endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The big endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The little endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The big endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The little endian value.
+
+
+ Reads an from the beginning of a read-only span of bytes, as big endian.
+ The read-only span to read.
+
+ is too small to contain an .
+ The big endian value.
+
+
+ Reads an from the beginning of a read-only span of bytes, as little endian.
+ The read-only span to read.
+
+ is too small to contain an .
+ The little endian value.
+
+
+ Reads an from the beginning of a read-only span of bytes, as big endian.
+ The read-only span to read.
+
+ is too small to contain an .
+ The big endian value.
+
+
+ Reads an from the beginning of a read-only span of bytes, as little endian.
+ The read-only span to read.
+
+ is too small to contain an .
+ The little endian value.
+
+
+ Reads an from the beginning of a read-only span of bytes, as big endian.
+ The read-only span to read.
+
+ is too small to contain an .
+ The big endian value.
+
+
+ Reads an from the beginning of a read-only span of bytes, as little endian.
+ The read-only span to read.
+
+ is too small to contain an .
+ The little endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The big endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The little endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The big endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The little endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The big endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The little endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The big endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The little endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The big endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+
+ is too small to contain a .
+ The little endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span of bytes to read.
+
+ is too small to contain a .
+ The big endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+
+ is too small to contain a .
+ The little endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The big endian value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span to read.
+
+ is too small to contain a .
+ The little endian value.
+
+
+ Reverses a primitive value by performing an endianness swap of the specified value, which effectively does nothing for a .
+ The value to reverse.
+ The passed-in value, unmodified.
+
+
+ Reverses a primitive value by performing an endianness swap of the specified value.
+ The value to reverse.
+ The reversed value.
+
+
+ Reverses a primitive value by performing an endianness swap of the specified value.
+ The value to reverse.
+ The reversed value.
+
+
+ Reverses a primitive value by performing an endianness swap of the specified value.
+ The value to reverse.
+ The reversed value.
+
+
+ Reverses a primitive value by performing an endianness swap of the specified value.
+ The value to reverse.
+ The reversed value.
+
+
+ Reverses a primitive value by performing an endianness swap of the specified value.
+ The value to reverse.
+ The reversed value.
+
+
+ Copies every primitive value from source
to destination
, reversing each primitive by performing an endianness swap as part of writing each.
+ The source span to copy.
+ The destination to which the source elements should be copied.
+
+
+ Copies every primitive value from source
to destination
, reversing each primitive by performing an endianness swap as part of writing each.
+ The source span to copy.
+ The destination to which the source elements should be copied.
+
+
+ Copies every primitive value from source
to destination
, reversing each primitive by performing an endianness swap as part of writing each.
+ The source span to copy.
+ The destination to which the source elements should be copied.
+
+
+ Copies every primitive value from source
to destination
, reversing each primitive by performing an endianness swap as part of writing each.
+ The source span to copy.
+ The destination to which the source elements should be copied.
+
+
+ Copies every primitive value from source
to destination
, reversing each primitive by performing an endianness swap as part of writing each.
+ The source span to copy.
+ The destination to which the source elements should be copied.
+
+
+ Copies every primitive value from source
to destination
, reversing each primitive by performing an endianness swap as part of writing each.
+ The source span to copy.
+ The destination to which the source elements should be copied.
+
+
+ Copies every primitive value from to , reversing each primitive by performing an endianness swap as part of writing each.
+ The source span to copy.
+ The destination to which the source elements should be copied.
+ The 's length is smaller than that of the .
+
+
+ Copies every primitive value from source
to destination
, reversing each primitive by performing an endianness swap as part of writing each.
+ The source span to copy.
+ The destination to which the source elements should be copied.
+
+
+ Copies every primitive value from source
to destination
, reversing each primitive by performing an endianness swap as part of writing each.
+ The source span to copy.
+ The destination to which the source elements should be copied.
+
+
+ Copies every primitive value from source
to destination
, reversing each primitive by performing an endianness swap as part of writing each.
+ The source span to copy.
+ The destination to which the source elements should be copied.
+
+
+ Reverses a primitive value by performing an endianness swap of the specified value, which effectively does nothing for an .
+ The value to reverse.
+ The passed-in value, unmodified.
+
+
+ Reverses a primitive value by performing an endianness swap of the specified value.
+ The value to reverse.
+ The reversed value.
+
+
+ Reverses a primitive value by performing an endianness swap of the specified value.
+ The value to reverse.
+ The reversed value.
+
+
+ Reverses a primitive value by performing an endianness swap of the specified value.
+ The value to reverse.
+ The reversed value.
+
+
+ Reverses a primitive value by performing an endianness swap of the specified value.
+ The value to reverse.
+ The reversed value.
+
+
+ Reverses a primitive value by performing an endianness swap of the specified value.
+ The value to reverse.
+ The reversed value.
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as big endian.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as little endian.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as big endian.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as little endian.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as big endian.
+
+ if the span is too small to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as little endian.
+
+ if the span is too small to contain a ; otherwise,
+
+
+ Reads an from the beginning of a read-only span of bytes, as big endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as big endian.
+
+ if the span is large enough to contain an ; otherwise, .
+
+
+ Reads an from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as little endian.
+
+ if the span is large enough to contain an ; otherwise, .
+
+
+ Reads an from the beginning of a read-only span of bytes, as big endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as big endian.
+
+ if the span is large enough to contain an ; otherwise, .
+
+
+ Reads an from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as little endian.
+
+ if the span is large enough to contain an ; otherwise, .
+
+
+ Reads an from the beginning of a read-only span of bytes, as big endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as big endian.
+
+ if the span is large enough to contain an ; otherwise, .
+
+
+ Reads an from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as little endian.
+
+ if the span is large enough to contain an ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as big endian.
+
+ if the span is too small to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as little endian.
+
+ if the span is too small to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as big endian.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as little endian.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as big endian.
+
+ if the span is too small to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as little endian.
+
+ if the span is too small to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as big endian.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as little endian.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as big endian.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as little endian.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as big endian.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as little endian.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as big endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as big endian.
+
+ if the span is too small to contain a ; otherwise, .
+
+
+ Reads a from the beginning of a read-only span of bytes, as little endian.
+ The read-only span of bytes to read.
+ When this method returns, contains the value read out of the read-only span of bytes, as little endian.
+
+ if the span is too small to contain a ; otherwise, .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ if the span is too small to contain the value; otherwise, .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ if the span is too small to contain the value; otherwise, .
+
+
+ Writes an into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain an ; otherwise, .
+
+
+ Writes an into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain an ; otherwise, .
+
+
+ Writes an into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain an ; otherwise, .
+
+
+ Writes an into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain an ; otherwise, .
+
+
+ Writes an into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain an ; otherwise, .
+
+
+ Writes an into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain an ; otherwise, .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ if the span is too small to contain the value; otherwise, .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ if the span is too small to contain the value; otherwise, .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ if the span is too small to contain the value; otherwise, .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ if the span is too small to contain the value; otherwise, .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ if the span is large enough to contain a ; otherwise, .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ if the span is too small to contain the value; otherwise, .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ if the span is too small to contain the value; otherwise, .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes an into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ is too small to contain an .
+
+
+ Writes an into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ is too small to contain an .
+
+
+ Writes an into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ is too small to contain an .
+
+
+ Writes an into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ is too small to contain an .
+
+
+ Writes an into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ is too small to contain an .
+
+
+ Writes an into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ is too small to contain an .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as big endian.
+ The span of bytes where the value is to be written, as big endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Writes a into a span of bytes, as little endian.
+ The span of bytes where the value is to be written, as little endian.
+ The value to write into the span of bytes.
+
+ is too small to contain a .
+
+
+ Provides extension methods for .
+
+
+ Copies the to the specified .
+ The source .
+ The destination .
+ The type of the items in the .
+
+
+ Returns the position of the first occurrence of in the .
+ The source .
+ The item to find in the .
+ The type of the items in the .
+ An object whose method returns the position of the first occurrence of , or an object whose property is .
+
+
+ Converts the to an array.
+ The read-only sequence to convert to an array.
+ The type of the items in the .
+ An array containing the data in the current read-only sequence.
+
+
+ Writes the contents of to .
+ The buffer writer to which to write .
+ The read-only span to be written to .
+ The type of the items in the .
+
+ is shorter than .
+
+
+ Represents an output sink into which data can be written.
+ The type of the items in the .
+
+
+ Notifies the that data items were written to the output or .
+ The number of data items written to the or .
+
+
+ Returns a to write to that is at least the requested size (specified by ).
+ The minimum length of the returned . If 0, a non-empty buffer is returned.
+ The requested buffer size is not available.
+ A of at least the size . If is 0, returns a non-empty buffer.
+
+
+ Returns a to write to that is at least the requested size (specified by ).
+ The minimum length of the returned . If 0, a non-empty buffer is returned.
+ A of at least the size . If is 0, returns a non-empty buffer.
+
+
+ Represents a pool of memory blocks.
+ The type of the items in the memory pool.
+
+
+ Constructs a new instance of a memory pool.
+
+
+ Frees all resources used by the memory pool.
+
+
+ Frees the unmanaged resources used by the memory pool and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+ Returns a memory block capable of holding at least elements of T.
+ The minimum number of elements of that the memory pool can hold. A value of -1 returns a memory pool set to the default size for the pool.
+ A memory block capable of holding at least elements of T.
+
+
+ Gets the maximum buffer size supported by this pool.
+ The maximum buffer size supported by this pool.
+
+
+ Gets a singleton instance of a memory pool based on arrays.
+ A singleton instance of a memory pool.
+
+
+ Represents a sequence that can read a sequential series of .
+ The type of the elements in the read-only sequence.
+
+
+ Returns an empty .
+
+
+ Creates an instance of from the .
+ The array from which to create a read-only sequence.
+
+
+ Creates an instance of a from a section of an array.
+ The array from which to create the read-only sequence.
+ The zero-based index of the first element in the array to include in the read-only sequence.
+ The number of elements to include in the read-only sequence.
+
+
+ Creates an instance of a from a linked memory list represented by start and end segments and the corresponding indexes in them.
+ The initial node of the linked memory list.
+ The position to the start of the sequence inside .
+ The final node of the linked memory list.
+ The position to the end of the sequence inside .
+
+ or is .
+ The running index of is greater than the running index of , even though is different to .
+
+-or-
+
+ is equal to but is smaller than .
+
+-or-
+
+ is greater than the length of the underlying memory block of .
+
+
+ Creates an instance of from a .
+ A read-only block of memory of elements of type .
+
+
+ Returns an enumerator over the .
+ Returns an enumerator over the .
+
+
+ Returns the offset of a within this sequence from the start.
+ The of which to get the offset.
+ The position is out of range.
+ The offset from the start of the sequence.
+
+
+ Returns a new at an from the start of the sequence.
+ The offset from the start of the sequence.
+ An object representing the sequence position that starts at the specified from the start of the sequence.
+
+
+ Returns a new starting at the specified offset from the position.
+ The offset from the specified sequence position.
+ A sequence position representing the point from which to initiate the offset.
+ An object representing the sequence position that starts at the position of the specified position object.
+
+
+ Forms a slice out of the current , beginning at , with items.
+ The index at which to begin this slice.
+ The length of the slice.
+ A slice that consists of elements from the current instance starting at index .
+
+
+ Forms a slice out of the current , beginning at and ending at (exclusive).
+ The index at which to begin this slice.
+ The end (exclusive) of the slice.
+ A slice that consists of items from the index to, but not including, the sequence position in the current read-only sequence.
+
+
+ Forms a slice out of the current , beginning at a specified index and continuing to the end of the read-only sequence.
+ The start index at which to begin this slice.
+ A slice starting at index and continuing to the end of the current read-only sequence.
+
+
+ Forms a slice out of the given , beginning at , with items.
+ The index at which to begin this slice.
+ The length of the slice.
+ A slice that consists of elements from the current instance starting at index .
+
+
+ Forms a slice out of the current , beginning at and ending at (exclusive).
+ The index at which to begin this slice.
+ The end (exclusive) of the slice.
+ A slice that consists of items from the index to, but not including, the sequence position in the current read-only sequence.
+
+
+ Forms a slice out of the current , beginning at a specified sequence position and continuing to the end of the read-only sequence.
+ The starting (inclusive) at which to begin this slice.
+ A slice starting at sequence position and continuing to the end of the current read-only sequence.
+
+
+ Forms a slice out of the current , beginning at , with items.
+ The starting (inclusive) at which to begin this slice.
+ The length of the slice.
+ A slice that consists of elements from the current instance starting at sequence position .
+
+
+ Forms a slice out of the current , beginning at , with items.
+ The starting (inclusive) at which to begin this slice.
+ The length of the slice.
+ A slice that consists of elements from the current instance starting at sequence position .
+
+
+ Forms a slice out of the current , beginning at and ending at (exclusive).
+ The starting (inclusive) at which to begin this slice.
+ The ending (exclusive) of the slice.
+ A slice that consists of items from the sequence position to, but not including, the sequence position in the current read-only sequence.
+
+
+ Returns a string that represents the current sequence.
+ A string that represents the current sequence.
+
+
+ Tries to retrieve the next segment after and returns a value that indicates whether the operation succeeded.
+ The current sequence position.
+ A read-only memory span that contains the next segment after .
+
+ if should to the beginning of next segment; otherwise, .
+ Returns if the method returned the next segment, or if the end of the read-only sequence was reached.
+
+
+ Gets the position at the end of the .
+
+
+ Gets the from the first segment.
+
+
+ Gets the from the first segment.
+
+
+ Gets a value that indicates whether the is empty.
+
+
+ Gets a value that indicates whether the contains a single segment.
+
+ if the read-only sequence is empty; otherwise, .
+
+
+ Gets the length of the .
+ The length of the read-only sequence.
+
+
+ Gets the position to the start of the .
+
+
+ Represents an enumerator over a .
+
+
+
+ Initializes the enumerator.
+ The to enumerate.
+
+
+ Moves to the next in the .
+
+ if the enumerator successfully advanced to the next item; if the end of the sequence has been reached.
+
+
+ Gets the current .
+ The current .
+
+
+ Represents a linked list of nodes.
+ The type of the elements in the read-only sequence segment.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value for the current node.
+ A value for the current node.
+
+
+ Gets or sets the next node.
+ The next node.
+
+
+ Gets or sets the sum of node lengths before the current node.
+ The sum of node lengths before the current node.
+
+
+ Provides methods for reading binary and text data out of a with a focus on performance and minimal or zero heap allocations.
+ The type of the read-only sequence.
+
+
+ Creates a over a given .
+ The read-only sequence over which to create the .
+
+
+ Moves the reader ahead a specified number of items.
+ The number of items to advance.
+
+
+ Advances past consecutive instances of the given .
+ The value past which the reader is to advance.
+ The number of positions the reader has advanced.
+
+
+ Advances past consecutive instances of either of two specified values.
+ The first value to skip.
+ The second value to skip.
+ The number of positions the reader has advanced.
+
+
+ Advances past consecutive instances of any of three specified values.
+ The first value to skip.
+ The second value to skip.
+ The third value to skip.
+ The number of positions the reader has advanced.
+
+
+ Advances past consecutive instances of any of four specified values.
+ The first value to skip.
+ The second value to skip.
+ The third value to skip.
+ The fourth value to skip.
+ The number of positions the reader has advanced.
+
+
+ Skips consecutive instances of any of the specified .
+ The values to be skipped.
+ The number of positions the reader has advanced.
+
+
+ Moves the reader to the end of the sequence.
+
+
+ Checks whether a specified value is next in the sequence.
+ The value to compare the next items to.
+
+ to move past the values if they are found; otherwise, .
+
+ if the values are next in sequence; otherwise, .
+
+
+ Checks whether the values specified in a read-only span are next in the sequence.
+ The span to compare the next items to.
+
+ to move past the values if they are found; otherwise, .
+
+ if the values are next in sequence; otherwise, .
+
+
+ Moves the reader back the specified number of items.
+ The number of items.
+
+ is negative or greater than .
+
+
+ Searches for a specified delimiter and optionally advances past it if it is found.
+ The delimiter to search for.
+
+ to move past the if it is found; otherwise, .
+
+ if the given was found; otherwise, .
+
+
+ Searches for any of a number of specified delimiters and optionally advances past the first one to be found.
+ The delimiters to search for.
+
+ to move past the first instance of any of the given ; to not move past the delimiter.
+
+ if any of the given was found; otherwise, .
+
+
+ Copies data from the current position to the given destination span if there is enough data to fill it.
+ Destination span to copy to.
+
+ if there is enough data to completely fill the span; otherwise, .
+
+
+ Peeks at the next value without advancing the reader.
+ The next value, or the default value if at the end of the reader.
+
+ if the reader is not at its end and the peek operation succeeded; if at the end of the reader.
+
+
+ Peeks at the next value at the specified offset without advancing the reader.
+ The offset from current position.
+ The next value, or the default value if at the end of the reader.
+
+ if the reader is not at its end and the peek operation succeeded; if at the end of the reader.
+
+
+ Reads the next value and advance the reader.
+ The next value, or the default value if at the end of the reader.
+
+ if the reader is not at its end and the read operation succeeded; if at the end of the reader.
+
+
+ Attempts to read exactly values from the current sequence.
+ The number of values to read.
+ When this method returns, contains the read data, if items were successfully read.
+
+ if there are or more remaining items in the current sequence.
+
+
+ Tries to read everything up to the given , ignoring delimiters that are preceded by .
+ When the method returns, contains the data read, if any.
+ The delimiter to look for.
+ A value that indicates that an immediately following is to be skipped.
+
+ to move past the if found; otherwise, .
+
+ if the was found; otherwise, .
+
+
+ Tries to read everything up to the given .
+ When the method returns, contains the data read, if any.
+ The delimiter to look for.
+
+ to move past the if found; otherwise, .
+
+ if the was found; otherwise, .
+
+
+ Tries to read data until the entire delimiter specified as a read-only span matches.
+ When the method returns, contains the data read, if any.
+ A read-only span that contains one or more delimiters.
+
+ to move past the if found; otherwise, .
+
+ if the was found; otherwise, .
+
+
+ Tries to read everything up to the given , ignoring delimiters that are preceded by .
+ When the method returns, contains the data read, if any.
+ The delimiter to look for.
+ A value that indicates that an immediately following is to be skipped.
+
+ to move past the if found; otherwise, .
+
+ if the was found; otherwise, .
+
+
+ Tries to read everything up to the given .
+ When the method returns, contains the data read, if any.
+ The delimiter to look for.
+
+ to move past the if found; otherwise, .
+
+ if the was found; otherwise, .
+
+
+ Try to read everything up to the given .
+ The read data, if any.
+ The delimiter to look for.
+
+ to move past the if found.
+ The read data, if any.
+
+ if the was found; otherwise, .
+
+
+ Tries to read everything up to any of the specified .
+ When the method returns, contains the data read, if any.
+ The delimiters to look for.
+
+ to move past the first found instance of any of the given ; otherwise, .
+
+ if any of the were found; otherwise, .
+
+
+ Tries to read everything up to any of the specified .
+ When the method returns, contains the data read, if any.
+ The delimiters to look for.
+
+ to move past the first found instance of any of the given ; otherwise, .
+
+ if any of the were found; otherwise, .
+
+
+ Gets the total number of values processed by the reader.
+ The total number of values processed by the reader.
+
+
+ Gets a that contains the current segment in the .
+ A span that contains the current segment in the sequence.
+
+
+ Gets the index in the .
+ The index in the .
+
+
+ Gets a value that indicates whether there is no more data in the .
+
+ when there is no more data in the ; otherwise, .
+
+
+ Gets the count of items in the reader's .
+ The count of items in the reader's .
+
+
+ Gets the current position in the .
+ The current position in the .
+
+
+ Gets the remaining items in the reader's .
+ The remaining items in the reader's
+
+
+ Gets the underlying for the reader.
+ The underlying read-only sequence for the reader.
+
+
+ Gets the unread portion of the .
+ The unread portion of the .
+
+
+ Gets the unread portion of the .
+ The unread portion of the .
+
+
+ Provides extended functionality for the class that allows reading of endian specific numeric values from binary data.
+
+
+ Tries to read an as big endian.
+ The byte sequence reader instance from which the value is to be read.
+ When the method returns, the value read out of the byte sequence reader, as big endian.
+
+ if the read operation is successful; if there isn't enough data for an .
+
+
+ Tries to read an as big endian.
+ The byte sequence reader from which to read the value.
+ When the method returns, the value read out of the byte sequence reader, as big endian.
+
+ if the read operation is successful; if there isn't enough data for an .
+
+
+ Tries to read an as big endian.
+ The byte sequence reader instance from which the value is to be read.
+ When the method returns, the value read out of the byte sequence reader, as big endian.
+
+ if the read operation is successful; if there isn't enough data for an .
+
+
+ Tries to read an as little endian.
+ The byte sequence reader instance from which the value is to be read.
+ When the method returns, the value read out of the byte sequence reader, as little endian.
+
+ if the read operation is successful; if there isn't enough data for an .
+
+
+ Tries to read an as little endian.
+ The byte sequence reader instance from which the value is to be read.
+ When the method returns, the value read out of the byte sequence reader, as little endian.
+
+ if the read operation is successful; if there isn't enough data for an .
+
+
+ Tries to read an as little endian.
+ The byte sequence reader instance from which the value is to be read.
+ When the method returns, the value read out of the byte sequence reader, as little endian.
+
+ if the read operation is successful; if there isn't enough data for an .
+
+
+ Represents a standard format string without using an actual string.
+
+
+ Defines the maximum valid precision value.
+
+
+ Indicates that a format doesn't use a precision or that the precision is unspecified.
+
+
+ Initializes a new instance of the structure.
+ A type-specific format specifier, such as 'G', 'D', or 'X'.
+ An optional precision ranging from 0 to 99, or the special value (the default).
+
+ is not , and its value is greater than .
+
+-or-
+
+ cannot be converted to a .
+
+
+ Returns a value that indicates whether the specified is equal to the current instance.
+ The format to compare to the current instance.
+
+ if the two instances are equal; otherwise, .
+
+
+ Returns a value that indicates whether the specified object is a object that is equal to the current instance.
+ An object to compare to the current instance.
+
+ if the two instances are equal; otherwise, .
+
+
+ Returns the hash code for this instance.
+ The hash code for this instance.
+
+
+ Returns a value that indicates whether two instances are equal.
+ The first format to compare.
+ The second format to compare.
+
+ if the two instances are equal; otherwise, .
+
+
+ Converts a character to a instance using precision.
+ The character to convert to a value.
+ A format with a property equal to and a property equal to .
+
+
+ Determines whether two instances are unequal.
+ The first format to compare.
+ The second format to compare.
+
+ if the two formats are unequal; otherwise, .
+
+
+ Converts a into a instance using precision.
+ A read-only span that contains the character to parse.
+ A value whose property value is the character in and whose property value is .
+
+
+ Converts a classic .NET standard format string to a instance.
+ A classic .NET standard format string.
+
+ is not a valid standard format string.
+ A format.
+
+
+ Returns the string representation of this format.
+ The string representation of this format.
+
+
+ Attempts to convert a to a instance and returns a value that indicates whether the parsing operation succeeded.
+ A read-only span that contains the character to convert.
+ When the method returns, contains the parsed instance if the operation was successful.
+
+ if the parsing operation was successful; otherwise, .
+
+
+ Gets a value that indicates whether a format has a defined precision.
+
+ if the format has a precision other than ; otherwise, .
+
+
+ Gets a value that indicates whether the current instance is a default format.
+
+ if the current instance is a default format; otherwise, .
+
+
+ Gets the precision component of the format.
+ The precision component, which can be , or can range from 0 to 9.
+
+
+ Gets the character component of the format.
+ The character component of the format.
+
+
+ Provides static methods to format common data types as Utf8 strings.
+
+
+ Formats a as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats a as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats a as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats a as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats a as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats a as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats a as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats an as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats an as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats an as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats an as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats a as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats a as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats a as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats a as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Formats a as a UTF8 string.
+ The value to format.
+ The buffer to write the UTF8-formatted value to.
+ When the method returns, contains the length of the formatted text in bytes.
+ The standard format to use.
+
+ if the formatting operation succeeds; if is too small.
+
+
+ Provides static methods to parse Utf8 strings to common data types.
+
+
+ Parses a at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses a at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses a at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses a at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses a at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses a at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses a at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses an at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses an at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses an at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses an at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses a at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses a at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses a at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses a at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Parses a at the start of a Utf8 string.
+ The Utf8 string to parse.
+ When the method returns, contains the value parsed from , if the parsing operation succeeded.
+ If the parsing operation was successful, contains the length in bytes of the parsed substring when the method returns. If the method fails, is set to 0.
+ The expected format of the Utf8 string.
+
+ for success; if the string was not syntactically valid or an overflow or underflow occurred.
+
+
+ Provides extension methods for the memory- and span-related types, such as , , , and .
+
+
+ Creates a new over the portion of the target string.
+ The target string.
+ The read-only character memory representation of the string, or if is .
+
+
+ Creates a new over a portion of the target string starting at a specified index.
+ The target string.
+ The index at which to begin this slice.
+ The read-only character memory representation of the string.
+
+
+ Creates a new over a portion of the target string starting at a specified character position.
+ The target string.
+ The index at which to begin this slice.
+
+ is not in the range of ( is < 0 or > text.Length).
+ The read-only character memory representation of the string, or if is .
+
+
+ Creates a new over a portion of the target string beginning at a specified position with a length.
+ The target string.
+ The index at which to begin this slice.
+ The desired length for the slice.
+
+ , , or + is not in the range of .
+ The read-only character memory representation of the string, or if is .
+
+
+ Creates a new over a specified range of the target string.
+ The target string.
+ The range that indicates the start and length of the sliced string.
+ The read-only character memory representation of the string.
+
+
+ Creates a new memory region over the target array.
+ The array to convert.
+ The type of the array.
+ The memory representation of the whole or part of the array.
+
+
+ Creates a new memory region over the portion of the target array starting at a specified index to the end of the array.
+ The array to convert.
+ The first position of the array.
+ The type of the array.
+ The memory representation of the whole or part of the array.
+
+
+ Creates a new memory region over the portion of the target array starting at a specified position to the end of the array.
+ The target array.
+ The index at which to begin the memory.
+ The type of the array.
+
+ is covariant, and the array's type is not exactly .
+
+ index less than 0 or greater than .
+ The memory representation of the whole or part of the array.
+
+
+ Creates a new memory region over the portion of the target array beginning at a specified position with a specified length.
+ The target array.
+ The index at which to begin the memory region.
+ The number of items in the memory region.
+ The type of the array.
+
+ is covariant, and the array's type is not exactly .
+
+ , , or + is not in the range of .
+ The memory representation of the whole or part of the array.
+
+
+ Creates a new memory region over the portion of the target array beginning at inclusive start index of the range and ending at the exclusive end index of the range.
+ The array to convert.
+ The range to convert from the array.
+ The type of the array.
+ The memory representation of the whole or part of the array.
+
+
+ Creates a new memory region over the portion of the target array segment.
+ The segment to convert.
+ The type of the segment.
+ The memory representation of the segment.
+
+
+ Creates a new memory region over the portion of the target array segment starting at a specified position to the end of the segment.
+ The target array segment.
+ The index at which to begin the memory.
+ The type of the array.
+
+ is covariant, and the type of is not exactly .
+
+ is less than 0 or greater than .
+ The memory representation of the whole or part of the array.
+
+
+ Creates a new memory region over the portion of the target array segment beginning at a specified position with a specified length.
+ The target array segment.
+ The index at which to begin the memory.
+ The number of items in the memory.
+ The type of the array.
+
+ is covariant, and the array's type is not exactly .
+
+ , , or + is not in the range of .
+ The memory representation of the whole or part of the array.
+
+
+ Creates a new read-only span over a string.
+ The target string.
+ The read-only span representation of the string.
+
+
+ Creates a new over a portion of the target string from a specified position to the end of the string.
+ The target string.
+ The index at which to begin this slice.
+
+ is less than 0 or greater than .Length.
+
+
+ Creates a new read-only span over a portion of the target string from a specified position to the end of the string.
+ The target string.
+ The index at which to begin this slice.
+
+ is less than 0 or greater than .
+ Thrown when is .
+ The read-only span representation of the string.
+
+
+ Creates a new read-only span over a portion of the target string from a specified position for a specified number of characters.
+ The target string.
+ The index at which to begin this slice.
+ The desired length for the slice.
+
+ , , or + is not in the range of .
+ The read-only span representation of the string.
+
+
+ Creates a new over a portion of a target string using the range start and end indexes.
+ The target string.
+ The range that has start and end indexes to use for slicing the string.
+
+ is .
+
+ 's start or end index is not within the bounds of the string.
+
+ 's start index is greater than its end index.
+
+
+ Creates a new span over a target array.
+ The array to convert.
+ The type of the array.
+ The span representation of the array.
+
+
+ Creates a new span over the portion of the target array defined by an value.
+ The array to convert.
+ The starting index.
+ The array type.
+ The span representation of the array.
+
+
+ Creates a new span over a portion of the target array starting at a specified position to the end of the array.
+ The array to convert.
+ The initial index from which the array will be converted.
+ The type of the array.
+ The span representation of the array.
+
+
+ Creates a new span over the portion of the target array beginning at a specified position for a specified length.
+ The target array.
+ The index at which to begin the span.
+ The number of items in the span.
+ The type of the array.
+
+ is covariant, and the array's type is not exactly ".
+
+ , , or + is not in the range of .
+ The span representation of the array.
+
+
+ Creates a new span over a portion of a target array defined by a value.
+ The array to convert.
+ The range of the array to convert.
+ The type of the array.
+ The span representation of the array.
+
+
+ Creates a new span over a target array segment.
+ The array segment to convert.
+ The type of the array segment.
+ The span representation of the array segment.
+
+
+ Creates a new span over a portion of the target array segment beginning at a specified index and ending at the end of the segment.
+ The target array segment.
+ The index at which to begin the Span.
+ The type of the array segment.
+ The span representation of the array segment.
+
+
+ Creates a new span over a portion of a target array segment from a specified position to the end of the segment.
+ The target array segment.
+ The index at which to begin the san.
+ The type of the array segment.
+
+ is covariant, and the array's type is not exactly .
+
+ is less than 0 or greater than .
+ The span representation of the array segment.
+
+
+ Creates a new span over a portion of a target array segment from a specified position for a specified length.
+ The target array segment.
+ The index at which to begin the span.
+ The number of items in the span.
+ The type of the array segment.
+
+ is covariant, and the array's type is not exactly .
+
+ , , or + is not in the range of .
+ The span representation of the array.
+
+
+ Creates a new span over a portion of a target array segment using the range start and end indexes.
+ The target array segment.
+ The range which has start and end indexes to use for slicing the array.
+ The type of the array segment.
+ The span representation of the array segment.
+
+
+ Searches an entire sorted for a value using the specified generic interface.
+ The sorted to search.
+ The to use when comparing.
+ The element type of the span.
+
+ is .
+ 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 .
+
+
+ Searches an entire sorted for a value using the specified generic interface.
+ The sorted to search.
+ The to use when comparing.
+ The element type of the span.
+
+ is .
+ 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 .
+
+
+ Searches an entire sorted for a specified value using the specified generic type.
+ The sorted to search.
+ The object to locate. The value can be for reference types.
+ The to use when comparing.
+ The element type of the span.
+ The specific type of .
+
+ is .
+ 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 .
+
+
+ Searches an entire sorted for a value using the specified generic type.
+ The sorted to search.
+ The to use when comparing.
+ The element type of the span.
+ The specific type of .
+
+ is .
+ 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 .
+
+
+ Searches an entire sorted for a specified value using the specified generic type.
+ The sorted to search.
+ The object to locate. The value can be for reference types.
+ The to use when comparing.
+ The element type of the span.
+ The specific type of .
+
+ is .
+ 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 .
+
+
+ Searches an entire sorted for a value using the specified generic type.
+ The sorted to search.
+ The to use when comparing.
+ The element type of the span.
+ The specific type of .
+
+ is .
+ 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 .
+
+
+ Finds the length of any common prefix shared between and .
+ The first sequence to compare.
+ The second sequence to compare.
+ The type of the elements in the spans.
+ The length of the common prefix shared by the two spans. If there's no shared prefix, 0 is returned.
+
+
+ Determines the length of any common prefix shared between and .
+ The first sequence to compare.
+ The second sequence to compare.
+ The implementation to use when comparing elements, or to use the default for the type of an element.
+ The type of the elements in the sequences.
+ The length of the common prefix shared by the two spans. If there's no shared prefix, 0 is returned.
+
+
+ Finds the length of any common prefix shared between and .
+ The first sequence to compare.
+ The second sequence to compare.
+ The type of the elements in the spans.
+ The length of the common prefix shared by the two spans. If there's no shared prefix, 0 is returned.
+
+
+ Finds the length of any common prefix shared between and .
+ The first sequence to compare.
+ The second sequence to compare.
+ The implementation to use when comparing elements, or to use the default for the type of an element.
+ The type of the elements in the spans.
+ The length of the common prefix shared by the two spans. If there's no shared prefix, 0 is returned.
+
+
+ Compares one character span with another using a specified string comparison, and returns an integer that indicates their relative position in the sort order.
+ The source span.
+ The value to compare with the source span.
+ An enumeration value that determines how and are compared.
+ A signed integer that indicates the relative order of and :
- If less than 0, precedes than .
- If 0, equals .
- If greater than 0, follows .
+
+
+ Indicates whether a specified value occurs within a read-only character span.
+ The source span.
+ The value to seek within the source span.
+ An enumeration value that determines how the characters in and are compared.
+
+ if occurs within the span, otherwise.
+
+
+ Indicates whether a specified value is found in a read-only span. Values are compared using IEquatable{T}.Equals(T).
+ The span to search.
+ The value to search for.
+ The type of the span.
+
+ if found, otherwise.
+
+
+ Indicates whether a specified value is found in a span. Values are compared using IEquatable{T}.Equals(T).
+ The span to search.
+ The value to search for.
+ The type of the elements in the span.
+
+ true
if found, false
otherwise.
+
+
+ Searches for an occurrence of or , and returns if found. If not found, returns .
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for an occurrence of , , or , and returns if found. If not found, returns .
+ 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 an occurrence of any of the specified and returns if found. If not found, returns .
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for an occurrence of any of the specified and returns if found. If not found, returns .
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for an occurrence of value0
or value1
, and returns true
if found. If not found, returns false
.
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+
+
+
+ Searches for an occurrence of value0
, value1
, or value2
, and returns true
if found. If not found, returns false
.
+ 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 an occurrence of any of the specified values
and returns true
if found. If not found, returns false
.
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for an occurrence of any of the specified values
and returns true
if found. If not found, returns false
.
+ The span to search.
+ The set of values to search for.
+
+
+
+ Searches for any value other than the specified .
+ The span to search.
+ The value to exclude from the search.
+
+
+ if any value other than is present in the span.
+ If all of the values are , returns .
+
+
+ Searches for any value other than or .
+ The span to search.
+ The value to exclude from the search.
+ The value to exclude from the search.
+
+
+ if any value other than or is present in the span.
+ If all of the values are or , returns .
+
+
+ Searches for any value other than , , or .
+ The span to search.
+ The value to exclude from the search.
+ The value to exclude from the search.
+ The value to exclude from the search.
+
+
+ if any value other than , , or is present in the span.
+ If all of the values are , , or , returns .
+
+
+ Searches for any value other than the specified .
+ The span to search.
+ The set of values to exclude from the search.
+
+
+ if any value other than those in is present in the span.
+ If all of the values are in , returns .
+
+
+ Searches for any value other than the specified .
+ The span to search.
+ The set of values to exclude from the search.
+
+
+ if any value other than those in is present in the span.
+ If all of the values are in , returns .
+
+
+ Searches for any value other than the specified value
.
+ The span to search.
+ The value to exclude from the search.
+
+
+ true
if any value other than value
is present in the span.
+If all of the values are value
, returns false
.
+
+
+ Searches for any value other than value0
or value1
.
+ The span to search.
+ The value to exclude from the search.
+ The value to exclude from the search.
+
+
+ true
if any value other than value0
or value1
is present in the span.
+If all of the values are value0
or value1
, returns false
.
+
+
+ Searches for any value other than value0
, value1
, or value2
.
+ The span to search.
+ The value to exclude from the search.
+ The value to exclude from the search.
+ The value to exclude from the search.
+
+
+ true
if any value other than value0
, value1
, or value2
is present in the span.
+If all of the values are value0
, value1
, or value2
, returns false
.
+
+
+ Searches for any value other than the specified values
.
+ The span to search.
+ The set of values to exclude from the search.
+
+
+ true
if any value other than those in values
is present in the span.
+If all of the values are in values
, returns false
.
+
+
+ Searches for any value other than the specified values
.
+ The span to search.
+ The set of values to exclude from the search.
+
+
+ true
if any value other than those in values
is present in the span.
+If all of the values are in values
, returns false
.
+
+
+ Searches for any value outside of the range between and , inclusive.
+ The span to search.
+ The lower bound, inclusive, of the excluded range.
+ The upper bound, inclusive, of the excluded range.
+
+
+ if any value other than those in the specified range is present in the span.
+ If all of the values are inside of the specified range, returns .
+
+
+ Searches for any value outside of the range between lowInclusive
and highInclusive
, inclusive.
+ The span to search.
+ The lower bound, inclusive, of the excluded range.
+ The upper bound, inclusive, of the excluded range.
+
+
+ true
if any value other than those in the specified range is present in the span.
+If all of the values are inside of the specified range, returns false
.
+
+
+ Searches for any value in the range between and , inclusive, and returns if found. If not found, returns .
+ The span to search.
+ The lower bound, inclusive, of the range for which to search.
+ The upper bound, inclusive, of the range for which to search.
+
+
+
+ Searches for any value in the range between lowInclusive
and highInclusive
, inclusive, and returns true
if found. If not found, returns false
.
+ The span to search.
+ The lower bound, inclusive, of the range for which to search.
+ The upper bound, inclusive, of the range for which to search.
+
+
+
+ Copies the contents of the array into a memory region.
+ The array to copy items from.
+ The memory to copy items into.
+ The type of the array.
+ The destination is shorter than the source array.
+
+
+ Copies the contents of the array into the span.
+ The array to copy items from.
+ The span to copy items into.
+ The type of the array.
+ The destination Span is shorter than the source array.
+
+
+ Counts the number of times the specified occurs in the .
+ The span to search.
+ The value for which to search.
+ The element type of the span.
+ The number of times was found in the .
+
+
+ Counts the number of times occurs in .
+ The span to search.
+ The value for which to search.
+ The element type of the span.
+ The number of times was found in .
+
+
+ Counts the number of times the specified occurs in the .
+ The span to search.
+ The value for which to search.
+ The element type of the span.
+ The number of times was found in the .
+
+
+ Counts the number of times the specified occurs in the .
+ The span to search.
+ The value for which to search.
+ The element type of the span.
+ The number of times was found in the .
+
+
+ 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.
+ An enumeration value that determines how and are compared.
+
+ if matches the end of ; otherwise, .
+
+
+ Determines whether the specified sequence appears at the end of a read-only span.
+ The source span.
+ The sequence to compare to the end of the source span.
+ The type of the span.
+
+ if matches the end of ; otherwise, .
+
+
+ Determines whether the specified sequence appears at the end of a span.
+ The source span.
+ The sequence to compare to the end of the source span.
+ The type of the span.
+
+ if matches the end of ; otherwise, .
+
+
+ Returns an enumeration of lines over the provided span.
+ A span containing the lines to enumerate.
+ An enumeration of lines.
+
+
+ Returns an enumeration of lines over the provided span.
+ A span containing the lines to enumerate.
+ An enumeration of lines.
+
+
+ Returns an enumeration of from the provided read-only span.
+ The source span.
+ A rune enumerator.
+
+
+ Returns an enumeration of from the provided span.
+ The source span.
+ A rune enumerator.
+
+
+ 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.
+ An enumeration value that determines how and are compared.
+
+ if equal, otherwise.
+
+
+ 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.
+ An enumeration value that determines how and are compared.
+ The index of the occurrence of the value in the span.
+
+
+ Searches for the specified value and returns the index of its first occurrence. Values are compared using IEquatable{T}.Equals(T).
+ The span to search.
+ The value to search for.
+ The type of the span and value.
+ The index of the occurrence of the value in the span. If not found, returns -1.
+
+
+ Searches for the specified sequence and returns the index of its first occurrence. Values are compared using IEquatable{T}.Equals(T).
+ The span to search.
+ The sequence to search for.
+ The type of the span and value.
+ The index of the occurrence of the value in the span. If not found, returns -1.
+
+
+ Searches for the specified value and returns the index of its first occurrence. Values are compared using IEquatable{T}.Equals(T).
+ The span to search.
+ The value to search for.
+ The type of the span and value.
+ The index of the occurrence of the value in the span. If not found, returns -1.
+
+
+ Searches for the specified sequence and returns the index of its first occurrence. Values are compared using IEquatable{T}.Equals(T).
+ The span to search.
+ The sequence to search for.
+ The type of the span and value.
+ The index of the occurrence of the value in the span. If not found, returns -1.
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator.
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ The type of the span and values.
+ The first index of the occurrence of any of the values in the span. If not found, returns -1.
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator.
+ 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.
+ The type of the span and values.
+ The first index of the occurrence of any of the values in the span. If not found, returns -1.
+
+
+ Searches for the first index of any of the specified values.
+ The span to search.
+ The set of values to search for.
+
+ The first index of any of the specified values, or -1 if none are found.
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator.
+ The span to search.
+ The set of values to search for.
+ The type of the span and values.
+ The first index of the occurrence of any of the values in the span. If not found, returns -1.
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator.
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ The type of the span and values.
+ The first index of the occurrence of any of the values in the span. If not found, returns -1.
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator.
+ 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.
+ The type of the span and values.
+ The first index of the occurrence of any of the values in the span. If not found, returns -1.
+
+
+ Searches for the first index of any of the specified values.
+ The span to search.
+ The set of values to search for.
+
+ The first index of any of the specified values, or -1 if none are found.
+
+
+ Searches for the first index of any of the specified values similar to calling IndexOf several times with the logical OR operator.
+ The span to search.
+ The set of values to search for.
+ The type of the span and values.
+ The first index of the occurrence of any of the values in the span. If not found, returns -1.
+
+
+ Searches for the first index of any value other than the specified .
+ The span to search.
+ A value to avoid.
+ The type of the span and values.
+ The index in the span of the first occurrence of any value other than .
+ If all of the values are , returns -1.
+
+
+ Searches for the first index of any value other than the specified or .
+ The span to search.
+ A value to avoid.
+ A value to avoid
+ The type of the span and values.
+ The index in the span of the first occurrence of any value other than and .
+ If all of the values are or , returns -1.
+
+
+ Searches for the first index of any value other than the specified , , or .
+ The span to search.
+ A value to avoid.
+ A value to avoid
+ A value to avoid
+ The type of the span and values.
+ The index in the span of the first occurrence of any value other than , , and .
+ If all of the values are , , and , returns -1.
+
+
+ Searches for the first index of any value other than the specified .
+ The span to search.
+ The values to exclude from the search.
+ The type of the span and values.
+ The index in the span of the first occurrence of any value other than those in .
+ If all of the values are in , returns -1.
+
+
+ Searches for the first index of any value other than the specified .
+ The span to search.
+ The values to avoid.
+ The type of the span and values.
+ The index in the span of the first occurrence of any value other than those in .
+ If all of the values are in , returns -1.
+
+
+ Searches for the first index of any value other than the specified .
+ The span to search.
+ A value to avoid.
+ The type of the span and values.
+ The index in the span of the first occurrence of any value other than .
+ If all of the values are , returns -1.
+
+
+ Searches for the first index of any value other than the specified or .
+ The span to search.
+ A value to avoid.
+ A value to avoid
+ The type of the span and values.
+ The index in the span of the first occurrence of any value other than and .
+ If all of the values are or , returns -1.
+
+
+ Searches for the first index of any value other than the specified , , or .
+ The span to search.
+ A value to avoid.
+ A value to avoid
+ A value to avoid
+ The type of the span and values.
+ The index in the span of the first occurrence of any value other than , , and .
+ If all of the values are , , and , returns -1.
+
+
+ Searches for the first index of any value other than the specified .
+ The span to search.
+ The values to exclude from the search.
+ The type of the span and values.
+ The index in the span of the first occurrence of any value other than those in .
+ If all of the values are in , returns -1.
+
+
+ Searches for the first index of any value other than the specified .
+ The span to search.
+ The values to avoid.
+ The type of the span and values.
+ The index in the span of the first occurrence of any value other than those in .
+ If all of the values are in , returns -1.
+
+
+ Searches for the first index of any value outside of the range between and , inclusive.
+ The span to search.
+ The lower bound, inclusive, of the excluded range.
+ The upper bound, inclusive, of the excluded range.
+ The type of the span and values.
+ The index in the span of the first occurrence of any value outside of the specified range.
+ If all of the values are inside of the specified range, returns -1.
+
+
+ Searches for the first index of any value outside of the range between lowInclusive
and highInclusive
, inclusive.
+ The span to search.
+ The lower bound, inclusive, of the excluded range.
+ The upper bound, inclusive, of the excluded range.
+ The type of the span and values.
+ The index in the span of the first occurrence of any value outside of the specified range.
+ If all of the values are inside of the specified range, returns -1.
+
+
+ Searches for the first index of any value in the range between and , inclusive.
+ The span to search.
+ The lower bound, inclusive, of the range for which to search.
+ The upper bound, inclusive, of the range for which to search.
+ The type of the span and values.
+ The index in the span of the first occurrence of any value in the specified range.
+ If all of the values are outside of the specified range, returns -1.
+
+
+ Searches for the first index of any value in the range between lowInclusive
and highInclusive
, inclusive.
+ The span to search.
+ The lower bound, inclusive, of the range for which to search.
+ The upper bound, inclusive, of the range for which to search.
+ The type of the span and values.
+ The index in the span of the first occurrence of any value in the specified range.
+ If all of the values are outside of the specified range, returns -1.
+
+
+ Indicates whether the specified span contains only whitespace characters.
+ The source span.
+
+ if the span contains only whitespace characters, otherwise.
+
+
+ Reports the zero-based index of the last occurrence of the specified in the current .
+ The source span.
+ The value to seek within the source span.
+ An enumeration value that determines how and are compared.
+ The index of the last occurrence of the value in the span.
+
+
+ Searches for the specified value and returns the index of its last occurrence. Values are compared using IEquatable{T}.Equals(T).
+ The span to search.
+ The value to search for.
+ The type of the span and value.
+ The index of the last occurrence of the value in the span. If not found, returns -1.
+
+
+ Searches for the specified sequence and returns the index of its last occurrence. Values are compared using IEquatable{T}.Equals(T).
+ The span to search.
+ The sequence to search for.
+ The type of the span and value.
+ The index of the last occurrence of the value in the span. If not found, returns -1.
+
+
+ Searches for the specified value and returns the index of its last occurrence. Values are compared using IEquatable{T}.Equals(T).
+ The span to search.
+ The value to search for.
+ The type of the span and value.
+ The index of the last occurrence of the value in the span. If not found, returns -1.
+
+
+ Searches for the specified sequence and returns the index of its last occurrence. Values are compared using IEquatable{T}.Equals(T).
+ The span to search.
+ The sequence to search for.
+ The type of the span and value.
+ The index of the last occurrence of the value in the span. If not found, returns -1.
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator.
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ The type of the span and values.
+ The index of the last occurrence of any of the values in the span. If not found, returns -1.
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator.
+ 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.
+ The type of the span and values.
+ The index of the last occurrence of any of the values in the span. If not found, returns -1.
+
+
+ Searches for the last index of any of the specified values.
+ The span to search.
+ The set of values to search for.
+
+ The last index of any of the specified values, or -1 if none are found.
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator.
+ The span to search.
+ The set of values to search for.
+ The type of the span and values.
+ The index of the last occurrence of any of the values in the span. If not found, returns -1.
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator.
+ The span to search.
+ One of the values to search for.
+ One of the values to search for.
+ The type of the span and values.
+ The index of the last occurrence of any of the values in the span. If not found, returns -1.
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator.
+ 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.
+ The type of the span and values.
+ The index of the last occurrence of any of the values in the span. If not found, returns -1.
+
+
+ Searches for the last index of any of the specified values.
+ The span to search.
+ The set of values to search for.
+
+ The last index of any of the specified values, or -1 if none are found.
+
+
+ Searches for the last index of any of the specified values similar to calling LastIndexOf several times with the logical OR operator.
+ The span to search.
+ The set of values to search for.
+ The type of the span and values.
+ The index of the last occurrence of any of the values in the span. If not found, returns -1.
+
+
+ Searches for the last index of any value other than the specified .
+ The span to search.
+ A value to avoid.
+ The type of the span and values.
+ The index in the span of the last occurrence of any value other than .
+ If all of the values are , returns -1.
+
+
+ Searches for the last index of any value other than the specified or .
+ The span to search.
+ A value to avoid.
+ A value to avoid
+ The type of the span and values.
+ The index in the span of the last occurrence of any value other than and .
+ If all of the values are or , returns -1.
+
+
+ Searches for the last index of any value other than the specified , , or .
+ The span to search.
+ A value to avoid.
+ A value to avoid
+ A value to avoid
+ The type of the span and values.
+ The index in the span of the last occurrence of any value other than , , and .
+ If all of the values are , , and , returns -1.
+
+
+ Searches for the last index of any value other than the specified .
+ The span to search.
+ The values to exclude from the search.
+ The type of the span and values.
+ The index in the span of the last occurrence of any value other than those in .
+ If all of the values are in , returns -1.
+
+
+ Searches for the last index of any value other than the specified .
+ The span to search.
+ The values to avoid.
+ The type of the span and values.
+ The index in the span of the first occurrence of any value other than those in .
+ If all of the values are in , returns -1.
+
+
+ Searches for the last index of any value other than the specified .
+ The span to search.
+ A value to avoid.
+ The type of the span and values.
+ The index in the span of the last occurrence of any value other than .
+ If all of the values are , returns -1.
+
+
+ Searches for the last index of any value other than the specified or .
+ The span to search.
+ A value to avoid.
+ A value to avoid
+ The type of the span and values.
+ The index in the span of the last occurrence of any value other than and .
+ If all of the values are or , returns -1.
+
+
+ Searches for the last index of any value other than the specified , , or .
+ The span to search.
+ A value to avoid.
+ A value to avoid
+ A value to avoid
+ The type of the span and values.
+ The index in the span of the last occurrence of any value other than , , and .
+ If all of the values are , , and , returns -1.
+
+
+ Searches for the last index of any value other than the specified .
+ The span to search.
+ The values to exclude from the search.
+ The type of the span and values.
+ The index in the span of the last occurrence of any value other than those in .
+ If all of the values are in , returns -1.
+
+
+ Searches for the last index of any value other than the specified .
+ The span to search.
+ The values to avoid.
+ The type of the span and values.
+ The index in the span of the last occurrence of any value other than those in .
+ If all of the values are in , returns -1.
+
+
+ Searches for the last index of any value outside of the range between and , inclusive.
+ The span to search.
+ The lower bound, inclusive, of the excluded range.
+ The upper bound, inclusive, of the excluded range.
+ The type of the span and values.
+ The index in the span of the last occurrence of any value outside of the specified range.
+ If all of the values are inside of the specified range, returns -1.
+
+
+ Searches for the last index of any value outside of the range between lowInclusive
and highInclusive
, inclusive.
+ The span to search.
+ The lower bound, inclusive, of the excluded range.
+ The upper bound, inclusive, of the excluded range.
+ The type of the span and values.
+ The index in the span of the last occurrence of any value outside of the specified range.
+ If all of the values are inside of the specified range, returns -1.
+
+
+ Searches for the last index of any value in the range between and , inclusive.
+ The span to search.
+ The lower bound, inclusive, of the range for which to search.
+ The upper bound, inclusive, of the range for which to search.
+ The type of the span and values.
+ The index in the span of the last occurrence of any value in the specified range.
+ If all of the values are outside of the specified range, returns -1.
+
+
+ Searches for the last index of any value in the range between lowInclusive
and highInclusive
, inclusive.
+ The span to search.
+ The lower bound, inclusive, of the range for which to search.
+ The upper bound, inclusive, of the range for which to search.
+ The type of the span and values.
+ The index in the span of the last occurrence of any value in the specified range.
+ If all of the values are outside of the specified range, returns -1.
+
+
+ Determines whether two read-only sequences overlap in memory.
+ The first sequence.
+ The second sequence.
+ The type of elements in the read-only sequence.
+
+ if the two sequences overlap; otherwise, .
+
+
+ Determines whether two read-only sequences overlap in memory and outputs the element offset.
+ The first sequence.
+ The second sequence.
+ When the method returns, contains the offset between and .
+ The type of elements in the span.
+
+ if the two sequences overlap; otherwise, .
+
+
+ Determines whether a span and a read-only span overlap in memory.
+ The span to compare.
+ The read-only span to compare.
+ The type of elements in the span.
+
+ if the two sequences overlap; otherwise, .
+
+
+ Determines whether a span and a read-only span overlap in memory and outputs the element offset.
+ The first sequence to compare.
+ The second sequence to compare.
+ When the method returns, contains the offset between and .
+ The type of elements in the span.
+
+ if the two sequences overlap; otherwise, .
+
+
+ Copies to , replacing all occurrences of with .
+ The span to copy.
+ The span into which the copied and replaced values should be written.
+ The value to be replaced with .
+ The value to replace all occurrences of .
+ The type of the elements in the spans.
+ The span is shorter than the span.
+ -or-
+ and overlap but don't refer to the same starting location.
+
+
+ Replaces all occurrences of with .
+ The span in which the elements should be replaced.
+ The value to be replaced with .
+ The value to replace all occurrences of .
+ The type of the elements in the span.
+
+
+ Reverses the sequence of the elements in the entire span.
+ The span to reverse.
+ The type of elements in the span.
+
+
+ Determines the relative order of two read-only sequences by comparing their elements using IComparable{T}.CompareTo(T).
+ The first sequence to compare.
+ The second sequence to compare.
+ The type of elements in the sequence.
+ A signed integer that indicates the relative order of and :
- If less than 0, precedes than .
- If 0, equals .
- If greater than 0, follows .
+
+
+ Determines the relative order of a span and a read-only span by comparing the elements using IComparable{T}.CompareTo(T).
+ The span to compare.
+ The read-only span to compare.
+ The type of elements in the span.
+ A signed integer that indicates the relative order of and :
- If less than 0, precedes than .
- If 0, equals .
- If greater than 0, follows .
+
+
+ Determines whether two read-only sequences are equal by comparing the elements using IEquatable{T}.Equals(T).
+ The first sequence to compare.
+ The second sequence to compare.
+ The type of elements in the sequence.
+
+ if the two sequences are equal; otherwise, .
+
+
+ Determines whether two sequences are equal by comparing the elements using an .
+ The first sequence to compare.
+ The second sequence to compare.
+ The implementation to use when comparing elements, or to use the default for the type of an element.
+ The type of elements in the sequence.
+
+ if the two sequences are equal; otherwise, .
+
+
+ Determines whether a span and a read-only span are equal by comparing the elements using IEquatable{T}.Equals(T).
+ The span to compare.
+ The read-only span to compare.
+ The type of elements in the sequence.
+
+ if the two sequences are equal; otherwise, .
+
+
+ Determines whether two sequences are equal by comparing the elements using an .
+ The first sequence to compare.
+ The second sequence to compare.
+ The implementation to use when comparing elements, or to use the default for the type of an element.
+ The type of elements in the sequence.
+
+ if the two sequences are equal; otherwise, .
+
+
+ Sorts the elements in the entire using the implementation of each element of the .
+ The span of memory to sort.
+ The type of the elements of the span.
+ One or more elements in do not implement the interface.
+
+
+ Sorts the elements in the entire using the specified .
+ The span of memory to sort.
+ The method to use when comparing elements.
+ The type of the elements of the span.
+
+ is .
+
+
+ Sorts the elements in the entire using the .
+ The span of memory to sort.
+ The method to use when comparing elements, or to use each element's interface implementation.
+ The type of the elements of the span.
+ The type of the comparer to use to compare elements.
+
+ is , and one or more elements in do not implement the interface.
+ The implementation of caused an error during the sort.
+
+
+ Sorts a pair of spans (one containing the keys and the other containing the corresponding items) based on the keys in the first using the implementation of each key.
+ The span that contains the keys to sort.
+ The span that contains the items that correspond to the keys in .
+ The type of the elements of the key span.
+ The type of the elements of the items span.
+ The length of isn't equal to the length of .
+ One or more elements in do not implement the interface.
+
+
+ Sorts a pair of spans (one containing the keys and the other containing the corresponding items) based on the keys in the first using the specified comparison.
+ The span that contains the keys to sort.
+ The span that contains the items that correspond to the keys in .
+ The to use when comparing elements.
+ The type of the elements of the key span.
+ The type of the elements of the items span.
+
+ is .
+ The length of isn't equal to the length of .
+
+
+ Sorts a pair of spans (one containing the keys and the other containing the corresponding items) based on the keys in the first using the specified comparer.
+ The span that contains the keys to sort.
+ The span that contains the items that correspond to the keys in .
+ The implementation to use when comparing elements, or to use the interface implementation of each element.
+ The type of the elements of the key span.
+ The type of the elements of the items span.
+ The type of the comparer to use to compare elements.
+ The length of isn't equal to the length of .
+
+ is , and one or more elements in do not implement the interface.
+
+
+ Parses the source for the specified , populating the span with instances representing the regions between the separators.
+ The source span to parse.
+ The destination span into which the resulting ranges are written.
+ A character that delimits the regions in this instance.
+ A bitwise combination of the enumeration values that specifies whether to trim whitespace and include empty ranges.
+ The number of ranges written into .
+
+
+ Parses the source for the specified , populating the span with instances representing the regions between the separators.
+ The source span to parse.
+ The destination span into which the resulting ranges are written.
+ A character that delimits the regions in this instance.
+ A bitwise combination of the enumeration values that specifies whether to trim whitespace and include empty ranges.
+ The number of ranges written into .
+
+
+ Parses the source for one of the specified , populating the span with instances representing the regions between the separators.
+ The source span to parse.
+ The destination span into which the resulting ranges are written.
+ Any number of characters that may delimit the regions in this instance. If empty, all Unicode whitespace characters are used as the separators.
+ A bitwise combination of the enumeration values that specifies whether to trim whitespace and include empty ranges.
+ The number of ranges written into .
+
+
+ Parses the source for one of the specified , populating the span with instances representing the regions between the separators.
+ The source span to parse.
+ The destination span into which the resulting ranges are written.
+ Any number of strings that may delimit the regions in this instance. If empty, all Unicode whitespace characters are used as the separators.
+ A bitwise combination of the enumeration values that specifies whether to trim whitespace and include empty ranges.
+ The number of ranges written into .
+
+
+ Determines whether a read-only character span begins with a specified value when compared using a specified value.
+ The source span.
+ The sequence to compare to the beginning of the source span.
+ An enumeration value that determines how and are compared.
+
+ if matches the beginning of ; otherwise, .
+
+
+ Determines whether a specified sequence appears at the start of a read-only span.
+ The read-only character span to search.
+ A sequence to search for at the start of .
+ The type of elements in the span.
+
+ if matches the beginning of ; otherwise, .
+
+
+ Determines whether a specified sequence appears at the start of a span.
+ The span to search.
+ A sequence to search for at the start of .
+ The type of the elements in the span.
+
+ if matches the beginning of ; otherwise, .
+
+
+ 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.
+ The source and destination buffers overlap.
+ The number of characters written into the destination span. If the destination is too small, returns -1.
+
+
+ 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.
+ The source and destination buffers overlap.
+ The number of characters written into the destination span. If the destination is too small, returns -1.
+
+
+ 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.
+ The source and destination buffers overlap.
+ The number of characters written into the destination span. If the destination is too small, returns -1.
+
+
+ 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.
+ The source and destination buffers overlap.
+ The number of characters written into the destination span. If the destination is too small, returns -1.
+
+
+ Removes all leading and trailing whitespace characters from a character memory region.
+ The source memory from which the characters are removed.
+ The trimmed character memory region.
+
+
+ Removes all leading and trailing whitespace characters from a read-only character memory region.
+ The source memory from which the characters are removed.
+ The trimmed character memory region.
+
+
+ Removes all leading and trailing whitespace characters from a read-only character span.
+ The source span from which the characters are removed.
+ The trimmed read-only character span.
+
+
+ Removes all leading and trailing occurrences of a specified character from a read-only character span.
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+ The trimmed read-only character span.
+
+
+ Removes all leading and trailing occurrences of a set of characters specified in a read-only span from a read-only character span.
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ The trimmed read-only character span.
+
+
+ Removes all leading and trailing whitespace characters from a character span.
+ The source span from which the characters are removed.
+ The trimmed character span.
+
+
+ Removes all leading and trailing occurrences of a specified element from a memory region.
+ The source memory from which the element is removed.
+ The specified element to look for and remove.
+ The type of the elements in the memory region.
+ The trimmed memory region.
+
+
+ Removes all leading and trailing occurrences of a set of elements specified in a read-only span from a memory region.
+ The source memory from which the elements are removed.
+ The span which contains the set of elements to remove.
+ The type of the elements in the memory region.
+ The trimmed memory region.
+
+
+ Removes all leading and trailing occurrences of a specified element from a read-only memory region.
+ The source memory from which the element is removed.
+ The specified element to look for and remove.
+ The type of the elements in the read-only memory region.
+ The trimmed read-only memory region.
+
+
+ Removes all leading and trailing occurrences of a set of elements specified in a read-only span from a read-only memory region.
+ The source memory from which the elements are removed.
+ The span which contains the set of elements to remove.
+ The type of the elements in the read-only memory region.
+ The trimmed read-only memory region.
+
+
+ Removes all leading and trailing occurrences of a specified element from a read-only span.
+ The source span from which the element is removed.
+ The specified element to look for and remove.
+ The type of the elements in the read-only span.
+ The trimmed read-only span.
+
+
+ Removes all leading and trailing occurrences of a set of elements specified in a read-only span from a read-only span.
+ The source span from which the elements are removed.
+ The span which contains the set of elements to remove.
+ The type of the elements in the read-only span.
+ The trimmed read-only span.
+
+
+ Removes all leading and trailing occurrences of a specified element from a span.
+ The source span from which the element is removed.
+ The specified element to look for and remove.
+ The type of the elements in the span.
+ The trimmed span.
+
+
+ Removes all leading and trailing occurrences of a set of elements specified in a read-only span from a span.
+ The source span from which the elements are removed.
+ The span which contains the set of elements to remove.
+ The type of the elements in the span.
+ The trimmed span.
+
+
+ Removes all trailing whitespace characters from a character memory region.
+ The source memory from which the characters are removed.
+ The trimmed character memory region.
+
+
+ Removes all trailing whitespace characters from a read-only character memory region.
+ The source memory from which the characters are removed.
+ The trimmed read-only character span.
+
+
+ Removes all trailing whitespace characters from a read-only character span.
+ The source span from which the characters are removed.
+ The trimmed read-only character span.
+
+
+ Removes all trailing occurrences of a specified character from a read-only span.
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+ The trimmed read-only character span.
+
+
+ Removes all trailing occurrences of a set of characters specified in a read-only span from a read-only character span.
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ The trimmed read-only character span.
+
+
+ Removes all trailing whitespace characters from a character span.
+ The source span from which the characters are removed.
+ The trimmed character span.
+
+
+ Removes all trailing occurrences of a specified element from a character memory region.
+ The source memory from which the element is removed.
+ The specified element to look for and remove.
+ The type of the elements in the memory region.
+ The trimmed memory region.
+
+
+ Removes all trailing occurrences of a set of elements specified in a read-only span from a memory region.
+ The source memory from which the elements are removed.
+ The span which contains the set of elements to remove.
+ The type of the elements in the memory region.
+ The trimmed memory region.
+
+
+ Removes all trailing occurrences of a specified element from a read-only memory region.
+ The source memory from which the element is removed.
+ The specified element to look for and remove.
+ The type of the elements in the read-only memory region.
+ The trimmed read-only memory region.
+
+
+ Removes all trailing occurrences of a set of elements specified in a read-only span from a read-only memory region.
+ The source memory from which the elements are removed.
+ The span which contains the set of elements to remove.
+ The type of the elements in the read-only memory region.
+ The trimmed read-only memory region.
+
+
+ Removes all trailing occurrences of a specified element from a read-only span.
+ The source span from which the element is removed.
+ The specified element to look for and remove.
+ The type of the elements in the read-only span.
+ The trimmed read-only span.
+
+
+ Removes all trailing occurrences of a set of elements specified in a read-only span from a read-only span.
+ The source span from which the elements are removed.
+ The span which contains the set of elements to remove.
+ The type of the elements in the read-only span.
+ The trimmed read-only span.
+
+
+ Removes all trailing occurrences of a specified element from a span.
+ The source span from which the element is removed.
+ The specified element to look for and remove.
+ The type of the elements in the span.
+ The trimmed span.
+
+
+ Removes all trailing occurrences of a set of elements specified in a read-only span from a span.
+ The source span from which the elements are removed.
+ The span which contains the set of elements to remove.
+ The type of the elements in the span.
+ The trimmed span.
+
+
+ Removes all leading whitespace characters from a memory region.
+ The source memory from which the characters are removed.
+ The trimmed character memory region.
+
+
+ Removes all leading whitespace characters from a read-only memory region.
+ The source memory from which the characters are removed.
+ The trimmed read-only character memory region.
+
+
+ Removes all leading whitespace characters from a read-only span.
+ The source span from which the characters are removed.
+ The trimmed read-only character span.
+
+
+ Removes all leading occurrences of a specified character from the span.
+ The source span from which the character is removed.
+ The specified character to look for and remove.
+ The trimmed read-only character span.
+
+
+ Removes all leading occurrences of a set of characters specified in a read-only span from the span.
+ The source span from which the characters are removed.
+ The span which contains the set of characters to remove.
+ The trimmed read-only character span.
+
+
+ Removes all leading whitespace characters from a span.
+ The source span from which the characters are removed.
+ The trimmed character span.
+
+
+ Removes all leading occurrences of a specified element from a memory region.
+ The source memory region from which the element is removed.
+ The specified element to look for and remove.
+ The type of the elements in the memory region.
+ The trimmed memory region.
+
+
+ Removes all leading occurrences of a set of elements specified in a read-only span from a memory region.
+ The source memory from which the elements are removed.
+ The span which contains the set of elements to remove.
+ The type of the elements in the memory region.
+ The trimmed memory region.
+
+
+ Removes all leading occurrences of a specified element from a memory region.
+ The source memory from which the element is removed.
+ The specified element to look for and remove.
+ The type of the elements in the read-only memory region.
+ The trimmed read-only memory region.
+
+
+ Removes all leading occurrences of a set of elements specified in a read-only span from a memory region.
+ The source memory from which the elements are removed.
+ The span which contains the set of elements to remove.
+ The type of the elements in the read-only memory region.
+ The trimmed read-only memory region.
+
+
+ Removes all leading occurrences of a specified element from the span.
+ The source span from which the element is removed.
+ The specified element to look for and remove.
+ The type of the elements in the read-only span.
+ The trimmed read-only span.
+
+
+ Removes all leading occurrences of a set of elements specified in a read-only span from the span.
+ The source span from which the elements are removed.
+ The span which contains the set of elements to remove.
+ The type of the elements in the read-only span.
+ The trimmed read-only span.
+
+
+ Removes all leading occurrences of a specified element from the span.
+ The source span from which the element is removed.
+ The specified element to look for and remove.
+ The type of the elements in the span.
+ The trimmed span.
+
+
+ Removes all leading occurrences of a set of elements specified in a read-only span from the span.
+ The source span from which the elements are removed.
+ The span which contains the set of elements to remove.
+ The type of the elements in the span.
+ The trimmed span.
+
+
+ Writes the specified interpolated string to the character span.
+ The span to which the interpolated string should be formatted.
+ An object that supplies culture-specific formatting information.
+ The interpolated string, passed by reference.
+ When this method returns, contains the number of characters written to the span.
+
+ if the entire interpolated string could be formatted successfully; otherwise, .
+
+
+ Writes the string to the character span, substituting the format item or items with the string representation of the corresponding arguments.
+ The span to which the string should be formatted.
+ An object that supplies culture-specific formatting information.
+ A .
+ When this method returns, contains the number of characters written to the span.
+ An array of objects to format.
+
+ or is .
+ The index of a format item is greater than or equal to the number of supplied arguments.
+
+ if the entire interpolated string could be formatted successfully; otherwise, .
+
+
+ Writes the string to the character span, substituting the format item or items with the string representation of the corresponding arguments.
+ The span to which the string should be formatted.
+ An object that supplies culture-specific formatting information.
+ A .
+ When this method returns, contains the number of characters written to the span.
+ A span of objects to format.
+
+ is .
+ The index of a format item is greater than or equal to the number of supplied arguments.
+
+ if the entire interpolated string could be formatted successfully; otherwise, .
+
+
+ Writes the specified interpolated string to the character span.
+ The span to which the interpolated string should be formatted.
+ The interpolated string, passed by reference.
+ When this method returns, contains the number of characters written to the span.
+
+ if the entire interpolated string could be formatted successfully; otherwise, .
+
+
+ Writes the string to the character span, substituting the format item or items with the string representation of the corresponding arguments.
+ The span to which the string should be formatted.
+ An object that supplies culture-specific formatting information.
+ A .
+ When this method returns, contains the number of characters written to the span.
+ The object to format.
+ The type of the object to format.
+
+ is .
+ The index of a format item is greater than or equal to the number of supplied arguments.
+
+ if the entire interpolated string could be formatted successfully; otherwise, .
+
+
+ Writes the string to the character span, substituting the format item or items with the string representation of the corresponding arguments.
+ The span to which the string should be formatted.
+ An object that supplies culture-specific formatting information.
+ A .
+ When this method returns, contains the number of characters written to the span.
+ The first object to format.
+ The second object to format.
+ The type of the first object to format.
+ The type of the second object to format.
+
+ is .
+ The index of a format item is greater than or equal to the number of supplied arguments.
+
+ if the entire interpolated string could be formatted successfully; otherwise, .
+
+
+ Writes the string to the character span, substituting the format item or items with the string representation of the corresponding arguments.
+ The span to which the string should be formatted.
+ An object that supplies culture-specific formatting information.
+ A .
+ When this method returns, contains the number of characters written to the span.
+ The first object to format.
+ The second object to format.
+ The third object to format.
+ The type of the first object to format.
+ The type of the second object to format.
+ The type of the third object to format.
+
+ is .
+ The index of a format item is greater than or equal to the number of supplied arguments.
+
+ if the entire interpolated string could be formatted successfully; otherwise, .
+
+
+ Provides a handler used by the language compiler to format interpolated strings into character spans.
+
+
+ Creates a handler used to write an interpolated string into a span of characters.
+ The number of constant characters outside of interpolation expressions in the interpolated string.
+ The number of interpolation expressions in the interpolated string.
+ The destination buffer.
+ When this method returns, contains if the destination may be long enough to support the formatting, or if it won't be.
+
+
+ Creates a handler used to write an interpolated string into a span of characters.
+ The number of constant characters outside of interpolation expressions in the interpolated string.
+ The number of interpolation expressions in the interpolated string.
+ The destination buffer.
+ An object that supplies culture-specific formatting information.
+ When this method returns, contains if the destination may be long enough to support the formatting, or if it won't be.
+
+
+ Writes the specified value to the handler.
+ The value to write.
+ The minimum number of characters that should be written for this value. A negative value indicates left-aligned, and the required minimum is the absolute value.
+ The format string.
+
+ on success; otherwise.
+
+
+ Writes the specified value to the handler.
+ The value to write.
+
+ if the operation failed; otherwise.
+
+
+ Writes the specified value to the handler.
+ The value to write.
+ >The minimum number of characters that should be written for this value. If the value is negative, it indicates left-aligned and the required minimum is the absolute value.
+ The format string.
+
+ if the operation failed; otherwise.
+
+
+ Writes the specified value to the handler.
+ The value to write.
+
+ on success; otherwise.
+
+
+ Writes a specified value to the handler using a specified format string.
+ The value to write.
+ The minimum number of characters that should be written for this value. A negative value indicates left-aligned, and the required minimum is the absolute value.
+ The format string.
+
+ on success; otherwise.
+
+
+ Writes the specified value to the handler.
+ The value to write.
+ The type of the value to write.
+
+ on success; otherwise.
+
+
+ Writes the specified value to the handler.
+ The value to write.
+ The minimum number of characters that should be written for this value.A negative value indicates left-aligned, and the required minimum is the absolute value.
+ The type of the value to write.
+
+ if the operation failed; otherwise.
+
+
+ Writes a specified value to the handler using a specified format string.
+ The value to write.
+ The minimum number of characters that should be written for this value. A negative value indicates left-aligned, and the required minimum is the absolute value.
+ The format string.
+ The type of the value to write.
+
+ on success; otherwise.
+
+
+ Writes a specified value to the handler using a specified format string.
+ The value to write.
+ The format string.
+ The type of the value to write.
+
+ on success; otherwise.
+
+
+ Writes the specified string to the handler.
+ The string to write.
+
+ if the value could be formatted to the span; otherwise, .
+
+
+ Provides methods to interoperate with , , , and .
+
+
+ Casts a of one primitive type, , to a .
+ The source slice to convert.
+ The type of items in the read-only span.
+
+ contains managed object references.
+ The property of the new would exceed Int32.MaxValue
+ A read-only span of type .
+
+
+ Casts a of one primitive type, , to a .
+ The source slice to convert.
+ The type of items in the span.
+
+ contains managed object references.
+ The property of the new would exceed Int32.MaxValue
+ A span of type .
+
+
+ Creates a instance from a .
+ The read-only memory buffer.
+ The type of items in the read-only memory buffer.
+ A memory block that represents the same memory as the .
+
+
+ Reinterprets a read-only span of bytes as a read-only reference to the structure of type .
+ The read-only span to reinterpret.
+ The type of the returned reference.
+
+ contains managed object references.
+ The read-only reference to the structure of type .
+
+
+ Reinterprets a span of bytes as a reference to the structure of type .
+ The span to reinterpret.
+ The type of the returned reference.
+
+ contains managed object references.
+ The reference to the structure of type .
+
+
+ Casts a read-only span of one primitive type to a read-only span of another primitive type.
+ The source slice to convert.
+ The type of the source span.
+ The type of the target span.
+
+ or contains managed object references.
+ The property of the new would exceed .
+ The converted read-only span.
+
+
+ Casts a span of one primitive type to a span of another primitive type.
+ The source slice to convert.
+ The type of the source span.
+ The type of the target span.
+
+ or contains managed object references.
+ The property of the new would exceed .
+ The converted span.
+
+
+ Creates a new memory buffer over the portion of the pre-pinned target array beginning at the index and consisting of items.
+ The pre-pinned source array.
+ The index of at which to begin the memory block.
+ The number of items to include in the memory block.
+ The type of the array.
+
+ is covariant, and the type of is not exactly .
+ The or the end index is not in the range of 0 to .
+ A block of memory over the specified elements of . If is , or if and are 0, the method returns a instance of zero.
+
+
+ Creates a new read-only span over a portion of a regular managed object.
+ A reference to data.
+ The number of elements that contains.
+ The type of the data items.
+ A read-only span.
+
+
+ Creates a new read-only span for a null-terminated sequence of bytes.
+ The pointer to the null-terminated sequence of bytes.
+ The property of the new would exceed Int32.MaxValue.
+ A read-only span representing the specified sequence of bytes, or an empty span if the pointer is .
+
+
+ Creates a new read-only span for a null-terminated string.
+ The pointer to the null-terminated string of characters.
+ The property of the new would exceed Int32.MaxValue.
+ A read-only span representing the specified null-terminated string, or an empty span if the pointer is .
+
+
+ Creates a new span over a portion of a regular managed object.
+ A reference to data.
+ The number of elements that contains.
+ The type of the data items.
+ A span.
+
+
+ Returns a reference to the 0th element of . If the array is empty, returns a reference to where the 0th element would have been stored. Such a reference may be used for pinning but must never be dereferenced.
+ The array to analyze.
+
+ is .
+ A reference to the 0th element of .
+
+
+ Returns a reference to the 0th element of . If the array is empty, returns a reference to where the 0th element would have been stored. Such a reference may be used for pinning but must never be dereferenced.
+ The array to analyze.
+ The type of the array elements.
+
+ is .
+ Reference to the 0th element in .
+
+
+ Returns a reference to the element of the read-only span at index 0.
+ The read-only span from which the reference is retrieved.
+ The type of items in the span.
+ A reference to the element at index 0.
+
+
+ Returns a reference to the element of the span at index 0.
+ The span from which the reference is retrieved.
+ The type of items in the span.
+ A reference to the element at index 0.
+
+
+ Reads a structure of type out of a read-only span of bytes.
+ A read-only span.
+ The type of the item to retrieve from the read-only span.
+
+ contains managed object references.
+
+ is smaller than 's length in bytes.
+ The structure retrieved from the read-only span.
+
+
+ Creates an view of the given read-only memory buffer.
+ A read-only memory buffer.
+ The type of the items in the read-only memory buffer.
+ An enumerable view of .
+
+
+ Tries to get an array segment from the underlying memory buffer. The return value indicates the success of the operation.
+ A read-only memory buffer.
+ When this method returns, contains the array segment retrieved from the underlying read-only memory buffer. If the method fails, the method returns a default array segment.
+ The type of items in the read-only memory buffer.
+
+ if the method call succeeds; otherwise.
+
+
+ Tries to retrieve a from the underlying read-only memory buffer.
+ The read-only memory buffer for which to get the memory manager.
+ When the method returns, the manager of .
+ The type of the items in the read-only memory buffer.
+ The type of the to retrieve.
+
+ if the method retrieved the memory manager; otherwise, .
+
+
+ Tries to retrieve a , start index, and length from the underlying read-only memory buffer.
+ The read-only memory buffer for which to get the memory manager.
+ When the method returns, the manager of .
+ When the method returns, the offset from the start of the that the represents.
+ When the method returns, the length of the that the represents.
+ The type of the items in the read-only memory buffer.
+ The type of the to retrieve.
+
+ if the method succeeded; otherwise, .
+
+
+ Tries to get the underlying string from a .
+ Read-only memory containing a block of characters.
+ When the method returns, the string contained in the memory buffer.
+ The starting location in .
+ The number of characters in .
+
+ if the method successfully retrieves the underlying string; otherwise, .
+
+
+ Tries to read a structure of type from a read-only span of bytes.
+ A read-only span of bytes.
+ When the method returns, an instance of .
+ The type of the structure to retrieve.
+
+ contains managed object references.
+
+ if the method succeeds in retrieving an instance of the structure; otherwise, .
+
+
+ Tries to write a structure of type into a span of bytes.
+ The span of bytes to contain the structure.
+ The structure to be written to the span.
+ The type of the structure.
+
+ contains managed object references.
+
+ if the write operation succeeded; otherwise, . The method returns if the span is too small to contain .
+
+
+ Writes a structure of type into a span of bytes.
+ The span of bytes to contain the structure.
+ The structure to be written to the span.
+ The type of the structure.
+
+ contains managed object references.
+
+ is too small to contain .
+
+
+ Provides a collection of methods for interoperating with .
+
+
+ Gets an array segment from the underlying read-only sequence.
+ The read-only sequence from which the array segment will be retrieved.
+ The returned array segment.
+ The type of the read-only sequence.
+
+ if it's possible to retrieve the array segment; otherwise, and a default array segment is returned.
+
+
+ Attempts to retrieve a read-only memory from the specified read-only sequence.
+ The read-only sequence from which the memory will be retrieved.
+ The returned read-only memory of type T.
+ The type of the read-only sequence.
+
+ if the read-only memory can be retrieved; otherwise, .
+
+
+ Attempts to retrieve a read-only sequence segment from the specified read-only sequence.
+ The read-only sequence from which the read-only sequence segment will be retrieved.
+ The beginning read-only sequence segment.
+ The initial position.
+ The ending read-only sequence segment.
+ The final position.
+ The type of the read-only sequence.
+
+ if the read-only sequence segment can be retrieved; otherwise, .
+
+
+ Attempts to read the specified type out of the buffer. It's dangerous to use this method with arbitrary structs - see remarks for more information.
+ A reference to the sequence reader.
+ The returned value if the read was successful. will be if failed (due to lack of space).
+ The type of the value.
+
+ if the read attempt was successful, otherwise.
+
+
+ Represents a position in a non-contiguous set of memory. Properties of this type should not be interpreted by anything but the type that created it.
+
+
+ Initializes a new instance of the struct.
+ A non-contiguous set of memory.
+ The position in .
+
+
+ Returns a value that indicates whether the current instance is equal to another object.
+ The object to compare with the current instance.
+
+ if is of type and is equal to the current instance; otherwise, .
+
+
+ Indicates whether the current instance is equal to another .
+ The sequence position to compare with the current instance.
+
+ if the two instances are equal; otherwise.
+
+
+ Returns the hash code for this instance.
+ The hash code for this instance.
+
+
+ Returns the integer part of this .
+ The integer part of this sequence position.
+
+
+ Returns the object part of this .
+ The object part of this sequence position.
+
+
+ Provides extension methods for the encoding types, such as , , and .
+
+
+ Converts a to UTF-16 encoded characters and writes the result to .
+ The decoder instance that can convert bytes to values.
+ A sequence of bytes to decode.
+ The buffer to which the decoded characters will be written.
+
+ to indicate no further data is to be converted; otherwise .
+ When this method returns, contains the count of characters that were written to .
+ When this method returns, contains if contains no partial internal state; otherwise, .
+ If is , this will always be set to when the method returns.
+
+ contains data that cannot be decoded and is configured to throw when such data is seen.
+
+
+ Converts a to chars using and writes the result to .
+ The decoder instance that can convert bytes to values.
+ A sequence of bytes to decode.
+ The buffer to which the decoded chars will be written.
+
+ to indicate no further data is to be converted; otherwise .
+ When this method returns, contains the count of s which were written to .
+ When this method returns, contains if contains no partial internal state; otherwise, .
+ If is , this will always be set to when the method returns.
+
+ contains data that cannot be encoded and is configured to throw when such data is seen.
+
+
+ Converts a to encoded bytes and writes the result to .
+ The encoder instance that can convert values to bytes.
+ A sequence of characters to encode.
+ The buffer to which the encoded bytes will be written.
+
+ to indicate no further data is to be converted; otherwise .
+ When this method returns, contains the count of s which were written to .
+ When this method returns, contains if all input up until was converted; otherwise, . If is , this will always be set to when the method returns.
+
+ contains data that cannot be encoded and is configured to throw when such data is seen.
+
+
+ Converts a to bytes using and writes the result to .
+ The encoder instance that can convert values to bytes.
+ A sequence of characters to encode.
+ The buffer to which the encoded bytes will be written.
+
+ to indicate no further data is to be converted; otherwise .
+ When this method returns, contains the count of s which were written to .
+ When this method returns, contains if contains no partial internal state; otherwise, .
+ If is , this will always be set to when the method returns.
+
+ contains data that cannot be encoded and is configured to throw when such data is seen.
+
+
+ Encodes the specified into a array using the specified .
+ The encoding that represents how the data in should be encoded.
+ The sequence to encode to bytes.
+
+ contains data that cannot be encoded and is configured to throw when such data is seen.
+ A array that represents the encoded contents of .
+
+
+ Decodes the specified to s using the specified and writes the result to .
+ The encoding that represents how the data in should be encoded.
+ The whose contents should be encoded.
+ The buffer to which the encoded bytes will be written.
+
+ contains data that cannot be encoded and is configured to throw when such data is seen.
+ The number of bytes written to .
+
+
+ Encodes the specified to s using the specified and outputs the result to .
+ The encoding that represents how the data in should be encoded.
+ The sequence to encode to bytes.
+ The destination buffer to which the encoded bytes will be written.
+
+ is not large enough to contain the encoded form of .
+
+ contains data that cannot be encoded and is configured to throw when such data is seen.
+ The number of bytes written to .
+
+
+ Encodes the specified to s using the specified and writes the result to .
+ The encoding that represents how the data in should be encoded.
+ The sequence to encode to bytes.
+ The buffer to which the encoded bytes will be written.
+
+ contains data that cannot be encoded and is configured to throw when such data is seen.
+ The number of bytes written to .
+
+
+ Decodes the specified to s using the specified and writes the result to .
+ The encoding that represents how the data in should be decoded.
+ The sequence whose bytes should be decoded.
+ The buffer to which the decoded chars will be written.
+
+ contains data that cannot be decoded and is configured to throw when such data is seen.
+ The number of chars written to .
+
+
+ Decodes the specified to s using the specified and outputs the result to .
+ The encoding that represents how the data in is encoded.
+ The sequence to decode to characters.
+ The destination buffer to which the decoded characters will be written.
+
+ is not large enough to contain the encoded form of .
+
+ contains data that cannot be decoded and is configured to throw when such data is seen.
+ The number of chars written to .
+
+
+ Decodes the specified to s using the specified and writes the result to .
+ The encoding that represents how the data in should be decoded.
+ The span of bytes to decode.
+ The buffer to which the decoded chars will be written.
+
+ contains data that cannot be decoded and is configured to throw when such data is seen.
+ The number of chars written to .
+
+
+ Decodes the specified into a using the specified .
+ The encoding that represents how the data in is encoded.
+ The sequence to decode into characters.
+
+ contains data that cannot be decoded and is configured to throw when such data is seen.
+ A which represents the decoded contents of .
+
+
+ Enumerates the lines of a .
+
+
+ Returns this instance as an enumerator.
+ This instance as an enumerator.
+
+
+ Advances the enumerator to the next line of the span.
+
+ if the enumerator successfully advanced to the next line; if the enumerator has advanced past the end of the span.
+
+
+ Gets the line at the current position of the enumerator.
+ The line at the current position of the enumerator.
+
+
+ Provides an enumerator for the values represented by a span containing UTF-16 text.
+
+
+ Returns the current enumerator instance.
+ The current enumerator instance.
+
+
+ Advances the enumerator to the next of the span.
+
+ if the enumerator successfully advanced to the next item; if the end of the span has been reached.
+
+
+ Gets the at the current position of the enumerator.
+ The at the current position of the enumerator.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Http.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Http.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bd5fae10b5e4bcd80effef38d015c89d6f02cb1e
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Http.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.HttpListener.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.HttpListener.dll
new file mode 100644
index 0000000000000000000000000000000000000000..709c17dbeb12559be929872e7a5ada508b821328
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.HttpListener.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.NameResolution.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.NameResolution.xml
new file mode 100644
index 0000000000000000000000000000000000000000..73561512a16663e2c89c33a025076a9f2f078d7f
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.NameResolution.xml
@@ -0,0 +1,252 @@
+
+
+
+ System.Net.NameResolution
+
+
+
+ Provides simple domain name resolution functionality.
+
+
+ Asynchronously returns the Internet Protocol (IP) addresses for the specified host.
+ The host name or IP address to resolve.
+ An delegate that references the method to invoke when the operation is complete.
+ A user-defined object that contains information about the operation. This object is passed to the delegate when the operation is complete.
+
+ is .
+ The length of is greater than 255 characters.
+ An error is encountered when resolving .
+
+ is an invalid IP address.
+ An instance that references the asynchronous request.
+
+
+ Begins an asynchronous request for information about the specified DNS host name.
+ The DNS name of the host.
+ An delegate that references the method to invoke when the operation is complete.
+ A user-defined object that contains information about the operation. This object is passed to the delegate when the operation is complete.
+
+ is .
+ An error was encountered executing the DNS query.
+ An instance that references the asynchronous request.
+
+
+ Asynchronously resolves an IP address to an instance.
+ The IP address to resolve.
+ An delegate that references the method to invoke when the operation is complete.
+ A user-defined object that contains information about the operation. This object is passed to the delegate when the operation is complete.
+
+ is .
+ An error is encountered when resolving .
+
+ is an invalid IP address.
+ An instance that references the asynchronous request.
+
+
+ Asynchronously resolves a host name or IP address to an instance.
+ The host name or IP address to resolve.
+ An delegate that references the method to invoke when the operation is complete.
+ A user-defined object that contains information about the operation. This object is passed to the delegate when the operation is complete.
+
+ is .
+ The length of is greater than 255 characters.
+ An error is encountered when resolving .
+
+ is an invalid IP address.
+ An instance that references the asynchronous request.
+
+
+ Begins an asynchronous request to resolve a DNS host name or IP address to an instance.
+ The DNS name of the host.
+ An delegate that references the method to invoke when the operation is complete.
+ A user-defined object that contains information about the operation. This object is passed to the delegate when the operation is complete.
+
+ is .
+ The caller does not have permission to access DNS information.
+ An instance that references the asynchronous request.
+
+
+ Ends an asynchronous request for DNS information.
+ An instance returned by a call to the method.
+ An array of type that holds the IP addresses for the host specified by the parameter of .
+
+
+ Ends an asynchronous request for DNS information.
+ An instance that is returned by a call to the method.
+
+ is .
+ An object that contains DNS information about a host.
+
+
+ Ends an asynchronous request for DNS information.
+ An instance returned by a call to an method.
+
+ is .
+ An instance that contains address information about the host.
+
+
+ Ends an asynchronous request for DNS information.
+ An instance that is returned by a call to the method.
+
+ is .
+ An object that contains DNS information about a host.
+
+
+ Returns the Internet Protocol (IP) addresses for the specified host.
+ The host name or IP address to resolve.
+
+ is .
+ The length of is greater than 255 characters.
+ An error is encountered when resolving .
+
+ is an invalid IP address.
+ An array of type that holds the IP addresses for the host that is specified by the parameter.
+
+
+ Returns the Internet Protocol (IP) addresses for the specified host.
+ The host name or IP address to resolve.
+ The address family for which IPs should be retrieved. If , retrieve all IPs regardless of address family.
+ An array of type that holds the IP addresses for the host that is specified by the parameter.
+
+
+ Returns the Internet Protocol (IP) addresses for the specified host as an asynchronous operation.
+ The host name or IP address to resolve.
+
+ is .
+ The length of is greater than 255 characters.
+ An error is encountered when resolving .
+
+ is an invalid IP address.
+ The task object representing the asynchronous operation. The property on the task object returns an array of type that holds the IP addresses for the host that is specified by the parameter.
+
+
+ Returns the Internet Protocol (IP) addresses for the specified host as an asynchronous operation.
+ The host name or IP address to resolve.
+ The address family for which IPs should be retrieved. If , retrieve all IPs regardless of address family.
+ A cancellation token that can be used to signal the asynchronous operation should be canceled.
+ The task object representing the asynchronous operation. The property on the task object returns an array of type that holds the IP addresses for the host that is specified by the parameter.
+
+
+ Returns the Internet Protocol (IP) addresses for the specified host as an asynchronous operation.
+ The host name or IP address to resolve.
+ A cancellation token that can be used to signal the asynchronous operation should be canceled.
+ The task object representing the asynchronous operation. The property on the task object returns an array of type that holds the IP addresses for the host that is specified by the parameter.
+
+
+ Creates an instance from the specified .
+ An .
+
+ is .
+ An error is encountered when resolving .
+ An instance.
+
+
+ Creates an instance from an IP address.
+ An IP address.
+
+ is .
+ An error is encountered when resolving .
+
+ is not a valid IP address.
+ An instance.
+
+
+ Gets the DNS information for the specified DNS host name.
+ The DNS name of the host.
+
+ is .
+ The length of is greater than 255 characters.
+ An error is encountered when resolving .
+ An object that contains host information for the address specified in .
+
+
+ Resolves an IP address to an instance.
+ An IP address.
+
+ is .
+ An error is encountered when resolving .
+
+ is an invalid IP address.
+ An instance that contains address information about the host specified in .
+
+
+ Resolves a host name or IP address to an instance.
+ The host name or IP address to resolve.
+ The parameter is .
+ The length of parameter is greater than 255 characters.
+ An error was encountered when resolving the parameter.
+ The parameter is an invalid IP address.
+ An instance that contains address information about the host specified in .
+
+
+ Resolves a host name or IP address to an instance.
+ The host name or IP address to resolve.
+ The address family for which IPs should be retrieved. If , retrieve all IPs regardless of address family.
+ An instance that contains the address information about the host specified in .
+
+
+ Resolves an IP address to an instance as an asynchronous operation.
+ An IP address.
+
+ is .
+ An error is encountered when resolving .
+
+ is an invalid IP address.
+ The task object representing the asynchronous operation. The property on the task object returns an instance that contains address information about the host specified in .
+
+
+ Resolves a host name or IP address to an instance as an asynchronous operation.
+ The host name or IP address to resolve.
+ The parameter is .
+ The length of parameter is greater than 255 characters.
+ An error was encountered when resolving the parameter.
+ The parameter is an invalid IP address.
+ The task object representing the asynchronous operation. The property on the task object returns an instance that contains address information about the host specified in .
+
+
+ Resolves a host name or IP address to an instance as an asynchronous operation.
+ The host name or IP address to resolve.
+ The address family for which IPs should be retrieved. If , retrieve all IPs regardless of address family.
+ A cancellation token that can be used to signal the asynchronous operation should be canceled.
+ The task object representing the asynchronous operation. The property on the task object returns an instance that contains the address information about the host specified in .
+
+
+ Resolves a host name or IP address to an instance as an asynchronous operation.
+ The host name or IP address to resolve.
+ A cancellation token that can be used to signal the asynchronous operation should be canceled.
+ The task object representing the asynchronous operation. The property on the task object returns an instance that contains the address information about the host specified in .
+
+
+ Gets the host name of the local computer.
+ An error is encountered when resolving the local host name.
+ A string that contains the DNS host name of the local computer.
+
+
+ Resolves a DNS host name or IP address to an instance.
+ A DNS-style host name or IP address.
+
+ is .
+ The length of is greater than 255 characters.
+ An error is encountered when resolving .
+ An instance that contains address information about the host specified in .
+
+
+ Provides a container class for Internet host address information.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a list of IP addresses that are associated with a host.
+ An array of type that contains IP addresses that resolve to the host names that are contained in the property.
+
+
+ Gets or sets a list of aliases that are associated with a host.
+ An array of strings that contain DNS names that resolve to the IP addresses in the property.
+
+
+ Gets or sets the DNS name of the host.
+ A string that contains the primary host name for the server.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.NetworkInformation.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.NetworkInformation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..07d5e3745ae840a4681290ecb82286c583e7c0ea
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.NetworkInformation.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Ping.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Ping.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d0d535285dd1674a80571a9b2020d094d036aa95
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Ping.xml
@@ -0,0 +1,624 @@
+
+
+
+ System.Net.Ping
+
+
+
+ Reports the status of sending an Internet Control Message Protocol (ICMP) echo message to a computer.
+
+
+ The ICMP echo request failed because the destination IP address cannot receive ICMP echo requests or should never appear in the destination address field of any IP datagram. For example, calling and specifying IP address "000.0.0.0" returns this status.
+
+
+ The ICMP echo request failed because the header is invalid.
+
+
+ The ICMP echo request failed because it contains an invalid option.
+
+
+ The ICMP echo request failed because there is no valid route between the source and destination computers.
+
+
+ The ICMP echo request failed because the destination computer is not reachable.
+
+
+ The ICMP echo request failed because the network that contains the destination computer is not reachable.
+
+
+ The ICMP echo request failed because the port on the destination computer is not available.
+
+
+ The ICMPv6 echo request failed because contact with the destination computer is administratively prohibited. This value applies only to IPv6.
+
+
+ The ICMP echo request failed because the destination computer that is specified in an ICMP echo message is not reachable, because it does not support the packet's protocol. This value applies only to IPv4. This value is described in IETF RFC 1812 as Communication Administratively Prohibited.
+
+
+ The ICMP echo request failed because the source address and destination address that are specified in an ICMP echo message are not in the same scope. This is typically caused by a router forwarding a packet using an interface that is outside the scope of the source address. Address scopes (link-local, site-local, and global scope) determine where on the network an address is valid.
+
+
+ The ICMP echo request failed because the destination computer that is specified in an ICMP echo message is not reachable; the exact cause of problem is unknown.
+
+
+ The ICMP echo request failed because of a hardware error.
+
+
+ The ICMP echo request failed because of an ICMP protocol error.
+
+
+ The ICMP echo request failed because of insufficient network resources.
+
+
+ The ICMP echo request failed because the packet containing the request is larger than the maximum transmission unit (MTU) of a node (router or gateway) located between the source and destination. The MTU defines the maximum size of a transmittable packet.
+
+
+ The ICMP echo request failed because a node (router or gateway) encountered problems while processing the packet header. This is the status if, for example, the header contains invalid field data or an unrecognized option.
+
+
+ The ICMP echo request failed because the packet was discarded. This occurs when the source computer's output queue has insufficient storage space, or when packets arrive at the destination too quickly to be processed.
+
+
+ The ICMP echo request succeeded; an ICMP echo reply was received. When you get this status code, the other properties contain valid data.
+
+
+ The ICMP echo Reply was not received within the allotted time. The default time allowed for replies is 5 seconds. You can change this value using the or methods that take a parameter.
+
+
+ The ICMP echo request failed because its Time to Live (TTL) value reached zero, causing the forwarding node (router or gateway) to discard the packet.
+
+
+ The ICMP echo request failed because its Time to Live (TTL) value reached zero, causing the forwarding node (router or gateway) to discard the packet.
+
+
+ The ICMP echo request failed because the packet was divided into fragments for transmission and all of the fragments were not received within the time allotted for reassembly. RFC 2460 specifies 60 seconds as the time limit within which all packet fragments must be received.
+
+
+ The ICMP echo request failed for an unknown reason.
+
+
+ The ICMP echo request failed because the Next Header field does not contain a recognized value. The Next Header field indicates the extension header type (if present) or the protocol above the IP layer, for example, TCP or UDP.
+
+
+ Allows an application to determine whether a remote computer is accessible over the network.
+
+
+ Occurs when an asynchronous operation to send an Internet Control Message Protocol (ICMP) echo message and receive the corresponding ICMP echo reply message completes or is canceled.
+
+
+ Initializes a new instance of the class.
+
+
+ Releases the unmanaged resources used by the object, and optionally disposes of the managed resources.
+
+ to release both managed and unmanaged resources; to releases only unmanaged resources.
+
+
+ Raises the event.
+ A object that contains event data.
+
+
+ Attempts to send an Internet Control Message Protocol (ICMP) echo message to the computer that has the specified , and receive a corresponding ICMP echo reply message from that computer.
+ An that identifies the computer that is the destination for the ICMP echo message.
+
+ is .
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+ This object has been disposed.
+ A object that provides information about the ICMP echo reply message, if one was received, or describes the reason for the failure if no message was received.
+
+
+ Attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receive a corresponding ICMP echo reply message from that computer. This method allows you to specify a time-out value for the operation.
+ An that identifies the computer that is the destination for the ICMP echo message.
+ An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+
+ is .
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+ This object has been disposed.
+ A object that provides information about the ICMP echo reply message if one was received, or provides the reason for the failure if no message was received.
+
+
+ Attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation.
+ An that identifies the computer that is the destination for the ICMP echo message.
+ An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
+ The size of exceeds 65500 bytes.
+
+ or is .
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+ This object has been disposed.
+ .NET 7 and later versions only on Linux: The process is non-privileged, and is not empty.
+ A object that provides information about the ICMP echo reply message, if one was received, or provides the reason for the failure, if no message was received. The method will return if the packet exceeds the Maximum Transmission Unit (MTU).
+
+
+ Attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation and control fragmentation and Time-to-Live values for the ICMP echo message packet.
+ An that identifies the computer that is the destination for the ICMP echo message.
+ An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
+ A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet.
+ The size of exceeds 65500 bytes.
+
+ or is .
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+ This object has been disposed.
+ .NET 7 and later versions only on Linux: The process is non-privileged, and is not empty.
+ A object that provides information about the ICMP echo reply message, if one was received, or provides the reason for the failure, if no message was received. The method will return if the packet exceeds the Maximum Transmission Unit (MTU).
+
+
+ Attempts to send an Internet Control Message Protocol (ICMP) echo message to the computer that has the specified , and to receive a corresponding ICMP echo reply message from that computer.
+ An that identifies the computer that is the destination for the ICMP echo message.
+ A value that specifies the maximum amount of time (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message.
+ The array cannot contain more than 65,500 bytes.
+ A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet.
+
+ or is .
+
+ represents a time less than zero milliseconds or greater than milliseconds.
+ The 's size is greater than 65,500 bytes.
+ A call to SendAsync is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+ This object has been disposed.
+ Information about the ICMP echo reply message, if one was received, or the reason for the failure, if no message was received.
+
+
+ Attempts to send an Internet Control Message Protocol (ICMP) echo message to the specified computer, and receive a corresponding ICMP echo reply message from that computer.
+ A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address.
+
+ is or is an empty string ("").
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+ This object has been disposed.
+ A object that provides information about the ICMP echo reply message, if one was received, or provides the reason for the failure, if no message was received.
+
+
+ Attempts to send an Internet Control Message Protocol (ICMP) echo message to the specified computer, and receive a corresponding ICMP echo reply message from that computer. This method allows you to specify a time-out value for the operation.
+ A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address.
+ An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+
+ is or is an empty string ("").
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+ This object has been disposed.
+ A object that provides information about the ICMP echo reply message if one was received, or provides the reason for the failure if no message was received.
+
+
+ Attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation.
+ A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address.
+ An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
+ The size of exceeds 65500 bytes.
+
+ is or is an empty string ("").
+
+ -or-
+
+ is .
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+ This object has been disposed.
+ .NET 7 and later versions only on Linux: The process is non-privileged, and is not empty.
+ A object that provides information about the ICMP echo reply message if one was received, or provides the reason for the failure if no message was received.
+
+
+ Attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation and control fragmentation and Time-to-Live values for the ICMP packet.
+ A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address.
+ An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
+ A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet.
+ The size of exceeds 65500 bytes.
+
+ is or is a zero-length string.
+
+ -or-
+
+ is .
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+ This object has been disposed.
+ .NET 7 and later versions only on Linux: The process is non-privileged, and is not empty.
+ A object that provides information about the ICMP echo reply message if one was received, or provides the reason for the failure if no message was received.
+
+
+ Attempts to send an Internet Control Message Protocol (ICMP) echo message to the specified computer, and to receive a corresponding ICMP echo reply message from that computer.
+ A that identifies the computer that is the destination for the ICMP echo message.
+ The value specified for this parameter can be a host name or a string representation of an IP address.
+ A value that specifies the maximum amount of time (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message.
+ The array cannot contain more than 65,500 bytes.
+ A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet.
+
+ or is or is an empty string ("").
+
+ represents a time less than zero milliseconds or greater than milliseconds.
+ The 's size is greater than 65,500 bytes.
+ A call to SendAsync is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+ This object has been disposed.
+ Information about the ICMP echo reply message, if one was received, or the reason for the failure, if no message was received.
+
+
+ Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation and control fragmentation and Time-to-Live values for the ICMP echo message packet.
+ An that identifies the computer that is the destination for the ICMP echo message.
+ An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
+ A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet.
+ An object that is passed to the method invoked when the asynchronous operation completes.
+
+ or is .
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ is not a valid IP address.
+ This object has been disposed.
+ The size of exceeds 65500 bytes.
+ .NET 7 and later versions only on Linux: The process is non-privileged, and is not empty.
+
+
+ Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation.
+ An that identifies the computer that is the destination for the ICMP echo message.
+ An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
+ An object that is passed to the method invoked when the asynchronous operation completes.
+
+ or is .
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ is not a valid IP address.
+ This object has been disposed.
+ The size of exceeds 65500 bytes.
+ .NET 7 and later versions only on Linux: The process is non-privileged, and is not empty.
+
+
+ Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the computer that has the specified , and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation.
+ An that identifies the computer that is the destination for the ICMP echo message.
+ An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+ An object that is passed to the method invoked when the asynchronous operation completes.
+
+ is .
+
+ is less than zero.
+ A call to method is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ is not a valid IP address.
+ This object has been disposed.
+
+
+ Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the computer that has the specified , and receive a corresponding ICMP echo reply message from that computer.
+ An that identifies the computer that is the destination for the ICMP echo message.
+ An object that is passed to the method invoked when the asynchronous operation completes.
+
+ is .
+ A call to the method is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ is not a valid IP address.
+ This object has been disposed.
+
+
+ Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation and control fragmentation and Time-to-Live values for the ICMP packet.
+ A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address.
+ An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
+ A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet.
+ An object that is passed to the method invoked when the asynchronous operation completes.
+
+ is or is an empty string ("").
+
+ -or-
+
+ is .
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ could not be resolved to a valid IP address.
+ This object has been disposed.
+ The size of exceeds 65500 bytes.
+ .NET 7 and later versions only on Linux: The process is non-privileged, and is not empty.
+
+
+ Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation.
+ A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address.
+ An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
+ An object that is passed to the method invoked when the asynchronous operation completes.
+
+ is or is an empty string ("").
+
+ -or-
+
+ is .
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ could not be resolved to a valid IP address.
+ This object has been disposed.
+ The size of exceeds 65500 bytes.
+ .NET 7 and later versions only on Linux: The process is non-privileged, and is not empty.
+
+
+ Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the specified computer, and receive a corresponding ICMP echo reply message from that computer. This overload allows you to specify a time-out value for the operation.
+ A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address.
+ An value that specifies the maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+ An object that is passed to the method invoked when the asynchronous operation completes.
+
+ is or is an empty string ("").
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ could not be resolved to a valid IP address.
+ This object has been disposed.
+
+
+ Asynchronously attempts to send an Internet Control Message Protocol (ICMP) echo message to the specified computer, and receive a corresponding ICMP echo reply message from that computer.
+ A that identifies the computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address.
+ An object that is passed to the method invoked when the asynchronous operation completes.
+
+ is or is an empty string ("").
+ A call to method is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ could not be resolved to a valid IP address.
+ This object has been disposed.
+
+
+ Cancels all pending asynchronous requests to send an Internet Control Message Protocol (ICMP) echo message and receives a corresponding ICMP echo reply message.
+
+
+ Send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receives a corresponding ICMP echo reply message from that computer as an asynchronous operation.
+ An IP address that identifies the computer that is the destination for the ICMP echo message.
+
+ is .
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ is not a valid IP address.
+ This object has been disposed.
+ The task object representing the asynchronous operation.
+
+
+ Send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receives a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation.
+ An IP address that identifies the computer that is the destination for the ICMP echo message.
+ The maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+
+ is .
+ A call to the method is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ is not a valid IP address.
+ This object has been disposed.
+ The task object representing the asynchronous operation.
+
+
+ Send an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receives a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation and a buffer to use for send and receive.
+ An IP address that identifies the computer that is the destination for the ICMP echo message.
+ The maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
+
+ or is .
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ is not a valid IP address.
+ This object has been disposed.
+ The size of exceeds 65,500 bytes.
+ .NET 7 and later versions only on Linux: The process is non-privileged, and is not empty.
+ The task object representing the asynchronous operation.
+
+
+ Sends an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receives a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation, a buffer to use for send and receive, and control fragmentation and Time-to-Live values for the ICMP echo message packet.
+ An IP address that identifies the computer that is the destination for the ICMP echo message.
+ The maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
+ A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet.
+
+ or is .
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ is not a valid IP address.
+ This object has been disposed.
+ The size of exceeds 65,500 bytes.
+ .NET 7 and later versions only on Linux: The process is non-privileged, and is not empty.
+ The task object representing the asynchronous operation.
+
+
+ Sends an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the computer that has the specified , and receives a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation, a buffer to use for send and receive, control fragmentation and Time-to-Live values, and a for the ICMP echo message packet.
+ An IP address that identifies the computer that is the destination for the ICMP echo message.
+ The amount of time (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
+ A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet.
+ The token to monitor for cancellation requests. The default value is
+ .
+ The task object representing the asynchronous operation.
+
+
+ Sends an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer as an asynchronous operation.
+ The computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address.
+
+ is or is an empty string ("").
+ A call to method is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ could not be resolved to a valid IP address.
+ This object has been disposed.
+ The task object representing the asynchronous operation.
+
+
+ Sends an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation.
+ The computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address.
+ The maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+
+ is .
+
+ is less than zero.
+ A call to the method is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ is not a valid IP address.
+ This object has been disposed.
+ The task object representing the asynchronous operation.
+
+
+ Sends an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation and a buffer to use for send and receive.
+ The computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address.
+ The maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
+
+ is or is an empty string ("").
+
+ -or-
+
+ is .
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ could not be resolved to a valid IP address.
+ This object has been disposed.
+ The size of exceeds 65500 bytes.
+ .NET 7 and later versions only on Linux: The process is non-privileged, and is not empty.
+ The task object representing the asynchronous operation.
+
+
+ Sends an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receive a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation, a buffer to use for send and receive, and control fragmentation and Time-to-Live values for the ICMP echo message packet.
+ The computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address.
+ The maximum number of milliseconds (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
+ A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet.
+
+ is or is an empty string ("").
+
+ -or-
+
+ is .
+
+ is less than zero.
+ A call to is in progress.
+ An exception was thrown while sending or receiving the ICMP messages. See the inner exception for the exact exception that was thrown.
+
+ could not be resolved to a valid IP address.
+ This object has been disposed.
+ The size of exceeds 65500 bytes.
+ .NET 7 and later versions only on Linux: The process is non-privileged, and is not empty.
+ The task object representing the asynchronous operation.
+
+
+ Sends an Internet Control Message Protocol (ICMP) echo message with the specified data buffer to the specified computer, and receives a corresponding ICMP echo reply message from that computer as an asynchronous operation. This overload allows you to specify a time-out value for the operation, a buffer to use for send and receive, control fragmentation and Time-to-Live values, and a for the ICMP echo message packet.
+ The computer that is the destination for the ICMP echo message. The value specified for this parameter can be a host name or a string representation of an IP address.
+ The amount of time (after sending the echo message) to wait for the ICMP echo reply message.
+ A array that contains data to be sent with the ICMP echo message and returned in the ICMP echo reply message. The array cannot contain more than 65,500 bytes.
+ A object used to control fragmentation and Time-to-Live values for the ICMP echo message packet.
+ The token to monitor for cancellation requests. The default value is .
+ The task object representing the asynchronous operation.
+
+
+ Provides data for the event.
+
+
+ Gets an object that contains data that describes an attempt to send an Internet Control Message Protocol (ICMP) echo request message and receive a corresponding ICMP echo reply message.
+ A object that describes the results of the ICMP echo request.
+
+
+ Represents the method that will handle the event of a object.
+ The source of the event.
+ A object that contains the event data.
+
+
+ The exception that is thrown when a or method calls a method that throws an exception.
+
+
+ Initializes a new instance of the class with serialized data.
+ The object that holds the serialized object data.
+ A that specifies the contextual information about the source or destination for this serialization.
+
+
+ Initializes a new instance of the class using the specified message.
+ A that describes the error.
+
+
+ Initializes a new instance of the class using the specified message and inner exception.
+ A that describes the error.
+ The exception that causes the current exception.
+
+
+ Used to control how data packets are transmitted.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class and sets the Time to Live and fragmentation values.
+ An value greater than zero that specifies the number of times that the data packets can be forwarded.
+
+ to prevent data sent to the remote host from being fragmented; otherwise, .
+
+ is less than or equal to zero.
+
+
+ Gets or sets a value that controls fragmentation of the data sent to the remote host.
+
+ if the data cannot be sent in multiple packets; otherwise . The default is .
+
+
+ Gets or sets the number of routing nodes that can forward the data before it is discarded.
+ The value specified for a set operation is less than or equal to zero.
+ An value that specifies the number of times the data packets can be forwarded. The default is 128.
+
+
+ Provides information about the status and data resulting from a or operation.
+
+
+ Gets the address of the host that sends the Internet Control Message Protocol (ICMP) echo reply.
+ An containing the destination for the ICMP echo message.
+
+
+ Gets the buffer of data received in an Internet Control Message Protocol (ICMP) echo reply message.
+ A array containing the data received in an ICMP echo reply message, or an empty array, if no reply was received.
+
+
+ Gets the options used to transmit the reply to an Internet Control Message Protocol (ICMP) echo request.
+ A object that contains the Time to Live (TTL) and the fragmentation directive used for transmitting the reply if is ; otherwise, .
+
+
+ Gets the number of milliseconds taken to send an Internet Control Message Protocol (ICMP) echo request and receive the corresponding ICMP echo reply message.
+ An that specifies the round trip time, in milliseconds.
+
+
+ Gets the status of an attempt to send an Internet Control Message Protocol (ICMP) echo request and receive the corresponding ICMP echo reply message.
+ An value indicating the result of the request.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Primitives.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Primitives.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4903b3f5a4ef1290cec48bde91397934657acd85
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Primitives.xml
@@ -0,0 +1,2130 @@
+
+
+
+ System.Net.Primitives
+
+
+
+ Specifies protocols for authentication.
+
+
+ Specifies anonymous authentication.
+
+
+ Specifies basic authentication.
+
+
+ Specifies digest authentication.
+
+
+ Specifies Windows authentication.
+
+
+ Negotiates with the client to determine the authentication scheme. If both client and server support Kerberos, it is used; otherwise, NTLM is used.
+
+
+ No authentication is allowed. A client requesting an object with this flag set will always receive a 403 Forbidden status. Use this flag when a resource should never be served to a client.
+
+
+ Specifies NTLM authentication.
+
+
+ Specifies caching behavior for resources obtained using and its derived classes.
+
+
+ Satisfies a request by using the server. No entries are taken from caches, added to caches, or removed from caches between the client and server. This is the default cache behavior specified in the machine configuration file that ships with the .NET Framework.
+
+
+ Satisfies a request for a resource from the cache, if the resource is available; otherwise, sends a request for a resource to the server. If the requested item is available in any cache between the client and the server, the request might be satisfied by the intermediate cache.
+
+
+ Satisfies a request using the locally cached resource; does not send a request for an item that is not in the cache. When this cache policy level is specified, a exception is thrown if the item is not in the client cache.
+
+
+ Satisfies a request for a resource either by using the cached copy of the resource or by sending a request for the resource to the server. The action taken is determined by the current cache policy and the age of the content in the cache. This is the cache level that should be used by most applications.
+
+
+ Never satisfies a request by using resources from the cache and does not cache resources. If the resource is present in the local cache, it is removed. This policy level indicates to intermediate caches that they should remove the resource. In the HTTP caching protocol, this is achieved using the cache control directive.
+
+
+ Satisfies a request by using the server. The response might be saved in the cache. In the HTTP caching protocol, this is achieved using the cache control directive and the no-cache header.
+
+
+ Satisfies a request by using the cached copy of the resource if the timestamp is the same as the timestamp of the resource on the server; otherwise, the resource is downloaded from the server, presented to the caller, and stored in the cache.
+
+
+ Defines an application's caching requirements for resources obtained by using objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class. using the specified cache policy.
+ A that specifies the cache behavior for resources obtained using objects.
+ level is not a valid .value.
+
+
+ Returns a string representation of this instance.
+ A containing the for this instance.
+
+
+ Gets the value specified when this instance was constructed.
+ A value that specifies the cache behavior for resources obtained using objects.
+
+
+ Provides a set of properties and methods that are used to manage cookies. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with a specified and .
+ The name of a . The following characters must not be used inside : equal sign, semicolon, comma, newline (\n), return (\r), tab (\t), and space character. The dollar sign character ("$") cannot be the first character.
+ The value of a . The following characters must not be used inside : semicolon, comma.
+ The parameter is .
+
+ -or-
+
+ The parameter is of zero length.
+
+ -or-
+
+ The parameter contains an invalid character.
+
+ -or-
+
+ The parameter is .
+
+ -or -
+
+ The parameter contains a string not enclosed in quotes that contains an invalid character.
+
+
+ Initializes a new instance of the class with a specified , , and .
+ The name of a . The following characters must not be used inside : equal sign, semicolon, comma, newline (\n), return (\r), tab (\t), and space character. The dollar sign character ("$") cannot be the first character.
+ The value of a . The following characters must not be used inside : semicolon, comma.
+ The subset of URIs on the origin server to which this applies. The default value is "/".
+ The parameter is .
+
+ -or-
+
+ The parameter is of zero length.
+
+ -or-
+
+ The parameter contains an invalid character.
+
+ -or-
+
+ The parameter is .
+
+ -or -
+
+ The parameter contains a string not enclosed in quotes that contains an invalid character.
+
+
+ Initializes a new instance of the class with a specified , , , and .
+ The name of a . The following characters must not be used inside : equal sign, semicolon, comma, newline (\n), return (\r), tab (\t), and space character. The dollar sign character ("$") cannot be the first character.
+ The value of a object. The following characters must not be used inside : semicolon, comma.
+ The subset of URIs on the origin server to which this applies. The default value is "/".
+ The optional internet domain for which this is valid. The default value is the host this has been received from.
+ The parameter is .
+
+ -or-
+
+ The parameter is of zero length.
+
+ -or-
+
+ The parameter contains an invalid character.
+
+ -or-
+
+ The parameter is .
+
+ -or -
+
+ The parameter contains a string not enclosed in quotes that contains an invalid character.
+
+
+ Overrides the method.
+ A reference to a .
+ Returns if the is equal to . Two instances are equal if their , , , , and properties are equal. and string comparisons are case-insensitive.
+
+
+ Overrides the method.
+ The 32-bit signed integer hash code for this instance.
+
+
+ Overrides the method.
+ Returns a string representation of this object that is suitable for including in a HTTP Cookie: request header.
+
+
+ Gets or sets a comment that the server can add to a .
+ An optional comment to document intended usage for this .
+
+
+ Gets or sets a URI comment that the server can provide with a .
+ An optional comment that represents the intended usage of the URI reference for this . The value must conform to URI format.
+
+
+ Gets or sets the discard flag set by the server.
+
+ if the client is to discard the at the end of the current session; otherwise, . The default is .
+
+
+ Gets or sets the URI for which the is valid.
+ The URI for which the is valid.
+
+
+ Gets or sets the current state of the .
+
+ if the has expired; otherwise, . The default is .
+
+
+ Gets or sets the expiration date and time for the as a .
+ The expiration date and time for the as a instance.
+
+
+ Determines whether a page script or other active content can access this cookie.
+ Boolean value that determines whether a page script or other active content can access this cookie.
+
+
+ Gets or sets the name for the .
+ The value specified for a set operation is or the empty string
+
+-or-
+
+ The value specified for a set operation contained an illegal character. The following characters must not be used inside the property: equal sign, semicolon, comma, newline (\n), return (\r), tab (\t), and space character. The dollar sign character ("$") cannot be the first character.
+ The name for the .
+
+
+ Gets or sets the URIs to which the applies.
+ The URIs to which the applies.
+
+
+ Gets or sets a list of TCP ports that the applies to.
+ The value specified for a set operation could not be parsed or is not enclosed in double quotes.
+ The list of TCP ports that the applies to.
+
+
+ Gets or sets the security level of a .
+
+ if the client is only to return the cookie in subsequent requests if those requests use Secure Hypertext Transfer Protocol (HTTPS); otherwise, . The default is .
+
+
+ Gets the time when the cookie was issued as a .
+ The time when the cookie was issued as a .
+
+
+ Gets or sets the for the .
+ The for the .
+
+
+ Gets or sets the version of HTTP state maintenance to which the cookie conforms.
+ The value specified for a version is not allowed.
+ The version of HTTP state maintenance to which the cookie conforms.
+
+
+ Provides a collection container for instances of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a to a .
+ The to be added to a .
+
+ is .
+
+
+ Adds the contents of a to the current instance.
+ The to be added.
+
+ is .
+
+
+ Removes all elements from the object.
+
+
+ Determines whether the specified cookie is in the .
+ The cookie to locate in the .
+
+ if the specified cookie is found in the ; otherwise, .
+
+
+ Copies the elements of a to the specified array, starting at a particular index.
+ The target array to which the will be copied.
+ The zero-based index in the target array where copying begins.
+
+ is .
+
+ is less than zero.
+
+ is multidimensional.
+
+ -or-
+
+ The number of elements in this is greater than the available space from to the end of the destination .
+ The elements in this cannot be cast automatically to the type of the destination .
+
+
+ Copies the elements of this to a array starting at the specified index of the target array.
+ The target array to which the will be copied.
+ The zero-based index in the target array where copying begins.
+
+ is .
+
+ is less than zero.
+
+ is multidimensional.
+
+ -or-
+
+ The number of elements in this is greater than the available space from to the end of the destination .
+ The elements in this cannot be cast automatically to the type of the destination .
+
+
+ Gets an enumerator that can iterate through a .
+ An for this collection.
+
+
+ Removes the specified cookie from the .
+ The cookie to remove from the .
+
+ if was successfully removed from the ; otherwise, . This method also returns if item is not found in the original collection.
+
+
+ Gets an enumerator that can iterate through the .
+ An for this collection.
+
+
+ Gets the number of cookies contained in a .
+ The number of cookies contained in a .
+
+
+ Gets a value that indicates whether a is read-only.
+
+ if this is a read-only ; otherwise, . The default is .
+
+
+ Gets a value that indicates whether access to a is thread safe.
+
+ if access to the is thread safe; otherwise, . The default is .
+
+
+ Gets the with a specific index from a .
+ The zero-based index of the to be found.
+
+ is less than 0 or is greater than or equal to .
+ A with a specific index from a .
+
+
+ Gets the with a specific name from a .
+ The name of the to be found.
+
+ is .
+ The with a specific name from a .
+
+
+ Gets an object to synchronize access to the .
+ An object to synchronize access to the .
+
+
+ Provides a container for a collection of objects.
+
+
+ Represents the default maximum size, in bytes, of the instances that the can hold. This field is constant.
+
+
+ Represents the default maximum number of instances that the can hold. This field is constant.
+
+
+ Represents the default maximum number of instances that the can reference per domain. This field is constant.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with a specified value for the number of instances that the container can hold.
+ The number of instances that the can hold.
+
+ is less than or equal to zero.
+
+
+ Initializes a new instance of the class with specific properties.
+ The number of instances that the can hold.
+ The number of instances per domain.
+ The maximum size in bytes for any single in a .
+
+ is not equal to Int32.MaxValue.
+
+ and
+
+ is less than or equal to zero or is greater than .
+
+ is less than or equal to zero.
+
+
+ Adds a to a . This method uses the domain from the to determine which domain collection to associate the with.
+ The to be added to the .
+
+ is .
+ The domain for is or the empty string ("").
+
+ is larger than .
+
+ -or-
+
+ the domain for is not a valid URI.
+
+
+ Adds the contents of a to the .
+ The to be added to the .
+
+ is .
+
+
+ Adds a to the for a particular URI.
+ The URI of the to be added to the .
+ The to be added to the .
+
+ is or is .
+
+ is larger than .
+
+ -or-
+
+ The domain for is not a valid URI.
+
+
+ Adds the contents of a to the for a particular URI.
+ The URI of the to be added to the .
+ The to be added to the .
+
+ is .
+ The domain for one of the cookies in is .
+ One of the cookies in contains an invalid domain.
+
+
+ Gets a that contains all of the instances in the container.
+ A that contains all of the instances in the container.
+
+
+ Gets the HTTP cookie header that contains the HTTP cookies that represent the instances that are associated with a specific URI.
+ The URI of the instances desired.
+
+ is .
+ An HTTP cookie header, with strings representing instances delimited by semicolons.
+
+
+ Gets a that contains the instances that are associated with a specific URI.
+ The URI of the instances desired.
+
+ is .
+ A that contains the instances that are associated with a specific URI.
+
+
+ Adds instances for one or more cookies from an HTTP cookie header to the for a specific URI.
+ The URI of the .
+ The contents of an HTTP set-cookie header as returned by a HTTP server, with instances delimited by commas.
+
+ or is .
+ One of the cookies is invalid.
+
+ -or-
+
+ An error occurred while adding one of the cookies to the container.
+
+
+ Gets or sets the number of instances that a can hold.
+
+ is less than or equal to zero or (value is less than and is not equal to Int32.MaxValue).
+ The number of instances that a can hold. This is a hard limit and cannot be exceeded by adding a .
+
+
+ Gets the number of instances that a currently holds.
+ The number of instances that a currently holds. This is the total of instances in all domains.
+
+
+ Represents the maximum allowed length of a .
+
+ is less than or equal to zero.
+ The maximum allowed length, in bytes, of a .
+
+
+ Gets or sets the number of instances that a can hold per domain.
+
+ is less than or equal to zero.
+
+ -or-
+
+ is greater than the maximum allowable number of cookies instances, 300, and is not equal to Int32.MaxValue).
+ The number of instances that are allowed per domain.
+
+
+ The exception that is thrown when an error is made adding a to a .
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with specific values of and .
+ The to be used.
+ The to be used.
+
+
+ Populates a instance with the data needed to serialize the .
+ The object that holds the serialized object data. The to populate with data.
+ The contextual information about the source or destination. A that specifies the destination for this serialization.
+
+
+ Populates a instance with the data needed to serialize the .
+ The to be used.
+ The to be used.
+
+
+ Provides storage for multiple credentials.
+
+
+ Creates a new instance of the class.
+
+
+ Adds a instance for use with SMTP to the credential cache and associates it with a host computer, port, and authentication protocol. Credentials added using this method are valid for SMTP only. This method does not work for HTTP or FTP requests.
+ A that identifies the host computer.
+ A that specifies the port to connect to on .
+ A that identifies the authentication scheme used when connecting to using .
+ The to add to the credential cache.
+
+ is .
+
+ -or-
+
+ is .
+
+ not an accepted value.
+
+ is less than zero.
+
+
+ Adds a instance to the credential cache for use with protocols other than SMTP and associates it with a Uniform Resource Identifier (URI) prefix and authentication protocol.
+ A that specifies the URI prefix of the resources that the credential grants access to.
+ The authentication scheme used by the resource named in .
+ The to add to the credential cache.
+
+ is .
+
+ -or-
+
+ is .
+ The same credentials are added more than once.
+
+
+ Returns the instance associated with the specified host, port, and authentication protocol.
+ A that identifies the host computer.
+ A that specifies the port to connect to on .
+ A that identifies the authentication scheme used when connecting to .
+
+ is .
+
+ -or-
+
+ is .
+
+ not an accepted value.
+
+ -or-
+
+ is equal to the empty string ("").
+
+ is less than zero.
+ A or, if there is no matching credential in the cache, .
+
+
+ Returns the instance associated with the specified Uniform Resource Identifier (URI) and authentication type.
+ A that specifies the URI prefix of the resources that the credential grants access to.
+ The authentication scheme used by the resource named in .
+
+ or is .
+ A or, if there is no matching credential in the cache, .
+
+
+ Returns an enumerator that can iterate through the instance.
+ An for the .
+
+
+ Deletes a instance from the cache if it is associated with the specified host, port, and authentication protocol.
+ A that identifies the host computer.
+ A that specifies the port to connect to on .
+ A that identifies the authentication scheme used when connecting to .
+
+
+ Deletes a instance from the cache if it is associated with the specified Uniform Resource Identifier (URI) prefix and authentication protocol.
+ A that specifies the URI prefix of the resources that the credential is used for.
+ The authentication scheme used by the host named in .
+
+
+ Gets the system credentials of the application.
+ An that represents the system credentials of the application.
+
+
+ Gets the network credentials of the current security context.
+ An that represents the network credentials of the current user or application.
+
+
+ Represents the file compression and decompression encoding format to be used to compress the data received in response to an .
+
+
+ Use all compression-decompression algorithms.
+
+
+ Use the Brotli compression-decompression algorithm.
+
+
+ Use the deflate compression-decompression algorithm.
+
+
+ Use the gZip compression-decompression algorithm.
+
+
+ Do not use compression.
+
+
+ Represents a network endpoint as a host name or a string representation of an IP address and a port number.
+
+
+ Initializes a new instance of the class with the host name or string representation of an IP address and a port number.
+ The host name or a string representation of the IP address.
+ The port number associated with the address, or 0 to specify any available port. is in host order.
+ The parameter contains an empty string.
+ The parameter is a .
+
+ is less than .
+
+ -or-
+
+ is greater than .
+
+
+ Initializes a new instance of the class with the host name or string representation of an IP address, a port number, and an address family.
+ The host name or a string representation of the IP address.
+ The port number associated with the address, or 0 to specify any available port. is in host order.
+ One of the values.
+ The parameter contains an empty string.
+
+ -or-
+
+ is .
+ The parameter is a .
+
+ is less than .
+
+ -or-
+
+ is greater than .
+
+
+ Compares two objects.
+ A instance to compare to the current instance.
+
+ if the two instances are equal; otherwise, .
+
+
+ Returns a hash value for a .
+ An integer hash value for the .
+
+
+ Returns the host name or string representation of the IP address and port number of the .
+ A string containing the address family, host name or IP address string, and the port number of the specified .
+
+
+ Gets the Internet Protocol (IP) address family.
+ One of the values.
+
+
+ Gets the host name or string representation of the Internet Protocol (IP) address of the host.
+ A host name or string representation of an IP address.
+
+
+ Gets the port number of the .
+ An integer value in the range 0 to 0xffff indicating the port number of the .
+
+
+ Identifies a network address. This is an class.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates an instance from a instance.
+ The socket address that serves as the endpoint for a connection.
+ Any attempt is made to access the method when the method is not overridden in a descendant class.
+ A new instance that is initialized from the specified instance.
+
+
+ Serializes endpoint information into a instance.
+ Any attempt is made to access the method when the method is not overridden in a descendant class.
+ A instance that contains the endpoint information.
+
+
+ Gets the address family to which the endpoint belongs.
+ Any attempt is made to get or set the property when the property is not overridden in a descendant class.
+ One of the values.
+
+
+ Contains the values of status codes defined for HTTP defined in RFC 2616 for HTTP 1.1.
+
+
+ Equivalent to HTTP status 202. indicates that the request has been accepted for further processing.
+
+
+ Equivalent to HTTP status 208. indicates that the members of a WebDAV binding have already been enumerated in a preceding part of the multistatus response, and are not being included again.
+
+
+ Equivalent to HTTP status 300. indicates that the requested information has multiple representations. The default action is to treat this status as a redirect and follow the contents of the Location header associated with this response. Ambiguous is a synonym for MultipleChoices.
+
+
+ Equivalent to HTTP status 502. indicates that an intermediate proxy server received a bad response from another proxy or the origin server.
+
+
+ Equivalent to HTTP status 400. indicates that the request could not be understood by the server. is sent when no other error is applicable, or if the exact error is unknown or does not have its own error code.
+
+
+ Equivalent to HTTP status 409. indicates that the request could not be carried out because of a conflict on the server.
+
+
+ Equivalent to HTTP status 100. indicates that the client can continue with its request.
+
+
+ Equivalent to HTTP status 201. indicates that the request resulted in a new resource created before the response was sent.
+
+
+ Equivalent to HTTP status 103. indicates to the client that the server is likely to send a final response with the header fields included in the informational response.
+
+
+ Equivalent to HTTP status 417. indicates that an expectation given in an Expect header could not be met by the server.
+
+
+ Equivalent to HTTP status 424. indicates that the method couldn't be performed on the resource because the requested action depended on another action and that action failed.
+
+
+ Equivalent to HTTP status 403. indicates that the server refuses to fulfill the request.
+
+
+ Equivalent to HTTP status 302. indicates that the requested information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will use the GET method. Found is a synonym for Redirect.
+
+
+ Equivalent to HTTP status 504. indicates that an intermediate proxy server timed out while waiting for a response from another proxy or the origin server.
+
+
+ Equivalent to HTTP status 410. indicates that the requested resource is no longer available.
+
+
+ Equivalent to HTTP status 505. indicates that the requested HTTP version is not supported by the server.
+
+
+ Equivalent to HTTP status 226. indicates that the server has fulfilled a request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.
+
+
+ Equivalent to HTTP status 507. indicates that the server is unable to store the representation needed to complete the request.
+
+
+ Equivalent to HTTP status 500. indicates that a generic error has occurred on the server.
+
+
+ Equivalent to HTTP status 411. indicates that the required Content-length header is missing.
+
+
+ Equivalent to HTTP status 423. indicates that the source or destination resource is locked.
+
+
+ Equivalent to HTTP status 508. indicates that the server terminated an operation because it encountered an infinite loop while processing a WebDAV request with "Depth: infinity". This status code is meant for backward compatibility with clients not aware of the 208 status code appearing in multistatus response bodies.
+
+
+ Equivalent to HTTP status 405. indicates that the request method (POST or GET) is not allowed on the requested resource.
+
+
+ Equivalent to HTTP status 421. indicates that the request was directed at a server that is not able to produce a response.
+
+
+ Equivalent to HTTP status 301. indicates that the requested information has been moved to the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will use the GET method. Moved is a synonym for MovedPermanently.
+
+
+ Equivalent to HTTP status 301. indicates that the requested information has been moved to the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. MovedPermanently is a synonym for Moved.
+
+
+ Equivalent to HTTP status 300. indicates that the requested information has multiple representations. The default action is to treat this status as a redirect and follow the contents of the Location header associated with this response. MultipleChoices is a synonym for Ambiguous.
+
+
+ Equivalent to HTTP status 207. indicates multiple status codes for a single response during a Web Distributed Authoring and Versioning (WebDAV) operation. The response body contains XML that describes the status codes.
+
+
+ Equivalent to HTTP status 511. indicates that the client needs to authenticate to gain network access; it's intended for use by intercepting proxies used to control access to the network.
+
+
+ Equivalent to HTTP status 204. indicates that the request has been successfully processed and that the response is intentionally blank.
+
+
+ Equivalent to HTTP status 203. indicates that the returned meta information is from a cached copy instead of the origin server and therefore may be incorrect.
+
+
+ Equivalent to HTTP status 406. indicates that the client has indicated with Accept headers that it will not accept any of the available representations of the resource.
+
+
+ Equivalent to HTTP status 510. indicates that further extensions to the request are required for the server to fulfill it.
+
+
+ Equivalent to HTTP status 404. indicates that the requested resource does not exist on the server.
+
+
+ Equivalent to HTTP status 501. indicates that the server does not support the requested function.
+
+
+ Equivalent to HTTP status 304. indicates that the client's cached copy is up to date. The contents of the resource are not transferred.
+
+
+ Equivalent to HTTP status 200. indicates that the request succeeded and that the requested information is in the response. This is the most common status code to receive.
+
+
+ Equivalent to HTTP status 206. indicates that the response is a partial response as requested by a GET request that includes a byte range.
+
+
+ Equivalent to HTTP status 402. is reserved for future use.
+
+
+ Equivalent to HTTP status 308. indicates that the request information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will also use the POST method.
+
+
+ Equivalent to HTTP status 412. indicates that a condition set for this request failed, and the request cannot be carried out. Conditions are set with conditional request headers like If-Match, If-None-Match, or If-Unmodified-Since.
+
+
+ Equivalent to HTTP status 428. indicates that the server requires the request to be conditional.
+
+
+ Equivalent to HTTP status 102. indicates that the server has accepted the complete request but hasn't completed it yet.
+
+
+ Equivalent to HTTP status 407. indicates that the requested proxy requires authentication. The Proxy-authenticate header contains the details of how to perform the authentication.
+
+
+ Equivalent to HTTP status 302. indicates that the requested information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will use the GET method. Redirect is a synonym for Found.
+
+
+ Equivalent to HTTP status 307. indicates that the request information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will also use the POST method. RedirectKeepVerb is a synonym for TemporaryRedirect.
+
+
+ Equivalent to HTTP status 303. automatically redirects the client to the URI specified in the Location header as the result of a POST. The request to the resource specified by the Location header will be made with a GET. RedirectMethod is a synonym for SeeOther.
+
+
+ Equivalent to HTTP status 416. indicates that the range of data requested from the resource cannot be returned, either because the beginning of the range is before the beginning of the resource, or the end of the range is after the end of the resource.
+
+
+ Equivalent to HTTP status 413. indicates that the request is too large for the server to process.
+
+
+ Equivalent to HTTP status 431. indicates that the server is unwilling to process the request because its header fields (either an individual header field or all the header fields collectively) are too large.
+
+
+ Equivalent to HTTP status 408. indicates that the client did not send a request within the time the server was expecting the request.
+
+
+ Equivalent to HTTP status 414. indicates that the URI is too long.
+
+
+ Equivalent to HTTP status 205. indicates that the client should reset (not reload) the current resource.
+
+
+ Equivalent to HTTP status 303. automatically redirects the client to the URI specified in the Location header as the result of a POST. The request to the resource specified by the Location header will be made with a GET. SeeOther is a synonym for RedirectMethod.
+
+
+ Equivalent to HTTP status 503. indicates that the server is temporarily unavailable, usually due to high load or maintenance.
+
+
+ Equivalent to HTTP status 101. indicates that the protocol version or protocol is being changed.
+
+
+ Equivalent to HTTP status 307. indicates that the request information is located at the URI specified in the Location header. The default action when this status is received is to follow the Location header associated with the response. When the original request method was POST, the redirected request will also use the POST method. TemporaryRedirect is a synonym for RedirectKeepVerb.
+
+
+ Equivalent to HTTP status 429. indicates that the user has sent too many requests in a given amount of time.
+
+
+ Equivalent to HTTP status 401. indicates that the requested resource requires authentication. The WWW-Authenticate header contains the details of how to perform the authentication.
+
+
+ Equivalent to HTTP status 451. indicates that the server is denying access to the resource as a consequence of a legal demand.
+
+
+ Equivalent to HTTP status 422. indicates that the request was well-formed but was unable to be followed due to semantic errors.
+ UnprocessableContent is a synonym for UnprocessableEntity.
+
+
+ Equivalent to HTTP status 422. indicates that the request was well-formed but was unable to be followed due to semantic errors.
+ UnprocessableEntity is a synonym for UnprocessableContent.
+
+
+ Equivalent to HTTP status 415. indicates that the request is an unsupported type.
+
+
+ Equivalent to HTTP status 306. is a proposed extension to the HTTP/1.1 specification that is not fully specified.
+
+
+ Equivalent to HTTP status 426. indicates that the client should switch to a different protocol such as TLS/1.0.
+
+
+ Equivalent to HTTP status 305. indicates that the request should use the proxy server at the URI specified in the Location header.
+
+
+ Equivalent to HTTP status 506. indicates that the chosen variant resource is configured to engage in transparent content negotiation itself and, therefore, isn't a proper endpoint in the negotiation process.
+
+
+ Defines the HTTP version numbers that are supported by the and classes.
+
+
+ Defines a instance for an unknown HTTP version.
+
+
+ Defines a instance for HTTP 1.0.
+
+
+ Defines a instance for HTTP 1.1.
+
+
+ Defines a instance for HTTP 2.0.
+
+
+ Defines a instance for HTTP 3.0.
+
+
+ Provides the base authentication interface for retrieving credentials for Web client authentication.
+
+
+ Returns a object that is associated with the specified URI, and authentication type.
+ The that the client is providing authentication for.
+ The type of authentication, as defined in the property.
+ The that is associated with the specified URI and authentication type, or, if no credentials are available, .
+
+
+ Provides the interface for retrieving credentials for a host, port, and authentication type.
+
+
+ Returns the credential for the specified host, port, and authentication protocol.
+ The host computer that is authenticating the client.
+ The port on that the client will communicate with.
+ The authentication protocol.
+ A for the specified host, port, and authentication protocol, or if there are no credentials available for the specified host, port, and authentication protocol.
+
+
+ Provides an Internet Protocol (IP) address.
+
+
+ Provides an IP address that indicates that the server must listen for client activity on all network interfaces. This field is read-only.
+
+
+ Provides the IP broadcast address. This field is read-only.
+
+
+ The method uses the field to indicate that a must listen for client activity on all network interfaces.
+
+
+ Provides the IP loopback address. This property is read-only.
+
+
+ Provides an IP address that indicates that no network interface should be used. This property is read-only.
+
+
+ Provides the IP loopback address. This field is read-only.
+
+
+ Provides an IP address that indicates that no network interface should be used. This field is read-only.
+
+
+ Initializes a new instance of the class with the address specified as a array.
+ The byte array value of the IP address.
+
+ is .
+
+ contains a bad IP address.
+
+
+ Initializes a new instance of the class with the address specified as a array and the specified scope identifier.
+ The byte array value of the IP address.
+ The long value of the scope identifier.
+
+ is .
+
+ contains a bad IP address.
+
+ < 0 or
+
+ > 0x00000000FFFFFFFF
+
+
+ Initializes a new instance of the class with the address specified as an .
+ The long value of the IP address. For example, the value 0x2414188f in big-endian format would be the IP address "143.24.20.36".
+
+ < 0 or
+
+ > 0x00000000FFFFFFFF
+
+
+ Initializes a new instance of the class with the address specified as a byte span.
+ The byte representation of the IP address, in network byte order, with the most significant byte first in index position 0.
+
+ contains a bad IP address.
+
+
+ Initializes a new instance of the class with the address specified as a byte span and the specified scope identifier.
+ The byte span value of the IP address.
+ The long value of the scope identifier.
+
+ contains a bad IP address.
+
+ < 0
+
+-or-
+
+ > 0x00000000FFFFFFFF
+
+
+ Compares two IP addresses.
+ An instance to compare to the current instance.
+
+ if the two addresses are equal; otherwise, .
+
+
+ Provides a copy of the as an array of bytes in network order.
+ A array.
+
+
+ Returns a hash value for an IP address.
+ An integer hash value.
+
+
+ Converts a short value from host byte order to network byte order.
+ The number to convert, expressed in host byte order.
+ A short value, expressed in network byte order.
+
+
+ Converts an integer value from host byte order to network byte order.
+ The number to convert, expressed in host byte order.
+ An integer value, expressed in network byte order.
+
+
+ Converts a long value from host byte order to network byte order.
+ The number to convert, expressed in host byte order.
+ A long value, expressed in network byte order.
+
+
+ Indicates whether the specified IP address is the loopback address.
+ An IP address.
+
+ if is the loopback address; otherwise, .
+
+
+ Maps the object to an IPv4 address.
+ Returns .
+
+ An IPv4 address.
+
+
+ Maps the object to an IPv6 address.
+ Returns .
+
+ An IPv6 address.
+
+
+ Converts a short value from network byte order to host byte order.
+ The number to convert, expressed in network byte order.
+ A short value, expressed in host byte order.
+
+
+ Converts an integer value from network byte order to host byte order.
+ The number to convert, expressed in network byte order.
+ An integer value, expressed in host byte order.
+
+
+ Converts a long value from network byte order to host byte order.
+ The number to convert, expressed in network byte order.
+ A long value, expressed in host byte order.
+
+
+ Converts an IP address represented as a character span to an instance.
+ A character span that contains an IP address in dotted-quad notation for IPv4 and in colon-hexadecimal notation for IPv6.
+
+ is not a valid IP address.
+ The converted IP address.
+
+
+ Converts an IP address string to an instance.
+ A string that contains an IP address in dotted-quad notation for IPv4 and in colon-hexadecimal notation for IPv6.
+
+ is .
+
+ is not a valid IP address.
+ An instance.
+
+
+ Formats the value of the current instance using the specified format.
+ The format to use.
+ -or-
+ A reference ( in Visual Basic) to use the default format defined for the type of the implementation.
+ The provider to use to format the value.
+ -or-
+ A reference ( in Visual Basic) to obtain the numeric format information from the current locale setting of the operating system.
+ The value of the current instance in the specified format.
+
+
+ Parses a string into a value.
+ The string to parse.
+ An object that provides culture-specific formatting information about .
+ The result of parsing .
+
+
+ Tries to parse a string into an .
+ The string to parse.
+ An object that provides culture-specific formatting information about .
+ When this method returns, contains the result of successfully parsing or an undefined value on failure.
+
+ if was successfully parsed; otherwise, .
+
+
+ Tries to format the value of the current instance into the provided span of characters.
+ The span in which to write this instance's value formatted as a span of characters.
+ When this method returns, contains the number of characters that were written in .
+ A span containing the characters that represent a standard or custom format string that defines the acceptable format for .
+ An optional object that supplies culture-specific formatting information for .
+
+ if the formatting was successful; otherwise, .
+
+
+ Parses a span of characters into a value.
+ The span of characters to parse.
+ An object that provides culture-specific formatting information about .
+ The result of parsing .
+
+
+ Tries to parse a span of characters into a value.
+ The span of characters to parse.
+ An object that provides culture-specific formatting information about .
+ When this method returns, contains the result of successfully parsing or an undefined value on failure.
+
+ if was successfully parsed; otherwise, .
+
+
+ Tries to format the value of the current instance as UTF-8 into the provided span of bytes.
+ The span in which to write this instance's value formatted as a span of bytes.
+ When this method returns, contains the number of bytes that were written in .
+ A span containing the characters that represent a standard or custom format string that defines the acceptable format for .
+ An optional object that supplies culture-specific formatting information for .
+
+ if the formatting was successful; otherwise, .
+
+
+ Converts an Internet address to its standard notation.
+ The address family is and the address is bad.
+ A string that contains the IP address in either IPv4 dotted-quad or in IPv6 colon-hexadecimal notation.
+
+
+ Tries to format the current IP address into the provided span.
+ The span into which to write the IP address as a span of UTF-8 bytes.
+ When this method returns, contains the number of bytes written into the .
+
+ if the formatting was successful; otherwise, .
+
+
+ Tries to format the current IP address into the provided span.
+ When this method returns, the IP address as a span of characters.
+ When this method returns, the number of characters written into the span.
+
+ if the formatting was successful; otherwise, .
+
+
+ Tries to parse a span of characters into a value.
+ The byte span to parse.
+ When this method returns, the version of the byte span.
+
+ if was able to be parsed as an IP address; otherwise, .
+
+
+ Determines whether a string is a valid IP address.
+ The string to parse.
+ The version of the string.
+
+ is .
+
+ if was able to be parsed as an IP address; otherwise, .
+
+
+ Tries to write the current IP address into a span of bytes in network order.
+ When this method returns, the IP address as a span of bytes.
+ When this method returns, the number of bytes written into the span.
+
+ if the IP address is successfully written to the given span; otherwise, .
+
+
+ An Internet Protocol (IP) address.
+ The address family is .
+ The long value of the IP address.
+
+
+ Gets the address family of the IP address.
+ Returns for IPv4 or for IPv6.
+
+
+ Gets whether the IP address is an IPv4-mapped IPv6 address.
+ Returns .
+
+ if the IP address is an IPv4-mapped IPv6 address; otherwise, .
+
+
+ Gets whether the address is an IPv6 link local address.
+
+ if the IP address is an IPv6 link local address; otherwise, .
+
+
+ Gets whether the address is an IPv6 multicast global address.
+
+ if the IP address is an IPv6 multicast global address; otherwise, .
+
+
+ Gets whether the address is an IPv6 site local address.
+
+ if the IP address is an IPv6 site local address; otherwise, .
+
+
+ Gets whether the address is an IPv6 Teredo address.
+
+ if the IP address is an IPv6 Teredo address; otherwise, .
+
+
+ Gets whether the address is an IPv6 Unique Local address.
+
+
+ Gets or sets the IPv6 address scope identifier.
+
+ = .
+
+ < 0
+
+-or-
+
+ > 0x00000000FFFFFFFF
+ A long integer that specifies the scope of the address.
+
+
+ Represents a network endpoint as an IP address and a port number.
+
+
+ Specifies the maximum value that can be assigned to the property. The MaxPort value is set to 0x0000FFFF. This field is read-only.
+
+
+ Specifies the minimum value that can be assigned to the property. This field is read-only.
+
+
+ Initializes a new instance of the class with the specified address and port number.
+ The IP address of the Internet host. For example, the value 0x2414188f in big-endian format would be the IP address "143.24.20.36".
+ The port number associated with the , or 0 to specify any available port. is in host order.
+
+ is less than .
+
+ -or-
+
+ is greater than .
+
+ -or-
+
+ is less than 0 or greater than 0x00000000FFFFFFFF.
+
+
+ Initializes a new instance of the class with the specified address and port number.
+ An .
+ The port number associated with the , or 0 to specify any available port. is in host order.
+
+ is .
+
+ is less than .
+
+ -or-
+
+ is greater than .
+
+
+ Creates an endpoint from a socket address.
+ The to use for the endpoint.
+ The AddressFamily of is not equal to the AddressFamily of the current instance.
+
+ -or-
+
+ .Size < 8.
+ An instance using the specified socket address.
+
+
+ Determines whether the specified is equal to the current .
+ The to compare with the current .
+
+ if the specified is equal to the current ; otherwise, .
+
+
+ Returns a hash value for a instance.
+ An integer hash value.
+
+
+ Converts an IP network endpoint (address and port) represented as a read-only span to an instance.
+ A read-only span that contains an IP endpoint in dotted-quad notation or network byte order for IPv4 and in colon-hexadecimal notation for IPv6.
+
+ is .
+
+ is not a valid IP endpoint.
+ The object representation of an IP network endpoint.
+
+
+ Converts an IP network endpoint (address and port) represented as a string to an instance.
+ A string that contains an IP endpoint in dotted-quad notation or network byte order for IPv4 and in colon-hexadecimal notation for IPv6.
+
+ is .
+
+ is not a valid IP endpoint.
+ The object representation of an IP network endpoint.
+
+
+ Serializes endpoint information into a instance.
+ A instance containing the socket address for the endpoint.
+
+
+ Returns the IP address and port number of the specified endpoint.
+ A string containing the IP address and the port number of the specified endpoint (for example, 192.168.1.2:80).
+
+
+ Tries to convert an IP network endpoint (address and port) represented as a read-only span to its equivalent, and returns a value that indicates whether the conversion succeeded.
+ The IP endpoint to validate.
+ When this method returns, the version of .
+
+ if can be parsed as an IP endpoint; otherwise, .
+
+
+ Tries to convert an IP network endpoint (address and port) represented as a string to its equivalent, and returns a value that indicates whether the conversion succeeded.
+ The IP endpoint to validate.
+ When this method returns, the version of .
+
+ if can be parsed as an IP endpoint; otherwise, .
+
+
+ Gets or sets the IP address of the endpoint.
+ An instance containing the IP address of the endpoint.
+
+
+ Gets the Internet Protocol (IP) address family.
+ Returns .
+
+
+ Gets or sets the port number of the endpoint.
+ The value that was specified for a set operation is less than or greater than .
+ An integer value in the range to indicating the port number of the endpoint.
+
+
+ Represents an IP network with an containing the network prefix and an defining the prefix length.
+
+
+ Initializes a new instance of the class with the specified and prefix length.
+ The that represents the prefix of the network.
+ The length of the prefix in bits.
+ The specified is .
+ The specified is smaller than 0 or longer than maximum length of 's .
+ The specified has non-zero bits after the network prefix.
+
+
+ Determines whether a given is part of the network.
+ The to check.
+ The specified is .
+
+ if the is part of the network; otherwise, .
+
+
+ Indicates whether the current object is equal to another object of the same type.
+ An object to compare with this object.
+ The instance is uninitialized.
+
+ if the current object is equal to the parameter; otherwise, .
+
+
+ Determines whether two instances are equal.
+ The instance to compare to this instance.
+ The instance is uninitialized.
+
+ if is an instance and the networks are equal; otherwise .
+
+
+ Returns the hash code for this instance.
+ An integer hash value.
+
+
+ Determines whether the specified instances of are equal.
+ The first object to compare.
+ The second object to compare.
+
+ if the networks are equal; otherwise .
+
+
+ Determines whether the specified instances of are not equal.
+ The first object to compare.
+ The second object to compare.
+
+ if the networks are not equal; otherwise .
+
+
+ Converts a CIDR character span to an instance.
+ A character span that defines an IP network in CIDR notation.
+
+ is not a valid CIDR network string, or the address contains non-zero bits after the network prefix.
+ An instance.
+
+
+ Converts a CIDR to an instance.
+ A that defines an IP network in CIDR notation.
+ The specified string is .
+
+ is not a valid CIDR network string, or the address contains non-zero bits after the network prefix.
+ An instance.
+
+
+ Formats the value of the current instance using the specified format.
+ The format to use.
+ -or-
+ A reference ( in Visual Basic) to use the default format defined for the type of the implementation.
+ The provider to use to format the value.
+ -or-
+ A reference ( in Visual Basic) to obtain the numeric format information from the current locale setting of the operating system.
+ The value of the current instance in the specified format.
+
+
+ Parses a string into a value.
+ The string to parse.
+ An object that provides culture-specific formatting information about .
+ The result of parsing .
+
+
+ Tries to parse a string into an .
+ The string to parse.
+ An object that provides culture-specific formatting information about .
+ When this method returns, contains the result of successfully parsing or an undefined value on failure.
+
+ if was successfully parsed; otherwise, .
+
+
+ Tries to format the value of the current instance into the provided span of characters.
+ The span in which to write this instance's value formatted as a span of characters.
+ When this method returns, contains the number of characters that were written in .
+ A span containing the characters that represent a standard or custom format string that defines the acceptable format for .
+ An optional object that supplies culture-specific formatting information for .
+
+ if the formatting was successful; otherwise, .
+
+
+ Parses a span of characters into a value.
+ The span of characters to parse.
+ An object that provides culture-specific formatting information about .
+ The result of parsing .
+
+
+ Tries to parse a span of characters into a value.
+ The span of characters to parse.
+ An object that provides culture-specific formatting information about .
+ When this method returns, contains the result of successfully parsing or an undefined value on failure.
+
+ if was successfully parsed; otherwise, .
+
+
+ Tries to format the value of the current instance as UTF-8 into the provided span of bytes.
+ The span in which to write this instance's value formatted as a span of bytes.
+ When this method returns, contains the number of bytes that were written in .
+ A span containing the characters that represent a standard or custom format string that defines the acceptable format for .
+ An optional object that supplies culture-specific formatting information for .
+
+ if the formatting was successful; otherwise, .
+
+
+ Converts the instance to a string containing the 's CIDR notation.
+ The containing the 's CIDR notation.
+
+
+ Attempts to write the 's CIDR notation to the given UTF-8 span and returns a value indicating whether the operation succeeded.
+ The destination span of UTF-8 bytes.
+ When this method returns, contains the number of bytes that were written to .
+
+ if the formatting was successful; otherwise .
+
+
+ Attempts to write the 's CIDR notation to the given span and returns a value indicating whether the operation succeeded.
+ The destination span of characters.
+ When this method returns, contains the number of characters that were written to .
+
+ if the formatting was successful; otherwise .
+
+
+ Converts the specified CIDR character span to an instance and returns a value indicating whether the conversion succeeded.
+ A that defines an IP network in CIDR notation.
+ When the method returns, contains an instance if the conversion succeeds.
+
+ if the conversion was successful; otherwise, .
+
+
+ Converts the specified CIDR string to an instance and returns a value indicating whether the conversion succeeded.
+ A that defines an IP network in CIDR notation.
+ When the method returns, contains an instance if the conversion succeeds.
+
+ if the conversion was successful; otherwise, .
+
+
+ Gets the that represents the prefix of the network.
+ The that represents the prefix of the network.
+
+
+ Gets the length of the network prefix in bits.
+ The length of the network prefix in bits.
+
+
+ Provides the base interface for implementation of proxy access for the class.
+
+
+ Returns the URI of a proxy.
+ A that specifies the requested Internet resource.
+ A instance that contains the URI of the proxy used to contact ; otherwise null or itself.
+
+
+ Indicates that the proxy should not be used for the specified host.
+ The of the host to check for proxy use.
+
+ if the proxy server should not be used for ; otherwise, .
+
+
+ The credentials to submit to the proxy server for authentication.
+ An instance that contains the credentials that are needed to authenticate a request to the proxy server.
+
+
+ Provides credentials for password-based authentication schemes such as basic, digest, NTLM, and Kerberos authentication.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified user name and password.
+ The user name associated with the credentials.
+ The password for the user name associated with the credentials.
+ The class is not supported on this platform.
+
+
+ Initializes a new instance of the class with the specified user name, password, and domain.
+ The user name associated with the credentials.
+ The password for the user name associated with the credentials.
+ The domain associated with these credentials.
+ The class is not supported on this platform.
+
+
+ Initializes a new instance of the class with the specified user name and password.
+ The user name associated with the credentials.
+ The password for the user name associated with the credentials.
+
+
+ Initializes a new instance of the class with the specified user name, password, and domain.
+ The user name associated with the credentials.
+ The password for the user name associated with the credentials.
+ The domain associated with these credentials.
+
+
+ Returns an instance of the class for the specified host, port, and authentication type.
+ The host computer that authenticates the client.
+ The port on the that the client communicates with.
+ The type of authentication requested, as defined in the property.
+ A for the specified host, port, and authentication protocol, or if there are no credentials available for the specified host, port, and authentication protocol.
+
+
+ Returns an instance of the class for the specified Uniform Resource Identifier (URI) and authentication type.
+ The URI that the client provides authentication for.
+
+ A object.
+
+
+ Gets or sets the domain or computer name that verifies the credentials.
+ The name of the domain associated with the credentials.
+
+
+ Gets or sets the password for the user name associated with the credentials.
+ The password associated with the credentials. If this instance was initialized with the parameter set to , then the property will return an empty string.
+
+
+ Gets or sets the password as a instance.
+ The class is not supported on this platform.
+ The password for the user name associated with the credentials.
+
+
+ Gets or sets the user name associated with the credentials.
+ The user name associated with the credentials.
+
+
+ Stores a set of types.
+
+
+ Initializes a new instance of the class.
+
+
+ Throws a because this operation is not supported for this collection.
+ The object to be added to the collection.
+
+
+ Throws a because this operation is not supported for this collection.
+
+
+ Checks whether the collection contains the specified object.
+ The object to be searched in the collection.
+
+ if the object exists in the collection; otherwise, .
+
+
+ Copies the elements in this collection to a one-dimensional array of type .
+ A one-dimensional array that receives a copy of the collection.
+ The zero-based index in at which the copy begins.
+
+ is .
+
+ is less than zero.
+
+ is multidimensional.
+
+-or-
+
+The number of elements in this is greater than the available space from to the end of the destination .
+ The elements in this cannot be cast automatically to the type of the destination .
+
+
+ Returns an object that can be used to iterate through this collection.
+ An object that implements the interface and provides access to the types in this collection.
+
+
+ Throws a because this operation is not supported for this collection.
+ The object to be removed.
+ Always throws a .
+
+
+ Returns an object that can be used to iterate through this collection.
+ An object that implements the interface and provides access to the types in this collection.
+
+
+ Gets the number of types in this collection.
+ An value that contains the number of types in this collection.
+
+
+ Gets a value that indicates whether access to this collection is read-only.
+
+ in all cases.
+
+
+ Gets the at the specific index of the collection.
+ The index of interest.
+ The at the specific index in the collection.
+
+
+ Specifies client requirements for authentication and impersonation when using the class and derived classes to request a resource.
+
+
+ The client and server should be authenticated. The request does not fail if the server is not authenticated. To determine whether mutual authentication occurred, check the value of the property.
+
+
+ The client and server should be authenticated. If the server is not authenticated, your application will receive an with a inner exception that indicates that mutual authentication failed.
+
+
+ No authentication is required for the client and server.
+
+
+ Enumerates Secure Socket Layer (SSL) policy errors.
+
+
+ No SSL policy errors.
+
+
+
+ has returned a non empty array.
+
+
+ Certificate name mismatch.
+
+
+ Certificate not available.
+
+
+ Stores serialized information from derived classes.
+
+
+ Creates a new instance of the class for the given address family.
+ An enumerated value.
+
+
+ Creates a new instance of the class using the specified address family and buffer size.
+ An enumerated value.
+ The number of bytes to allocate for the underlying buffer.
+
+ is less than 2. These 2 bytes are needed to store .
+
+
+ Indicates whether the current object is equal to another object of the same type.
+ The object to compare.
+
+ if the current object is equal to the parameter; otherwise, .
+
+
+ Determines whether the specified is equal to the current .
+ The to compare with the current .
+
+ if the specified is equal to the current ; otherwise, .
+
+
+ Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures like a hash table.
+ A hash code for the current .
+
+
+ Gets the maximum required buffer size for the given .
+ The addressing scheme to use.
+ The maximum buffer size.
+
+
+ Returns information about the socket address.
+ A string that contains information about the .
+
+
+ Gets the underlying memory that can be passed to native OS calls.
+
+
+ Gets the enumerated value of the current .
+ One of the enumerated values.
+
+
+ Gets or sets the specified index element in the underlying buffer.
+ The array index element of the desired information.
+ The specified index does not exist in the buffer.
+ The value of the specified index element in the underlying buffer.
+
+
+ Gets the underlying buffer size of the .
+ The underlying buffer size of the .
+
+
+ Specifies the addressing scheme that an instance of the class can use.
+
+
+ AppleTalk address.
+
+
+ Native ATM services address.
+
+
+ Banyan address.
+
+
+ Addresses for CCITT protocols, such as X.25.
+
+
+ Address for MIT CHAOS protocols.
+
+
+ Address for Microsoft cluster products.
+
+
+ Controller Area Network address.
+
+
+ Address for Datakit protocols.
+
+
+ Direct data-link interface address.
+
+
+ DECnet address.
+
+
+ European Computer Manufacturers Association (ECMA) address.
+
+
+ FireFox address.
+
+
+ NSC Hyperchannel address.
+
+
+ IEEE 1284.4 workgroup address.
+
+
+ ARPANET IMP address.
+
+
+ Address for IP version 4.
+
+
+ Address for IP version 6.
+
+
+ IPX or SPX address.
+
+
+ IrDA address.
+
+
+ Address for ISO protocols.
+
+
+ LAT address.
+
+
+ MAX address.
+
+
+ NetBios address.
+
+
+ Address for Network Designers OSI gateway-enabled protocols.
+
+
+ Address for Xerox NS protocols.
+
+
+ Address for OSI protocols.
+
+
+ Low-level Packet address.
+
+
+ Address for PUP protocols.
+
+
+ IBM SNA address.
+
+
+ Unix local to host address.
+
+
+ Unknown address family.
+
+
+ Unspecified address family.
+
+
+ VoiceView address.
+
+
+ Defines error codes for the class.
+
+
+ An attempt was made to access a in a way that is forbidden by its access permissions.
+
+
+ Only one use of an address is normally permitted.
+
+
+ The address family specified is not supported. This error is returned if the IPv6 address family was specified and the IPv6 stack is not installed on the local machine. This error is returned if the IPv4 address family was specified and the IPv4 stack is not installed on the local machine.
+
+
+ The selected IP address is not valid in this context.
+
+
+ The nonblocking already has an operation in progress.
+
+
+ The connection was aborted by .NET or the underlying socket provider.
+
+
+ The remote host is actively refusing a connection.
+
+
+ The connection was reset by the remote peer.
+
+
+ A required address was omitted from an operation on a .
+
+
+ A graceful shutdown is in progress.
+
+
+ An invalid pointer address was detected by the underlying socket provider.
+
+
+ The operation failed because the remote host is down.
+
+
+ No such host is known. The name is not an official host name or alias.
+
+
+ There is no network route to the specified host.
+
+
+ A blocking operation is in progress.
+
+
+ A blocking call was canceled.
+
+
+ An invalid argument was supplied to a member.
+
+
+ The application has initiated an overlapped operation that cannot be completed immediately.
+
+
+ The is already connected.
+
+
+ The datagram is too long.
+
+
+ The network is not available.
+
+
+ The application tried to set on a connection that has already timed out.
+
+
+ No route to the remote host exists.
+
+
+ No free buffer space is available for a operation.
+
+
+ The requested name or IP address was not found on the name server.
+
+
+ The error is unrecoverable or the requested database cannot be located.
+
+
+ The application tried to send or receive data, and the is not connected.
+
+
+ The underlying socket provider has not been initialized.
+
+
+ A operation was attempted on a non-socket.
+
+
+ The overlapped operation was aborted due to the closure of the .
+
+
+ The address family is not supported by the protocol family.
+
+
+ Too many processes are using the underlying socket provider.
+
+
+ The protocol family is not implemented or has not been configured.
+
+
+ The protocol is not implemented or has not been configured.
+
+
+ An unknown, invalid, or unsupported option or level was used with a .
+
+
+ The protocol type is incorrect for this .
+
+
+ A request to send or receive data was disallowed because the has already been closed.
+
+
+ An unspecified error has occurred.
+
+
+ The support for the specified socket type does not exist in this address family.
+
+
+ The operation succeeded.
+
+
+ The network subsystem is unavailable.
+
+
+ The connection attempt timed out, or the connected host has failed to respond.
+
+
+ There are too many open sockets in the underlying socket provider.
+
+
+ The name of the host could not be resolved. Try again later.
+
+
+ The specified class was not found.
+
+
+ The version of the underlying socket provider is out of range.
+
+
+ An operation on a nonblocking socket cannot be completed immediately.
+
+
+ The exception that is thrown when a socket error occurs.
+
+
+ Initializes a new instance of the class with the last operating system error code.
+
+
+ Initializes a new instance of the class with the specified error code.
+ The error code that indicates the error that occurred.
+
+
+ Initializes a new instance of the class with the specified error code and message.
+ The error code that indicates the error that occurred.
+ The message that describes the error.
+
+
+ Initializes a new instance of the class from the specified instances of the and classes.
+ A instance that contains the information that is required to serialize the new instance.
+ A that contains the source of the serialized stream that is associated with the new instance.
+
+
+ Gets the error code that is associated with this exception.
+ An integer error code that is associated with this exception.
+
+
+ Gets the error message that is associated with this exception.
+ A string that contains the error message.
+
+
+ Gets the error code that is associated with this exception.
+ An integer error code that is associated with this exception.
+
+
+ The class provides additional context about the underlying transport layer.
+
+
+ Creates a new instance of the class.
+
+
+ Retrieves the requested channel binding.
+ The type of channel binding to retrieve.
+
+ is must be for use with the retrieved from the property.
+ The requested , or if the channel binding is not supported by the current transport or by the operating system.
+
+
+ Defines the possible cipher algorithms for the class.
+
+
+ The Advanced Encryption Standard (AES) algorithm.
+
+
+ The Advanced Encryption Standard (AES) algorithm with a 128 bit key.
+
+
+ The Advanced Encryption Standard (AES) algorithm with a 192 bit key.
+
+
+ The Advanced Encryption Standard (AES) algorithm with a 256 bit key.
+
+
+ The Data Encryption Standard (DES) algorithm.
+
+
+ No encryption algorithm is used.
+
+
+ No encryption is used with a Null cipher algorithm.
+
+
+ Rivest's Code 2 (RC2) algorithm.
+
+
+ Rivest's Code 4 (RC4) algorithm.
+
+
+ The Triple Data Encryption Standard (3DES) algorithm.
+
+
+ Specifies the algorithm used to create keys shared by the client and server.
+
+
+ The Diffie Hellman ephemeral key exchange algorithm.
+
+
+ No key exchange algorithm is used.
+
+
+ The RSA public-key exchange algorithm.
+
+
+ The RSA public-key signature algorithm.
+
+
+ The class encapsulates a pointer to the opaque data used to bind an authenticated transaction to a secure channel.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ A Boolean value that indicates if the application owns the safe handle to a native memory region containing the byte data that would be passed to native calls that provide extended protection for integrated windows authentication.
+
+
+ The property gets the size, in bytes, of the channel binding token associated with the instance.
+ The size, in bytes, of the channel binding token in the instance.
+
+
+ The enumeration represents the kinds of channel bindings that can be queried from secure channels.
+
+
+ A channel binding unique to a given endpoint (a TLS server certificate, for example).
+
+
+ A channel binding completely unique to a given channel (a TLS session key, for example).
+
+
+ An unknown channel binding type.
+
+
+ Specifies the algorithm used for generating message authentication codes (MACs).
+
+
+
+ The Message Digest 5 (MD5) hashing algorithm.
+ Due to collision problems with MD5, Microsoft recommends SHA256.
+
+
+
+ No hashing algorithm is used.
+
+
+
+ The Secure Hashing Algorithm (SHA1).
+ Due to collision problems with MD5, Microsoft recommends SHA256.
+
+
+
+ The Secure Hashing Algorithm 2 (SHA-2), using a 256-bit digest.
+
+
+ The Secure Hashing Algorithm 2 (SHA-2), using a 384-bit digest.
+
+
+ The Secure Hashing Algorithm 2 (SHA-2), using a 512-bit digest.
+
+
+ Defines the possible versions of .
+
+
+ Use None instead of Default. Default permits only the Secure Sockets Layer (SSL) 3.0 or Transport Layer Security (TLS) 1.0 protocols to be negotiated, and those options are now considered obsolete. Consequently, Default is not allowed in many organizations. Despite the name of this field, does not use it as a default except under special circumstances.
+
+
+ Allows the operating system to choose the best protocol to use, and to block protocols that are not secure. Unless your app has a specific reason not to, you should use this field.
+
+
+ Specifies the SSL 2.0 protocol. SSL 2.0 has been superseded by the TLS protocol and is provided for backward compatibility only.
+
+
+ Specifies the SSL 3.0 protocol. SSL 3.0 has been superseded by the TLS protocol and is provided for backward compatibility only.
+
+
+ Specifies the TLS 1.0 security protocol. TLS 1.0 is provided for backward compatibility only. The TLS protocol is defined in IETF RFC 2246. This member is obsolete starting in .NET 7.
+
+
+ Specifies the TLS 1.1 security protocol. The TLS protocol is defined in IETF RFC 4346. This member is obsolete starting in .NET 7.
+
+
+ Specifies the TLS 1.2 security protocol. The TLS protocol is defined in IETF RFC 5246.
+
+
+ Specifies the TLS 1.3 security protocol. The TLS protocol is defined in IETF RFC 8446.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Quic.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Quic.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ac42aebf0b44d0afbab440a4fc8cbba4ec3e5a52
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Quic.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Requests.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Requests.xml
new file mode 100644
index 0000000000000000000000000000000000000000..de44299e61572d3955d24ecdb57ebf802d4b0094
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Requests.xml
@@ -0,0 +1,2008 @@
+
+
+
+ System.Net.Requests
+
+
+
+ Manages the authentication modules called during the client authentication process.
+
+
+ Calls each registered authentication module to find the first module that can respond to the authentication request.
+ The challenge returned by the Internet resource.
+ The request that initiated the authentication challenge.
+ The credentials associated with this request.
+ .NET Core and .NET 5+ only: In all cases.
+
+ is .
+
+ -or-
+
+ is .
+
+ -or-
+
+ is .
+ An instance of the class containing the result of the authorization attempt. If there is no authentication module to respond to the challenge, this method returns .
+
+
+ Preauthenticates a request.
+ A request to an internet resource.
+ The credentials associated with the request.
+ .NET Core and .NET 5+ only: In all cases.
+
+ is .
+ An instance of the class if the request can be preauthenticated; otherwise, . If is , this method returns .
+
+
+ Registers an authentication module with the authentication manager.
+ The to register with the authentication manager.
+
+ is .
+
+
+ Removes the specified authentication module from the list of registered modules.
+ The to remove from the list of registered modules.
+
+ is .
+ The specified is not registered.
+
+
+ Removes authentication modules with the specified authentication scheme from the list of registered modules.
+ The authentication scheme of the module to remove.
+
+ is .
+ A module for this authentication scheme is not registered.
+
+
+ Gets or sets the credential policy to be used for resource requests made using the class.
+ An object that implements the interface that determines whether credentials are sent with requests. The default value is .
+
+
+ Gets the dictionary that contains Service Principal Names (SPNs) that are used to identify hosts during Kerberos authentication for requests made using and its derived classes.
+ A writable that contains the SPN values for keys composed of host information.
+
+
+ Gets a list of authentication modules that are registered with the authentication manager.
+ An that enables the registered authentication modules to be read.
+
+
+ Contains an authentication message for an Internet server.
+
+
+ Creates a new instance of the class with the specified authorization message.
+ The encrypted authorization message expected by the server.
+
+
+ Creates a new instance of the class with the specified authorization message and completion status.
+ The encrypted authorization message expected by the server.
+ The completion status of the authorization attempt. if the authorization attempt is complete; otherwise, .
+
+
+ Creates a new instance of the class with the specified authorization message, completion status, and connection group identifier.
+ The encrypted authorization message expected by the server.
+ The completion status of the authorization attempt. if the authorization attempt is complete; otherwise, .
+ A unique identifier that can be used to create private client-server connections that are bound only to this authentication scheme.
+
+
+ Gets the completion status of the authorization.
+
+ if the authentication process is complete; otherwise, .
+
+
+ Gets a unique identifier for user-specific connections.
+ A unique string that associates a connection with an authenticating entity.
+
+
+ Gets the message returned to the server in response to an authentication challenge.
+ The message that will be returned to the server in response to an authentication challenge.
+
+
+ Gets or sets a value that indicates whether mutual authentication occurred.
+
+ if both client and server were authenticated; otherwise, .
+
+
+ Gets or sets the prefix for Uniform Resource Identifiers (URIs) that can be authenticated with the property.
+ An array of strings that contains URI prefixes.
+
+
+ Specifies the meaning of time values that control caching behavior for resources obtained using objects.
+
+
+ Content can be taken from the cache until it is older than the age specified with this value.
+
+
+
+ and .
+
+
+
+ and .
+
+
+ Content can be taken from the cache after it has expired, until the time specified with this value elapses.
+
+
+ Content can be taken from the cache if the time remaining before expiration is greater than or equal to the time specified with this value.
+
+
+ For internal use only. The Framework will throw an if you try to use this member.
+
+
+ Specifies caching behavior for resources obtained using the Hypertext Transfer protocol (HTTP).
+
+
+ Satisfies a request by using the server. No entries are taken from caches, added to caches, or removed from caches between the client and server. No entries are taken from caches, added to caches, or removed from caches between the client and server. This is the default cache behavior specified in the machine configuration file that ships with the .NET Framework.
+
+
+ Satisfies a request for a resource from the cache if the resource is available; otherwise, sends a request for a resource to the server. If the requested item is available in any cache between the client and the server, the request might be satisfied by the intermediate cache.
+
+
+ Satisfies a request using the locally cached resource; does not send a request for an item that is not in the cache. When this cache policy level is specified, a exception is thrown if the item is not in the client cache.
+
+
+ Satisfies a request for a resource either from the local computer's cache or a remote cache on the local area network. If the request cannot be satisfied, a exception is thrown. In the HTTP caching protocol, this is achieved using the cache control directive.
+
+
+ Satisfies a request for a resource either by using the cached copy of the resource or by sending a request for the resource to the server. The action taken is determined by the current cache policy and the age of the content in the cache. This is the cache level that should be used by most applications.
+
+
+ Never satisfies a request by using resources from the cache and does not cache resources. If the resource is present in the local cache, it is removed. This policy level indicates to intermediate caches that they should remove the resource. In the HTTP caching protocol, this is achieved using the no-cache cache control directive.
+
+
+ Satisfies a request by using the server or a cache other than the local cache. Before the request can be satisfied by an intermediate cache, that cache must revalidate its cached entry with the server. In the HTTP caching protocol, this is achieved using the max-age = 0 cache control directive and the no-cache header.
+
+
+ Satisfies a request by using the server. The response might be saved in the cache. In the HTTP caching protocol, this is achieved using the no-cache cache control directive and the no-cache header.
+
+
+ Compares the copy of the resource in the cache with the copy on the server. If the copy on the server is newer, it is used to satisfy the request and replaces the copy in the cache. If the copy in the cache is the same as the server copy, the cached copy is used. In the HTTP caching protocol, this is achieved using a conditional request.
+
+
+ Defines an application's caching requirements for resources obtained by using objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the specified cache synchronization date.
+ A object that specifies the time when resources stored in the cache must be revalidated.
+
+
+ Initializes a new instance of the class using the specified age control and time values.
+ One of the following enumeration values: , , or .
+ A value that specifies an amount of time.
+ The value specified for the parameter cannot be used with this constructor.
+
+
+ Initializes a new instance of the class using the specified maximum age, age control value, and time value.
+ An value.
+ A value that specifies the maximum age for resources.
+ A value that specifies an amount of time.
+ The value specified for the parameter is not valid.
+
+
+ Initializes a new instance of the class using the specified maximum age, age control value, time value, and cache synchronization date.
+ An value.
+ A value that specifies the maximum age for resources.
+ A value that specifies an amount of time.
+ A object that specifies the time when resources stored in the cache must be revalidated.
+
+
+ Initializes a new instance of the class using the specified cache policy.
+ An value.
+
+
+ Returns a string representation of this instance.
+ A value that contains the property values for this instance.
+
+
+ Gets the cache synchronization date for this instance.
+ A value set to the date specified when this instance was created. If no date was specified, this property's value is DateTime.MinValue.
+
+
+ Gets the value that was specified when this instance was created.
+ A value that specifies the cache behavior for resources that were obtained using objects.
+
+
+ Gets the maximum age permitted for a resource returned from the cache.
+ A value that is set to the maximum age value specified when this instance was created. If no date was specified, this property's value is DateTime.MinValue.
+
+
+ Gets the maximum staleness value that is permitted for a resource returned from the cache.
+ A value that is set to the maximum staleness value specified when this instance was created. If no date was specified, this property's value is DateTime.MinValue.
+
+
+ Gets the minimum freshness that is permitted for a resource returned from the cache.
+ A value that specifies the minimum freshness specified when this instance was created. If no date was specified, this property's value is DateTime.MinValue.
+
+
+ Provides a file system implementation of the class.
+
+
+ Initializes a new instance of the class from the specified instances of the and classes.
+ A object that contains the information that is required to serialize the new object.
+ A object that contains the source of the serialized stream that is associated with the new object.
+
+
+ Cancels a request to an Internet resource.
+
+
+ Begins an asynchronous request for a object to use to write data.
+ The delegate.
+ An object that contains state information for this request.
+ The property is GET and the application writes to the stream.
+ The stream is being used by a previous call to .
+ No write stream is available.
+ The was aborted.
+ An that references the asynchronous request.
+
+
+ Begins an asynchronous request for a file system resource.
+ The delegate.
+ An object that contains state information for this request.
+ The stream is already in use by a previous call to .
+ The was aborted.
+ An that references the asynchronous request.
+
+
+ Ends an asynchronous request for a instance that the application uses to write data.
+ An that references the pending request for a stream.
+
+ is .
+ A object that the application uses to write data.
+
+
+ Ends an asynchronous request for a file system resource.
+ An that references the pending request for a response.
+
+ is .
+ A that contains the response from the file system resource.
+
+
+ Populates a with the data needed to serialize the target object.
+ The to populate with data.
+ A that specifies the destination for this serialization.
+
+
+ Returns a object for writing data to the file system resource.
+ The request times out.
+ A for writing data to the file system resource.
+
+
+ Returns a stream for writing data to the file system resource as an asynchronous operation.
+ The stream is being used by a previous call to .
+
+-or-
+
+The stream already received a response previous to your request.
+ The property is GET or HEAD.
+ The was aborted.
+ The task object representing the asynchronous operation.
+
+
+ Returns a response to a file system request.
+ The request timed out.
+ A that contains the response from the file system resource.
+
+
+ Returns a response to a file system request as an asynchronous operation.
+ The stream is already in use by a previous call to .
+ The was aborted.
+ The task object representing the asynchronous operation.
+
+
+ Populates a object with the required data to serialize the .
+ A that holds the serialized data for the .
+ A that contains the destination of the serialized stream that is associated with the new .
+
+
+ Gets or sets the name of the connection group for the request. This property is reserved for future use.
+ The name of the connection group for the request.
+
+
+ Gets or sets the content length of the data being sent.
+
+ is less than 0.
+ The number of bytes of request data being sent.
+
+
+ Gets or sets the content type of the data being sent. This property is reserved for future use.
+ The content type of the data being sent.
+
+
+ Gets or sets the credentials that are associated with this request. This property is reserved for future use.
+ An that contains the authentication credentials that are associated with this request. The default is .
+
+
+ Gets a collection of the name/value pairs that are associated with the request. This property is reserved for future use.
+ A that contains header name/value pairs associated with this request.
+
+
+ Gets or sets the protocol method used for the request. This property is reserved for future use.
+ The method is invalid.
+
+-or-
+
+ The method is not supported.
+
+-or-
+
+ Multiple methods were specified.
+ The protocol method to use in this request.
+
+
+ Gets or sets a value that indicates whether to preauthenticate a request. This property is reserved for future use.
+
+ to preauthenticate; otherwise, .
+
+
+ Gets or sets the network proxy to use for this request. This property is reserved for future use.
+ An that indicates the network proxy to use for this request.
+
+
+ Gets the Uniform Resource Identifier (URI) of the request.
+ A that contains the URI of the request.
+
+
+ Gets or sets the length of time until the request times out.
+ The value specified is less than or equal to zero and is not .
+ The time, in milliseconds, until the request times out, or the value to indicate that the request does not time out.
+
+
+ Always throws a .
+ Default credentials are not supported for file Uniform Resource Identifiers (URIs).
+ Always throws a .
+
+
+ Provides a file system implementation of the class.
+
+
+ Initializes a new instance of the class from the specified instances of the and classes.
+ A instance that contains the information required to serialize the new instance.
+ An instance of the class that contains the source of the serialized stream associated with the new instance.
+
+
+ Closes the response stream.
+
+
+ Populates a with the data needed to serialize the target object.
+ The to populate with data.
+ A that specifies the destination for this serialization.
+
+
+ Returns the data stream from the file system resource.
+ A for reading data from the file system resource.
+
+
+ Populates a instance with the data needed to serialize the .
+ A , which will hold the serialized data for the .
+ A containing the destination of the serialized stream associated with the new .
+
+
+ Gets the length of the content in the file system resource.
+ The number of bytes returned from the file system resource.
+
+
+ Gets the content type of the file system resource.
+ The value "binary/octet-stream".
+
+
+ Gets a collection of header name/value pairs associated with the response.
+ A that contains the header name/value pairs associated with the response.
+
+
+ Gets the URI of the file system resource that provided the response.
+ A that contains the URI of the file system resource that provided the response.
+
+
+ Gets a value that indicates whether the property is supported by the instance.
+
+ if the property is supported by the instance; otherwise, .
+
+
+ Specifies the status codes returned for a File Transfer Protocol (FTP) operation.
+
+
+ Specifies that a user account on the server is required.
+
+
+ Specifies that an error occurred that prevented the request action from completing.
+
+
+ Specifies that the requested action cannot be taken because the specified page type is unknown. Page types are described in RFC 959 Section 3.1.2.3.
+
+
+ Specifies that the requested action cannot be performed on the specified file.
+
+
+ Specifies that the requested action cannot be performed on the specified file because the file is not available.
+
+
+ Specifies that the requested action cannot be performed on the specified file because the file is not available or is being used.
+
+
+ Specifies that the requested action cannot be performed because there is not enough space on the server.
+
+
+ Specifies that one or more command arguments has a syntax error.
+
+
+ Specifies that the sequence of commands is not in the correct order.
+
+
+ Specifies that the data connection cannot be opened.
+
+
+ Specifies that the server is closing the control connection.
+
+
+ Specifies that the server is closing the data connection and that the requested file action was successful.
+
+
+ Specifies that the command is not implemented by the server because it is not needed.
+
+
+ Specifies that the command is not implemented by the FTP server.
+
+
+ Specifies that the command completed successfully.
+
+
+ Specifies that the command has a syntax error or is not a command recognized by the server.
+
+
+ Specifies that the connection has been closed.
+
+
+ Specifies that the data connection is already open and the requested transfer is starting.
+
+
+ Specifies the status of a directory.
+
+
+ Specifies that the server is entering passive mode.
+
+
+ Specifies that the requested action cannot be performed.
+
+
+ Specifies that the requested file action completed successfully.
+
+
+ Specifies that the requested file action requires additional information.
+
+
+ Specifies the status of a file.
+
+
+ Specifies that the user is logged in and can send commands.
+
+
+ Specifies that the server requires a login account to be supplied.
+
+
+ Specifies that login information must be sent to the server.
+
+
+ Specifies that the server is opening the data connection.
+
+
+ Specifies that the requested path name was created.
+
+
+ Specifies that the response contains a restart marker reply. The text of the description that accompanies this status contains the user data stream marker and the server marker.
+
+
+ Specifies that the server expects a password to be supplied.
+
+
+ Specifies that the server is ready for a user login operation.
+
+
+ Specifies that the server accepts the authentication mechanism specified by the client, and the exchange of security data is complete.
+
+
+ Specifies that the service is not available.
+
+
+ Specifies that the service is not available now; try your request later.
+
+
+ Specifies the system type name using the system names published in the Assigned Numbers document published by the Internet Assigned Numbers Authority.
+
+
+ Included for completeness, this value is never returned by servers.
+
+
+ Implements a File Transfer Protocol (FTP) client.
+
+
+ Terminates an asynchronous FTP operation.
+
+
+ Begins asynchronously opening a request's content stream for writing.
+ An delegate that references the method to invoke when the operation is complete.
+ A user-defined object that contains information about the operation. This object is passed to the delegate when the operation completes.
+ A previous call to this method or has not yet completed.
+ A connection to the FTP server could not be established.
+ The property is not set to .
+ An instance that indicates the status of the operation.
+
+
+ Begins sending a request and receiving a response from an FTP server asynchronously.
+ An delegate that references the method to invoke when the operation is complete.
+ A user-defined object that contains information about the operation. This object is passed to the delegate when the operation completes.
+
+ or has already been called for this instance.
+ An instance that indicates the status of the operation.
+
+
+ Ends a pending asynchronous operation started with .
+ The object that was returned when the operation started.
+
+ is .
+
+ was not obtained by calling .
+ This method was already called for the operation identified by .
+ A writable instance associated with this instance.
+
+
+ Ends a pending asynchronous operation started with .
+ The that was returned when the operation started.
+
+ is .
+
+ was not obtained by calling .
+ This method was already called for the operation identified by .
+ An error occurred using an HTTP proxy.
+ A reference that contains an instance. This object contains the FTP server's response to the request.
+
+
+ Retrieves the stream used to upload data to an FTP server.
+
+ has been called and has not completed.
+
+-or-
+
+ An HTTP proxy is enabled, and you attempted to use an FTP command other than , , or .
+ A connection to the FTP server could not be established.
+ The property is not set to or .
+ A writable instance used to store data to be sent to the server by the current request.
+
+
+ Returns the FTP server response.
+
+ or has already been called for this instance.
+
+-or-
+
+ An HTTP proxy is enabled, and you attempted to use an FTP command other than , , or .
+
+ is set to , but the server does not support this feature.
+
+-or-
+
+ A was specified and the timeout has expired.
+ A reference that contains an instance. This object contains the FTP server's response to the request.
+
+
+ Gets or sets the certificates used for establishing an encrypted connection to the FTP server.
+ The value specified for a set operation is .
+ An object that contains the client certificates.
+
+
+ Gets or sets the name of the connection group that contains the service point used to send the current request.
+ A new value was specified for this property for a request that is already in progress.
+ A value that contains a connection group name.
+
+
+ Gets or sets a value that is ignored by the class.
+ An value that should be ignored.
+
+
+ Gets or sets a byte offset into the file being downloaded by this request.
+ A new value was specified for this property for a request that is already in progress.
+ The value specified for this property is less than zero.
+ An instance that specifies the file offset, in bytes. The default value is zero.
+
+
+ Always throws a .
+ Content type information is not supported for FTP.
+ Always throws a .
+
+
+ Gets or sets the credentials used to communicate with the FTP server.
+ The value specified for a set operation is .
+ An of a type other than was specified for a set operation.
+ A new value was specified for this property for a request that is already in progress.
+ An instance; otherwise, if the property has not been set.
+
+
+ Defines the default cache policy for all FTP requests.
+ The caller tried to set this property to .
+ A that defines the cache policy for FTP requests.
+
+
+ Gets or sets a that specifies that an SSL connection should be used.
+ The connection to the FTP server has already been established.
+
+ if control and data transmissions are encrypted; otherwise, . The default value is .
+
+
+ Gets an empty object.
+ An empty object.
+
+
+ Gets or sets a value that specifies whether the control connection to the FTP server is closed after the request completes.
+ A new value was specified for this property for a request that is already in progress.
+
+ if the connection to the server should not be destroyed; otherwise, . The default value is .
+
+
+ Gets or sets the command to send to the FTP server.
+ A new value was specified for this property for a request that is already in progress.
+ The method is invalid.
+
+-or-
+
+ The method is not supported.
+
+-or-
+
+ Multiple methods were specified.
+ A value that contains the FTP command to send to the server. The default value is .
+
+
+ Always throws a .
+ Preauthentication is not supported for FTP.
+ Always throws a .
+
+
+ Gets or sets the proxy used to communicate with the FTP server.
+ This property cannot be set to .
+ A new value was specified for this property for a request that is already in progress.
+ An instance responsible for communicating with the FTP server. On .NET Core, its value is .
+
+
+ Gets or sets a time-out when reading from or writing to a stream.
+ The request has already been sent.
+ The value specified for a set operation is less than or equal to zero and is not equal to .
+ The number of milliseconds before the reading or writing times out. The default value is 300,000 milliseconds (5 minutes).
+
+
+ Gets or sets the new name of a file being renamed.
+ The value specified for a set operation is or an empty string.
+ A new value was specified for this property for a request that is already in progress.
+ The new name of the file being renamed.
+
+
+ Gets the URI requested by this instance.
+ A instance that identifies a resource that is accessed using the File Transfer Protocol.
+
+
+ Gets the object used to connect to the FTP server.
+ A object that can be used to customize connection behavior.
+
+
+ Gets or sets the number of milliseconds to wait for a request.
+ The value specified is less than zero and is not .
+ A new value was specified for this property for a request that is already in progress.
+ An value that contains the number of milliseconds to wait before a request times out. The default value is .
+
+
+ Gets or sets a value that specifies the data type for file transfers.
+ A new value was specified for this property for a request that is already in progress.
+
+ to indicate to the server that the data to be transferred is binary; to indicate that the data is text. The default value is .
+
+
+ Always throws a .
+ Default credentials are not supported for FTP.
+ Always throws a .
+
+
+ Gets or sets the behavior of a client application's data transfer process.
+ A new value was specified for this property for a request that is already in progress.
+
+ if the client application's data transfer process listens for a connection on the data port; otherwise, if the client should initiate a connection on the data port. The default value is .
+
+
+ Encapsulates a File Transfer Protocol (FTP) server's response to a request.
+
+
+ Frees the resources held by the response.
+
+
+ Retrieves the stream that contains response data sent from an FTP server.
+ The response did not return a data stream.
+ A readable instance that contains data returned with the response; otherwise, if no response data was returned by the server.
+
+
+ Gets the message sent by the FTP server when a connection is established prior to logon.
+ A that contains the banner message sent by the server; otherwise, if no message is sent.
+
+
+ Gets the length of the data received from the FTP server.
+ An value that contains the number of bytes of data received from the FTP server.
+
+
+ Gets the message sent by the server when the FTP session is ending.
+ A that contains the exit message sent by the server; otherwise, if no message is sent.
+
+
+ Gets an empty object.
+ An empty object.
+
+
+ Gets the date and time that a file on an FTP server was last modified.
+ A that contains the last modified date and time for a file.
+
+
+ Gets the URI that sent the response to the request.
+ A instance that identifies the resource associated with this response.
+
+
+ Gets the most recent status code sent from the FTP server.
+ An value that indicates the most recent status code returned with this response.
+
+
+ Gets text that describes a status code sent from the FTP server.
+ A instance that contains the status code and message returned with this response.
+
+
+ Gets a value that indicates whether the property is supported by the instance.
+ Returns .
+
+ if the property is supported by the instance; otherwise, .
+
+
+ Gets the message sent by the FTP server when authentication is complete.
+ A that contains the welcome message sent by the server; otherwise, if no message is sent.
+
+
+ Contains a global default proxy instance for all HTTP requests.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns an empty proxy instance.
+ An that contains no information.
+
+
+ Gets or sets the global HTTP proxy.
+ The value specified for a set operation was .
+ The caller does not have permission for the requested operation.
+ An that every call to uses.
+
+
+ Represents the method that notifies callers when a continue response is received by the client.
+ The numeric value of the HTTP status from the server.
+ The headers returned with the 100-continue response from the server.
+
+
+ Provides an HTTP-specific implementation of the class.
+
+
+ Initializes a new instance of the class from the specified instances of the and classes. This constructor is obsolete.
+ A object that contains the information required to serialize the new object.
+ A object that contains the source and destination of the serialized stream associated with the new object.
+
+
+ Cancels a request to an Internet resource.
+
+
+ Adds a byte range header to a request for a specific range from the beginning or end of the requested data.
+ The starting or ending point of the range.
+
+ is invalid.
+ The range header could not be added.
+
+
+ Adds a byte range header to the request for a specified range.
+ The position at which to start sending data.
+ The position at which to stop sending data.
+
+ is invalid.
+
+ is greater than
+
+ -or-
+
+ or is less than 0.
+ The range header could not be added.
+
+
+ Adds a byte range header to a request for a specific range from the beginning or end of the requested data.
+ The starting or ending point of the range.
+
+ is invalid.
+ The range header could not be added.
+
+
+ Adds a byte range header to the request for a specified range.
+ The position at which to start sending data.
+ The position at which to stop sending data.
+
+ is invalid.
+
+ is greater than
+
+ -or-
+
+ or is less than 0.
+ The range header could not be added.
+
+
+ Adds a Range header to a request for a specific range from the beginning or end of the requested data.
+ The description of the range.
+ The starting or ending point of the range.
+
+ is .
+
+ is invalid.
+ The range header could not be added.
+
+
+ Adds a range header to a request for a specified range.
+ The description of the range.
+ The position at which to start sending data.
+ The position at which to stop sending data.
+
+ is .
+
+ is greater than
+
+ -or-
+
+ or is less than 0.
+
+ is invalid.
+ The range header could not be added.
+
+
+ Adds a Range header to a request for a specific range from the beginning or end of the requested data.
+ The description of the range.
+ The starting or ending point of the range.
+
+ is .
+
+ is invalid.
+ The range header could not be added.
+
+
+ Adds a range header to a request for a specified range.
+ The description of the range.
+ The position at which to start sending data.
+ The position at which to stop sending data.
+
+ is .
+
+ is greater than
+
+ -or-
+
+ or is less than 0.
+
+ is invalid.
+ The range header could not be added.
+
+
+ Begins an asynchronous request for a object to use to write data.
+ The delegate.
+ The state object for this request.
+ The property is GET or HEAD.
+
+ -or-
+
+ is , is , is -1, is , and is POST or PUT.
+ The stream is being used by a previous call to
+
+ -or-
+
+ is set to a value and is .
+
+ -or-
+
+ The thread pool is running out of threads.
+ The request cache validator indicated that the response for this request can be served from the cache; however, requests that write data must not use the cache. This exception can occur if you are using a custom cache validator that is incorrectly implemented.
+
+ was previously called.
+ In a .NET Compact Framework application, a request stream with zero content length was not obtained and closed correctly. For more information about handling zero content length requests, see Network Programming in the .NET Compact Framework.
+ An that references the asynchronous request.
+
+
+ Begins an asynchronous request to an Internet resource.
+ The delegate.
+ The state object for this request.
+ The stream is already in use by a previous call to
+
+ -or-
+
+ is set to a value and is .
+
+ -or-
+
+ The thread pool is running out of threads.
+
+ is GET or HEAD, and either is greater than zero or is .
+
+ -or-
+
+ is , is , and either is -1, is and is POST or PUT.
+
+ -or-
+
+ The has an entity body but the method is called without calling the method.
+
+ -or-
+
+ The is greater than zero, but the application does not write all of the promised data.
+
+ was previously called.
+ An that references the asynchronous request for a response.
+
+
+ Ends an asynchronous request for a object to use to write data.
+ The pending request for a stream.
+
+ is .
+ The request did not complete, and no stream is available.
+
+ was not returned by the current instance from a call to .
+ This method was called previously using .
+
+ was previously called.
+
+ -or-
+
+ An error occurred while processing the request.
+ A to use to write request data.
+
+
+ Ends an asynchronous request for a object to use to write data and outputs the associated with the stream.
+ The pending request for a stream.
+ The for the .
+
+ was not returned by the current instance from a call to .
+
+ is .
+ This method was called previously using .
+ The request did not complete, and no stream is available.
+
+ was previously called.
+
+ -or-
+
+ An error occurred while processing the request.
+ A to use to write request data.
+
+
+ Ends an asynchronous request to an Internet resource.
+ The pending request for a response.
+
+ is .
+ This method was called previously using .
+
+ -or-
+
+ The property is greater than 0 but the data has not been written to the request stream.
+
+ was previously called.
+
+ -or-
+
+ An error occurred while processing the request.
+
+ was not returned by the current instance from a call to .
+ A that contains the response from the Internet resource.
+
+
+ Populates a with the data required to serialize the target object.
+ The to populate with data.
+ A that specifies the destination for this serialization.
+
+
+ Gets a object to use to write request data.
+ The property is GET or HEAD.
+
+ -or-
+
+ is , is , is -1, is , and is POST or PUT.
+ The method is called more than once.
+
+ -or-
+
+ is set to a value and is .
+ The request cache validator indicated that the response for this request can be served from the cache; however, requests that write data must not use the cache. This exception can occur if you are using a custom cache validator that is incorrectly implemented.
+
+ was previously called.
+
+ -or-
+
+ The time-out period for the request expired.
+
+ -or-
+
+ An error occurred while processing the request.
+ In a .NET Compact Framework application, a request stream with zero content length was not obtained and closed correctly. For more information about handling zero content length requests, see Network Programming in the .NET Compact Framework.
+ A to use to write request data.
+
+
+ Gets a object to use to write request data and outputs the associated with the stream.
+ The for the .
+ The method was unable to obtain the .
+ The method is called more than once.
+
+ -or-
+
+ is set to a value and is .
+ The request cache validator indicated that the response for this request can be served from the cache; however, requests that write data must not use the cache. This exception can occur if you are using a custom cache validator that is incorrectly implemented.
+ The property is GET or HEAD.
+
+ -or-
+
+ is , is , is -1, is , and is POST or PUT.
+
+ was previously called.
+
+ -or-
+
+ The time-out period for the request expired.
+
+ -or-
+
+ An error occurred while processing the request.
+ A to use to write request data.
+
+
+ Returns a response from an Internet resource.
+ The stream is already in use by a previous call to .
+
+ -or-
+
+ is set to a value and is .
+
+ is GET or HEAD, and either is greater or equal to zero or is .
+
+ -or-
+
+ is , is , is -1, is , and is POST or PUT.
+
+ -or-
+
+ The has an entity body but the method is called without calling the method.
+
+ -or-
+
+ The is greater than zero, but the application does not write all of the promised data.
+ The request cache validator indicated that the response for this request can be served from the cache; however, this request includes data to be sent to the server. Requests that send data must not use the cache. This exception can occur if you are using a custom cache validator that is incorrectly implemented.
+
+ was previously called.
+
+ -or-
+
+ The time-out period for the request expired.
+
+ -or-
+
+ An error occurred while processing the request.
+ A that contains the response from the Internet resource.
+
+
+ Populates a with the data needed to serialize the target object.
+ The to populate with data.
+ A that specifies the destination for this serialization.
+
+
+ Gets or sets the value of the HTTP header.
+ The value of the HTTP header. The default value is .
+
+
+ Gets the Uniform Resource Identifier (URI) of the Internet resource that actually responds to the request.
+ A that identifies the Internet resource that actually responds to the request. The default is the URI used by the method to initialize the request.
+
+
+ Gets or sets a value that indicates whether the request should follow redirection responses.
+
+ if the request should automatically follow redirection responses from the Internet resource; otherwise, . The default value is .
+
+
+ Gets or sets a value that indicates whether to buffer the received from the Internet resource.
+
+ to enable buffering of the data received from the Internet resource; to disable buffering. The default is .
+
+
+ Gets or sets a value that indicates whether to buffer the data sent to the Internet resource.
+
+ to enable buffering of the data sent to the Internet resource; to disable buffering. The default is .
+
+
+ Gets or sets the type of decompression that is used.
+ The object's current state does not allow this property to be set.
+ A object that indicates the type of decompression that is used.
+
+
+ Gets or sets the collection of security certificates that are associated with this request.
+ The value specified for a set operation is .
+ The that contains the security certificates associated with this request.
+
+
+ Gets or sets the value of the HTTP header.
+ The value of is set to Keep-alive or Close.
+ The value of the HTTP header. The default value is .
+
+
+ Gets or sets the name of the connection group for the request.
+ The name of the connection group for this request. The default value is .
+
+
+ Gets or sets the HTTP header.
+ The request has been started by calling the , , , or method.
+ The new value is less than 0.
+ The number of bytes of data to send to the Internet resource. The default is -1, which indicates the property has not been set and that there is no request data to send.
+
+
+ Gets or sets the value of the HTTP header.
+ The value of the HTTP header. The default value is .
+
+
+ Gets or sets the delegate method called when an HTTP 100-continue response is received from the Internet resource.
+ A delegate that implements the callback method that executes when an HTTP Continue response is returned from the Internet resource. The default value is .
+
+
+ Gets or sets a timeout, in milliseconds, to wait until the 100-Continue is received from the server.
+ The timeout, in milliseconds, to wait until the 100-Continue is received.
+
+
+ Gets or sets the cookies associated with the request.
+ A that contains the cookies associated with this request.
+
+
+ Gets or sets authentication information for the request.
+ An that contains the authentication credentials associated with the request. The default is .
+
+
+ Gets or sets the HTTP header value to use in an HTTP request.
+ The Date header value in the HTTP request.
+
+
+ Gets or sets the default cache policy for this request.
+ A that specifies the cache policy in effect for this request when no other policy is applicable.
+
+
+ Gets or sets the default maximum length of an HTTP error response.
+ The value is less than 0 and is not equal to -1.
+ The default maximum length of an HTTP error response.
+
+
+ Gets or sets the default for the property.
+ The value is less than zero.
+ The length, in kilobytes (1024 bytes), of the default maximum for response headers received. The default configuration file sets this value to 64 kilobytes.
+
+
+ Gets or sets the value of the HTTP header.
+
+ is set to a string that contains "100-continue" as a substring.
+ The contents of the HTTP header. The default value is .
+
+
+ Gets a value that indicates whether a response has been received from an Internet resource.
+
+ if a response has been received; otherwise, .
+
+
+ Specifies a collection of the name/value pairs that make up the HTTP headers.
+ The request has been started by calling the , , , or method.
+ A that contains the name/value pairs that make up the headers for the HTTP request.
+
+
+ Gets or sets the Host header value to use in an HTTP request independent from the request URI.
+ The Host header cannot be set to .
+ The Host header cannot be set to an invalid value.
+ The Host header cannot be set after the has already started to be sent.
+ The Host header value in the HTTP request.
+
+
+ Gets or sets the value of the If-Modified-Since HTTP header.
+ A that contains the contents of the HTTP header.
+
+
+ Gets or sets a value that indicates whether to make a persistent connection to the Internet resource.
+
+ if the request to the Internet resource should contain a HTTP header with the value Keep-alive; otherwise, . The default is .
+
+
+ Gets or sets the maximum number of redirects that the request follows.
+ The value is set to 0 or less.
+ The maximum number of redirection responses that the request follows. The default value is 50.
+
+
+ Gets or sets the maximum allowed length of the response headers.
+ The property is set after the request has already been submitted.
+ The value is less than 0.
+ The length, in kilobytes (1024 bytes), of the response headers.
+
+
+ Gets or sets the media type of the request.
+ The media type of the request. The default value is .
+
+
+ Gets or sets the method for the request.
+ No method is supplied.
+
+ -or-
+
+ The method string contains invalid characters.
+ The request method to use to contact the Internet resource. The default value is GET.
+
+
+ Gets or sets a value that indicates whether to pipeline the request to the Internet resource.
+
+ if the request should be pipelined; otherwise, . The default is .
+
+
+ Gets or sets a value that indicates whether to send an Authorization header with the request.
+
+ to send an HTTP Authorization header with requests after authentication has taken place; otherwise, . The default is .
+
+
+ Gets or sets the version of HTTP to use for the request.
+ The HTTP version is set to a value other than 1.0 or 1.1.
+ The HTTP version to use for the request. The default is .
+
+
+ Gets or sets proxy information for the request.
+
+ is set to .
+ The request has been started by calling , , , or .
+ The caller does not have permission for the requested operation.
+ The object to use to proxy the request. The default value is set by calling the property.
+
+
+ Gets or sets a time-out in milliseconds when writing to or reading from a stream.
+ The request has already been sent.
+ The value specified for a set operation is less than or equal to zero and is not equal to
+ The number of milliseconds before the writing or reading times out. The default value is 300,000 milliseconds (5 minutes).
+
+
+ Gets or sets the value of the HTTP header.
+ The value of the HTTP header. The default value is .
+
+
+ Gets the original Uniform Resource Identifier (URI) of the request.
+ A that contains the URI of the Internet resource passed to the method.
+
+
+ Gets or sets a value that indicates whether to send data in segments to the Internet resource.
+ The request has been started by calling the , , , or method.
+
+ to send data to the Internet resource in segments; otherwise, . The default value is .
+
+
+ Gets or sets a callback function to validate the server certificate.
+ A callback function to validate the server certificate.
+
+
+ Gets the service point to use for the request.
+ A that represents the network connection to the Internet resource.
+
+
+ Gets a value that indicates whether the request provides support for a .
+
+ if the request provides support for a ; otherwise, .
+
+
+ Gets or sets the time-out value in milliseconds for the and methods.
+ The value specified is less than zero and is not .
+ The number of milliseconds to wait before the request times out. The default value is 100,000 milliseconds (100 seconds).
+
+
+ Gets or sets the value of the HTTP header.
+
+ is set when is .
+
+ is set to the value "Chunked".
+ The value of the HTTP header. The default value is .
+
+
+ Gets or sets a value that indicates whether to allow high-speed NTLM-authenticated connection sharing.
+
+ to keep the authenticated connection open; otherwise, .
+
+
+ Gets or sets a value that controls whether default credentials are sent with requests.
+ You attempted to set this property after the request was sent.
+
+ if the default credentials are used; otherwise, . The default value is .
+
+
+ Gets or sets the value of the HTTP header.
+ The value of the HTTP header. The default value is .
+
+
+ Provides an HTTP-specific implementation of the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class from the specified and instances.
+ A that contains the information required to serialize the new .
+ A that contains the source of the serialized stream that is associated with the new .
+
+
+ Closes the response stream.
+ .NET Core only: This object has been disposed.
+
+
+ Releases the unmanaged resources used by the , and optionally disposes of the managed resources.
+
+ to release both managed and unmanaged resources; to releases only unmanaged resources.
+
+
+ Populates a with the data needed to serialize the target object.
+ The to populate with data.
+ A that specifies the destination for this serialization.
+
+
+ Gets the contents of a header that was returned with the response.
+ The header value to return.
+ The current instance has been disposed.
+ The contents of the specified header.
+
+
+ Gets the stream that is used to read the body of the response from the server.
+ There is no response stream.
+ The current instance has been disposed.
+ A containing the body of the response.
+
+
+ Serializes this instance into the specified object.
+ The object into which this will be serialized.
+ The destination of the serialization.
+
+
+ Gets the character set of the response.
+ The current instance has been disposed.
+ A string that contains the character set of the response.
+
+
+ Gets the method that is used to encode the body of the response.
+ The current instance has been disposed.
+ A string that describes the method that is used to encode the body of the response.
+
+
+ Gets the length of the content returned by the request.
+ The current instance has been disposed.
+ The number of bytes returned by the request. Content length does not include header information.
+
+
+ Gets the content type of the response.
+ The current instance has been disposed.
+ A string that contains the content type of the response.
+
+
+ Gets or sets the cookies that are associated with this response.
+ The current instance has been disposed.
+ A that contains the cookies that are associated with this response.
+
+
+ Gets the headers that are associated with this response from the server.
+ The current instance has been disposed.
+ A that contains the header information returned with the response.
+
+
+ Gets a value that indicates whether both client and server were authenticated.
+ The current instance has been disposed.
+
+ if mutual authentication occurred; otherwise, .
+
+
+ Gets the last date and time that the contents of the response were modified.
+ The current instance has been disposed.
+ A that contains the date and time that the contents of the response were modified.
+
+
+ Gets the method that is used to return the response.
+ The current instance has been disposed.
+ A string that contains the HTTP method that is used to return the response.
+
+
+ Gets the version of the HTTP protocol that is used in the response.
+ The current instance has been disposed.
+ A that contains the HTTP protocol version of the response.
+
+
+ Gets the URI of the Internet resource that responded to the request.
+ The current instance has been disposed.
+ The URI of the Internet resource that responded to the request.
+
+
+ Gets the name of the server that sent the response.
+ The current instance has been disposed.
+ A string that contains the name of the server that sent the response.
+
+
+ Gets the status of the response.
+ The current instance has been disposed.
+ One of the values.
+
+
+ Gets the status description returned with the response.
+ The current instance has been disposed.
+ A string that describes the status of the response.
+
+
+ Gets a value that indicates whether headers are supported.
+
+ if headers are supported; otherwise, . Always returns .
+
+
+ Provides the base authentication interface for Web client authentication modules.
+
+
+ Returns an instance of the class in response to an authentication challenge from a server.
+ The authentication challenge sent by the server.
+ The instance associated with the challenge.
+ The credentials associated with the challenge.
+ An instance containing the authorization message for the request, or if the challenge cannot be handled.
+
+
+ Returns an instance of the class for an authentication request to a server.
+ The instance associated with the authentication request.
+ The credentials associated with the authentication request.
+ An instance containing the authorization message for the request.
+
+
+ Gets the authentication type provided by this authentication module.
+ A string indicating the authentication type provided by this authentication module.
+
+
+ Gets a value indicating whether the authentication module supports preauthentication.
+
+ if the authorization module supports preauthentication; otherwise .
+
+
+ Defines the credential policy to be used for resource requests that are made using and its derived classes.
+
+
+ Returns a that indicates whether the client's credentials are sent with a resource request made using an instance of the class.
+ The that will receive the request.
+ The that represents the resource being requested.
+ The that will be sent with the request if this method returns .
+ The that will conduct the authentication, if authentication is required.
+
+ if the credentials are sent with the request; otherwise, .
+
+
+ Provides the base interface for creating instances.
+
+
+ Creates a instance.
+ The uniform resource identifier (URI) of the Web resource.
+ The request scheme specified in is not supported by this instance.
+
+ is .
+ The URI specified in is not a valid URI.
+
+Note: In .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead.
+ A instance.
+
+
+ The exception that is thrown when an error is made while using a network protocol.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class from the specified and instances.
+ A that contains the information that is required to deserialize the .
+ A that contains the source of the serialized stream that is associated with the new .
+
+
+ Initializes a new instance of the class with the specified message.
+ The error message string.
+
+
+ Populates a with the data required to serialize the target object.
+ The to populate with data.
+ A that specifies the destination for this serialization.
+
+
+ Serializes this instance into the specified object.
+ The object into which this will be serialized.
+ The destination of the serialization.
+
+
+ The exception that is thrown when an error occurs while accessing the network through a pluggable protocol.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class from the specified and instances.
+ A that contains the information required to serialize the new .
+ A that contains the source of the serialized stream that is associated with the new .
+
+
+ Initializes a new instance of the class with the specified error message.
+ The text of the error message.
+
+
+ Initializes a new instance of the class with the specified error message and nested exception.
+ The text of the error message.
+ A nested exception.
+
+
+ Initializes a new instance of the class with the specified error message, nested exception, status, and response.
+ The text of the error message.
+ A nested exception.
+ One of the values.
+ A instance that contains the response from the remote host.
+
+
+ Initializes a new instance of the class with the specified error message and status.
+ The text of the error message.
+ One of the values.
+
+
+ Populates a instance with the data needed to serialize the .
+ The to be used.
+ The to be used.
+
+
+ Serializes this instance into the specified object.
+ The object into which this will be serialized.
+ The destination of the serialization.
+
+
+ Gets the response that the remote host returned.
+ If a response is available from the Internet resource, a instance that contains the error response from an Internet resource; otherwise, .
+
+
+ Gets the status of the response.
+ One of the values.
+
+
+ Defines status codes for the class.
+
+
+ The specified cache entry was not found.
+
+
+ The remote service point could not be contacted at the transport level.
+
+
+ The connection was prematurely closed.
+
+
+ The connection for a request that specifies the Keep-alive header was closed unexpectedly.
+
+
+ A message was received that exceeded the specified limit when sending a request or receiving a response from the server.
+
+
+ The name resolver service could not resolve the host name.
+
+
+ An internal asynchronous request is pending.
+
+
+ The request was a pipelined request and the connection was closed before the response was received.
+
+
+ The response received from the server was complete but indicated a protocol-level error. For example, an HTTP protocol error such as 401 Access Denied would use this status.
+
+
+ The name resolver service could not resolve the proxy host name.
+
+
+ A complete response was not received from the remote server.
+
+
+ The request was canceled, the method was called, or an unclassifiable error occurred. This is the default value for .
+
+
+ The request was not permitted by the cache policy. In general, this occurs when a request is not cacheable and the effective policy prohibits sending the request to the server. You might receive this status if a request method implies the presence of a request body, a request method requires direct interaction with the server, or a request contains a conditional header.
+
+
+ This request was not permitted by the proxy.
+
+
+ An error occurred while establishing a connection using SSL.
+
+
+ A complete request could not be sent to the remote server.
+
+
+ The server response was not a valid HTTP response.
+
+
+ No error was encountered.
+
+
+ No response was received during the time-out period for a request.
+
+
+ A server certificate could not be validated.
+
+
+ An exception of unknown type has occurred.
+
+
+ Makes a request to a Uniform Resource Identifier (URI). This is an class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class from the specified instances of the and classes.
+ The information required to serialize the new instance.
+ A that indicates the source of the serialized stream associated with the new instance.
+ Any attempt is made to access the constructor, when the constructor is not overridden in a descendant class.
+
+
+ Aborts the request.
+ Any attempt is made to access the method, when the method is not overridden in a descendant class.
+
+
+ When overridden in a descendant class, provides an asynchronous version of the method.
+ The delegate.
+ An object containing state information for this asynchronous request.
+ Any attempt is made to access the method, when the method is not overridden in a descendant class.
+ An that references the asynchronous request.
+
+
+ When overridden in a descendant class, begins an asynchronous request for an Internet resource.
+ The delegate.
+ An object containing state information for this asynchronous request.
+ Any attempt is made to access the method, when the method is not overridden in a descendant class.
+ An that references the asynchronous request.
+
+
+ Initializes a new instance for the specified URI scheme.
+ The URI that identifies the Internet resource.
+ The request scheme specified in has not been registered.
+
+ is .
+ The caller does not have permission to connect to the requested URI or a URI that the request is redirected to.
+ The URI specified in is not a valid URI.
+
+Note: In .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead.
+ A descendant for the specific URI scheme.
+
+
+ Initializes a new instance for the specified URI scheme.
+ A containing the URI of the requested resource.
+ The request scheme specified in is not registered.
+
+ is .
+ The caller does not have permission to connect to the requested URI or a URI that the request is redirected to.
+ A descendant for the specified URI scheme.
+
+
+ Initializes a new instance for the specified URI scheme.
+ A containing the URI of the requested resource.
+ The request scheme specified in is not registered.
+
+ is .
+ The caller does not have permission to connect to the requested URI or a URI that the request is redirected to.
+ A descendant for the specified URI scheme.
+
+
+ Initializes a new instance for the specified URI string.
+ A URI string that identifies the Internet resource.
+ The request scheme specified in is the http or https scheme.
+
+ is .
+ The caller does not have permission to connect to the requested URI or a URI that the request is redirected to.
+ The URI specified in is not a valid URI.
+ An instance for the specific URI string.
+
+
+ Initializes a new instance for the specified URI.
+ A URI that identifies the Internet resource.
+ The request scheme specified in is the http or https scheme.
+
+ is .
+ The caller does not have permission to connect to the requested URI or a URI that the request is redirected to.
+ The URI specified in is not a valid URI.
+ An instance for the specific URI string.
+
+
+ When overridden in a descendant class, returns a for writing data to the Internet resource.
+ An that references a pending request for a stream.
+ Any attempt is made to access the method, when the method is not overridden in a descendant class.
+ A to write data to.
+
+
+ When overridden in a descendant class, returns a .
+ An that references a pending request for a response.
+ Any attempt is made to access the method, when the method is not overridden in a descendant class.
+ A that contains a response to the Internet request.
+
+
+ Populates a with the data needed to serialize the target object.
+ The to populate with data.
+ A that specifies the destination for this serialization.
+
+
+ When overridden in a descendant class, returns a for writing data to the Internet resource.
+ Any attempt is made to access the method, when the method is not overridden in a descendant class.
+ A for writing data to the Internet resource.
+
+
+ When overridden in a descendant class, returns a for writing data to the Internet resource as an asynchronous operation.
+ The task object representing the asynchronous operation.
+
+
+ When overridden in a descendant class, returns a response to an Internet request.
+ Any attempt is made to access the method, when the method is not overridden in a descendant class.
+ A containing the response to the Internet request.
+
+
+ When overridden in a descendant class, returns a response to an Internet request as an asynchronous operation.
+ The task object representing the asynchronous operation.
+
+
+ Returns a proxy configured with the Internet Explorer settings of the currently impersonated user.
+ An used by every call to instances of .
+
+
+ Registers a descendant for the specified URI.
+ The complete URI or URI prefix that the descendant services.
+ The create method that the calls to create the descendant.
+
+ is
+
+ -or-
+
+ is .
+
+ if registration is successful; otherwise, .
+
+
+ When overridden in a descendant class, populates a instance with the data needed to serialize the .
+ A , which holds the serialized data for the .
+ A that contains the destination of the serialized stream associated with the new .
+ An attempt is made to serialize the object, when the interface is not overridden in a descendant class.
+
+
+ Gets or sets values indicating the level of authentication and impersonation used for this request.
+ A bitwise combination of the values. The default value is .
+
+ In mutual authentication, both the client and server present credentials to establish their identity. The and values are relevant for Kerberos authentication. Kerberos authentication can be supported directly, or can be used if the Negotiate security protocol is used to select the actual security protocol. For more information about authentication protocols, see Internet Authentication.
+
+ To determine whether mutual authentication occurred, check the property.
+
+ If you specify the authentication flag value and mutual authentication does not occur, your application will receive an with a inner exception indicating that mutual authentication failed.
+
+
+ Gets or sets the cache policy for this request.
+ A object that defines a cache policy.
+
+
+ When overridden in a descendant class, gets or sets the name of the connection group for the request.
+ Any attempt is made to get or set the property, when the property is not overridden in a descendant class.
+ The name of the connection group for the request.
+
+
+ When overridden in a descendant class, gets or sets the content length of the request data being sent.
+ Any attempt is made to get or set the property, when the property is not overridden in a descendant class.
+ The number of bytes of request data being sent.
+
+
+ When overridden in a descendant class, gets or sets the content type of the request data being sent.
+ Any attempt is made to get or set the property, when the property is not overridden in a descendant class.
+ The content type of the request data.
+
+
+ When overridden in a descendant class, gets or sets the network credentials used for authenticating the request with the Internet resource.
+ Any attempt is made to get or set the property, when the property is not overridden in a descendant class.
+ An containing the authentication credentials associated with the request. The default is .
+
+
+ Gets or sets the default cache policy for this request.
+ A that specifies the cache policy in effect for this request when no other policy is applicable.
+
+
+ Gets or sets the global HTTP proxy.
+ An used by every call to instances of .
+
+
+ When overridden in a descendant class, gets or sets the collection of header name/value pairs associated with the request.
+ Any attempt is made to get or set the property, when the property is not overridden in a descendant class.
+ A containing the header name/value pairs associated with this request.
+
+
+ Gets or sets the impersonation level for the current request.
+ A value.
+
+
+ When overridden in a descendant class, gets or sets the protocol method to use in this request.
+ If the property is not overridden in a descendant class, any attempt is made to get or set the property.
+ The protocol method to use in this request.
+
+
+ When overridden in a descendant class, indicates whether to pre-authenticate the request.
+ Any attempt is made to get or set the property, when the property is not overridden in a descendant class.
+
+ to pre-authenticate; otherwise, .
+
+
+ When overridden in a descendant class, gets or sets the network proxy to use to access this Internet resource.
+ Any attempt is made to get or set the property, when the property is not overridden in a descendant class.
+ The to use to access the Internet resource.
+
+
+ When overridden in a descendant class, gets the URI of the Internet resource associated with the request.
+ Any attempt is made to get or set the property, when the property is not overridden in a descendant class.
+ A representing the resource associated with the request.
+
+
+ Gets or sets the length of time, in milliseconds, before the request times out.
+ Any attempt is made to get or set the property, when the property is not overridden in a descendant class.
+ The length of time, in milliseconds, until the request times out, or the value to indicate that the request does not time out. The default value is defined by the descendant class.
+
+
+ When overridden in a descendant class, gets or sets a value that controls whether are sent with requests.
+ You attempted to set this property after the request was sent.
+ Any attempt is made to access the property, when the property is not overridden in a descendant class.
+
+ if the default credentials are used; otherwise . The default value is .
+
+
+ Container class for , , and classes. This class cannot be inherited.
+
+
+ Represents the types of file protocol methods that can be used with a FILE request. This class cannot be inherited.
+
+
+ Represents the FILE GET protocol method that is used to retrieve a file from a specified location.
+
+
+ Represents the FILE PUT protocol method that is used to copy a file to a specified location.
+
+
+ Represents the types of FTP protocol methods that can be used with an FTP request. This class cannot be inherited.
+
+
+ Represents the FTP APPE protocol method that is used to append a file to an existing file on an FTP server.
+
+
+ Represents the FTP DELE protocol method that is used to delete a file on an FTP server.
+
+
+ Represents the FTP RETR protocol method that is used to download a file from an FTP server.
+
+
+ Represents the FTP MDTM protocol method that is used to retrieve the date-time stamp from a file on an FTP server.
+
+
+ Represents the FTP SIZE protocol method that is used to retrieve the size of a file on an FTP server.
+
+
+ Represents the FTP NLIST protocol method that gets a short listing of the files on an FTP server.
+
+
+ Represents the FTP LIST protocol method that gets a detailed listing of the files on an FTP server.
+
+
+ Represents the FTP MKD protocol method creates a directory on an FTP server.
+
+
+ Represents the FTP PWD protocol method that prints the name of the current working directory.
+
+
+ Represents the FTP RMD protocol method that removes a directory.
+
+
+ Represents the FTP RENAME protocol method that renames a directory.
+
+
+ Represents the FTP STOR protocol method that uploads a file to an FTP server.
+
+
+ Represents the FTP STOU protocol that uploads a file with a unique name to an FTP server.
+
+
+ Represents the types of HTTP protocol methods that can be used with an HTTP request.
+
+
+ Represents the HTTP CONNECT protocol method that is used with a proxy that can dynamically switch to tunneling, as in the case of SSL tunneling.
+
+
+ Represents an HTTP GET protocol method.
+
+
+ Represents an HTTP HEAD protocol method. The HEAD method is identical to GET except that the server only returns message-headers in the response, without a message-body.
+
+
+ Represents an HTTP MKCOL request that creates a new collection (such as a collection of pages) at the location specified by the request-Uniform Resource Identifier (URI).
+
+
+ Represents an HTTP POST protocol method that is used to post a new entity as an addition to a URI.
+
+
+ Represents an HTTP PUT protocol method that is used to replace an entity identified by a URI.
+
+
+ Provides a response from a Uniform Resource Identifier (URI). This is an class.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class from the specified instances of the and classes.
+ An instance of the class that contains the information required to serialize the new instance.
+ An instance of the class that indicates the source of the serialized stream that is associated with the new instance.
+ Any attempt is made to access the constructor, when the constructor is not overridden in a descendant class.
+
+
+ When overridden by a descendant class, closes the response stream.
+ Any attempt is made to access the method, when the method is not overridden in a descendant class.
+
+
+ Releases the unmanaged resources used by the object.
+
+
+ Releases the unmanaged resources used by the object, and optionally disposes of the managed resources.
+
+ to release both managed and unmanaged resources; to releases only unmanaged resources.
+
+
+ Populates a with the data that is needed to serialize the target object.
+ The to populate with data.
+ A that specifies the destination for this serialization.
+
+
+ When overridden in a descendant class, returns the data stream from the Internet resource.
+ Any attempt is made to access the method, when the method is not overridden in a descendant class.
+ An instance of the class for reading data from the Internet resource.
+
+
+ Populates a instance with the data that is needed to serialize .
+ A that will hold the serialized data for the .
+ A that contains the destination of the serialized stream that is associated with the new .
+
+
+ When overridden in a descendant class, gets or sets the content length of data being received.
+ Any attempt is made to get or set the property, when the property is not overridden in a descendant class.
+ The number of bytes returned from the Internet resource.
+
+
+ When overridden in a derived class, gets or sets the content type of the data being received.
+ Any attempt is made to get or set the property, when the property is not overridden in a descendant class.
+ A string that contains the content type of the response.
+
+
+ When overridden in a derived class, gets a collection of header name-value pairs associated with this request.
+ Any attempt is made to get or set the property, when the property is not overridden in a descendant class.
+ An instance of the class that contains header values associated with this response.
+
+
+ Gets a value that indicates whether this response was obtained from the cache.
+
+ if the response was taken from the cache; otherwise, .
+
+
+ Gets a value that indicates whether mutual authentication occurred.
+
+ if both client and server were authenticated; otherwise, .
+
+
+ When overridden in a derived class, gets the URI of the Internet resource that actually responded to the request.
+ Any attempt is made to get or set the property, when the property is not overridden in a descendant class.
+ An instance of the class that contains the URI of the Internet resource that actually responded to the request.
+
+
+ Gets a value that indicates if headers are supported.
+ Returns .
+
+ if headers are supported; otherwise, .
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Security.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Security.dll
new file mode 100644
index 0000000000000000000000000000000000000000..998938296acf4efa6eb4d5f5aa0b217da4d63baf
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Security.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Sockets.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Sockets.dll
new file mode 100644
index 0000000000000000000000000000000000000000..defde0c460f7f4f0d8a4a57290915c9dc017838d
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.Sockets.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.WebClient.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.WebClient.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8de178cfc1fef8eaf8c9b23e572ac2cc2230ec6e
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.WebClient.xml
@@ -0,0 +1,1743 @@
+
+
+
+ System.Net.WebClient
+
+
+
+ Provides data for the event.
+
+
+ Gets the data that is downloaded by a method.
+ A array that contains the downloaded data.
+
+
+ Represents the method that will handle the event of a .
+ The source of the event.
+ A containing event data.
+
+
+ Provides data for the event of a .
+
+
+ Gets the number of bytes received.
+ An value that indicates the number of bytes received.
+
+
+ Gets the total number of bytes in a data download operation.
+ An value that indicates the number of bytes that will be received.
+
+
+ Represents the method that will handle the event of a .
+ The source of the event.
+ A containing event data.
+
+
+ Provides data for the event.
+
+
+ Gets the data that is downloaded by a method.
+ A that contains the downloaded data.
+
+
+ Represents the method that will handle the event of a .
+ The source of the event.
+ A that contains event data.
+
+
+ Provides data for the event.
+
+
+ Gets a readable stream that contains data downloaded by a method.
+ A that contains the downloaded data.
+
+
+ Represents the method that will handle the event of a .
+ The source of the event.
+ A containing event data.
+
+
+ Provides data for the event.
+
+
+ Gets a writable stream that is used to send data to a server.
+ A where you can write data to be uploaded.
+
+
+ Represents the method that will handle the event of a .
+ The source of the event.
+ A containing event data.
+
+
+ Provides data for the event.
+
+
+ Gets the server reply to a data upload operation started by calling an method.
+ A array containing the server reply.
+
+
+ Represents the method that will handle the event of a .
+ The source of the event.
+ A containing event data.
+
+
+ Provides data for the event.
+
+
+ Gets the server reply to a data upload operation that is started by calling an method.
+ A array that contains the server reply.
+
+
+ Represents the method that will handle the event of a .
+ The source of the event.
+ A that contains event data.
+
+
+ Provides data for the event of a .
+
+
+ Gets the number of bytes received.
+ An value that indicates the number of bytes received.
+
+
+ Gets the number of bytes sent.
+ An value that indicates the number of bytes sent.
+
+
+ Gets the total number of bytes in a data upload operation.
+ An value that indicates the number of bytes that will be received.
+
+
+ Gets the total number of bytes to send.
+ An value that indicates the number of bytes that will be sent.
+
+
+ Represents the method that will handle the event of a .
+ The source of the event.
+ A containing event data.
+
+
+ Provides data for the event.
+
+
+ Gets the server reply to a string upload operation that is started by calling an method.
+ A array that contains the server reply.
+
+
+ Represents the method that will handle the event of a .
+ The source of the event.
+ A containing event data.
+
+
+ Provides data for the event.
+
+
+ Gets the server reply to a data upload operation started by calling an method.
+ A array containing the server reply.
+
+
+ Represents the method that will handle the event of a .
+ The source of the event.
+ A that contains event data.
+
+
+ Provides common methods for sending data to and receiving data from a resource identified by a URI.
+
+
+ Occurs when an asynchronous data download operation completes.
+
+
+ Occurs when an asynchronous file download operation completes.
+
+
+ Occurs when an asynchronous download operation successfully transfers some or all of the data.
+
+
+ Occurs when an asynchronous resource-download operation completes.
+
+
+ Occurs when an asynchronous operation to open a stream containing a resource completes.
+
+
+ Occurs when an asynchronous operation to open a stream to write data to a resource completes.
+
+
+ Occurs when an asynchronous data-upload operation completes.
+
+
+ Occurs when an asynchronous file-upload operation completes.
+
+
+ Occurs when an asynchronous upload operation successfully transfers some or all of the data.
+
+
+ Occurs when an asynchronous string-upload operation completes.
+
+
+ Occurs when an asynchronous upload of a name/value collection completes.
+
+
+ Occurs when an asynchronous operation to write data to a resource using a write stream is closed.
+
+
+ Initializes a new instance of the class.
+
+
+ Cancels a pending asynchronous operation.
+
+
+ Downloads the resource as a array from the URI specified.
+ The URI from which to download data.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading data.
+ The method has been called simultaneously on multiple threads.
+ A array containing the downloaded resource.
+
+
+ Downloads the resource as a array from the URI specified.
+ The URI represented by the object, from which to download data.
+ The parameter is .
+ A array containing the downloaded resource.
+
+
+ Downloads the resource as a array from the URI specified as an asynchronous operation.
+ A containing the URI to download.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+
+
+ Downloads the resource as a array from the URI specified as an asynchronous operation.
+ A containing the URI to download.
+ A user-defined object that is passed to the method invoked when the asynchronous operation completes.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+
+
+ Downloads the resource as a array from the URI specified as an asynchronous operation using a task object.
+ The URI of the resource to download.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the downloaded resource.
+
+
+ Downloads the resource as a array from the URI specified as an asynchronous operation using a task object.
+ The URI of the resource to download.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the downloaded resource.
+
+
+ Downloads the resource with the specified URI to a local file.
+ The URI from which to download data.
+ The name of the local file that is to receive the data.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ is or .
+
+ -or-
+
+ The file does not exist.
+
+ -or- An error occurred while downloading data.
+ The method has been called simultaneously on multiple threads.
+
+
+ Downloads the resource with the specified URI to a local file.
+ The URI specified as a , from which to download data.
+ The name of the local file that is to receive the data.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ is or .
+
+ -or-
+
+ The file does not exist.
+
+ -or-
+
+ An error occurred while downloading data.
+ The method has been called simultaneously on multiple threads.
+
+
+ Downloads, to a local file, the resource with the specified URI. This method does not block the calling thread.
+ The URI of the resource to download.
+ The name of the file to be placed on the local computer.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+ The local file specified by is in use by another thread.
+
+
+ Downloads, to a local file, the resource with the specified URI. This method does not block the calling thread.
+ The URI of the resource to download.
+ The name of the file to be placed on the local computer.
+ A user-defined object that is passed to the method invoked when the asynchronous operation completes.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+ The local file specified by is in use by another thread.
+
+
+ Downloads the specified resource to a local file as an asynchronous operation using a task object.
+ The URI of the resource to download.
+ The name of the file to be placed on the local computer.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+ The local file specified by is in use by another thread.
+ The task object representing the asynchronous operation.
+
+
+ Downloads the specified resource to a local file as an asynchronous operation using a task object.
+ The URI of the resource to download.
+ The name of the file to be placed on the local computer.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+ The local file specified by is in use by another thread.
+ The task object representing the asynchronous operation.
+
+
+ Downloads the requested resource as a . The resource to download is specified as a containing the URI.
+ A containing the URI to download.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+ The method has been called simultaneously on multiple threads.
+ A containing the requested resource.
+
+
+ Downloads the requested resource as a . The resource to download is specified as a .
+ A object containing the URI to download.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+ The method has been called simultaneously on multiple threads.
+ A containing the requested resource.
+
+
+ Downloads the resource specified as a . This method does not block the calling thread.
+ A containing the URI to download.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+
+
+ Downloads the specified string to the specified resource. This method does not block the calling thread.
+ A containing the URI to download.
+ A user-defined object that is passed to the method invoked when the asynchronous operation completes.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+
+
+ Downloads the resource as a from the URI specified as an asynchronous operation using a task object.
+ The URI of the resource to download.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the downloaded resource.
+
+
+ Downloads the resource as a from the URI specified as an asynchronous operation using a task object.
+ The URI of the resource to download.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the downloaded resource.
+
+
+ Returns a object for the specified resource.
+ A that identifies the resource to request.
+ A new object for the specified resource.
+
+
+ Returns the for the specified .
+ A that is used to obtain the response.
+ A containing the response for the specified .
+
+
+ Returns the for the specified using the specified .
+ A that is used to obtain the response.
+ An object obtained from a previous call to .
+ A containing the response for the specified .
+
+
+ Raises the event.
+ A object that contains event data.
+
+
+ Raises the event.
+ An object containing event data.
+
+
+ Raises the event.
+ A object containing event data.
+
+
+ Raises the event.
+ A object containing event data.
+
+
+ Raises the event.
+ A object containing event data.
+
+
+ Raises the event.
+ A object containing event data.
+
+
+ Raises the event.
+ A object containing event data.
+
+
+ Raises the event.
+ An object containing event data.
+
+
+ Raises the event.
+ An object containing event data.
+
+
+ Raises the event.
+ An object containing event data.
+
+
+ Raises the event.
+ A object containing event data.
+
+
+ Raises the event.
+ A object containing event data.
+
+
+ Opens a readable stream for the data downloaded from a resource with the URI specified as a .
+ The URI specified as a from which to download data.
+ The parameter is .
+ The URI formed by combining , is invalid.
+
+ -or-
+
+ An error occurred while downloading data.
+ A used to read data from a resource.
+
+
+ Opens a readable stream for the data downloaded from a resource with the URI specified as a .
+ The URI specified as a from which to download data.
+ The parameter is .
+ The URI formed by combining , is invalid.
+
+ -or-
+
+ An error occurred while downloading data.
+ A used to read data from a resource.
+
+
+ Opens a readable stream containing the specified resource. This method does not block the calling thread.
+ The URI of the resource to retrieve.
+ The parameter is .
+ The URI formed by combining and address is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+
+ Opens a readable stream containing the specified resource. This method does not block the calling thread.
+ The URI of the resource to retrieve.
+ A user-defined object that is passed to the method invoked when the asynchronous operation completes.
+ The parameter is .
+ The URI formed by combining and address is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+
+ Opens a readable stream containing the specified resource as an asynchronous operation using a task object.
+ The URI of the resource to retrieve.
+ The parameter is .
+ The URI formed by combining and address is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+
+ -or-
+
+ An error occurred while opening the stream.
+ The task object representing the asynchronous operation. The property on the task object returns a used to read data from a resource.
+
+
+ Opens a readable stream containing the specified resource as an asynchronous operation using a task object.
+ The URI of the resource to retrieve.
+ The parameter is .
+ The URI formed by combining and address is invalid.
+
+ -or-
+
+ An error occurred while downloading the resource.
+
+ -or-
+
+ An error occurred while opening the stream.
+ The task object representing the asynchronous operation. The property on the task object returns a used to read data from a resource.
+
+
+ Opens a stream for writing data to the specified resource.
+ The URI of the resource to receive the data.
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+ A used to write data to the resource.
+
+
+ Opens a stream for writing data to the specified resource, using the specified method.
+ The URI of the resource to receive the data.
+ The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp.
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+ A used to write data to the resource.
+
+
+ Opens a stream for writing data to the specified resource.
+ The URI of the resource to receive the data.
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+ A used to write data to the resource.
+
+
+ Opens a stream for writing data to the specified resource, by using the specified method.
+ The URI of the resource to receive the data.
+ The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp.
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+ A used to write data to the resource.
+
+
+ Opens a stream for writing data to the specified resource. This method does not block the calling thread.
+ The URI of the resource to receive the data.
+ The parameter is .
+
+
+ Opens a stream for writing data to the specified resource. This method does not block the calling thread.
+ The URI of the resource to receive the data.
+ The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp.
+ The parameter is .
+
+
+ Opens a stream for writing data to the specified resource, using the specified method. This method does not block the calling thread.
+ The URI of the resource to receive the data.
+ The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp.
+ A user-defined object that is passed to the method invoked when the asynchronous operation completes.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+
+ Opens a stream for writing data to the specified resource as an asynchronous operation using a task object.
+ The URI of the resource to receive the data.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+ The task object representing the asynchronous operation. The property on the task object returns a used to write data to the resource.
+
+
+ Opens a stream for writing data to the specified resource as an asynchronous operation using a task object.
+ The URI of the resource to receive the data.
+ The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+ The task object representing the asynchronous operation. The property on the task object returns a used to write data to the resource.
+
+
+ Opens a stream for writing data to the specified resource as an asynchronous operation using a task object.
+ The URI of the resource to receive the data.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+ The task object representing the asynchronous operation. The property on the task object returns a used to write data to the resource.
+
+
+ Opens a stream for writing data to the specified resource as an asynchronous operation using a task object.
+ The URI of the resource to receive the data.
+ The method used to send the data to the resource. If null, the default is POST for http and STOR for ftp.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+ The task object representing the asynchronous operation. The property on the task object returns a used to write data to the resource.
+
+
+ Uploads a data buffer to a resource identified by a URI.
+ The URI of the resource to receive the data.
+ The data buffer to send to the resource.
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ is .
+
+ -or-
+
+ An error occurred while sending the data.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+ A array containing the body of the response from the resource.
+
+
+ Uploads a data buffer to the specified resource, using the specified method.
+ The URI of the resource to receive the data.
+ The HTTP method used to send the data to the resource. If null, the default is POST for http and STOR for ftp.
+ The data buffer to send to the resource.
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ is .
+
+ -or-
+
+ An error occurred while uploading the data.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+ A array containing the body of the response from the resource.
+
+
+ Uploads a data buffer to a resource identified by a URI.
+ The URI of the resource to receive the data.
+ The data buffer to send to the resource.
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ is .
+
+ -or-
+
+ An error occurred while sending the data.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+ A array containing the body of the response from the resource.
+
+
+ Uploads a data buffer to the specified resource, using the specified method.
+ The URI of the resource to receive the data.
+ The HTTP method used to send the data to the resource. If null, the default is POST for http and STOR for ftp.
+ The data buffer to send to the resource.
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ is .
+
+ -or-
+
+ An error occurred while uploading the data.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+ A array containing the body of the response from the resource.
+
+
+ Uploads a data buffer to a resource identified by a URI, using the POST method. This method does not block the calling thread.
+ The URI of the resource to receive the data.
+ The data buffer to send to the resource.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+
+ Uploads a data buffer to a resource identified by a URI, using the specified method. This method does not block the calling thread.
+ The URI of the resource to receive the data.
+ The method used to send the data to the resource. If , the default is POST for http and STOR for ftp.
+ The data buffer to send to the resource.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+
+ Uploads a data buffer to a resource identified by a URI, using the specified method and identifying token.
+ The URI of the resource to receive the data.
+ The method used to send the data to the resource. If , the default is POST for http and STOR for ftp.
+ The data buffer to send to the resource.
+ A user-defined object that is passed to the method invoked when the asynchronous operation completes.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+
+ Uploads a data buffer that contains a array to the URI specified as an asynchronous operation using a task object.
+ The URI of the resource to receive the data.
+ The data buffer to send to the resource.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the data buffer was uploaded.
+
+
+ Uploads a data buffer that contains a array to the URI specified as an asynchronous operation using a task object.
+ The URI of the resource to receive the data.
+ The method used to send the data to the resource. If , the default is POST for http and STOR for ftp.
+ The data buffer to send to the resource.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the data buffer was uploaded.
+
+
+ Uploads a data buffer that contains a array to the URI specified as an asynchronous operation using a task object.
+ The URI of the resource to receive the data.
+ The data buffer to send to the resource.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the data buffer was uploaded.
+
+
+ Uploads a data buffer that contains a array to the URI specified as an asynchronous operation using a task object.
+ The URI of the resource to receive the data.
+ The method used to send the data to the resource. If , the default is POST for http and STOR for ftp.
+ The data buffer to send to the resource.
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the data buffer was uploaded.
+
+
+ Uploads the specified local file to a resource with the specified URI.
+ The URI of the resource to receive the file. For example, ftp://localhost/samplefile.txt.
+ The file to send to the resource. For example, "samplefile.txt".
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ is , is , contains invalid characters, or does not exist.
+
+ -or-
+
+ An error occurred while uploading the file.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ The header begins with .
+ A array containing the body of the response from the resource.
+
+
+ Uploads the specified local file to the specified resource, using the specified method.
+ The URI of the resource to receive the file.
+ The method used to send the file to the resource. If , the default is POST for http and STOR for ftp.
+ The file to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ is , is , contains invalid characters, or does not exist.
+
+ -or-
+
+ An error occurred while uploading the file.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ The header begins with .
+ A array containing the body of the response from the resource.
+
+
+ Uploads the specified local file to a resource with the specified URI.
+ The URI of the resource to receive the file. For example, ftp://localhost/samplefile.txt.
+ The file to send to the resource. For example, "samplefile.txt".
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ is , is , contains invalid characters, or does not exist.
+
+ -or-
+
+ An error occurred while uploading the file.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ The header begins with .
+ A array containing the body of the response from the resource.
+
+
+ Uploads the specified local file to the specified resource, using the specified method.
+ The URI of the resource to receive the file.
+ The method used to send the file to the resource. If , the default is POST for http and STOR for ftp.
+ The file to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ is , is , contains invalid characters, or does not exist.
+
+ -or-
+
+ An error occurred while uploading the file.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ The header begins with .
+ A array containing the body of the response from the resource.
+
+
+ Uploads the specified local file to the specified resource, using the POST method. This method does not block the calling thread.
+ The URI of the resource to receive the file. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The file to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ is , is , contains invalid character, or the specified path to the file does not exist.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ The header begins with .
+
+
+ Uploads the specified local file to the specified resource, using the POST method. This method does not block the calling thread.
+ The URI of the resource to receive the file. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The method used to send the data to the resource. If , the default is POST for http and STOR for ftp.
+ The file to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ is , is , contains invalid character, or the specified path to the file does not exist.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ The header begins with .
+
+
+ Uploads the specified local file to the specified resource, using the POST method. This method does not block the calling thread.
+ The URI of the resource to receive the file. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The method used to send the data to the resource. If , the default is POST for http and STOR for ftp.
+ The file to send to the resource.
+ A user-defined object that is passed to the method invoked when the asynchronous operation completes.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ is , is , contains invalid character, or the specified path to the file does not exist.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ The header begins with .
+
+
+ Uploads the specified local file to a resource as an asynchronous operation using a task object.
+ The URI of the resource to receive the file. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The local file to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ is , is , contains invalid character, or the specified path to the file does not exist.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ The header begins with .
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the file was uploaded.
+
+
+ Uploads the specified local file to a resource as an asynchronous operation using a task object.
+ The URI of the resource to receive the file. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The method used to send the data to the resource. If , the default is POST for http and STOR for ftp.
+ The local file to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ is , is , contains invalid character, or the specified path to the file does not exist.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ The header begins with .
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the file was uploaded.
+
+
+ Uploads the specified local file to a resource as an asynchronous operation using a task object.
+ The URI of the resource to receive the file. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The local file to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ is , is , contains invalid character, or the specified path to the file does not exist.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ The header begins with .
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the file was uploaded.
+
+
+ Uploads the specified local file to a resource as an asynchronous operation using a task object.
+ The URI of the resource to receive the file. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The method used to send the data to the resource. If , the default is POST for http and STOR for ftp.
+ The local file to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ is , is , contains invalid character, or the specified path to the file does not exist.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ The header begins with .
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the body of the response received from the resource when the file was uploaded.
+
+
+ Uploads the specified string to the specified resource, using the POST method.
+ The URI of the resource to receive the string. For Http resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The string to be uploaded.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+ A containing the response sent by the server.
+
+
+ Uploads the specified string to the specified resource, using the specified method.
+ The URI of the resource to receive the string. This URI must identify a resource that can accept a request sent with the method.
+ The HTTP method used to send the string to the resource. If null, the default is POST for http and STOR for ftp.
+ The string to be uploaded.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ cannot be used to send content.
+ A containing the response sent by the server.
+
+
+ Uploads the specified string to the specified resource, using the POST method.
+ The URI of the resource to receive the string. For Http resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The string to be uploaded.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+ A containing the response sent by the server.
+
+
+ Uploads the specified string to the specified resource, using the specified method.
+ The URI of the resource to receive the string. This URI must identify a resource that can accept a request sent with the method.
+ The HTTP method used to send the string to the resource. If null, the default is POST for http and STOR for ftp.
+ The string to be uploaded.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ cannot be used to send content.
+ A containing the response sent by the server.
+
+
+ Uploads the specified string to the specified resource. This method does not block the calling thread.
+ The URI of the resource to receive the string. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The string to be uploaded.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+
+ Uploads the specified string to the specified resource. This method does not block the calling thread.
+ The URI of the resource to receive the string. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The HTTP method used to send the file to the resource. If null, the default is POST for http and STOR for ftp.
+ The string to be uploaded.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ cannot be used to send content.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+
+ Uploads the specified string to the specified resource. This method does not block the calling thread.
+ The URI of the resource to receive the string. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The HTTP method used to send the file to the resource. If null, the default is POST for http and STOR for ftp.
+ The string to be uploaded.
+ A user-defined object that is passed to the method invoked when the asynchronous operation completes.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ cannot be used to send content.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+
+ Uploads the specified string to the specified resource as an asynchronous operation using a task object.
+ The URI of the resource to receive the string. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The string to be uploaded.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+ The task object representing the asynchronous operation. The property on the task object returns a containing the response sent by the server.
+
+
+ Uploads the specified string to the specified resource as an asynchronous operation using a task object.
+ The URI of the resource to receive the string. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The HTTP method used to send the file to the resource. If null, the default is POST for http and STOR for ftp.
+ The string to be uploaded.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ cannot be used to send content.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+ The task object representing the asynchronous operation. The property on the task object returns a containing the response sent by the server.
+
+
+ Uploads the specified string to the specified resource as an asynchronous operation using a task object.
+ The URI of the resource to receive the string. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The string to be uploaded.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+ The task object representing the asynchronous operation. The property on the task object returns a containing the response sent by the server.
+
+
+ Uploads the specified string to the specified resource as an asynchronous operation using a task object.
+ The URI of the resource to receive the string. For HTTP resources, this URI must identify a resource that can accept a request sent with the POST method, such as a script or ASP page.
+ The HTTP method used to send the file to the resource. If null, the default is POST for http and STOR for ftp.
+ The string to be uploaded.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ cannot be used to send content.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+ The task object representing the asynchronous operation. The property on the task object returns a containing the response sent by the server.
+
+
+ Uploads the specified name/value collection to the resource identified by the specified URI.
+ The URI of the resource to receive the collection.
+ The to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ is .
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ The header is not or "application/x-www-form-urlencoded".
+ A array containing the body of the response from the resource.
+
+
+ Uploads the specified name/value collection to the resource identified by the specified URI, using the specified method.
+ The URI of the resource to receive the collection.
+ The HTTP method used to send the file to the resource. If null, the default is POST for http and STOR for ftp.
+ The to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ is .
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ The header value is not and is not .
+ A array containing the body of the response from the resource.
+
+
+ Uploads the specified name/value collection to the resource identified by the specified URI.
+ The URI of the resource to receive the collection.
+ The to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ is .
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ The header is not or "application/x-www-form-urlencoded".
+ A array containing the body of the response from the resource.
+
+
+ Uploads the specified name/value collection to the resource identified by the specified URI, using the specified method.
+ The URI of the resource to receive the collection.
+ The HTTP method used to send the file to the resource. If null, the default is POST for http and STOR for ftp.
+ The to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ is .
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ The header value is not and is not .
+ A array containing the body of the response from the resource.
+
+
+ Uploads the data in the specified name/value collection to the resource identified by the specified URI. This method does not block the calling thread.
+ The URI of the resource to receive the collection. This URI must identify a resource that can accept a request sent with the default method.
+ The to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+
+ Uploads the data in the specified name/value collection to the resource identified by the specified URI, using the specified method. This method does not block the calling thread.
+ The URI of the resource to receive the collection. This URI must identify a resource that can accept a request sent with the method.
+ The method used to send the string to the resource. If null, the default is POST for http and STOR for ftp.
+ The to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ cannot be used to send content.
+
+
+ Uploads the data in the specified name/value collection to the resource identified by the specified URI, using the specified method. This method does not block the calling thread, and allows the caller to pass an object to the method that is invoked when the operation completes.
+ The URI of the resource to receive the collection. This URI must identify a resource that can accept a request sent with the method.
+ The HTTP method used to send the string to the resource. If null, the default is POST for http and STOR for ftp.
+ The to send to the resource.
+ A user-defined object that is passed to the method invoked when the asynchronous operation completes.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining and is invalid.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ cannot be used to send content.
+
+
+ Uploads the specified name/value collection to the resource identified by the specified URI as an asynchronous operation using a task object.
+ The URI of the resource to receive the collection.
+ The to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ The header is not or "application/x-www-form-urlencoded".
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the response sent by the server.
+
+
+ Uploads the specified name/value collection to the resource identified by the specified URI as an asynchronous operation using a task object.
+ The URI of the resource to receive the collection.
+ The HTTP method used to send the collection to the resource. If null, the default is POST for http and STOR for ftp.
+ The to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ cannot be used to send content.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ The header is not or "application/x-www-form-urlencoded".
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the response sent by the server.
+
+
+ Uploads the specified name/value collection to the resource identified by the specified URI as an asynchronous operation using a task object.
+ The URI of the resource to receive the collection.
+ The to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ The header value is not and is not .
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the response sent by the server.
+
+
+ Uploads the specified name/value collection to the resource identified by the specified URI as an asynchronous operation using a task object.
+ The URI of the resource to receive the collection.
+ The HTTP method used to send the collection to the resource. If null, the default is POST for http and STOR for ftp.
+ The to send to the resource.
+ The parameter is .
+
+ -or-
+
+ The parameter is .
+ The URI formed by combining , and is invalid.
+
+ -or-
+
+ cannot be used to send content.
+
+ -or-
+
+ There was no response from the server hosting the resource.
+
+ -or-
+
+ An error occurred while opening the stream.
+
+ -or-
+
+ The header is not or "application/x-www-form-urlencoded".
+ The task object representing the asynchronous operation. The property on the task object returns a array containing the response sent by the server.
+
+
+ Gets or sets a value that indicates whether to buffer the data read from the Internet resource for a instance.
+
+ to enable buffering of the data received from the Internet resource; to disable buffering. The default is .
+
+
+ Gets or sets a value that indicates whether to buffer the data written to the Internet resource for a instance.
+
+ to enable buffering of the data written to the Internet resource; to disable buffering. The default is .
+
+
+ Gets or sets the base URI for requests made by a .
+
+ is set to an invalid URI. The inner exception may contain information that will help you locate the error.
+ A containing the base URI for requests made by a or if no base address has been specified.
+
+
+ Gets or sets the application's cache policy for any resources obtained by this WebClient instance using objects.
+ A object that represents the application's caching requirements.
+
+
+ Gets or sets the network credentials that are sent to the host and used to authenticate the request.
+ An containing the authentication credentials for the request. The default is .
+
+
+ Gets or sets the used to upload and download strings.
+ A that is used to encode strings. The default value of this property is the encoding returned by .
+
+
+ Gets or sets a collection of header name/value pairs associated with the request.
+ A containing header name/value pairs associated with this request.
+
+
+ Gets whether a Web request is in progress.
+
+ if the Web request is still in progress; otherwise .
+
+
+ Gets or sets the proxy used by this object.
+ An instance used to send requests.
+
+
+ Gets or sets a collection of query name/value pairs associated with the request.
+ A that contains query name/value pairs associated with the request. If no pairs are associated with the request, the value is an empty .
+
+
+ Gets a collection of header name/value pairs associated with the response.
+ A containing header name/value pairs associated with the response, or if no response has been received.
+
+
+ Gets or sets a value that controls whether the are sent with requests.
+
+ if the default credentials are used; otherwise . The default value is .
+
+
+ Provides data for the event.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the error value when a write stream is closed.
+ Returns .
+
+
+ Represents the method that will handle the event of a .
+ The source of the event.
+ The event data.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.WebSockets.Client.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.WebSockets.Client.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4c2938ec92dca70f929d8e6960b8ad0d5fe9af47
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.WebSockets.Client.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.WebSockets.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.WebSockets.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6abe8535d1703256e860cf63dff6bd064eb74a62
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.WebSockets.xml
@@ -0,0 +1,503 @@
+
+
+
+ System.Net.WebSockets
+
+
+
+ Represents the result of performing a single operation on a .
+
+
+ Initializes a new instance of the struct. An instance of this struct represents the result of performing a single ReceiveAsync operation on a .
+ The number of bytes that the received.
+ One of the enumeration values that indicates whether the current message is a UTF-8 message or a binary message.
+
+ to indicate the messsage has been received completely; otherwise, .
+
+
+ Gets the number of bytes that the received.
+ The number of bytes that the received.
+
+
+ Gets whether the message has been received completely.
+
+ if the message was received completely; otherwise, .
+
+
+ Gets the type of the current message.
+ One of the enumeration values that specifies if the current message is a UTF-8, binary, or close message.
+
+
+ The WebSocket class allows applications to send and receive data after the WebSocket upgrade has completed.
+
+
+ Creates an instance of the class.
+
+
+ Aborts the WebSocket connection and cancels any pending IO operations.
+
+
+ Closes the WebSocket connection as an asynchronous operation using the close handshake defined in the WebSocket protocol specification section 7.
+ Indicates the reason for closing the WebSocket connection.
+ Specifies a human readable explanation as to why the connection is closed.
+ The token that can be used to propagate notification that operations should be canceled.
+ The task object representing the asynchronous operation.
+
+
+ Initiates or completes the close handshake defined in the WebSocket protocol specification section 7.
+ Indicates the reason for closing the WebSocket connection.
+ Allows applications to specify a human readable explanation as to why the connection is closed.
+ The token that can be used to propagate notification that operations should be canceled.
+ The task object representing the asynchronous operation.
+
+
+ Create client buffers to use with this instance.
+ The size, in bytes, of the client receive buffer.
+ The size, in bytes, of the send buffer.
+ An array with the client buffers.
+
+
+ Allows callers to create a client side WebSocket class which will use the WSPC for framing purposes.
+ The connection to be used for IO operations.
+ The subprotocol accepted by the client.
+ The size in bytes of the client WebSocket receive buffer.
+ The size in bytes of the client WebSocket send buffer.
+ Determines how regularly a frame is sent over the connection as a keep-alive. Applies only when the connection is idle.
+ Indicates whether a random key or a static key (just zeros) should be used for the WebSocket masking.
+ Will be used as the internal buffer in the WPC. The size has to be at least 2 * ReceiveBufferSize + SendBufferSize + 256 + 20 (16 on 32-bit).
+ Returns .
+
+
+ Creates a new object that operates on the specified stream, which represents a web socket connection.
+ The stream for the connection.
+
+ to indicate it's the server-side of the connection; if it's the client-side.
+ The agreed upon sub-protocol that was used when creating the connection.
+ The keep-alive interval to use, or to disable keep-alives.
+ The new web socket.
+
+
+ Creates a that operates on a representing a web socket connection.
+ The for the connection.
+ The options with which the websocket must be created.
+ The created web socket.
+
+
+ Creates a WebSocket server buffer.
+ The size, in bytes, of the desired buffer.
+ Returns .
+
+
+ Used to clean up unmanaged resources for ASP.NET and self-hosted implementations.
+
+
+ Returns a value that indicates if the WebSocket instance is targeting .NET Framework 4.5.
+
+ if the is targeting .NET Framework 4.5; otherwise, .
+
+
+ Returns a value that indicates if the state of the WebSocket instance is closed or aborted.
+ The current state of the WebSocket.
+
+ if the is closed or aborted; otherwise, .
+
+
+ Receives data from the connection asynchronously.
+ References the application buffer that is the storage location for the received data.
+ Propagates the notification that operations should be canceled.
+ The task object representing the asynchronous operation. The property on the task object returns a object that represents the received data.
+
+
+ Receives data from the connection asynchronously.
+ The application buffer that is the storage location for the received data.
+ The cancellation token to use to cancel the receive operation.
+ The task object representing the asynchronous operation. The property on the task object returns a object that represents the received data.
+
+
+ Allows callers to register prefixes for WebSocket requests (ws and wss).
+
+
+ Sends data over the connection asynchronously.
+ The buffer to be sent over the connection.
+ Indicates whether the application is sending a binary or text message.
+ Indicates whether the data in "buffer" is the last part of a message.
+ The token that propagates the notification that operations should be canceled.
+ The task object representing the asynchronous operation.
+
+
+ Sends data over the connection asynchronously.
+ The buffer to be sent over the connection.
+ One of the enumeration values that indicates whether the application is sending a binary or text message.
+
+ to indicate the data in "buffer" is the last part of a message; otherwise, .
+ The cancellation token to use to cancel the send operation.
+ The task object representing the asynchronous operation.
+
+
+ Sends data over the connection asynchronously.
+ The buffer to be sent over the connection.
+ One of the enumeration values that indicates whether the application is sending a binary or text message.
+ Flags for controlling how the should send a message.
+ The cancellation token to use to cancel the send operation.
+ The task object representing the asynchronous operation.
+
+
+ Verifies that the connection is in an expected state.
+ The current state of the WebSocket to be tested against the list of valid states.
+ List of valid connection states.
+
+
+ Indicates the reason why the remote endpoint initiated the close handshake.
+ Returns .
+
+
+ Allows the remote endpoint to describe the reason why the connection was closed.
+ Returns .
+
+
+ Gets the default WebSocket protocol keep-alive interval.
+ The default WebSocket protocol keep-alive interval. The typical value for this interval is 30 seconds (as defined by the OS or the .NET platform). It is used to initialize value.
+
+
+ Returns the current state of the WebSocket connection.
+ The current state of the WebSocket connection.
+
+
+ Gets the subprotocol that was negotiated during the opening handshake.
+ The subprotocol that was negotiated during the opening handshake.
+
+
+ Represents well known WebSocket close codes as defined in section 11.7 of the WebSocket protocol spec.
+
+
+ No error specified.
+
+
+ (1001) Indicates an endpoint is being removed. Either the server or client will become unavailable.
+
+
+ (1011) The connection will be closed by the server because of an error on the server.
+
+
+ (1003) The client or server is terminating the connection because it cannot accept the data type it received.
+
+
+ (1007) The client or server is terminating the connection because it has received data inconsistent with the message type.
+
+
+ (1010) The client is terminating the connection because it expected the server to negotiate an extension.
+
+
+ (1009) The client or server is terminating the connection because it has received a message that is too big for it to process.
+
+
+ (1000) The connection has closed after the request was fulfilled.
+
+
+ (1008) The connection will be closed because an endpoint has received a message that violates its policy.
+
+
+ (1002) The client or server is terminating the connection because of a protocol error.
+
+
+ Used for accessing the information in the WebSocket handshake.
+
+
+ Creates an instance of the class.
+
+
+ The cookies that were passed to the server during the opening handshake.
+ Returns .
+
+
+ The HTTP headers that were sent to the server during the opening handshake.
+ Returns .
+
+
+ Whether the WebSocket client is authenticated.
+ Returns .
+
+
+ Whether the WebSocket client connected from the local machine.
+ Returns .
+
+
+ Whether the WebSocket connection is secured using Secure Sockets Layer (SSL).
+ Returns .
+
+
+ The value of the Origin HTTP header included in the opening handshake.
+ Returns .
+
+
+ The URI requested by the WebSocket client.
+ Returns .
+
+
+ The value of the SecWebSocketKey HTTP header included in the opening handshake.
+ Returns .
+
+
+ The value of the SecWebSocketKey HTTP header included in the opening handshake.
+ Returns .
+
+
+ The list of subprotocols requested by the WebSocket client.
+ Returns .
+
+
+ An object used to obtain identity, authentication information, and security roles for the WebSocket client.
+ Returns .
+
+
+ The WebSocket instance used to interact (send/receive/close/etc) with the WebSocket connection.
+ Returns .
+
+
+ Options that control how a is created.
+
+
+ Creates an instance of the class.
+
+
+ The agreed upon options for per message deflate. Be aware that enabling compression makes the application subject to CRIME/BREACH type of attacks.
+ It is strongly advised to turn off compression when sending data containing secrets by specifying flag for such messages.
+
+
+ Defines if this websocket is the server-side of the connection. The default value is .
+
+
+ The keep-alive interval to use, or or to disable keep-alives.
+ The default is .
+
+
+ The agreed upon sub-protocol that was used when creating the connection.
+
+
+ Options to enable per-message deflate compression for .
+
+
+ Creates an instance of the class.
+
+
+ When the client-side of the connection indicates that it will persist the deflate context accross messages.
+ The default is .
+
+
+ This parameter indicates the base-2 logarithm for the LZ77 sliding window size used by the client to compress messages and by the server to decompress them.
+ Must be a value between 9 and 15. The default is 15.
+
+
+ When the server-side of the connection indicates that it will persist the deflate context accross messages.
+ The default is .
+
+
+ This parameter indicates the base-2 logarithm for the LZ77 sliding window size used by the server to compress messages and by the client to decompress them.
+ Must be a value between 9 and 15. The default is 15.
+
+
+ Contains the list of possible WebSocket errors.
+
+
+ Indicates that the connection was terminated unexpectedly.
+
+
+ Indicates a general error.
+
+
+ Indicates an error occurred when parsing the HTTP headers during the opening handshake.
+
+
+ Indicates that a WebSocket frame with an unknown opcode was received.
+
+
+ Indicates the WebSocket is an invalid state for the given operation (such as being closed or aborted).
+
+
+ Indicates that an unknown native error occurred.
+
+
+ Indicates that the incoming request was not a valid websocket request.
+
+
+ Indicates that there was no native error information for the exception.
+
+
+ Indicates that the client requested an unsupported WebSocket subprotocol.
+
+
+ Indicates that the client requested an unsupported version of the WebSocket protocol.
+
+
+ Represents an exception that occurred when performing an operation on a WebSocket connection.
+
+
+ Creates an instance of the class.
+
+
+ Creates an instance of the class.
+ The native error code for the exception.
+
+
+ Creates an instance of the class.
+ The native error code for the exception.
+ Indicates the previous exception that led to the current exception.
+
+
+ Creates an instance of the class.
+ The native error code for the exception.
+ The description of the error.
+
+
+ Creates an instance of the class.
+ The error from the WebSocketError enumeration.
+
+
+ Creates an instance of the class.
+ The error from the WebSocketError enumeration.
+ Indicates the previous exception that led to the current exception.
+
+
+ Creates an instance of the class.
+ The error from the WebSocketError enumeration.
+ The native error code for the exception.
+
+
+ Creates an instance of the class.
+ The error from the WebSocketError enumeration.
+ The native error code for the exception.
+ Indicates the previous exception that led to the current exception.
+
+
+ Creates an instance of the class.
+ The error from the WebSocketError enumeration.
+ The native error code for the exception.
+ The description of the error.
+
+
+ Creates an instance of the class.
+ The error from the WebSocketError enumeration.
+ The native error code for the exception.
+ The description of the error.
+ Indicates the previous exception that led to the current exception.
+
+
+ Creates an instance of the class.
+ The error from the WebSocketError enumeration.
+ The description of the error.
+
+
+ Creates an instance of the class.
+ The error from the WebSocketError enumeration.
+ The description of the error.
+ Indicates the previous exception that led to the current exception.
+
+
+ Creates an instance of the class.
+ The description of the error.
+
+
+ Creates an instance of the class.
+ The description of the error.
+ Indicates the previous exception that led to the current exception.
+
+
+ Sets the SerializationInfo object with the file name and line number where the exception occurred.
+ A SerializationInfo object.
+ The contextual information about the source or destination.
+
+
+ The native error code for the exception that occurred.
+ Returns .
+
+
+ Returns a WebSocketError indicating the type of error that occurred.
+ Returns .
+
+
+ Flags for controlling how the should send a message.
+
+
+ Disables compression for the message if compression has been enabled for the instance.
+
+
+ Indicates that the data in "buffer" is the last part of a message.
+
+
+ None
+
+
+ Indicates the message type.
+
+
+ The message is in binary format.
+
+
+ A receive has completed because a close message was received.
+
+
+ The message is clear text.
+
+
+ An instance of this class represents the result of performing a single ReceiveAsync operation on a WebSocket.
+
+
+ Creates an instance of the class.
+ The number of bytes received.
+ The type of message that was received.
+ Indicates whether this is the final message.
+
+
+ Creates an instance of the class.
+ The number of bytes received.
+ The type of message that was received.
+ Indicates whether this is the final message.
+ Indicates the of the connection.
+ The description of .
+
+
+ Indicates the reason why the remote endpoint initiated the close handshake.
+ Returns .
+
+
+ Returns the optional description that describes why the close handshake has been initiated by the remote endpoint.
+ Returns .
+
+
+ Indicates the number of bytes that the WebSocket received.
+ Returns .
+
+
+ Indicates whether the message has been received completely.
+ Returns .
+
+
+ Indicates whether the current message is a UTF-8 message or a binary message.
+ Returns .
+
+
+ Defines the different states a WebSockets instance can be in.
+
+
+ Indicates that the WebSocket has been aborted.
+
+
+ Indicates the WebSocket close handshake completed gracefully.
+
+
+ A close message was received from the remote endpoint.
+
+
+ A close message was sent to the remote endpoint.
+
+
+ The connection is negotiating the handshake with the remote endpoint.
+
+
+ Reserved for future use.
+
+
+ The initial state after the HTTP handshake has been completed.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c10c5d19e57de8cfc62136be71c313128fd74e5e
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Net.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Numerics.Vectors.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Numerics.Vectors.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d4d6c5f9fac83f612f7aab020bb05f6a26467f3c
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Numerics.Vectors.xml
@@ -0,0 +1,3494 @@
+
+
+
+ System.Numerics.Vectors
+
+
+
+ Represents 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.
+
+
+ Creates a 3x2 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of and .
+
+
+ Creates a rotation matrix using the given rotation in radians.
+ The amount of rotation, in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix using the specified rotation in radians and a center point.
+ The amount of rotation, in radians.
+ The center point.
+ The rotation matrix.
+
+
+ Creates a scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified vector scale with an offset from the specified center point.
+ The scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the given scale.
+ The uniform scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that scales uniformly with the specified scale with an offset from the specified center.
+ The uniform scale to use.
+ The center offset.
+ The scaling matrix.
+
+
+ Creates a scaling matrix from the specified X and Y components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a skew matrix from the specified angles in radians.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The skew matrix.
+
+
+ Creates a skew matrix from the specified angles in radians and a center point.
+ The X angle, in radians.
+ The Y angle, in radians.
+ The center point.
+ The skew matrix.
+
+
+ Creates a translation matrix from the specified 2-dimensional vector.
+ The translation position.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X and Y components.
+ The X position.
+ The Y position.
+ The translation matrix.
+
+
+ Returns a value that indicates whether this instance and another 3x2 matrix are equal.
+ The other matrix.
+
+ if the two matrices are equal; otherwise, .
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+
+ if the current instance and are equal; otherwise, . If is , the method returns .
+
+
+ Calculates the determinant for this matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+
+ if was converted successfully; otherwise, .
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of .
+ The interpolated matrix.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to compare.
+
+ if and are equal; otherwise, .
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in from its corresponding element in .
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in from its corresponding element in .
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Gets the multiplicative identity matrix.
+ The multiplicative identify matrix.
+
+
+ Indicates whether the current matrix is the identity matrix.
+
+ if the current matrix is the identity matrix; otherwise, .
+
+
+ Gets or sets the element at the specified indices.
+ The index of the row containing the element to get or set.
+ The index of the column containing the element to get or set.
+
+
+ was less than zero or greater than the number of rows.
+ -or-
+
+ was less than zero or greater than the number of columns.
+
+ The element at [][].
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Represents a 4x4 matrix.
+
+
+ The first element of the first row.
+
+
+ The second element of the first row.
+
+
+ The third element of the first row.
+
+
+ The fourth element of the first row.
+
+
+ The first element of the second row.
+
+
+ The second element of the second row.
+
+
+ The third element of the second row.
+
+
+ The fourth element of the second row.
+
+
+ The first element of the third row.
+
+
+ The second element of the third row.
+
+
+ The third element of the third row.
+
+
+ The fourth element of the third row.
+
+
+ The first element of the fourth row.
+
+
+ The second element of the fourth row.
+
+
+ The third element of the fourth row.
+
+
+ The fourth element of the fourth row.
+
+
+ Creates a object from a specified object.
+ A 3x2 matrix.
+
+
+ Creates a 4x4 matrix from the specified components.
+ The value to assign to the first element in the first row.
+ The value to assign to the second element in the first row.
+ The value to assign to the third element in the first row.
+ The value to assign to the fourth element in the first row.
+ The value to assign to the first element in the second row.
+ The value to assign to the second element in the second row.
+ The value to assign to the third element in the second row.
+ The value to assign to the fourth element in the second row.
+ The value to assign to the first element in the third row.
+ The value to assign to the second element in the third row.
+ The value to assign to the third element in the third row.
+ The value to assign to the fourth element in the third row.
+ The value to assign to the first element in the fourth row.
+ The value to assign to the second element in the fourth row.
+ The value to assign to the third element in the fourth row.
+ The value to assign to the fourth element in the fourth row.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values of and .
+
+
+ Creates a spherical billboard that rotates around a specified object position.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The up vector of the camera.
+ The forward vector of the camera.
+ The created billboard.
+
+
+ Creates a cylindrical billboard that rotates around a specified axis.
+ The position of the object that the billboard will rotate around.
+ The position of the camera.
+ The axis to rotate the billboard around.
+ The forward vector of the camera.
+ The forward vector of the object.
+ The billboard matrix.
+
+
+ Creates a matrix that rotates around an arbitrary vector.
+ The axis to rotate around.
+ The angle to rotate around , in radians.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified Quaternion rotation value.
+ The source Quaternion.
+ The rotation matrix.
+
+
+ Creates a rotation matrix from the specified yaw, pitch, and roll.
+ The angle of rotation, in radians, around the Y axis.
+ The angle of rotation, in radians, around the X axis.
+ The angle of rotation, in radians, around the Z axis.
+ The rotation 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 left-handed 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 left-handed view matrix.
+
+
+ Creates a right-handed view matrix.
+ The position of the camera.
+ The direction in which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The right-handed view matrix.
+
+
+ Creates a left-handed view matrix.
+ The position of the camera.
+ The direction in which the camera is pointing.
+ The direction that is "up" from the camera's point of view.
+ The left-handed view matrix.
+
+
+ Creates an orthographic perspective matrix from the given view volume dimensions.
+ The width of the view volume.
+ The height of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a left-handed orthographic perspective matrix from the given view volume dimensions.
+ The width of the view volume.
+ The height of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The left-handed orthographic projection matrix.
+
+
+ Creates a customized orthographic projection matrix.
+ The minimum X-value of the view volume.
+ The maximum X-value of the view volume.
+ The minimum Y-value of the view volume.
+ The maximum Y-value of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The orthographic projection matrix.
+
+
+ Creates a left-handed customized orthographic projection matrix.
+ The minimum X-value of the view volume.
+ The maximum X-value of the view volume.
+ The minimum Y-value of the view volume.
+ The maximum Y-value of the view volume.
+ The minimum Z-value of the view volume.
+ The maximum Z-value of the view volume.
+ The left-handed orthographic projection matrix.
+
+
+ Creates a perspective projection matrix from the given view volume dimensions.
+ The width of the view volume at the near view plane.
+ The height of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+
+ is less than or equal to zero.
+
+ -or-
+
+ is less than or equal to zero.
+
+ -or-
+
+ is greater than or equal to .
+ The perspective projection matrix.
+
+
+ Creates a perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+ The field of view in the y direction, in radians.
+ The aspect ratio, defined as view space width divided by height.
+ The distance to the near view plane.
+ The distance to the far view plane.
+
+ is less than or equal to zero.
+
+ -or-
+
+ is greater than or equal to .
+
+ is less than or equal to zero.
+
+ -or-
+
+ is less than or equal to zero.
+
+ -or-
+
+ is greater than or equal to .
+ The perspective projection matrix.
+
+
+ Creates a left-handed perspective projection matrix based on a field of view, aspect ratio, and near and far view plane distances.
+ The field of view in the y direction, in radians.
+ The aspect ratio, defined as view space width divided by height.
+ The distance to the near view plane.
+ The distance to the far view plane.
+
+ is less than or equal to zero.
+
+-or-
+
+ is greater than or equal to .
+
+-or-
+
+ is less than or equal to zero.
+
+-or-
+
+ is less than or equal to zero.
+
+-or-
+
+ is greater than or equal to .
+ The left-handed perspective projection matrix.
+
+
+ Creates a left-handed perspective projection matrix from the given view volume dimensions.
+ The width of the view volume at the near view plane.
+ The height of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+
+ is less than or equal to zero.
+
+-or-
+
+ is less than or equal to zero.
+
+-or-
+
+ is greater than or equal to .
+ The left-handed perspective projection matrix.
+
+
+ Creates a customized perspective projection matrix.
+ The minimum x-value of the view volume at the near view plane.
+ The maximum x-value of the view volume at the near view plane.
+ The minimum y-value of the view volume at the near view plane.
+ The maximum y-value of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+
+ is less than or equal to zero.
+
+ -or-
+
+ is less than or equal to zero.
+
+ -or-
+
+ is greater than or equal to .
+ The perspective projection matrix.
+
+
+ Creates a left-handed customized perspective projection matrix.
+ The minimum x-value of the view volume at the near view plane.
+ The maximum x-value of the view volume at the near view plane.
+ The minimum y-value of the view volume at the near view plane.
+ The maximum y-value of the view volume at the near view plane.
+ The distance to the near view plane.
+ The distance to the far view plane.
+
+ is less than or equal to zero.
+
+-or-
+
+ is less than or equal to zero.
+
+-or-
+
+ is greater than or equal to .
+ The left-handed perspective projection matrix.
+
+
+ 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.
+
+
+ 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.
+
+
+ The amount, in radians, by which to rotate 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 scaling matrix from the specified vector scale.
+ The scale to use.
+ The scaling matrix.
+
+
+ Creates a scaling matrix with a center point.
+ The vector that contains the amount to scale on each axis.
+ The center point.
+ The scaling matrix.
+
+
+ Creates a uniform scaling matrix that scale 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 scaling matrix from the specified X, Y, and Z components.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The scaling matrix.
+
+
+ Creates a scaling matrix that is offset by a given center point.
+ The value to scale by on the X axis.
+ The value to scale by on the Y axis.
+ The value to scale by on the Z axis.
+ The center point.
+ The scaling 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 translation matrix from the specified 3-dimensional vector.
+ The amount to translate in each axis.
+ The translation matrix.
+
+
+ Creates a translation matrix from the specified X, Y, and Z components.
+ 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 right-handed viewport matrix from the specified parameters.
+ X coordinate of the viewport upper left corner.
+ Y coordinate of the viewport upper left corner.
+ Viewport width.
+ Viewport height.
+ Viewport minimum depth.
+ Viewport maximum depth.
+ The right-handed viewport matrix.
+
+
+ Creates a left-handed viewport matrix from the specified parameters.
+ X coordinate of the viewport upper left corner.
+ Y coordinate of the viewport upper left corner.
+ Viewport width.
+ Viewport height.
+ Viewport minimum depth.
+ Viewport maximum depth.
+ The left-handed viewport matrix.
+
+
+ Creates a world matrix with the specified parameters.
+ The position of the object.
+ The forward direction of the object.
+ The upward direction of the object. Its value is usually [0, 1, 0].
+ The world matrix.
+
+
+ Attempts to extract the scale, translation, and rotation components from the given scale, rotation, or translation matrix. The return value indicates whether the operation succeeded.
+ The source matrix.
+ When this method returns, contains the scaling component of the transformation matrix if the operation succeeded.
+ When this method returns, contains the rotation component of the transformation matrix if the operation succeeded.
+ When the method returns, contains the translation component of the transformation matrix if the operation succeeded.
+
+ if was decomposed successfully; otherwise, .
+
+
+ Returns a value that indicates whether this instance and another 4x4 matrix are equal.
+ The other matrix.
+
+ if the two matrices are equal; otherwise, .
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+
+ if the current instance and are equal; otherwise, . If is , the method returns .
+
+
+ Calculates the determinant of the current 4x4 matrix.
+ The determinant.
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Inverts the specified matrix. The return value indicates whether the operation succeeded.
+ The matrix to invert.
+ When this method returns, contains the inverted matrix if the operation succeeded.
+
+ if was converted successfully; otherwise, .
+
+
+ Performs a linear interpolation from one matrix to a second matrix based on a value that specifies the weighting of the second matrix.
+ The first matrix.
+ The second matrix.
+ The relative weighting of .
+ The interpolated matrix.
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Adds each element in one matrix with its corresponding element in a second matrix.
+ The first matrix.
+ The second matrix.
+ The matrix that contains the summed values.
+
+
+ Returns a value that indicates whether the specified matrices are equal.
+ The first matrix to compare.
+ The second matrix to care.
+
+ if and are equal; otherwise, .
+
+
+ Returns a value that indicates whether the specified matrices are not equal.
+ The first matrix to compare.
+ The second matrix to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Returns the matrix that results from multiplying two matrices together.
+ The first matrix.
+ The second matrix.
+ The product matrix.
+
+
+ Returns the matrix that results from scaling all the elements of a specified matrix by a scalar factor.
+ The matrix to scale.
+ The scaling value to use.
+ The scaled matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in from its corresponding element in .
+
+
+ Negates the specified matrix by multiplying all its values by -1.
+ The matrix to negate.
+ The negated matrix.
+
+
+ Subtracts each element in a second matrix from its corresponding element in a first matrix.
+ The first matrix.
+ The second matrix.
+ The matrix containing the values that result from subtracting each element in from its corresponding element in .
+
+
+ Returns a string that represents this matrix.
+ The string representation of this matrix.
+
+
+ Transforms the specified matrix by applying the specified Quaternion rotation.
+ The matrix to transform.
+ The rotation t apply.
+ The transformed matrix.
+
+
+ Transposes the rows and columns of a matrix.
+ The matrix to transpose.
+ The transposed matrix.
+
+
+ Gets the multiplicative identity matrix.
+ Gets the multiplicative identity matrix.
+
+
+ Indicates whether the current matrix is the identity matrix.
+
+ if the current matrix is the identity matrix; otherwise, .
+
+
+ Gets or sets the element at the specified indices.
+ The index of the row containing the element to get or set.
+ The index of the column containing the element to get or set.
+
+
+ was less than zero or greater than the number of rows.
+ -or-
+
+ was less than zero or greater than the number of columns.
+
+ The element at [][].
+
+
+ Gets or sets the translation component of this matrix.
+ The translation component of the current instance.
+
+
+ Represents a plane in three-dimensional space.
+
+
+ The distance of the plane along its normal from the origin.
+
+
+ The normal vector of the plane.
+
+
+ Creates a object from a specified normal and the distance along the normal from the origin.
+ The plane's normal vector.
+ The plane's distance from the origin along its normal vector.
+
+
+ Creates a object from a specified four-dimensional vector.
+ A vector whose first three elements describe the normal vector, and whose defines the distance along that normal from the origin.
+
+
+ Creates a object 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.
+
+
+ Creates a object that contains three specified 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.
+
+
+ Calculates the dot product of a plane and a 4-dimensional vector.
+ The plane.
+ The four-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the normal vector of this plane plus the distance () value of the plane.
+ The plane.
+ The 3-dimensional vector.
+ The dot product.
+
+
+ Returns the dot product of a specified three-dimensional vector and the vector of this plane.
+ The plane.
+ The three-dimensional vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another plane object are equal.
+ The other plane.
+
+ if the two planes are equal; otherwise, .
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+
+ if the current instance and are equal; otherwise, . If is , the method returns .
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Creates a new object whose normal vector is the source plane's normal vector normalized.
+ The source plane.
+ The normalized plane.
+
+
+ Returns a value that indicates whether two planes are equal.
+ The first plane to compare.
+ The second plane to compare.
+
+ if and are equal; otherwise, .
+
+
+ Returns a value that indicates whether two planes are not equal.
+ The first plane to compare.
+ The second plane to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Returns the string representation of this plane object.
+ A string that represents this object.
+
+
+ Transforms a normalized plane by a 4x4 matrix.
+ The normalized plane to transform.
+ The transformation matrix to apply to .
+ The transformed plane.
+
+
+ Transforms a normalized plane by a Quaternion rotation.
+ The normalized plane to transform.
+ The Quaternion rotation to apply to the plane.
+ A new plane that results from applying the Quaternion rotation.
+
+
+ Represents a vector that is used to encode three-dimensional physical rotations.
+
+
+ The rotation component of the quaternion.
+
+
+ The X value of the vector component of the quaternion.
+
+
+ The Y value of the vector component of the quaternion.
+
+
+ The Z value of the vector component of the quaternion.
+
+
+ Creates a quaternion from the specified vector and rotation parts.
+ The vector part of the quaternion.
+ The rotation part of the quaternion.
+
+
+ Constructs a quaternion from the specified components.
+ The value to assign to the X component of the quaternion.
+ The value to assign to the Y component of the quaternion.
+ The value to assign to the Z component of the quaternion.
+ The value to assign to the W component of the quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of and .
+
+
+ Concatenates two quaternions.
+ The first quaternion rotation in the series.
+ The second quaternion rotation in the series.
+ A new quaternion representing the concatenation of the rotation followed by the rotation.
+
+
+ Returns the conjugate of a specified quaternion.
+ The quaternion.
+ A new quaternion that is the conjugate of .
+
+
+ Creates a quaternion from a unit vector and an angle to rotate around the vector.
+ The unit vector to rotate around.
+ The angle, in radians, to rotate around the vector.
+ The newly created quaternion.
+
+
+ Creates a quaternion from the specified rotation matrix.
+ The rotation matrix.
+ The newly created quaternion.
+
+
+ Creates a new quaternion from the given yaw, pitch, and roll.
+ 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.
+ The resulting quaternion.
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing by .
+
+
+ Calculates the dot product of two quaternions.
+ The first quaternion.
+ The second quaternion.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another quaternion are equal.
+ The other quaternion.
+
+ if the two quaternions are equal; otherwise, .
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+
+ if the current instance and are equal; otherwise, . If is , the method returns .
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the inverse of a quaternion.
+ The quaternion.
+ The inverted quaternion.
+
+
+ Calculates the length of the quaternion.
+ The computed length of the quaternion.
+
+
+ Calculates the squared length of the quaternion.
+ The length squared of the quaternion.
+
+
+ Performs a linear interpolation between two quaternions based on a value that specifies the weighting of the second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of in the interpolation.
+ The interpolated quaternion.
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Divides each component of a specified by its length.
+ The quaternion to normalize.
+ The normalized quaternion.
+
+
+ Adds each element in one quaternion with its corresponding element in a second quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion that contains the summed values of and .
+
+
+ Divides one quaternion by a second quaternion.
+ The dividend.
+ The divisor.
+ The quaternion that results from dividing by .
+
+
+ Returns a value that indicates whether two quaternions are equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+
+ if the two quaternions are equal; otherwise, .
+
+
+ Returns a value that indicates whether two quaternions are not equal.
+ The first quaternion to compare.
+ The second quaternion to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Returns the quaternion that results from multiplying two quaternions together.
+ The first quaternion.
+ The second quaternion.
+ The product quaternion.
+
+
+ Returns the quaternion that results from scaling all the components of a specified quaternion by a scalar factor.
+ The source quaternion.
+ The scalar value.
+ The scaled quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in from its corresponding element in .
+
+
+ Reverses the sign of each component of the quaternion.
+ The quaternion to negate.
+ The negated quaternion.
+
+
+ Interpolates between two quaternions, using spherical linear interpolation.
+ The first quaternion.
+ The second quaternion.
+ The relative weight of the second quaternion in the interpolation.
+ The interpolated quaternion.
+
+
+ Subtracts each element in a second quaternion from its corresponding element in a first quaternion.
+ The first quaternion.
+ The second quaternion.
+ The quaternion containing the values that result from subtracting each element in from its corresponding element in .
+
+
+ Returns a string that represents this quaternion.
+ The string representation of this quaternion.
+
+
+ Gets a quaternion that represents no rotation.
+ A quaternion whose values are (0, 0, 0, 1).
+
+
+ Gets a value that indicates whether the current instance is the identity quaternion.
+
+ if the current instance is the identity quaternion; otherwise, .
+
+
+ Gets or sets the element at the specified index.
+ The index of the element to get or set.
+
+ was less than zero or greater than the number of elements.
+ The element at .
+
+
+ Gets a quaternion that represents a zero.
+ A quaternion whose values are (0, 0, 0, 0).
+
+
+ Provides a collection of static methods for creating, manipulating, and otherwise operating on generic vectors.
+
+
+ Returns a new vector whose elements are the absolute values of the given vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The absolute value vector.
+
+
+ Returns a new vector whose values are the sum of each pair of elements from two given vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise And Not operation on each pair of corresponding elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Reinterprets a as a new .
+ The vector to reinterpret.
+ The type of the input vector.
+ The type of the vector should be reinterpreted as.
+ The type of () or the type of the target () is not supported.
+
+ reinterpreted as a new .
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The type of () is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a double-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The type of () is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The type of () is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The type of () is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The type of () is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of native-sized integers.
+ The vector to reinterpret.
+ The type of the input vector.
+ The type of () is not supported.
+
+ reinterpreted as a new .
+
+
+ Reinterprets the bits of a specified vector into those of a vector of native-sized, unsigned integers.
+ The vector to reinterpret.
+ The type of the input vector.
+ The type of () is not supported.
+
+ reinterpreted as a new .
+
+
+ Reinterprets the bits of a specified vector into those of a vector of signed bytes.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The type of () is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a single-precision floating-point vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The type of () is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned 16-bit integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The type of () is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The type of () is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a specified vector into those of a vector of unsigned long integers.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The type of () is not supported.
+ The reinterpreted vector.
+
+
+ Returns a new vector by performing a bitwise operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector by performing a bitwise operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a new vector whose elements are the smallest integral values that are greater than or equal to the given vector's elements.
+ The source vector.
+ The vector whose elements are the smallest integral values that are greater than or equal to the given vector's elements.
+ If a value is equal to , , or , that value is returned.
+
+
+ Returns a new vector whose elements are the smallest integral values that are greater than or equal to the given vector's elements.
+ The source vector.
+ The vector whose elements are the smallest integral values that are greater than or equal to the given vector's elements.
+ If a value is equal to , , or , that value is returned.
+
+
+ Creates a new single-precision vector with elements selected between two specified single-precision source vectors based on an integral 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 double-precision vector with elements selected between two specified double-precision source vectors based on an integral 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 of a specified type with elements selected between two specified source vectors of the same type based on an integral mask vector.
+ The integral mask vector used to drive selection.
+ The first source vector.
+ The second source vector.
+ The vector type. T can be any primitive numeric type.
+ The new vector with elements selected based on the mask.
+
+
+ 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<Double> to a Vector<Int64>.
+ The source vector.
+ The converted vector.
+
+
+ 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<Single> to a Vector<UInt32>.
+ The source vector.
+ The converted vector.
+
+
+ Converts a Vector<Double> to a Vector<UInt64>.
+ The source vector.
+ The converted vector.
+
+
+ Divides a vector by a scalar to compute the per-element quotient.
+ The vector that will be divided by .
+ The scalar that will divide .
+ The type of the elements in the vector.
+ The quotient of divided by .
+
+
+ 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 vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The divided vector.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The dot product.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified double-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified integral vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in two specified long integer vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in two specified single-precision vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in two specified vectors of the same type are equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether each pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+
+ if all elements in and are equal; otherwise, .
+
+
+ Returns a value that indicates whether any single pair of elements in the given vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+
+ if any element pair in and is equal; otherwise, .
+
+
+ Returns a new vector whose elements are the largest integral values that are less than or equal to the given vector's elements.
+ The source vector.
+ The vector whose elements are the largest integral values that are less than or equal to the given vector's elements.
+ If a value is equal to , , or , that value is returned.
+
+
+ Returns a new vector whose elements are the largest integral values that are less than or equal to the given vector's elements.
+ The source vector.
+ The vector whose elements are the largest integral values that are less than or equal to the given vector's elements.
+ If a value is equal to , , or , that value is returned.
+
+
+ Gets the element at the specified index.
+ The vector to get the element from.
+ The index of the element to get.
+ The type of the elements in the vector.
+
+ was less than zero or greater than the number of elements.
+ The type of () is not supported.
+ The value of the element at .
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are greater than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are greater than their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than their corresponding elements in the second vector of the same time.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+
+ if all elements in are greater than the corresponding elements in ; otherwise, .
+
+
+ Returns a value that indicates whether any element in the first vector is greater than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+
+ if any element in is greater than the corresponding element in ; otherwise, .
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are greater than or equal to their corresponding elements in the second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are greater than or equal to their corresponding elements in the second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one vector are greater than or equal to their corresponding elements in the single-precision floating-point second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector of a specified type are greater than or equal to their corresponding elements in the second vector of the same type.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are greater than or equal to all the corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+
+ if all elements in are greater than or equal to the corresponding elements in ; otherwise, .
+
+
+ Returns a value that indicates whether any element in the first vector is greater than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+
+ if any element in is greater than or equal to the corresponding element in ; otherwise, .
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less than their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision vector are less than their corresponding elements in a second single-precision vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector of a specified type whose elements signal whether the elements in one vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all of the elements in the first vector are less than their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+
+ if all of the elements in are less than the corresponding elements in ; otherwise, .
+
+
+ Returns a value that indicates whether any element in the first vector is less than the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+
+ if any element in is less than the corresponding element in ; otherwise, .
+
+
+ Returns a new integral vector whose elements signal whether the elements in one double-precision floating-point vector are less than or equal to their corresponding elements in a second double-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one integral vector are less than or equal to their corresponding elements in a second integral vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new long integer vector whose elements signal whether the elements in one long integer vector are less or equal to their corresponding elements in a second long integer vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting long integer vector.
+
+
+ Returns a new integral vector whose elements signal whether the elements in one single-precision floating-point vector are less than or equal to their corresponding elements in a second single-precision floating-point vector.
+ The first vector to compare.
+ The second vector to compare.
+ The resulting integral vector.
+
+
+ Returns a new vector whose elements signal whether the elements in one vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Returns a value that indicates whether all elements in the first vector are less than or equal to their corresponding elements in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+
+ if all of the elements in are less than or equal to the corresponding elements in ; otherwise, .
+
+
+ Returns a value that indicates whether any element in the first vector is less than or equal to the corresponding element in the second vector.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+
+ if any element in is less than or equal to the corresponding element in ; otherwise, .
+
+
+ Loads a vector from the given source.
+ The source from which the vector will be loaded.
+ The type of the elements in the vector.
+ The type of () is not supported.
+ The vector loaded from .
+
+
+ Loads a vector from the given aligned source.
+ The aligned source from which the vector will be loaded.
+ The type of the elements in the vector.
+ The type of () is not supported.
+ The vector loaded from .
+
+
+ Loads a vector from the given aligned source.
+ The aligned source from which the vector will be loaded.
+ The type of the elements in the vector.
+ The type of () is not supported.
+ The vector loaded from .
+
+
+ Loads a vector from the given source.
+ The source from which the vector will be loaded.
+ The type of the elements in the vector.
+ The type of () is not supported.
+ The vector loaded from .
+
+
+ Loads a vector from the given source and element offset.
+ The source to which will be added before loading the vector.
+ The element offset from from which the vector will be loaded.
+ The type of the elements in the vector.
+ The type of () is not supported.
+ The vector loaded from plus .
+
+
+ Returns a new vector whose elements are the maximum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The maximum vector.
+
+
+ Returns a new vector whose elements are the minimum of each pair of elements in the two given vectors.
+ The first vector to compare.
+ The second vector to compare.
+ The vector type. T can be any primitive numeric type.
+ The minimum vector.
+
+
+ Returns a new vector whose values are a scalar value multiplied by each of the values of a specified vector.
+ The scalar value.
+ The vector.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+ Returns a new vector whose values are the values of a specified vector each multiplied by a scalar value.
+ The vector.
+ The scalar value.
+ The vector type. T can be any primitive numeric type.
+ The scaled vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The element-wise product vector.
+
+
+ Narrows two Vector<Double> instances into one Vector<Single>.
+ The source vector that will be narrowed to the lower half of the result vector.
+ The source vector that will be narrowed to the upper half of the result vector.
+ A Vector<Single> containing elements narrowed from the source vectors.
+
+
+ Narrows two Vector<Int16> instances into one Vector<SByte>.
+ The source vector that will be narrowed to the lower half of the result vector.
+ The source vector that will be narrowed to the upper half of the result vector.
+ A Vector<SByte> containing elements narrowed from the source vectors.
+
+
+ Narrows two Vector<Int32> instances into one Vector<Int16>.
+ The source vector that will be narrowed to the lower half of the result vector.
+ The source vector that will be narrowed to the upper half of the result vector.
+ A Vector<Int16> containing elements narrowed from the source vectors.
+
+
+ Narrows two Vector<Int64> instances into one Vector<Int32>.
+ The source vector that will be narrowed to the lower half of the result vector.
+ The source vector that will be narrowed to the upper half of the result vector.
+ A Vector<Int32> containing elements narrowed from the source vectors.
+
+
+ Narrows two Vector<UInt16> instances into one Vector<Byte>.
+ The source vector that will be narrowed to the lower half of the result vector.
+ The source vector that will be narrowed to the upper half of the result vector.
+ A Vector<Byte> containing elements narrowed from the source vectors.
+
+
+ Narrows two Vector<UInt32> instances into one Vector<UInt16>.
+ The source vector that will be narrowed to the lower half of the result vector.
+ The source vector that will be narrowed to the upper half of the result vector.
+ A Vector<UInt16> containing elements narrowed from the source vectors.
+
+
+ Narrows two Vector<UInt64> instances into one Vector<UInt32>.
+ The source vector that will be narrowed to the lower half of the result vector.
+ The source vector that will be narrowed to the upper half of the result vector.
+ A Vector<UInt32> containing elements narrowed from the source vectors.
+
+
+ Returns a new vector whose elements are the negation of the corresponding element in the specified vector.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The negated vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Shifts each element of a vector left by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted left by .
+
+
+ Shifts each element of a vector left by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted left by .
+
+
+ Shifts each element of a vector left by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted left by .
+
+
+ Shifts each element of a vector left by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted left by .
+
+
+ Shifts each element of a vector left by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted left by .
+
+
+ Shifts each element of a vector left by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted left by .
+
+
+ Shifts each element of a vector left by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted left by .
+
+
+ Shifts each element of a vector left by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted left by .
+
+
+ Shifts each element of a vector left by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted left by .
+
+
+ Shifts each element of a vector left by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted left by .
+
+
+ Shifts (signed) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Shifts (signed) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Shifts (signed) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Shifts (signed) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Shifts (signed) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Shifts (unsigned) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Shifts (unsigned) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Shifts (unsigned) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Shifts (unsigned) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Shifts (unsigned) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Shifts (unsigned) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Shifts (unsigned) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Shifts (unsigned) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Shifts (unsigned) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Shifts (unsigned) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Returns a new vector whose elements are the square roots of a specified vector's elements.
+ The source vector.
+ The vector type. T can be any primitive numeric type.
+ The square root vector.
+
+
+ Stores a vector at the given destination.
+ The vector that will be stored.
+ The destination at which will be stored.
+ The type of the elements in the vector.
+ The type of () is not supported.
+
+
+ Stores a vector at the given aligned destination.
+ The vector that will be stored.
+ The aligned destination at which will be stored.
+ The type of the elements in the vector.
+ The type of () is not supported.
+
+
+ Stores a vector at the given aligned destination.
+ The vector that will be stored.
+ The aligned destination at which will be stored.
+ The type of the elements in the vector.
+ The type of () is not supported.
+
+
+ Stores a vector at the given destination.
+ The vector that will be stored.
+ The destination at which will be stored.
+ The type of the elements in the vector.
+ The type of () is not supported.
+
+
+ Stores a vector at the given destination.
+ The vector that will be stored.
+ The destination to which will be added before the vector will be stored.
+ The element offset from from which the vector will be stored.
+ The type of the elements in the vector.
+ The type of () is not supported.
+
+
+ Returns a new vector whose values are the difference between the elements in the second vector and their corresponding elements in the first vector.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The difference vector.
+
+
+ Returns the sum of all the elements inside the specified vector.
+ A vector containing the objects of type to sum.
+ The type of the elements to sum..
+ The sum of all elements inside the vector.
+
+
+ Converts the given vector to a scalar containing the value of the first element.
+ The vector to get the first element from.
+ The type of the elements in the vector.
+ The type of () is not supported.
+ A scalar containing the value of the first element.
+
+
+ Widens a Vector<Byte> into two Vector<UInt16> instances.
+ The source vector whose elements are widened into the outputs.
+ When this method returns, contains the widened result of the lower half of .
+ When this method returns, contains the widened result of the upper half of .
+
+
+ Widens a Vector<Int16> into two Vector<Int32> instances.
+ The source vector whose elements are widened into the outputs.
+ When this method returns, contains the widened result of the lower half of .
+ When this method returns, contains the widened result of the upper half of .
+
+
+ Widens a Vector<Int32> into two Vector<Int64> instances.
+ The source vector whose elements are widened into the outputs.
+ When this method returns, contains the widened result of the lower half of .
+ When this method returns, contains the widened result of the upper half of .
+
+
+ Widens a Vector<SByte> into two Vector<Int16> instances.
+ The source vector whose elements are widened into the outputs.
+ When this method returns, contains the widened result of the lower half of .
+ When this method returns, contains the widened result of the upper half of .
+
+
+ Widens a Vector<Single> into two Vector<Double> instances.
+ The source vector whose elements are widened into the outputs.
+ When this method returns, contains the widened result of the lower half of .
+ When this method returns, contains the widened result of the upper half of .
+
+
+ Widens a Vector<UInt16> into two Vector<UInt32> instances.
+ The source vector whose elements are widened into the outputs.
+ When this method returns, contains the widened result of the lower half of .
+ When this method returns, contains the widened result of the upper half of .
+
+
+ Widens a Vector<UInt32> into two Vector<UInt64> instances.
+ The source vector whose elements are widened into the outputs.
+ When this method returns, contains the widened result of the lower half of .
+ When this method returns, contains the widened result of the upper half of .
+
+
+ Widens the lower half of a into a .
+ The vector whose elements are to be widened.
+ A vector that contains the widened lower half of .
+
+
+ Widens the lower half of a into a .
+ The vector whose elements are to be widened.
+ A vector that contains the widened lower half of .
+
+
+ Widens the lower half of a into a .
+ The vector whose elements are to be widened.
+ A vector that contains the widened lower half of .
+
+
+ Widens the lower half of a into a .
+ The vector whose elements are to be widened.
+ A vector that contains the widened lower half of .
+
+
+ Widens the lower half of a into a .
+ The vector whose elements are to be widened.
+ A vector that contains the widened lower half of .
+
+
+ Widens the lower half of a into a .
+ The vector whose elements are to be widened.
+ A vector that contains the widened lower half of .
+
+
+ Widens the lower half of a into a .
+ The vector whose elements are to be widened.
+ A vector that contains the widened lower half of .
+
+
+ Widens the upper half of a into a .
+ The vector whose elements are to be widened.
+ A vector that contains the widened upper half of .
+
+
+ Widens the upper half of a into a .
+ The vector whose elements are to be widened.
+ A vector that contains the widened upper half of .
+
+
+ Widens the upper half of a into a .
+ The vector whose elements are to be widened.
+ A vector that contains the widened upper half of .
+
+
+ Widens the upper half of a into a .
+ The vector whose elements are to be widened.
+ A vector that contains the widened upper half of .
+
+
+ Widens the upper half of a into a .
+ The vector whose elements are to be widened.
+ A vector that contains the widened upper half of .
+
+
+ Widens the upper half of a into a .
+ The vector whose elements are to be widened.
+ A vector that contains the widened upper half of .
+
+
+ Widens the upper half of a into a .
+ The vector whose elements are to be widened.
+ A vector that contains the widened upper half of .
+
+
+ Creates a new with the element at the specified index set to the specified value and the remaining elements set to the same value as that in the given vector.
+ The vector to get the remaining elements from.
+ The index of the element to set.
+ The value to set the element to.
+ The type of the elements in the vector.
+
+ was less than zero or greater than the number of elements.
+ The type of () is not supported.
+ A with the value of the element at set to and the remaining elements set to the same value as that in .
+
+
+ Returns a new vector by performing a bitwise exclusive Or () operation on each pair of elements in two vectors.
+ The first vector.
+ The second vector.
+ The vector type. T can be any primitive numeric type.
+ The resulting vector.
+
+
+ Gets a value that indicates whether vector operations are subject to hardware acceleration through JIT intrinsic support.
+
+ if vector operations are subject to hardware acceleration; otherwise, .
+
+
+ Represents a single vector of a specified numeric type that is suitable for low-level optimization of parallel algorithms.
+ The type of the elements in the vector. can be any primitive numeric type.
+
+
+ Creates a vector whose components are of a specified type.
+ The numeric type that defines the type of the components in the vector.
+ .NET 5 and later: Type is not supported.
+
+
+ Creates a vector from a specified array.
+ The values to add to the vector, as an array of objects of type T. The array must contain at least elements and only the first elements are used.
+
+ is .
+ .NET 5 and later: Type is not supported.
+
+ is .
+ The length of is less than .
+
+
+ Creates a vector from a specified array starting at a specified index position.
+ The values to add to the vector, as an array of objects of type T. The array must contain at least elements from the specified index and only the first elements are used.
+ The starting index position from which to create the vector.
+
+ is .
+
+ is less than zero.
+
+ -or-
+
+ The length of minus is less than .
+ .NET 5 and later: Type is not supported.
+
+ is .
+ The length of , starting from , is less than .
+
+
+ Constructs a vector from the given .
+ The values to add to the vector, as a read-only span of objects of type . The span must contain at least elements and only the first elements are used.
+
+ did not contain at least elements.
+ .NET 5 and later: Type is not supported.
+ The length of is less than .
+
+
+ Constructs a vector from the given read-only span of bytes.
+ A read-only span of bytes that contains the values to add to the vector. The span must contain at least elements and only the first elements are used.
+
+ did not contain at least elements.
+ .NET 5 and later: Type is not supported.
+ The length of is less than sizeof().
+
+
+ Constructs a vector from the given .
+ The values to add to the vector, as a span of objects of type T. The span must contain at least elements and only the first elements are used.
+
+ did not contain at least elements.
+ .NET 5 and later: Type is not supported.
+ The length of is less than .
+
+
+ Copies the vector instance to a specified destination array.
+ The array to receive a copy of the vector values.
+
+ is .
+ The number of elements in the current vector is greater than the number of elements available in the array.
+ .NET 5 and later: Type is not supported.
+
+ is .
+
+
+ Copies the vector instance to a specified destination array starting at a specified index position.
+ The array to receive a copy of the vector values.
+ The starting index in at which to begin the copy operation.
+
+ is .
+ The number of elements in the current instance is greater than the number of elements available from to the end of the array.
+
+ is less than zero or greater than the last index in .
+ .NET 5 and later: Type is not supported.
+
+ is .
+
+
+ Copies the vector to the given span. .
+ The destination span to which the values are copied. The destination span must be at least size .
+ The number of elements in the source vector is greater than those available in the destination span.
+ .NET 5 and later: Type is not supported.
+
+
+ Copies the vector to the given .
+ The destination span to which the values are copied. The destination span must be at least size .
+ The number of elements in the source vector is greater than those available in the destination span.
+ .NET 5 and later: Type is not supported.
+
+
+ Returns a value that indicates whether this instance is equal to a specified vector.
+ The vector to compare with this instance.
+ .NET 5 and later: Type is not supported.
+
+ if the current instance and are equal; otherwise, .
+
+
+ Returns a value that indicates whether this instance is equal to a specified object.
+ The object to compare with this instance.
+ .NET 5 and later: Type is not supported.
+
+ if the current instance and are equal; otherwise, . The method returns if is null, or if is a vector of a different type than the current instance.
+
+
+ Returns the hash code for this instance.
+ .NET 5 and later: Type is not supported.
+ The hash code.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ .NET 5 and later: Type is not supported.
+ The summed vector.
+
+
+ Returns a new vector by performing a bitwise operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ .NET 5 and later: Type is not supported.
+ The vector that results from the bitwise of and .
+
+
+ Returns a new vector by performing a bitwise operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ .NET 5 and later: Type is not supported.
+ The vector that results from the bitwise of the elements in and .
+
+
+ Divides a vector by a scalar to compute the per-element quotient.
+ The vector that will be divided by .
+ The scalar that will divide .
+ The quotient of divided by .
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ .NET 5 and later: Type is not supported.
+ The vector that results from dividing by .
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors are equal.
+ The first vector to compare.
+ The second vector to compare.
+ .NET 5 and later: Type is not supported.
+
+ if and are equal; otherwise, .
+
+
+ Returns a new vector by performing a bitwise operation on each of the elements in two vectors.
+ The first vector.
+ The second vector.
+ .NET 5 and later: Type is not supported.
+ The vector that results from the bitwise of the elements in and .
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ .NET 5 and later: Type is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ .NET 5 and later: Type is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ .NET 5 and later: Type is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ .NET 5 and later: Type is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ .NET 5 and later: Type is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a source vector into a vector of native-sized integers.
+ The vector to reinterpret.
+ The type of () is not supported.
+
+ reinterpreted as a new .
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ .NET 5 and later: Type is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ .NET 5 and later: Type is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ .NET 5 and later: Type is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ .NET 5 and later: Type is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of the specified vector into a vector of type .
+ The vector to reinterpret.
+ .NET 5 and later: Type is not supported.
+ The reinterpreted vector.
+
+
+ Reinterprets the bits of a source vector into a vector of native-sized, unsigned integers.
+ The vector to reinterpret.
+ The type of () is not supported.
+
+ reinterpreted as a new .
+
+
+ Returns a value that indicates whether any single pair of elements in the specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+ .NET 5 and later: Type is not supported.
+
+ if any element pairs in left and right are equal. if no element pairs are equal.
+
+
+ Shifts each element of a vector left by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted left by .
+
+
+ Multiplies a vector by a specified scalar value.
+ The scalar value.
+ The source vector.
+ .NET 5 and later: Type is not supported.
+ The scaled vector.
+
+
+ Multiplies a vector by a specified scalar value.
+ The source vector.
+ A scalar value.
+ .NET 5 and later: Type is not supported.
+ The scaled vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ .NET 5 and later: Type is not supported.
+ The element-wise product vector.
+
+
+ Returns a new vector whose elements are obtained by taking the one's complement of a specified vector's elements.
+ The source vector.
+ .NET 5 and later: Type is not supported.
+ The one's complement vector.
+
+
+ Shifts (signed) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ .NET 5 and later: Type is not supported.
+ The vector that results from subtracting from .
+
+
+ Negates a given vector.
+ The vector to negate.
+ .NET 5 and later: Type is not supported.
+ The negated vector.
+
+
+ Returns a given vector unchanged.
+ The vector.
+ The type of the vector () is not supported.
+
+
+
+
+
+ Shifts (unsigned) each element of a vector right by the specified amount.
+ The vector whose elements are to be shifted.
+ The number of bits by which to shift each element.
+ A vector whose elements where shifted right by .
+
+
+ Returns the string representation of this vector using default formatting.
+ .NET 5 and later: Type is not supported.
+ The string representation of this vector.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements.
+ The format of individual elements.
+ .NET 5 and later: Type is not supported.
+ The string representation of the current instance.
+
+
+ Returns the string representation of this vector using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ The format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ .NET 5 and later: Type is not supported.
+ The string representation of the current instance.
+
+
+ Attempts to copy the vector to the given .
+ The destination span to which the values are copied. The destination span must be at least size .
+ .NET 5 and later: Type is not supported.
+
+ if the source vector was successfully copied to . if is not large enough to hold the source vector.
+
+
+ Attempts to copy the vector to the given byte span.
+ The destination span to which the values are copied. The destination span must be at least size .
+ .NET 5 and later: Type is not supported.
+
+ if the source vector was successfully copied to . if is not large enough to hold the source vector.
+
+
+ Gets a new with all bits set to 1.
+ The type of the current instance () is not supported.
+
+
+ Returns the number of elements stored in the vector.
+ Access to the property getter via reflection is not supported.
+
+-or-
+
+.NET 5 and later: Type is not supported.
+ The number of elements stored in the vector.
+
+
+ Gets a value that indicates whether is supported.
+
+ if is supported; otherwise, .
+
+
+ Gets the element at a specified index.
+ The index of the element to return.
+
+ is less than zero.
+
+ -or-
+
+ is greater than or equal to .
+ .NET 5 and later: Type is not supported.
+
+ was less than zero or greater than the number of elements.
+ The element at index .
+
+
+ Returns a vector containing all ones.
+ .NET 5 and later: Type is not supported.
+ A vector containing all ones.
+
+
+ Returns a vector containing all zeroes.
+ .NET 5 and later: Type is not supported.
+ A vector containing all zeroes.
+
+
+ Represents a vector with two single-precision floating-point values.
+
+
+ The X component of the vector.
+
+
+ The Y component of the vector.
+
+
+ Constructs a vector from the given . The span must contain at least two elements.
+ The span of elements to assign to the vector.
+
+
+ Creates a new object whose two elements have the same value.
+ The value to assign to both elements.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+
+ is .
+ The number of elements in the current instance is greater than in the array.
+
+ is multidimensional.
+
+ is .
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+
+ is .
+ The number of elements in the current instance is greater than in the array.
+
+ is less than zero.
+
+ -or-
+
+ is greater than or equal to the array length.
+
+ is multidimensional.
+
+ is .
+
+
+ Copies the vector to the given .The length of the destination span must be at least 2.
+ The destination span into which the values are copied.
+ The number of elements in the source vector is greater than the number of elements available in destination span.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+
+ if the two vectors are equal; otherwise, .
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+
+ if the current instance and are equal; otherwise, . If is , the method returns .
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of the vector.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of .
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The element-wise product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing by .
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+
+ if and are equal; otherwise, .
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The element-wise product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting from .
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated 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.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A standard or custom numeric format string that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A standard or custom numeric format string that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 3x2 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 3x2 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Attempts to copy the vector to the given . The length of the destination span must be at least 2.
+ The destination span into which the values are copied.
+
+ if the source vector was successfully copied to . if is not large enough to hold the source vector.
+
+
+ Gets or sets the element at the specified index.
+ The index of the element to get or set.
+
+ was less than zero or greater than the number of elements.
+ The the element at .
+
+
+ Gets a vector whose 2 elements are equal to one.
+ A vector whose two elements are equal to one (that is, it returns the vector (1,1)).
+
+
+ Gets the vector (1,0).
+ The vector (1,0).
+
+
+ Gets the vector (0,1).
+ The vector (0,1).
+
+
+ Returns a vector whose 2 elements are equal to zero.
+ A vector whose two elements are equal to zero (that is, it returns the vector (0,0)).
+
+
+ Represents a vector with three single-precision floating-point values.
+
+
+ The X component of the vector.
+
+
+ The Y component of the vector.
+
+
+ The Z component of the vector.
+
+
+ Creates a new object from the specified object and the specified value.
+ The vector with two elements.
+ The additional value to assign to the field.
+
+
+ Constructs a vector from the given . The span must contain at least 3 elements.
+ The span of elements to assign to the vector.
+
+
+ Creates a new object whose three elements have the same value.
+ The value to assign to all three elements.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+
+ is .
+ The number of elements in the current instance is greater than in the array.
+
+ is multidimensional.
+
+ is .
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+
+ is .
+ The number of elements in the current instance is greater than in the array.
+
+ is less than zero.
+
+ -or-
+
+ is greater than or equal to the array length.
+
+ is multidimensional.
+
+ is .
+
+
+ Copies the vector to the given . The length of the destination span must be at least 3.
+ The destination span into which the values are copied.
+ The number of elements in the source vector is greater than the number of elements available in the destination span.
+
+
+ Computes the cross product of two vectors.
+ The first vector.
+ The second vector.
+ The cross product.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+
+ if the two vectors are equal; otherwise, .
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+
+ if the current instance and are equal; otherwise, . If is , the method returns .
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of .
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The element-wise product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing by .
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+
+ if and are equal; otherwise, .
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The element-wise product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting from .
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated 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.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A standard or custom numeric format string that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A standard or custom numeric format string that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a vector normal by the given 4x4 matrix.
+ The source vector.
+ The matrix.
+ The transformed vector.
+
+
+ Attempts to copy the vector to the given . The length of the destination span must be at least 3.
+ The destination span into which the values are copied.
+
+ if the source vector was successfully copied to . if is not large enough to hold the source vector.
+
+
+ Gets or sets the element at the specified index.
+ The index of the element to get or set.
+
+ was less than zero or greater than the number of elements.
+ The the element at .
+
+
+ Gets a vector whose 3 elements are equal to one.
+ A vector whose three elements are equal to one (that is, it returns the vector (1,1,1)).
+
+
+ Gets the vector (1,0,0).
+ The vector (1,0,0).
+
+
+ Gets the vector (0,1,0).
+ The vector (0,1,0).
+
+
+ Gets the vector (0,0,1).
+ The vector (0,0,1).
+
+
+ Gets a vector whose 3 elements are equal to zero.
+ A vector whose three elements are equal to zero (that is, it returns the vector (0,0,0)).
+
+
+ Represents a vector with four single-precision floating-point values.
+
+
+ The W component of the vector.
+
+
+ The X component of the vector.
+
+
+ The Y component of the vector.
+
+
+ The Z component of the vector.
+
+
+ Creates a new object from the specified object and a Z and a W component.
+ The vector to use for the X and Y components.
+ The Z component.
+ The W component.
+
+
+ Constructs a new object from the specified object and a W component.
+ The vector to use for the X, Y, and Z components.
+ The W component.
+
+
+ Constructs a vector from the given . The span must contain at least 4 elements.
+ The span of elements to assign to the vector.
+
+
+ Creates a new object whose four elements have the same value.
+ The value to assign to all four elements.
+
+
+ Creates a vector whose elements have the specified values.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+ The value to assign to the field.
+
+
+ Returns a vector whose elements are the absolute values of each of the specified vector's elements.
+ A vector.
+ The absolute value vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Restricts a vector between a minimum and a maximum value.
+ The vector to restrict.
+ The minimum value.
+ The maximum value.
+ The restricted vector.
+
+
+ Copies the elements of the vector to a specified array.
+ The destination array.
+
+ is .
+ The number of elements in the current instance is greater than in the array.
+
+ is multidimensional.
+
+ is .
+
+
+ Copies the elements of the vector to a specified array starting at a specified index position.
+ The destination array.
+ The index at which to copy the first element of the vector.
+
+ is .
+ The number of elements in the current instance is greater than in the array.
+
+ is less than zero.
+
+ -or-
+
+ is greater than or equal to the array length.
+
+ is multidimensional.
+
+ is .
+
+
+ Copies the vector to the given . The length of the destination span must be at least 4.
+ The destination span which the values are copied into.
+ The number of elements in the source vector is greater than the number of elements available in the destination span.
+
+
+ Computes the Euclidean distance between the two given points.
+ The first point.
+ The second point.
+ The distance.
+
+
+ Returns the Euclidean distance squared between two specified points.
+ The first point.
+ The second point.
+ The distance squared.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector resulting from the division.
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The vector that results from the division.
+
+
+ Returns the dot product of two vectors.
+ The first vector.
+ The second vector.
+ The dot product.
+
+
+ Returns a value that indicates whether this instance and another vector are equal.
+ The other vector.
+
+ if the two vectors are equal; otherwise, .
+
+
+ Returns a value that indicates whether this instance and a specified object are equal.
+ The object to compare with the current instance.
+
+ if the current instance and are equal; otherwise, . If is , the method returns .
+
+
+ Returns the hash code for this instance.
+ The hash code.
+
+
+ Returns the length of this vector object.
+ The vector's length.
+
+
+ Returns the length of the vector squared.
+ The vector's length squared.
+
+
+ Performs a linear interpolation between two vectors based on the given weighting.
+ The first vector.
+ The second vector.
+ A value between 0 and 1 that indicates the weight of .
+ The interpolated vector.
+
+
+ Returns a vector whose elements are the maximum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The maximized vector.
+
+
+ Returns a vector whose elements are the minimum of each of the pairs of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The minimized vector.
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The element-wise product vector.
+
+
+ Multiplies a vector by a specified scalar.
+ The vector to multiply.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiplies a scalar value by a specified vector.
+ The scaled value.
+ The vector.
+ The scaled vector.
+
+
+ Negates a specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector with the same direction as the specified vector, but with a length of one.
+ The vector to normalize.
+ The normalized vector.
+
+
+ Adds two vectors together.
+ The first vector to add.
+ The second vector to add.
+ The summed vector.
+
+
+ Divides the first vector by the second.
+ The first vector.
+ The second vector.
+ The vector that results from dividing by .
+
+
+ Divides the specified vector by a specified scalar value.
+ The vector.
+ The scalar value.
+ The result of the division.
+
+
+ Returns a value that indicates whether each pair of elements in two specified vectors is equal.
+ The first vector to compare.
+ The second vector to compare.
+
+ if and are equal; otherwise, .
+
+
+ Returns a value that indicates whether two specified vectors are not equal.
+ The first vector to compare.
+ The second vector to compare.
+
+ if and are not equal; otherwise, .
+
+
+ Returns a new vector whose values are the product of each pair of elements in two specified vectors.
+ The first vector.
+ The second vector.
+ The element-wise product vector.
+
+
+ Multiples the specified vector by the specified scalar value.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Multiples the scalar value by the specified vector.
+ The vector.
+ The scalar value.
+ The scaled vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The vector that results from subtracting from .
+
+
+ Negates the specified vector.
+ The vector to negate.
+ The negated vector.
+
+
+ Returns a vector whose elements are the square root of each of a specified vector's elements.
+ A vector.
+ The square root vector.
+
+
+ Subtracts the second vector from the first.
+ The first vector.
+ The second vector.
+ The difference vector.
+
+
+ Returns the string representation of the current instance using default formatting.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements.
+ A standard or custom numeric format string that defines the format of individual elements.
+ The string representation of the current instance.
+
+
+ Returns the string representation of the current instance using the specified format string to format individual elements and the specified format provider to define culture-specific formatting.
+ A standard or custom numeric format string that defines the format of individual elements.
+ A format provider that supplies culture-specific formatting information.
+ The string representation of the current instance.
+
+
+ Transforms a two-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a two-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a three-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Transforms a four-dimensional vector by a specified 4x4 matrix.
+ The vector to transform.
+ The transformation matrix.
+ The transformed vector.
+
+
+ Transforms a four-dimensional vector by the specified Quaternion rotation value.
+ The vector to rotate.
+ The rotation to apply.
+ The transformed vector.
+
+
+ Attempts to copy the vector to the given . The length of the destination span must be at least 4.
+ The destination span which the values are copied into.
+
+ if the source vector was successfully copied to . if is not large enough to hold the source vector.
+
+
+ Gets or sets the element at the specified index.
+ The index of the element to get or set.
+
+ was less than zero or greater than the number of elements.
+ The the element at .
+
+
+ Gets a vector whose 4 elements are equal to one.
+ Returns .
+
+
+ Gets the vector (0,0,0,1).
+ The vector (0,0,0,1).
+
+
+ Gets the vector (1,0,0,0).
+ The vector (1,0,0,0).
+
+
+ Gets the vector (0,1,0,0).
+ The vector (0,1,0,0).
+
+
+ Gets the vector (0,0,1,0).
+ The vector (0,0,1,0).
+
+
+ Gets a vector whose 4 elements are equal to zero.
+ A vector whose four elements are equal to zero (that is, it returns the vector (0,0,0,0)).
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.DispatchProxy.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.DispatchProxy.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9c81d2a6971cd445228864461b9ad47b3c82594c
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.DispatchProxy.xml
@@ -0,0 +1,41 @@
+
+
+
+ System.Reflection.DispatchProxy
+
+
+
+ Provides a mechanism for instantiating proxy objects and handling their method dispatch.
+
+
+
+ Creates an object instance that derives from class and implements interface .
+
+
+
+ or is .
+
+
+ is a class.
+ -or-
+
+ is sealed or abstract, or doesn't inherit from the type or has a parameterless constructor.
+
+ An object instance that implements .
+
+
+ Creates an object instance that derives from class and implements interface .
+ The interface the proxy should implement.
+ The base class to use for the proxy class.
+
+ is a class, or is sealed or does not have a parameterless constructor.
+ An object instance that implements .
+
+
+ Whenever any method on the generated proxy type is called, this method is invoked to dispatch control.
+ The method the caller invoked.
+ The arguments the caller passed to the method.
+ The object to return to the caller, or for void methods.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.Emit.Lightweight.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.Emit.Lightweight.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0297f3b2c53709ea76b4a0a53683f315c68943ff
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.Emit.Lightweight.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.Emit.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.Emit.xml
new file mode 100644
index 0000000000000000000000000000000000000000..71e051405e87be4ffe2886d8bb88f5fd0fc5b89d
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.Emit.xml
@@ -0,0 +1,3946 @@
+
+
+
+ System.Reflection.Emit
+
+
+
+ Defines and represents a dynamic assembly.
+
+
+ Initializes a new instance of the class.
+
+
+ Defines a dynamic assembly that has the specified name and access rights.
+ The name of the assembly.
+ The access rights of the assembly.
+ An object that represents the new assembly.
+
+
+ Defines a new assembly that has the specified name, access rights, and attributes.
+ The name of the assembly.
+ The access rights of the assembly.
+ A collection that contains the attributes of the assembly.
+ An object that represents the new assembly.
+
+
+ Defines a named transient dynamic module in this assembly.
+ The name of the dynamic module.
+
+ begins with white space.
+
+ -or-
+
+ The length of is zero.
+
+ -or-
+
+ The length of is greater than the system-defined maximum length.
+
+ is .
+ The caller does not have the required permission.
+ The assembly for default symbol writer cannot be loaded.
+
+ -or-
+
+ The type that implements the default symbol writer interface cannot be found.
+ A representing the defined dynamic module.
+
+
+ When overridden in a derived class, defines a dynamic module in this assembly.
+ The name of the dynamic module.
+ A representing the defined dynamic module.
+
+
+ Returns a value that indicates whether this instance is equal to the specified object.
+ An object to compare with this instance, or .
+
+ if equals the type and value of this instance; otherwise, .
+
+
+ Returns all the custom attributes that have been applied to the current .
+ This argument is ignored for objects of this type.
+ An array that contains the custom attributes; the array is empty if there are no attributes.
+
+
+ Returns all the custom attributes that have been applied to the current , and that derive from a specified attribute type.
+ The base type from which attributes derive.
+ This argument is ignored for objects of this type.
+
+ is .
+
+ is not a object supplied by the runtime. For example, is a object.
+ An array that contains the custom attributes that are derived at any level from ; the array is empty if there are no such attributes.
+
+
+ Returns objects that contain information about the attributes that have been applied to the current .
+ A generic list of objects representing data about the attributes that have been applied to the current module.
+
+
+ Returns the dynamic module with the specified name.
+ The name of the requested dynamic module.
+
+ is .
+ The length of is zero.
+ The caller does not have the required permission.
+ A ModuleBuilder object representing the requested dynamic module.
+
+
+ When overridden in a derived class, returns the dynamic module with the specified name.
+ The name of the requested dynamic module.
+ A representing the requested dynamic module.
+
+
+ Gets the exported types defined in this assembly.
+ This method is not implemented.
+ The caller does not have the required permission.
+ An array of containing the exported types defined in this assembly.
+
+
+ Gets a for the specified file in the file table of the manifest of this assembly.
+ The name of the specified file.
+ This method is not currently supported.
+ The caller does not have the required permission.
+ A for the specified file, or , if the file is not found.
+
+
+ Gets the files in the file table of an assembly manifest, specifying whether to include resource modules.
+
+ to include resource modules; otherwise, .
+ This method is not currently supported.
+ The caller does not have the required permission.
+ An array of objects.
+
+
+ Returns the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Returns all the loaded modules that are part of this assembly, and optionally includes resource modules.
+
+ to include resource modules; otherwise, .
+ The loaded modules that are part of this assembly.
+
+
+ Returns information about how the given resource has been persisted.
+ The name of the resource.
+ This method is not currently supported.
+ The caller does not have the required permission.
+
+ populated with information about the resource's topology, or if the resource is not found.
+
+
+ Loads the specified manifest resource from this assembly.
+ This method is not supported on a dynamic assembly. To get the manifest resource names, use .
+ The caller does not have the required permission.
+ An array of type containing the names of all the resources.
+
+
+ Loads the specified manifest resource from this assembly.
+ The name of the manifest resource being requested.
+ This method is not currently supported.
+ The caller does not have the required permission.
+ A representing this manifest resource.
+
+
+ Loads the specified manifest resource, scoped by the namespace of the specified type, from this assembly.
+ The type whose namespace is used to scope the manifest resource name.
+ The name of the manifest resource being requested.
+ This method is not currently supported.
+ The caller does not have the required permission.
+ A representing this manifest resource.
+
+
+ Gets the specified module in this assembly.
+ The name of the requested module.
+ The module being requested, or if the module is not found.
+
+
+ Gets all the modules that are part of this assembly, and optionally includes resource modules.
+
+ to include resource modules; otherwise, .
+ The modules that are part of this assembly.
+
+
+ Gets the that was specified when the current dynamic assembly was created, and sets the code base as specified.
+
+ to set the code base to the location of the assembly after it is shadow-copied; to set the code base to the original location.
+ The name of the dynamic assembly.
+
+
+ Gets an incomplete list of objects for the assemblies that are referenced by this .
+ An array of assembly names for the referenced assemblies. This array is not a complete list.
+
+
+ Gets the satellite assembly for the specified culture.
+ The specified culture.
+
+ is .
+ The assembly cannot be found.
+ The satellite assembly with a matching file name was found, but the did not match the one specified.
+ The satellite assembly is not a valid assembly.
+ The specified satellite assembly.
+
+
+ Gets the specified version of the satellite assembly for the specified culture.
+ The specified culture.
+ The version of the satellite assembly.
+
+ is .
+ The satellite assembly with a matching file name was found, but the or the version did not match the one specified.
+ The assembly cannot be found.
+ The satellite assembly is not a valid assembly.
+ The specified satellite assembly.
+
+
+ Gets the specified type from the types that have been defined and created in the current .
+ The name of the type to search for.
+
+ to throw an exception if the type is not found; otherwise, .
+
+ to ignore the case of the type name when searching; otherwise, .
+ The specified type, or if the type is not found or has not been created yet.
+
+
+ Returns a value that indicates whether one or more instances of the specified attribute type is applied to this member.
+ The type of attribute to test for.
+ This argument is ignored for objects of this type.
+
+ if one or more instances of is applied to this dynamic assembly; otherwise, .
+
+
+ Set a custom attribute on this assembly using a specified custom attribute blob.
+ The constructor for the custom attribute.
+ A byte blob representing the attributes.
+
+ or is .
+ The caller does not have the required permission.
+
+ is not a object.
+
+
+ Set a custom attribute on this assembly using a custom attribute builder.
+ An instance of a helper class to define the custom attribute.
+
+ is .
+ The caller does not have the required permission.
+
+
+ When overridden in a derived class, sets a custom attribute on this assembly.
+ The constructor for the custom attribute.
+ A of bytes representing the attribute.
+
+
+ Gets the location of the assembly, as specified originally (such as in an object).
+ This method is not currently supported.
+ The caller does not have the required permission.
+ The location of the assembly, as specified originally.
+
+
+ Returns the entry point of this assembly.
+ The caller does not have the required permission.
+ The entry point of this assembly.
+
+
+ Gets the display name of the current dynamic assembly.
+ The display name of the dynamic assembly.
+
+
+ Gets the host context where the dynamic assembly is being created.
+ A value that indicates the host context where the dynamic assembly is being created.
+
+
+ Gets a value that indicates whether this dynamic assembly is held in a collectible .
+
+ if this dynamic assembly is held in a collectible ; otherwise, .
+
+
+ Gets a value that indicates that the current assembly is a dynamic assembly.
+ Always .
+
+
+ Gets the location, in codebase format, of the loaded file that contains the manifest if it is not shadow-copied.
+ This method is not currently supported.
+ The caller does not have the required permission.
+ The location of the loaded file that contains the manifest. If the loaded file has been shadow-copied, the is that of the file before being shadow-copied.
+
+
+ Gets the module in the current that contains the assembly manifest.
+ The manifest module.
+
+
+ Gets a value indicating whether the dynamic assembly is in the reflection-only context.
+
+ if the dynamic assembly is in the reflection-only context; otherwise, .
+
+
+ Defines the access modes for a dynamic assembly.
+
+
+ The dynamic assembly can be executed, but not saved.
+
+
+ The dynamic assembly will be automatically unloaded and its memory reclaimed, when it's no longer accessible.
+
+
+ Defines and represents a constructor of a dynamic class.
+
+
+ Initializes a new instance of the class.
+
+
+ Defines a parameter of this constructor.
+ The position of the parameter in the parameter list. Parameters are indexed beginning with the number 1 for the first parameter.
+ The attributes of the parameter.
+ The name of the parameter. The name can be the null string.
+
+ is less than 0 (zero), or it is greater than the number of parameters of the constructor.
+ The containing type has been created using .
+ An object that represents the new parameter of this constructor.
+
+
+ When overridden in a derived class, defines a parameter of this constructor.
+ The position of the parameter in the parameter list. Parameters are indexed beginning with the number 1 for the first parameter.
+ The attributes of the parameter.
+ The name of the parameter. The name can be the string.
+ A that represents the new parameter of this constructor.
+
+
+ Returns all the custom attributes defined for this constructor.
+ Controls inheritance of custom attributes from base classes. This parameter is ignored.
+ This method is not currently supported.
+ An array of objects representing all the custom attributes of the constructor represented by this instance.
+
+
+ Returns the custom attributes identified by the given type.
+ The custom attribute type.
+ Controls inheritance of custom attributes from base classes. This parameter is ignored.
+ This method is not currently supported.
+ An object array that represents the attributes of this constructor.
+
+
+ Gets an for this constructor.
+ The constructor is a parameterless constructor.
+
+ -or-
+
+ The constructor has or flags indicating that it should not have a method body.
+ An object for this constructor.
+
+
+ Gets an object, with the specified MSIL stream size, that can be used to build a method body for this constructor.
+ The size of the MSIL stream, in bytes.
+ The constructor is a parameterless constructor.
+
+ -or-
+
+ The constructor has or flags indicating that it should not have a method body.
+ An for this constructor.
+
+
+ When overridden in a derived class, gets an that can be used to emit a method body for this constructor.
+ The size of the IL stream, in bytes.
+ An for this constructor.
+
+
+ Returns the method implementation flags for this constructor.
+ The method implementation flags for this constructor.
+
+
+ Returns the parameters of this constructor.
+
+ has not been called on this constructor's type, in the .NET Framework versions 1.0 and 1.1.
+
+ has not been called on this constructor's type, in the .NET Framework version 2.0.
+ An array that represents the parameters of this constructor.
+
+
+ Dynamically invokes the constructor reflected by this instance with the specified arguments, under the constraints of the specified .
+ The object that needs to be reinitialized.
+ One of the values that specifies the type of binding that is desired.
+ A that defines a set of properties and enables the binding, coercion of argument types, and invocation of members using reflection. If is , then Binder.DefaultBinding is used.
+ An argument list. This is an array of arguments with the same number, order, and type as the parameters of the constructor to be invoked. If there are no parameters, this should be a null reference ( in Visual Basic).
+ A used to govern the coercion of types. If this is null, the for the current thread is used.
+ This method is not currently supported. You can retrieve the constructor using and call on the returned .
+ An instance of the class associated with the constructor.
+
+
+ Dynamically invokes the constructor represented by this instance on the given object, passing along the specified parameters, and under the constraints of the given binder.
+ This must be a bit flag from , such as InvokeMethod, NonPublic, and so on.
+ An object that enables the binding, coercion of argument types, invocation of members, and retrieval of objects using reflection. If binder is , the default binder is used. See .
+ An argument list. This is an array of arguments with the same number, order, and type as the parameters of the constructor to be invoked. If there are no parameters this should be .
+ An instance of used to govern the coercion of types. If this is null, the for the current thread is used. (For example, this is necessary to convert a that represents 1000 to a value, since 1000 is represented differently by different cultures.)
+ This method is not currently supported. You can retrieve the constructor using and call on the returned .
+ The value returned by the invoked constructor.
+
+
+ Checks if the specified custom attribute type is defined.
+ A custom attribute type.
+ Controls inheritance of custom attributes from base classes. This parameter is ignored.
+ This method is not currently supported. You can retrieve the constructor using and call on the returned .
+
+ if the specified custom attribute type is defined; otherwise, .
+
+
+ Set a custom attribute using a specified custom attribute blob.
+ The constructor for the custom attribute.
+ A byte blob representing the attributes.
+
+ or is .
+
+
+ Set a custom attribute using a custom attribute builder.
+ An instance of a helper class to define the custom attribute.
+
+ is .
+
+
+ When overridden in a derived class, sets a custom attribute on this constructor.
+ The constructor for the custom attribute.
+ A of bytes representing the attribute.
+
+
+ Sets the method implementation flags for this constructor.
+ The method implementation flags.
+ The containing type has been created using .
+
+
+ When overridden in a derived class, sets the method implementation flags for this constructor.
+ A bitwise combination of the enumeration values that specifies how the method is implemented.
+
+
+ Returns this instance as a .
+ A string containing the name, attributes, and exceptions of this constructor, followed by the current Microsoft intermediate language (MSIL) stream.
+
+
+ Gets the attributes for this constructor.
+ The attributes for this constructor.
+
+
+ Gets a value that depends on whether the declaring type is generic.
+
+ if the declaring type is generic; otherwise, .
+
+
+ Gets a reference to the object for the type that declares this member.
+ The type that declares this member.
+
+
+ Gets or sets whether the local variables in this constructor should be zero-initialized.
+ Read/write. Gets or sets whether the local variables in this constructor should be zero-initialized.
+
+
+ When overridden in a derived class, gets or sets a value that indicates whether the local variables in this constructor should be zero-initialized.
+
+ if the local variables in this constructor are initialized to 0; otherwise, .
+
+
+ Gets a token that identifies the current dynamic module in metadata.
+ An integer token that identifies the current module in metadata.
+
+
+ Gets the internal handle for the method. Use this handle to access the underlying metadata handle.
+ This property is not supported on this class.
+ The internal handle for the method. Use this handle to access the underlying metadata handle.
+
+
+ Gets the dynamic module in which this constructor is defined.
+ A object that represents the dynamic module in which this constructor is defined.
+
+
+ Retrieves the name of this constructor.
+ The name of this constructor.
+
+
+ Holds a reference to the object from which this object was obtained.
+ The object from which this object was obtained.
+
+
+ Describes and represents an enumeration type.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a object for this enum.
+ This type has been previously created.
+
+ -or-
+
+ The enclosing type has not been created.
+ A object for this enum.
+
+
+ Gets a object that represents this enumeration.
+ An object that represents this enumeration.
+
+
+ When overridden in a derived class, gets a object that represents this enumeration.
+ A object that represents this enumeration.
+
+
+ Defines the named static field in an enumeration type with the specified constant value.
+ The name of the static field.
+ The constant value of the literal.
+ The defined field.
+
+
+ When overridden in a derived class, defines the named static field in an enumeration type with the specified constant value.
+ The name of the static field.
+ The constant value of the literal.
+ The defined field.
+
+
+ When overridden in a derived class, implements the property and gets a bitwise combination of enumeration values that indicate the attributes associated with the .
+ A object representing the attribute set of the .
+
+
+ When overridden in a derived class, searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.
+ A bitwise combination of the enumeration values that specify how the search is conducted.
+
+ -or-
+
+ to return null
.
+ An object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.
+
+ -or-
+
+ A null reference (Nothing
in Visual Basic), to use the .
+ The object that specifies the set of rules to use regarding the order and layout of arguments, how the return value is passed, what registers are used for arguments, and the stack is cleaned up.
+ An array of objects representing the number, order, and type of the parameters for the constructor to get.
+
+ -or-
+
+ An empty array of the type (that is, Type[] types = new Type[0]) to get a constructor that takes no parameters.
+ An array of objects representing the attributes associated with the corresponding element in the types
array. The default binder does not process this parameter.
+ A object representing the constructor that matches the specified requirements, if found; otherwise, null
.
+
+
+ Returns an array of objects representing the public and non-public constructors defined for this class, as specified.
+ This must be a bit flag from : , , and so on.
+ This method is not currently supported in types that are not complete.
+ Returns an array of objects representing the specified constructors defined for this class. If no constructors are defined, an empty array is returned.
+
+
+ Returns all the custom attributes defined for this constructor.
+ Specifies whether to search this member's inheritance chain to find the attributes.
+ This method is not currently supported in types that are not complete.
+ Returns an array of objects representing all the custom attributes of the constructor represented by this instance.
+
+
+ Returns the custom attributes identified by the given type.
+ The object to which the custom attributes are applied.
+ Specifies whether to search this member's inheritance chain to find the attributes.
+ This method is not currently supported in types that are not complete.
+ Returns an array of objects representing the attributes of this constructor that are of .
+
+
+ Calling this method always throws .
+ This method is not currently supported.
+ This method is not supported. No value is returned.
+
+
+ Returns the underlying integer type of the current enumeration, which is set when the enumeration builder is defined.
+ The underlying type.
+
+
+ Returns the event with the specified name.
+ The name of the event to get.
+ This invocation attribute. This must be a bit flag from : , , and so on.
+ This method is not currently supported in types that are not complete.
+ Returns an object representing the event declared or inherited by this type with the specified name. If there are no matches, is returned.
+
+
+ Returns the events for the public events declared or inherited by this type.
+ This method is not currently supported in types that are not complete.
+ Returns an array of objects representing the public events declared or inherited by this type. An empty array is returned if there are no public events.
+
+
+ Returns the public and non-public events that are declared by this type.
+ This must be a bit flag from , such as , , and so on.
+ This method is not currently supported in types that are not complete.
+ Returns an array of objects representing the public and non-public events declared or inherited by this type. An empty array is returned if there are no events, as specified.
+
+
+ Returns the field specified by the given name.
+ The name of the field to get.
+ This must be a bit flag from : , , and so on.
+ This method is not currently supported in types that are not complete.
+ Returns the object representing the field declared or inherited by this type with the specified name and public or non-public modifier. If there are no matches, then null is returned.
+
+
+ Returns the public and non-public fields that are declared by this type.
+ This must be a bit flag from , such as InvokeMethod, NonPublic, and so on.
+ This method is not currently supported in types that are not complete.
+ Returns an array of objects representing the public and non-public fields declared or inherited by this type. An empty array is returned if there are no fields, as specified.
+
+
+ Returns the interface implemented (directly or indirectly) by this type, with the specified fully-qualified name.
+ The name of the interface.
+ If , the search is case-insensitive. If , the search is case-sensitive.
+ This method is not currently supported in types that are not complete.
+ Returns a object representing the implemented interface. Returns null if no interface matching name is found.
+
+
+ Returns an interface mapping for the interface requested.
+ The type of the interface for which the interface mapping is to be retrieved.
+ The type does not implement the interface.
+ The requested interface mapping.
+
+
+ Returns an array of all the interfaces implemented on this a class and its base classes.
+ Returns an array of objects representing the implemented interfaces. If none are defined, an empty array is returned.
+
+
+ Returns all members with the specified name, type, and binding that are declared or inherited by this type.
+ The name of the member.
+ The type of member that is to be returned.
+ This must be a bit flag from : , , and so on.
+ This method is not currently supported in types that are not complete.
+ Returns an array of objects representing the public and non-public members defined on this type if is used; otherwise, only the public members are returned.
+
+
+ Returns the specified members declared or inherited by this type.
+ This must be a bit flag from : , , and so on.
+ This method is not currently supported in types that are not complete.
+ Returns an array of objects representing the public and non-public members declared or inherited by this type. An empty array is returned if there are no matching members.
+
+
+ When overridden in a derived class, searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.
+ The string containing the name of the method to get.
+ A bitwise combination of the enumeration values that specify how the search is conducted.
+
+ -or-
+
+ to return null
.
+ An object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.
+
+ -or-
+
+ A null reference (Nothing
in Visual Basic), to use the .
+ The object that specifies the set of rules to use regarding the order and layout of arguments, how the return value is passed, what registers are used for arguments, and what process cleans up the stack.
+ An array of objects representing the number, order, and type of the parameters for the method to get.
+
+ -or-
+
+ An empty array of the type (that is, Type[] types = new Type[0]) to get a method that takes no parameters.
+
+ -or-
+
+ null
. If types
is null
, arguments are not matched.
+ An array of objects representing the attributes associated with the corresponding element in the types
array. The default binder does not process this parameter.
+ An object representing the method that matches the specified requirements, if found; otherwise, null
.
+
+
+ Returns all the public and non-public methods declared or inherited by this type, as specified.
+ This must be a bit flag from , such as , , and so on.
+ This method is not currently supported in types that are not complete.
+ Returns an array of objects representing the public and non-public methods defined on this type if is used; otherwise, only the public methods are returned.
+
+
+ Returns the specified nested type that is declared by this type.
+ The containing the name of the nested type to get.
+ A bitmask comprised of one or more that specify how the search is conducted.
+
+ -or-
+
+ Zero, to conduct a case-sensitive search for public methods.
+ This method is not currently supported in types that are not complete.
+ A object representing the nested type that matches the specified requirements, if found; otherwise, .
+
+
+ Returns the public and non-public nested types that are declared or inherited by this type.
+ This must be a bit flag from , such as , , and so on.
+ This method is not currently supported in types that are not complete.
+ An array of objects representing all the types nested within the current that match the specified binding constraints.
+
+ An empty array of type , if no types are nested within the current , or if none of the nested types match the binding constraints.
+
+
+ Returns all the public and non-public properties declared or inherited by this type, as specified.
+ This invocation attribute. This must be a bit flag from : , , and so on.
+ This method is not currently supported in types that are not complete.
+ Returns an array of objects representing the public and non-public properties defined on this type if is used; otherwise, only the public properties are returned.
+
+
+ Calling this method always throws .
+
+
+
+
+
+
+ This method is not currently supported.
+ This method is not supported. No value is returned.
+
+
+ When overridden in a derived class, implements the property and determines whether the current encompasses or refers to another type; that is, whether the current is an array, a pointer, or is passed by reference.
+
+ true
if the is an array, a pointer, or is passed by reference; otherwise, false
.
+
+
+ Invokes the specified member. The method that is to be invoked must be accessible and provide the most specific match with the specified argument list, under the constraints of the specified binder and invocation attributes.
+ The name of the member to invoke. This can be a constructor, method, property, or field. A suitable invocation attribute must be specified. Note that it is possible to invoke the default member of a class by passing an empty string as the name of the member.
+ The invocation attribute. This must be a bit flag from .
+ An object that enables the binding, coercion of argument types, invocation of members, and retrieval of objects using reflection. If binder is , the default binder is used. See .
+ The object on which to invoke the specified member. If the member is static, this parameter is ignored.
+ An argument list. This is an array of objects that contains the number, order, and type of the parameters of the member to be invoked. If there are no parameters this should be null.
+ An array of the same length as with elements that represent the attributes associated with the arguments of the member to be invoked. A parameter has attributes associated with it in the metadata. They are used by various interoperability services. See the metadata specs for details such as this.
+ An instance of used to govern the coercion of types. If this is null, the for the current thread is used. (Note that this is necessary to, for example, convert a string that represents 1000 to a double value, since 1000 is represented differently by different cultures.)
+ Each parameter in the array gets the value in the corresponding element in the array. If the length of is greater than the length of , the remaining argument values are passed in order.
+ This method is not currently supported in types that are not complete.
+ Returns the return value of the invoked member.
+
+
+ When overridden in a derived class, implements the property and determines whether the is an array.
+
+ true
if the is an array; otherwise, false
.
+
+
+ Gets a value that indicates whether a specified object can be assigned to this object.
+ The object to test.
+
+ if can be assigned to this object; otherwise, .
+
+
+ When overridden in a derived class, implements the property and determines whether the is passed by reference.
+
+ true
if the is passed by reference; otherwise, false
.
+
+
+ When overridden in a derived class, implements the property and determines whether the is a COM object.
+
+ true
if the is a COM object; otherwise, false
.
+
+
+ Checks if the specified custom attribute type is defined.
+ The object to which the custom attributes are applied.
+ Specifies whether to search this member's inheritance chain to find the attributes.
+ This method is not currently supported in types that are not complete.
+
+ if one or more instance of is defined on this member; otherwise, .
+
+
+ When overridden in a derived class, implements the property and determines whether the is a pointer.
+
+ true
if the is a pointer; otherwise, false
.
+
+
+ When overridden in a derived class, implements the property and determines whether the is one of the primitive types.
+
+ true
if the is one of the primitive types; otherwise, false
.
+
+
+ Implements the property and determines whether the is a value type; that is, not a class or an interface.
+
+ true
if the is a value type; otherwise, false
.
+
+
+ Returns a object representing a one-dimensional array of the current type, with a lower bound of zero.
+ A object representing a one-dimensional array of the current type, with a lower bound of zero.
+
+
+ Returns a object representing an array of the current type, with the specified number of dimensions.
+ The number of dimensions for the array. This number must be less than or equal to 32.
+
+ is less than 1.
+ An object representing an array of the current type, with the specified number of dimensions.
+
+
+ Returns a object that represents the current type when passed as a ref parameter (ByRef parameter in Visual Basic).
+ A object that represents the current type when passed as a ref parameter (ByRef parameter in Visual Basic).
+
+
+ Returns a object that represents a pointer to the current type.
+ A object that represents a pointer to the current type.
+
+
+ Sets a custom attribute using a specified custom attribute blob.
+ The constructor for the custom attribute.
+ A byte blob representing the attributes.
+
+ or is .
+
+
+ Sets a custom attribute using a custom attribute builder.
+ An instance of a helper class to define the custom attribute.
+
+ is .
+
+
+ When overridden in a derived class, sets a custom attribute on this assembly.
+ The constructor for the custom attribute.
+ A of bytes representing the attribute.
+
+
+ Retrieves the dynamic assembly that contains this enum definition.
+ Read-only. The dynamic assembly that contains this enum definition.
+
+
+ Returns the full path of this enum qualified by the display name of the parent assembly.
+ Read-only. The full path of this enum qualified by the display name of the parent assembly.
+
+
+ Returns the parent of this type which is always .
+ Read-only. The parent of this type.
+
+
+ Returns the type that declared this .
+ Read-only. The type that declared this .
+
+
+ Returns the full path of this enum.
+ Read-only. The full path of this enum.
+
+
+ Returns the GUID of this enum.
+ This method is not currently supported in types that are not complete.
+ Read-only. The GUID of this enum.
+
+
+ Gets a value that indicates whether the type is a byref-like structure.
+
+ true
if the is a byref-like structure; otherwise, false
.
+
+
+ Gets a value that indicates whether this object represents a constructed generic type.
+
+ if this object represents a constructed generic type; otherwise, .
+
+
+ Gets a value that indicates whether the type is an array type that can represent only a single-dimensional array with a zero lower bound.
+
+ true
if the current is an array type that can represent only a single-dimensional array with a zero lower bound; otherwise, false
.
+
+
+ Gets a value that indicates whether the type is a type definition.
+
+ true
if the current is a type definition; otherwise, false
.
+
+
+ Retrieves the dynamic module that contains this definition.
+ Read-only. The dynamic module that contains this definition.
+
+
+ Returns the name of this enum.
+ Read-only. The name of this enum.
+
+
+ Returns the namespace of this enum.
+ Read-only. The namespace of this enum.
+
+
+ Returns the type that was used to obtain this .
+ Read-only. The type that was used to obtain this .
+
+
+ Retrieves the internal handle for this enum.
+ This property is not currently supported.
+ Read-only. The internal handle for this enum.
+
+
+ Returns the underlying field for this enum.
+ Read-only. The underlying field for this enum.
+
+
+ When overridden in a derived class, gets the underlying field for this enum.
+ The underlying field for this enum.
+
+
+ Returns the underlying system type for this enum.
+ Read-only. Returns the underlying system type.
+
+
+ Defines events for a class.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds one of the "other" methods associated with this event. "Other" methods are methods other than the "on" and "raise" methods associated with an event. This function can be called many times to add as many "other" methods.
+ A object that represents the other method.
+
+ is .
+
+ has been called on the enclosing type.
+
+
+ When overridden in a derived class, adds one of the "other" methods associated with this event.
+ A object that represents the other method.
+
+
+ Sets the method used to subscribe to this event.
+ A object that represents the method used to subscribe to this event.
+
+ is .
+
+ has been called on the enclosing type.
+
+
+ When overridden in a derived class, sets the method used to subscribe to this event.
+ A object that represents the method used to subscribe to this event.
+
+
+ Set a custom attribute using a specified custom attribute blob.
+ The constructor for the custom attribute.
+ A byte blob representing the attributes.
+
+ or is .
+
+ has been called on the enclosing type.
+
+
+ Sets a custom attribute using a custom attribute builder.
+ An instance of a helper class to describe the custom attribute.
+
+ is .
+
+ has been called on the enclosing type.
+
+
+ When overridden in a derived class, sets a custom attribute on this assembly.
+ The constructor for the custom attribute.
+ A of bytes representing the attribute.
+
+
+ Sets the method used to raise this event.
+ A object that represents the method used to raise this event.
+
+ is .
+
+ has been called on the enclosing type.
+
+
+ When overridden in a derived class, sets the method used to raise this event.
+ A object that represents the method used to raise this event.
+
+
+ Sets the method used to unsubscribe to this event.
+ A object that represents the method used to unsubscribe to this event.
+
+ is .
+
+ has been called on the enclosing type.
+
+
+ When overridden in a derived class, sets the method used to unsubscribe to this event.
+ A object that represents the method used to unsubscribe to this event.
+
+
+ Defines and represents a field. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns all the custom attributes defined for this field.
+ Controls inheritance of custom attributes from base classes.
+ This method is not supported.
+ An array of type representing all the custom attributes of the constructor represented by this instance.
+
+
+ Returns all the custom attributes defined for this field identified by the given type.
+ The custom attribute type.
+ Controls inheritance of custom attributes from base classes.
+ This method is not supported.
+ An array of type representing all the custom attributes of the constructor represented by this instance.
+
+
+ Retrieves the value of the field supported by the given object.
+ The object on which to access the field.
+ This method is not supported.
+ An containing the value of the field reflected by this instance.
+
+
+ Indicates whether an attribute having the specified type is defined on a field.
+ The type of the attribute.
+ Controls inheritance of custom attributes from base classes.
+ This method is not currently supported. Retrieve the field using and call on the returned .
+
+ if one or more instance of is defined on this field; otherwise, .
+
+
+ Sets the default value of this field.
+ The new default value for this field.
+ The containing type has been created using .
+ The field is not one of the supported types.
+
+ -or-
+
+ The type of does not match the type of the field.
+
+ -or-
+
+ The field is of type or other reference type, is not , and the value cannot be assigned to the reference type.
+
+
+ When overridden in a derived class, sets the default value of this field.
+ The new default value for this field.
+
+
+ Sets a custom attribute using a specified custom attribute blob.
+ The constructor for the custom attribute.
+ A byte blob representing the attributes.
+
+ or is .
+ The parent type of this field is complete.
+
+
+ Sets a custom attribute using a custom attribute builder.
+ An instance of a helper class to define the custom attribute.
+
+ is .
+ The parent type of this field is complete.
+
+
+ When overridden in a derived class, sets a custom attribute on this assembly.
+ The constructor for the custom attribute.
+ A of bytes representing the attribute.
+
+
+ Specifies the field layout.
+ The offset of the field within the type containing this field.
+ The containing type has been created using .
+
+ is less than zero.
+
+
+ When overridden in a derived class, specifies the field layout.
+ The offset of the field within the type containing this field.
+
+
+ Sets the value of the field supported by the given object.
+ The object on which to access the field.
+ The value to assign to the field.
+ A member of that specifies the type of binding that is desired (for example, IBinder.CreateInstance, IBinder.ExactBinding).
+ A set of properties and enabling for binding, coercion of argument types, and invocation of members using reflection. If binder is null, then IBinder.DefaultBinding is used.
+ The software preferences of a particular culture.
+ This method is not supported.
+
+
+ Indicates the attributes of this field. This property is read-only.
+ The attributes of this field.
+
+
+ Indicates a reference to the object for the type that declares this field. This property is read-only.
+ A reference to the object for the type that declares this field.
+
+
+ Indicates the internal metadata handle for this field. This property is read-only.
+ This method is not supported.
+ The internal metadata handle for this field.
+
+
+ Indicates the object that represents the type of this field. This property is read-only.
+ The object that represents the type of this field.
+
+
+ Gets a token that identifies the current dynamic module in metadata.
+ An integer token that identifies the current module in metadata.
+
+
+ Gets the module in which the type that contains this field is being defined.
+ A that represents the dynamic module in which this field is being defined.
+
+
+ Indicates the name of this field. This property is read-only.
+ A containing the name of this field.
+
+
+ Indicates the reference to the object from which this object was obtained. This property is read-only.
+ A reference to the object from which this instance was obtained.
+
+
+ Defines and creates generic type parameters for dynamically defined generic types and methods. This class cannot be inherited.
+
+
+ Initializes a new instance of class.
+
+
+ Tests whether the given object is an instance of and is equal to the current instance.
+ The object to be compared with the current instance.
+
+ if is an instance of and equals the current instance; otherwise, .
+
+
+ When overridden in a derived class, implements the property and gets a bitwise combination of enumeration values that indicate the attributes associated with the .
+ A object representing the attribute set of the .
+
+
+ Not supported for incomplete generic type parameters.
+
+
+
+
+
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ Not supported.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ Specifies whether to search this member's inheritance chain to find the attributes.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ The type of attribute to search for. Only attributes that are assignable to this type are returned.
+ Specifies whether to search this member's inheritance chain to find the attributes.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Throws a in all cases.
+ In all cases.
+ The type referred to by the current array type, pointer type, or type; or if the current type is not an array type, is not a pointer type, and is not passed by reference.
+
+
+ Not supported for incomplete generic type parameters.
+ Not supported.
+ Not supported.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ Not supported.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ Not supported.
+ Not supported.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ Not supported.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not valid for generic type parameters.
+ In all cases.
+ Not valid for generic type parameters.
+
+
+ Not valid for generic type parameters.
+ In all cases.
+ Not valid for generic type parameters.
+
+
+ Returns a 32-bit integer hash code for the current instance.
+ A 32-bit integer hash code.
+
+
+ Not supported for incomplete generic type parameters.
+ The name of the interface.
+
+ to search without regard for case; to make a case-sensitive search.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ A object that represents the interface type for which the mapping is to be retrieved.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ Not supported.
+ Not supported.
+ Not supported.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ Not supported.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+
+
+
+
+
+
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ Not supported.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ Not supported.
+ Not supported.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ Not supported.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+ Not supported.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Not supported for incomplete generic type parameters.
+
+
+
+
+
+
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ When overridden in a derived class, implements the property and determines whether the current encompasses or refers to another type; that is, whether the current is an array, a pointer, or is passed by reference.
+
+ true
if the is an array, a pointer, or is passed by reference; otherwise, false
.
+
+
+ Not supported for incomplete generic type parameters.
+ Not supported.
+ Not supported.
+ Not supported.
+ Not supported.
+ Not supported.
+ Not supported.
+ Not supported.
+ Not supported.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ When overridden in a derived class, implements the property and determines whether the is an array.
+
+ true
if the is an array; otherwise, false
.
+
+
+ Throws a exception in all cases.
+ The object to test.
+ In all cases.
+ Throws a exception in all cases.
+
+
+ Throws a exception in all cases.
+ The object to test.
+ In all cases.
+ Throws a exception in all cases.
+
+
+ When overridden in a derived class, implements the property and determines whether the is passed by reference.
+
+ true
if the is passed by reference; otherwise, false
.
+
+
+ When overridden in a derived class, implements the property and determines whether the is a COM object.
+
+ true
if the is a COM object; otherwise, false
.
+
+
+ Not supported for incomplete generic type parameters.
+ Not supported.
+ Not supported.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ When overridden in a derived class, implements the property and determines whether the is a pointer.
+
+ true
if the is a pointer; otherwise, false
.
+
+
+ When overridden in a derived class, implements the property and determines whether the is one of the primitive types.
+
+ true
if the is one of the primitive types; otherwise, false
.
+
+
+ Not supported for incomplete generic type parameters.
+ Not supported.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Implements the property and determines whether the is a value type; that is, not a class or an interface.
+
+ true
if the is a value type; otherwise, false
.
+
+
+ Returns the type of a one-dimensional array whose element type is the generic type parameter.
+ A object that represents the type of a one-dimensional array whose element type is the generic type parameter.
+
+
+ Returns the type of an array whose element type is the generic type parameter, with the specified number of dimensions.
+ The number of dimensions for the array.
+
+ is not a valid number of dimensions. For example, its value is less than 1.
+ A object that represents the type of an array whose element type is the generic type parameter, with the specified number of dimensions.
+
+
+ Returns a object that represents the current generic type parameter when passed as a reference parameter.
+ A object that represents the current generic type parameter when passed as a reference parameter.
+
+
+ Not valid for incomplete generic type parameters.
+ An array of type arguments.
+ In all cases.
+ This method is invalid for incomplete generic type parameters.
+
+
+ Returns a object that represents a pointer to the current generic type parameter.
+ A object that represents a pointer to the current generic type parameter.
+
+
+ Sets the base type that a type must inherit in order to be substituted for the type parameter.
+ The that must be inherited by any type that is to be substituted for the type parameter.
+
+
+ When overridden in a derived class, sets the base type that a type must inherit in order to be substituted for the type parameter.
+ The that must be inherited by any type that is to be substituted for the type parameter.
+
+
+ Sets a custom attribute using a specified custom attribute blob.
+ The constructor for the custom attribute.
+ A byte blob representing the attribute.
+
+ is .
+
+ -or-
+
+ is a null reference.
+
+
+ Set a custom attribute using a custom attribute builder.
+ An instance of a helper class that defines the custom attribute.
+
+ is .
+
+
+ When overridden in a derived class, sets a custom attribute on this assembly.
+ The constructor for the custom attribute.
+ A of bytes representing the attribute.
+
+
+ Sets the variance characteristics and special constraints of the generic parameter, such as the parameterless constructor constraint.
+ A bitwise combination of values that represent the variance characteristics and special constraints of the generic type parameter.
+
+
+ When overridden in a derived class, sets the variance characteristics and special constraints of the generic parameter, such as the parameterless constructor constraint.
+ A bitwise combination of the enumeration values that represents the variance characteristics and special constraints of the generic type parameter.
+
+
+ Sets the interfaces a type must implement in order to be substituted for the type parameter.
+ An array of objects that represent the interfaces a type must implement in order to be substituted for the type parameter.
+
+
+ When overridden in a derived class, sets the interfaces a type must implement in order to be substituted for the type parameter.
+ An array of objects that represent the interfaces a type must implement in order to be substituted for the type parameter.
+
+
+ Returns a string representation of the current generic type parameter.
+ A string that contains the name of the generic type parameter.
+
+
+ Gets an object representing the dynamic assembly that contains the generic type definition the current type parameter belongs to.
+ An object representing the dynamic assembly that contains the generic type definition the current type parameter belongs to.
+
+
+ Gets in all cases.
+ A null reference ( in Visual Basic) in all cases.
+
+
+ Gets the base type constraint of the current generic type parameter.
+ A object that represents the base type constraint of the generic type parameter, or if the type parameter has no base type constraint.
+
+
+ Gets in all cases.
+
+ in all cases.
+
+
+ Gets a that represents the declaring method, if the current represents a type parameter of a generic method.
+ A that represents the declaring method, if the current represents a type parameter of a generic method; otherwise, .
+
+
+ Gets the generic type definition or generic method definition to which the generic type parameter belongs.
+ If the type parameter belongs to a generic type, a object representing that generic type; if the type parameter belongs to a generic method, a object representing that type that declared that generic method.
+
+
+ Gets in all cases.
+ A null reference ( in Visual Basic) in all cases.
+
+
+ Gets a combination of flags that describe the covariance and special constraints of the current generic type parameter.
+ A bitwise combination of values that describes the covariance and special constraints of the current generic type parameter.
+
+
+ Gets the position of the type parameter in the type parameter list of the generic type or method that declared the parameter.
+ The position of the type parameter in the type parameter list of the generic type or method that declared the parameter.
+
+
+ Not supported for incomplete generic type parameters.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Gets a value that indicates whether the type is a byref-like structure.
+
+ true
if the is a byref-like structure; otherwise, false
.
+
+
+ Gets a value that indicates whether this object represents a constructed generic type.
+
+ if this object represents a constructed generic type; otherwise, .
+
+
+ Gets in all cases.
+
+ in all cases.
+
+
+ Returns in all cases.
+
+ in all cases.
+
+
+ Gets in all cases.
+
+ in all cases.
+
+
+ Gets a value that indicates whether the type is an array type that can represent only a single-dimensional array with a zero lower bound.
+
+ true
if the current is an array type that can represent only a single-dimensional array with a zero lower bound; otherwise, false
.
+
+
+ Gets a value that indicates whether the type is a type definition.
+
+ true
if the current is a type definition; otherwise, false
.
+
+
+ Gets a token that identifies the current dynamic module in metadata.
+ An integer token that identifies the current module in metadata.
+
+
+ Gets the dynamic module that contains the generic type parameter.
+ A object that represents the dynamic module that contains the generic type parameter.
+
+
+ Gets the name of the generic type parameter.
+ The name of the generic type parameter.
+
+
+ Gets in all cases.
+ A null reference ( in Visual Basic) in all cases.
+
+
+ Gets the object that was used to obtain the .
+ The object that was used to obtain the .
+
+
+ Not supported for incomplete generic type parameters.
+ In all cases.
+ Not supported for incomplete generic type parameters.
+
+
+ Gets the current generic type parameter.
+ The current object.
+
+
+ Defines and represents a method (or constructor) on a dynamic class.
+
+
+ Initializes a new instance of the class.
+
+
+ Sets the number of generic type parameters for the current method, specifies their names, and returns an array of objects that can be used to define their constraints.
+ An array of strings that represent the names of the generic type parameters.
+ Generic type parameters have already been defined for this method.
+
+ -or-
+
+ The method has been completed already.
+
+ -or-
+
+ The method has been called for the current method.
+
+ is .
+
+ -or-
+
+ An element of is .
+
+ is an empty array.
+ An array of objects representing the type parameters of the generic method.
+
+
+ When overridden in a derived class, sets the number of generic type parameters for the current method, specifies their names, and returns an array of objects that can be used to define their constraints.
+ An array of strings that represent the names of the generic type parameters.
+ An array of objects representing the type parameters of the generic method.
+
+
+ Sets the parameter attributes and the name of a parameter of this method, or of the return value of this method. Returns a ParameterBuilder that can be used to apply custom attributes.
+ The position of the parameter in the parameter list. Parameters are indexed beginning with the number 1 for the first parameter; the number 0 represents the return value of the method.
+ The parameter attributes of the parameter.
+ The name of the parameter. The name can be the null string.
+ The method has no parameters.
+
+ -or-
+
+ is less than zero.
+
+ -or-
+
+ is greater than the number of the method's parameters.
+ The containing type was previously created using .
+
+ -or-
+
+ For the current method, the property is , but the property is .
+ Returns a object that represents a parameter of this method or the return value of this method.
+
+
+ When overridden in a derived class, defines a parameter or return parameter for this method.
+ The position of the parameter in the parameter list. Parameters are indexed beginning with the number 1 for the first parameter; the number 0 represents the return parameter of the method.
+ The of the parameter.
+ The name of the parameter. The name can be the string.
+ Returns a object that represents a parameter of this method or the return parameter of this method.
+
+
+ Determines whether the given object is equal to this instance.
+ The object to compare with this instance.
+
+ if is an instance of and is equal to this object; otherwise, .
+
+
+ Return the base implementation for a method.
+ The base implementation of this method.
+
+
+ Returns all the custom attributes defined for this method.
+ Specifies whether to search this member's inheritance chain to find the custom attributes.
+ This method is not currently supported. Retrieve the method using and call on the returned .
+ Returns an array of objects representing all the custom attributes of this method.
+
+
+ Returns the custom attributes identified by the given type.
+ The custom attribute type.
+ Specifies whether to search this member's inheritance chain to find the custom attributes.
+ This method is not currently supported. Retrieve the method using and call on the returned .
+ Returns an array of objects representing the attributes of this method that are of type .
+
+
+ Returns an array of objects that represent the type parameters of the method, if it is generic.
+ An array of objects representing the type parameters, if the method is generic, or if the method is not generic.
+
+
+ Returns this method.
+ The current method is not generic. That is, the property returns .
+ The current instance of .
+
+
+ Gets the hash code for this method.
+ The hash code for this method.
+
+
+ Returns an for this method with a default Microsoft intermediate language (MSIL) stream size of 64 bytes.
+ The method should not have a body because of its or flags, for example because it has the flag.
+
+ -or-
+
+ The method is a generic method, but not a generic method definition. That is, the property is , but the property is .
+ Returns an object for this method.
+
+
+ Returns an for this method with the specified Microsoft intermediate language (MSIL) stream size.
+ The size of the MSIL stream, in bytes.
+ The method should not have a body because of its or flags, for example because it has the flag.
+
+ -or-
+
+ The method is a generic method, but not a generic method definition. That is, the property is , but the property is .
+ Returns an object for this method.
+
+
+ When overridden in a derived class, gets an that can be used to emit a method body for this method.
+ The size of the IL stream, in bytes.
+ Returns an object for this method.
+
+
+ Returns the implementation flags for the method.
+ Returns the implementation flags for the method.
+
+
+ Returns the parameters of this method.
+ This method is not currently supported. Retrieve the method using and call on the returned .
+ An array of objects that represent the parameters of the method.
+
+
+ Dynamically invokes the method reflected by this instance on the given object, passing along the specified parameters, and under the constraints of the given binder.
+ The object on which to invoke the specified method. If the method is static, this parameter is ignored.
+ This must be a bit flag from : , , and so on.
+ An object that enables the binding, coercion of argument types, invocation of members, and retrieval of MemberInfo objects via reflection. If binder is , the default binder is used. For more details, see .
+ An argument list. This is an array of arguments with the same number, order, and type as the parameters of the method to be invoked. If there are no parameters this should be .
+ An instance of used to govern the coercion of types. If this is null, the for the current thread is used. (Note that this is necessary to, for example, convert a that represents 1000 to a value, since 1000 is represented differently by different cultures.)
+ This method is not currently supported. Retrieve the method using and call on the returned .
+ Returns an object containing the return value of the invoked method.
+
+
+ Checks if the specified custom attribute type is defined.
+ The custom attribute type.
+ Specifies whether to search this member's inheritance chain to find the custom attributes.
+ This method is not currently supported. Retrieve the method using and call on the returned .
+
+ if the specified custom attribute type is defined; otherwise, .
+
+
+ Returns a generic method constructed from the current generic method definition using the specified generic type arguments.
+ An array of objects that represent the type arguments for the generic method.
+ A representing the generic method constructed from the current generic method definition using the specified generic type arguments.
+
+
+ Sets a custom attribute using a specified custom attribute blob.
+ The constructor for the custom attribute.
+ A byte blob representing the attributes.
+
+ or is .
+ For the current method, the property is , but the property is .
+
+
+ Sets a custom attribute using a custom attribute builder.
+ An instance of a helper class to describe the custom attribute.
+
+ is .
+ For the current method, the property is , but the property is .
+
+
+ When overridden in a derived class, sets a custom attribute on this assembly.
+ The constructor for the custom attribute.
+ A of bytes representing the attribute.
+
+
+ Sets the implementation flags for this method.
+ The implementation flags to set.
+ The containing type was previously created using .
+
+ -or-
+
+ For the current method, the property is , but the property is .
+
+
+ When overridden in a derived class, sets the implementation flags for this method.
+ A bitwise combination of the enumeration values that specifies the implementation.
+
+
+ Sets the number and types of parameters for a method.
+ An array of objects representing the parameter types.
+ The current method is generic, but is not a generic method definition. That is, the property is , but the property is .
+
+
+ Sets the return type of the method.
+ A object that represents the return type of the method.
+ The current method is generic, but is not a generic method definition. That is, the property is , but the property is .
+
+
+ Sets the method signature, including the return type, the parameter types, and the required and optional custom modifiers of the return type and parameter types.
+ The return type of the method.
+ An array of types representing the required custom modifiers, such as , for the return type of the method. If the return type has no required custom modifiers, specify .
+ An array of types representing the optional custom modifiers, such as , for the return type of the method. If the return type has no optional custom modifiers, specify .
+ The types of the parameters of the method.
+ An array of arrays of types. Each array of types represents the required custom modifiers for the corresponding parameter, such as . If a particular parameter has no required custom modifiers, specify instead of an array of types. If none of the parameters have required custom modifiers, specify instead of an array of arrays.
+ An array of arrays of types. Each array of types represents the optional custom modifiers for the corresponding parameter, such as . If a particular parameter has no optional custom modifiers, specify instead of an array of types. If none of the parameters have optional custom modifiers, specify instead of an array of arrays.
+ The current method is generic, but is not a generic method definition. That is, the property is , but the property is .
+
+
+ When overridden in a derived class, sets the method signature, including the return type, the parameter types, and the required and optional custom modifiers of the return type and parameter types.
+ The return type of the method.
+ An array of types representing the required custom modifiers.
+ An array of types representing the optional custom modifiers.
+ The types of the parameters of the method.
+ An array of arrays of types. Each array of types represents the required custom modifiers for the corresponding parameter.
+ An array of arrays of types. Each array of types represents the optional custom modifiers for the corresponding parameter.
+
+
+ Returns this instance as a string.
+ Returns a string containing the name, attributes, method signature, exceptions, and local signature of this method followed by the current Microsoft intermediate language (MSIL) stream.
+
+
+ Retrieves the attributes for this method.
+ Read-only. Retrieves the for this method.
+
+
+ Returns the calling convention of the method.
+ Read-only. The calling convention of the method.
+
+
+ Not supported for this type.
+ The invoked method is not supported in the base class.
+ Not supported.
+
+
+ Returns the type that declares this method.
+ Read-only. The type that declares this method.
+
+
+ Gets or sets a Boolean value that specifies whether the local variables in this method are zero initialized. The default value of this property is .
+ For the current method, the property is , but the property is . (Get or set.)
+
+ if the local variables in this method should be zero initialized; otherwise .
+
+
+ When overridden in a derived class, gets or sets a value that indicates whether the local variables in this method are zero-initialized.
+
+ if the local variables in this method should be zero initialized; otherwise . The default is .
+
+
+ Gets a value indicating whether the method is a generic method.
+
+ if the method is generic; otherwise, .
+
+
+ Gets a value indicating whether the current object represents the definition of a generic method.
+
+ if the current object represents the definition of a generic method; otherwise, .
+
+
+ Throws a in all cases.
+ In all cases. This property is not supported in dynamic assemblies.
+ Throws a in all cases.
+
+
+ Throws a in all cases.
+ In all cases. This property is not supported in dynamic assemblies.
+ Throws a in all cases.
+
+
+ Throws a in all cases.
+ In all cases. This property is not supported in dynamic assemblies.
+ Throws a in all cases.
+
+
+ Gets a token that identifies the current dynamic module in metadata.
+ An integer token that identifies the current module in metadata.
+
+
+ Retrieves the internal handle for the method. Use this handle to access the underlying metadata handle.
+ This method is not currently supported. Retrieve the method using and call on the returned .
+ Read-only. The internal handle for the method. Use this handle to access the underlying metadata handle.
+
+
+ Gets the module in which the current method is being defined.
+ The in which the member represented by the current is being defined.
+
+
+ Retrieves the name of this method.
+ Read-only. Retrieves a string containing the simple name of this method.
+
+
+ Retrieves the class that was used in reflection to obtain this object.
+ Read-only. The type used to obtain this method.
+
+
+ Gets a object that contains information about the return type of the method, such as whether the return type has custom modifiers.
+ The declaring type has not been created.
+ A object that contains information about the return type.
+
+
+ Gets the return type of the method represented by this .
+ The return type of the method.
+
+
+ Returns the custom attributes of the method's return type.
+ Read-only. The custom attributes of the method's return type.
+
+
+ Defines and represents a module in a dynamic assembly.
+
+
+ Initializes a new instance of the class.
+
+
+ Completes the global function definitions and global data definitions for this dynamic module.
+ This method was called previously.
+
+
+ When overridden in a derived class, completes the global function definitions and global data definitions for this dynamic module.
+
+
+ Defines an enumeration type that is a value type with a single non-static field called of the specified type.
+ The full path of the enumeration type. cannot contain embedded nulls.
+ The type attributes for the enumeration. The attributes are any bits defined by .
+ The underlying type for the enumeration. This must be a built-in integer type.
+ Attributes other than visibility attributes are provided.
+
+ -or-
+
+ An enumeration with the given name exists in the parent assembly of this module.
+
+ -or-
+
+ The visibility attributes do not match the scope of the enumeration. For example, is specified for , but the enumeration is not a nested type.
+
+ is .
+ The defined enumeration.
+
+
+ When overridden in a derived class, defines an enumeration type that is a value type with a single non-static field called value__ of the specified type.
+ The full path of the enumeration type. cannot contain embedded nulls.
+ A bitwise combination of the enumeration values that specifies the type attributes for the enumeration visibility. The attributes are any bits defined by .
+ The underlying type for the enumeration. This must be a built-in integer type.
+ The defined enumeration.
+
+
+ Defines a global method with the specified name, attributes, calling convention, return type, and parameter types.
+ The name of the method. cannot contain embedded nulls.
+ The attributes of the method. must include .
+ The calling convention for the method.
+ The return type of the method.
+ The types of the method's parameters.
+ The method is not static. That is, does not include .
+
+ -or-
+
+ An element in the array is .
+
+ is .
+
+ has been previously called.
+ The defined global method.
+
+
+ Defines a global method with the specified name, attributes, calling convention, return type, custom modifiers for the return type, parameter types, and custom modifiers for the parameter types.
+ The name of the method. cannot contain embedded null characters.
+ The attributes of the method. must include .
+ The calling convention for the method.
+ The return type of the method.
+ An array of types representing the required custom modifiers for the return type, such as or . If the return type has no required custom modifiers, specify .
+ An array of types representing the optional custom modifiers for the return type, such as or . If the return type has no optional custom modifiers, specify .
+ The types of the method's parameters.
+ An array of arrays of types. Each array of types represents the required custom modifiers for the corresponding parameter of the global method. If a particular argument has no required custom modifiers, specify instead of an array of types. If the global method has no arguments, or if none of the arguments have required custom modifiers, specify instead of an array of arrays.
+ An array of arrays of types. Each array of types represents the optional custom modifiers for the corresponding parameter. If a particular argument has no optional custom modifiers, specify instead of an array of types. If the global method has no arguments, or if none of the arguments have optional custom modifiers, specify instead of an array of arrays.
+ The method is not static. That is, does not include .
+
+ -or-
+
+ An element in the array is .
+
+ is .
+ The method has been previously called.
+ The defined global method.
+
+
+ Defines a global method with the specified name, attributes, return type, and parameter types.
+ The name of the method. cannot contain embedded nulls.
+ The attributes of the method. must include .
+ The return type of the method.
+ The types of the method's parameters.
+ The method is not static. That is, does not include .
+
+ -or-
+
+ The length of is zero
+
+ -or-
+
+ An element in the array is .
+
+ is .
+
+ has been previously called.
+ The defined global method.
+
+
+ When overridden in a derived class, defines a global method with the specified name, attributes, calling convention, return type, custom modifiers for the return type, parameter types, and custom modifiers for the parameter types.
+ The name of the method. cannot contain embedded characters.
+ A bitwise combination of the enumeration values that specifies the attributes of the method. The attributes must include .
+ The calling convention for the method.
+ The return type of the method.
+ An array of types representing the required custom modifiers for the return type.
+ An array of types representing the optional custom modifiers for the return type.
+ The types of the method's parameters.
+ An array of arrays of types. Each array of types represents the required custom modifiers for the corresponding parameter of the global method.
+ An array of arrays of types. Each array of types represents the optional custom modifiers for the corresponding parameter of the global method.
+ The defined global method.
+
+
+ Defines an initialized data field in the .sdata section of the portable executable (PE) file.
+ The name used to refer to the data. cannot contain embedded nulls.
+ The binary large object (BLOB) of data.
+ The attributes for the field. The default is .
+ The length of is zero.
+
+ -or-
+
+ The size of is less than or equal to zero or greater than or equal to 0x3f0000.
+
+ or is .
+
+ has been previously called.
+ A field to reference the data.
+
+
+ When overridden in a derived class, defines an initialized data field in the .sdata section of the portable executable (PE) file.
+ The name used to refer to the data. cannot contain embedded nulls.
+ The binary large object (BLOB) of data.
+ A bitwise combination of the enumeration values that specifies the attributes for the field. The default is .
+ A field to reference the data.
+
+
+ Defines a method with the specified name, the name of the DLL in which the method is defined, the attributes of the method, the calling convention of the method, the return type of the method, the types of the parameters of the method, and the flags.
+ The name of the method. cannot contain embedded nulls.
+ The name of the DLL in which the method is defined.
+ The attributes of the method.
+ The method's calling convention.
+ The method's return type.
+ The types of the method's parameters.
+ The native calling convention.
+ The method's native character set.
+ The method is not static or if the containing type is an interface.
+
+ -or-
+
+ The method is abstract.
+
+ -or-
+
+ The method was previously defined.
+
+ or is .
+ The containing type has been previously created using
+ The defined method.
+
+
+ Defines a method with the specified name, the name of the DLL in which the method is defined, the attributes of the method, the calling convention of the method, the return type of the method, the types of the parameters of the method, and the flags.
+ The name of the method. cannot contain embedded nulls.
+ The name of the DLL in which the method is defined.
+ The name of the entry point in the DLL.
+ The attributes of the method.
+ The method's calling convention.
+ The method's return type.
+ The types of the method's parameters.
+ The native calling convention.
+ The method's native character set.
+ The method is not static or if the containing type is an interface or if the method is abstract of if the method was previously defined.
+
+ or is .
+ The containing type has been previously created using
+ The defined method.
+
+
+ When overridden in a derived class, defines a method.
+ The name of the method. cannot contain embedded nulls.
+ The name of the DLL in which the method is defined.
+ The name of the entry point in the DLL.
+ A bitwise combination of the enumeration values that specifies the attributes of the method.
+ The method's calling convention.
+ The method's return type.
+ The types of the method's parameters.
+ The native calling convention.
+ The method's native character set.
+ The defined method.
+
+
+ Constructs a for a private type with the specified name in this module.
+ The full path of the type, including the namespace. cannot contain embedded nulls.
+ A type with the given name exists in the parent assembly of this module.
+
+ -or-
+
+ Nested type attributes are set on a type that is not nested.
+
+ is .
+ A private type with the specified name.
+
+
+ Constructs a given the type name and the type attributes.
+ The full path of the type. cannot contain embedded nulls.
+ The attributes of the defined type.
+ A type with the given name exists in the parent assembly of this module.
+
+ -or-
+
+ Nested type attributes are set on a type that is not nested.
+
+ is .
+ A created with all of the requested attributes.
+
+
+ Constructs a given type name, its attributes, and the type that the defined type extends.
+ The full path of the type. cannot contain embedded nulls.
+ The attribute to be associated with the type.
+ The type that the defined type extends.
+ A type with the given name exists in the parent assembly of this module.
+
+ -or-
+
+ Nested type attributes are set on a type that is not nested.
+
+ is .
+ A created with all of the requested attributes.
+
+
+ Constructs a given the type name, the attributes, the type that the defined type extends, and the total size of the type.
+ The full path of the type. cannot contain embedded nulls.
+ The attributes of the defined type.
+ The type that the defined type extends.
+ The total size of the type.
+ A type with the given name exists in the parent assembly of this module.
+
+ -or-
+
+ Nested type attributes are set on a type that is not nested.
+
+ is .
+ A object.
+
+
+ Constructs a given the type name, the attributes, the type that the defined type extends, and the packing size of the type.
+ The full path of the type. cannot contain embedded nulls.
+ The attributes of the defined type.
+ The type that the defined type extends.
+ The packing size of the type.
+ A type with the given name exists in the parent assembly of this module.
+
+ -or-
+
+ Nested type attributes are set on a type that is not nested.
+
+ is .
+ A object.
+
+
+ Constructs a given the type name, attributes, the type that the defined type extends, the packing size of the defined type, and the total size of the defined type.
+ The full path of the type. cannot contain embedded nulls.
+ The attributes of the defined type.
+ The type that the defined type extends.
+ The packing size of the type.
+ The total size of the type.
+ A type with the given name exists in the parent assembly of this module.
+
+ -or-
+
+ Nested type attributes are set on a type that is not nested.
+
+ is .
+ A created with all of the requested attributes.
+
+
+ Constructs a given the type name, attributes, the type that the defined type extends, and the interfaces that the defined type implements.
+ The full path of the type. cannot contain embedded nulls.
+ The attributes to be associated with the type.
+ The type that the defined type extends.
+ The list of interfaces that the type implements.
+ A type with the given name exists in the parent assembly of this module.
+
+ -or-
+
+ Nested type attributes are set on a type that is not nested.
+
+ is .
+ A created with all of the requested attributes.
+
+
+ When overridden in a derived class, constructs a .
+ The full path of the type. cannot contain embedded nulls.
+ The attributes of the defined type.
+ The type that the defined type extends.
+ The list of interfaces that the type implements.
+ The packing size of the type.
+ The total size of the type.
+ A created with all of the requested attributes.
+
+
+ Defines an uninitialized data field in the .sdata section of the portable executable (PE) file.
+ The name used to refer to the data. cannot contain embedded nulls.
+ The size of the data field.
+ The attributes for the field.
+ The length of is zero.
+
+ -or-
+
+ is less than or equal to zero, or greater than or equal to 0x003f0000.
+
+ is .
+
+ has been previously called.
+ A field to reference the data.
+
+
+ When overridden in a derived class, defines an uninitialized data field in the .sdata section of the portable executable (PE) file.
+ The name used to refer to the data. cannot contain embedded nulls.
+ The size of the data field.
+ A bitwise combination of the enumeration values that specifies the attributes for the field.
+ A field to reference the data.
+
+
+ Returns a value that indicates whether this instance is equal to the specified object.
+ An object to compare with this instance, or .
+
+ if equals the type and value of this instance; otherwise, .
+
+
+ Returns the named method on an array class.
+ An array class.
+ The name of a method on the array class.
+ The method's calling convention.
+ The return type of the method.
+ The types of the method's parameters.
+
+ is not an array.
+
+ or is .
+ The named method on an array class.
+
+
+ When overridden in a derived class, returns the named method on an array class.
+ An array class.
+ The name of a method on the array class.
+ The method's calling convention.
+ The return type of the method.
+ The types of the method's parameters.
+ The named method on an array class.
+
+
+ Returns all the custom attributes that have been applied to the current .
+ This argument is ignored for objects of this type.
+ An array that contains the custom attributes; the array is empty if there are no attributes.
+
+
+ Returns all the custom attributes that have been applied to the current , and that derive from a specified attribute type.
+ The base type from which attributes derive.
+ This argument is ignored for objects of this type.
+
+ is .
+
+ is not a object supplied by the runtime. For example, is a object.
+ An array that contains the custom attributes that are derived, at any level, from ; the array is empty if there are no such attributes.
+
+
+ Returns information about the attributes that have been applied to the current , expressed as objects.
+ A generic list of objects representing data about the attributes that have been applied to the current module.
+
+
+ Returns a module-level field, defined in the .sdata region of the portable executable (PE) file, that has the specified name and binding attributes.
+ The field name.
+ A combination of the bit flags used to control the search.
+ The parameter is .
+ A field that has the specified name and binding attributes, or if the field does not exist.
+
+
+ When overridden in a derived class, returns the metadata token for the given relative to the Module.
+ The for which to retrieve the token.
+ An integer representing the metadata token.
+
+
+ Returns all fields defined in the .sdata region of the portable executable (PE) file that match the specified binding flags.
+ A combination of the bit flags used to control the search.
+ The parameter is .
+ An array of fields that match the specified flags; the array is empty if no such fields exist.
+
+
+ Returns the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Returns the module-level method that matches the specified criteria.
+ The method name.
+ A combination of bit flags used to control the search.
+ An object that implements , containing properties related to this method.
+ The calling convention for the method.
+ The parameter types of the method.
+ An array of parameter modifiers used to make binding work with parameter signatures in which the types have been modified.
+
+ is , is , or an element of is .
+ A method that is defined at the module level, and matches the specified criteria; or if such a method does not exist.
+
+
+ When overridden in a derived class, returns the metadata token for the given relative to the Module.
+ The for which to retrieve the token.
+ An integer representing the metadata token.
+
+
+ When overridden in a derived class, returns the metadata token for the given relative to the Module.
+ The for which to retrieve the token.
+ An integer representing the metadata token.
+
+
+ Returns all the methods that have been defined at the module level for the current , and that match the specified binding flags.
+ A combination of bit flags used to control the search.
+ An array that contains all the module-level methods that match .
+
+
+ Gets a pair of values indicating the nature of the code in a module and the platform targeted by the module.
+ When this method returns, a combination of the values indicating the nature of the code in the module.
+ When this method returns, one of the values indicating the platform targeted by the module.
+
+
+ When overridden in a derived class, returns the metadata token for the given relative to the Module.
+ The for which to retrieve the token.
+ An integer representing the metadata token.
+
+
+ When overridden in a derived class, returns the metadata token for the given constant relative to the Module.
+ The constant for which to retrieve the token.
+ An integer representing the metadata token.
+
+
+ Gets the named type defined in the module.
+ The name of the to get.
+ Length of is zero or is greater than 1023.
+
+ is .
+ The requested is non-public and the caller does not have to reflect non-public objects outside the current assembly.
+ A class initializer is invoked and throws an exception.
+ An error is encountered while loading the .
+ The requested type, if the type is defined in this module; otherwise, .
+
+
+ Gets the named type defined in the module, optionally ignoring the case of the type name.
+ The name of the to get.
+ If , the search is case-insensitive. If , the search is case-sensitive.
+ Length of is zero or is greater than 1023.
+
+ is .
+ The requested is non-public and the caller does not have to reflect non-public objects outside the current assembly.
+ A class initializer is invoked and throws an exception.
+ The requested type, if the type is defined in this module; otherwise, .
+
+
+ Gets the named type defined in the module, optionally ignoring the case of the type name. Optionally throws an exception if the type is not found.
+ The name of the to get.
+
+ to throw an exception if the type cannot be found; to return .
+ If , the search is case-insensitive. If , the search is case-sensitive.
+ Length of is zero or is greater than 1023.
+
+ is .
+ The requested is non-public and the caller does not have to reflect non-public objects outside the current assembly.
+ A class initializer is invoked and throws an exception.
+
+ is and the specified type is not found.
+ The specified type, if the type is declared in this module; otherwise, .
+
+
+ When overridden in a derived class, returns the metadata token for the given relative to the Module.
+ The for which to retrieve the token.
+ An integer representing the metadata token.
+
+
+ Returns all the classes defined within this module.
+ One or more classes in a module could not be loaded.
+ The caller does not have the required permission.
+ An array that contains the types defined within the module that is reflected by this instance.
+
+
+ Returns a value that indicates whether the specified attribute type has been applied to this module.
+ The type of custom attribute to test for.
+ This argument is ignored for objects of this type.
+
+ is .
+
+ is not a object supplied by the runtime. For example, is a object.
+
+ if one or more instances of have been applied to this module; otherwise, .
+
+
+ Gets a value indicating whether the object is a resource.
+
+ if the object is a resource; otherwise, .
+
+
+ Returns the field identified by the specified metadata token, in the context defined by the specified generic type parameters.
+ A metadata token that identifies a field in the module.
+ An array of objects representing the generic type arguments of the type where the token is in scope, or if that type is not generic.
+ An array of objects representing the generic type arguments of the method where the token is in scope, or if that method is not generic.
+
+ is not a token for a field in the scope of the current module.
+
+ -or-
+
+ identifies a field whose parent has a signature containing element type (a type parameter of a generic type) or (a type parameter of a generic method), and the necessary generic type arguments were not supplied for either or both of and .
+
+ is not a valid token in the scope of the current module.
+ A object representing the field that is identified by the specified metadata token.
+
+
+ Returns the type or member identified by the specified metadata token, in the context defined by the specified generic type parameters.
+ A metadata token that identifies a type or member in the module.
+ An array of objects representing the generic type arguments of the type where the token is in scope, or if that type is not generic.
+ An array of objects representing the generic type arguments of the method where the token is in scope, or if that method is not generic.
+
+ is not a token for a type or member in the scope of the current module.
+
+ -or-
+
+ is a or whose signature contains element type (a type parameter of a generic type) or (a type parameter of a generic method), and the necessary generic type arguments were not supplied for either or both of and .
+
+ -or-
+
+ identifies a property or event.
+
+ is not a valid token in the scope of the current module.
+ A object representing the type or member that is identified by the specified metadata token.
+
+
+ Returns the method or constructor identified by the specified metadata token, in the context defined by the specified generic type parameters.
+ A metadata token that identifies a method or constructor in the module.
+ An array of objects representing the generic type arguments of the type where the token is in scope, or if that type is not generic.
+ An array of objects representing the generic type arguments of the method where the token is in scope, or if that method is not generic.
+
+ is not a token for a method or constructor in the scope of the current module.
+
+ -or-
+
+ is a whose signature contains element type (a type parameter of a generic type) or (a type parameter of a generic method), and the necessary generic type arguments were not supplied for either or both of and .
+
+ is not a valid token in the scope of the current module.
+ A object representing the method that is identified by the specified metadata token.
+
+
+ Returns the signature blob identified by a metadata token.
+ A metadata token that identifies a signature in the module.
+
+ is not a valid , , , signature, or token in the scope of the current module.
+
+ is not a valid token in the scope of the current module.
+ An array of bytes representing the signature blob.
+
+
+ Returns the string identified by the specified metadata token.
+ A metadata token that identifies a string in the string heap of the module.
+
+ is not a token for a string in the scope of the current module.
+
+ is not a valid token in the scope of the current module.
+ A containing a string value from the metadata string heap.
+
+
+ Returns the type identified by the specified metadata token, in the context defined by the specified generic type parameters.
+ A metadata token that identifies a type in the module.
+ An array of objects representing the generic type arguments of the type where the token is in scope, or if that type is not generic.
+ An array of objects representing the generic type arguments of the method where the token is in scope, or if that method is not generic.
+
+ is not a token for a type in the scope of the current module.
+
+ -or-
+
+ is a whose signature contains element type (a type parameter of a generic type) or (a type parameter of a generic method), and the necessary generic type arguments were not supplied for either or both of and .
+
+ is not a valid token in the scope of the current module.
+ A object representing the type that is identified by the specified metadata token.
+
+
+ Applies a custom attribute to this module by using a specified binary large object (BLOB) that represents the attribute.
+ The constructor for the custom attribute.
+ A byte BLOB representing the attribute.
+
+ or is .
+
+
+ Applies a custom attribute to this module by using a custom attribute builder.
+ An instance of a helper class that specifies the custom attribute to apply.
+
+ is .
+
+
+ When overridden in a derived class, sets a custom attribute on this assembly.
+ The constructor for the custom attribute.
+ A of bytes representing the attribute.
+
+
+ Gets the dynamic assembly that defined this instance of .
+ The dynamic assembly that defined the current dynamic module.
+
+
+ Gets a representing the fully qualified name and path to this module.
+ The fully qualified module name.
+
+
+ Gets the metadata stream version.
+ A 32-bit integer representing the metadata stream version. The high-order two bytes represent the major version number, and the low-order two bytes represent the minor version number.
+
+
+ Gets a token that identifies the current dynamic module in metadata.
+ An integer token that identifies the current module in metadata.
+
+
+ Gets a universally unique identifier (UUID) that can be used to distinguish between two versions of a module.
+ A that can be used to distinguish between two versions of a module.
+
+
+ A string that indicates that this is an in-memory module.
+ Text that indicates that this is an in-memory module.
+
+
+ Gets a string that represents the name of the dynamic module.
+ The name of the dynamic module.
+
+
+ Defines the properties for a type.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds one of the other methods associated with this property.
+ A object that represents the other method.
+
+ is .
+
+ has been called on the enclosing type.
+
+
+ When overridden in a derived class, adds one of the other methods associated with this property.
+ A object that represents the other method.
+
+
+ Returns an array of the public and non-public and accessors on this property.
+ Indicates whether non-public methods should be returned in the array. if non-public methods are to be included; otherwise, .
+ This method is not supported.
+ An array of type containing the matching public or non-public accessors, or an empty array if matching accessors do not exist on this property.
+
+
+ Returns an array of all the custom attributes for this property.
+ If , walks up this property's inheritance chain to find the custom attributes.
+ This method is not supported.
+ An array of all the custom attributes.
+
+
+ Returns an array of custom attributes identified by .
+ An array of custom attributes identified by type.
+ If , walks up this property's inheritance chain to find the custom attributes.
+ This method is not supported.
+ An array of custom attributes defined on this reflected member, or if no attributes are defined on this member.
+
+
+ Returns the public and non-public get accessor for this property.
+ Indicates whether non-public get accessors should be returned. if non-public methods are to be included; otherwise, .
+ A object representing the get accessor for this property, if is . Returns if is and the get accessor is non-public, or if is but no get accessors exist.
+
+
+ Returns an array of all the index parameters for the property.
+ This method is not supported.
+ An array of type containing the parameters for the indexes.
+
+
+ Returns the set accessor for this property.
+ Indicates whether the accessor should be returned if it is non-public. if non-public methods are to be included; otherwise, .
+ The property's method, or , as shown in the following table.
+
+ Value Condition- A object representing the Set method for this property. The set accessor is public.
+
+ is true and non-public methods can be returned.
- null is true, but the property is read-only.
+
+ is false and the set accessor is non-public.
+
+
+ Gets the value of the indexed property by calling the property's getter method.
+ The object whose property value will be returned.
+ Optional index values for indexed properties. This value should be for non-indexed properties.
+ This method is not supported.
+ The value of the specified indexed property.
+
+
+ Gets the value of a property having the specified binding, index, and .
+ The object whose property value will be returned.
+ The invocation attribute. This must be a bit flag from : , , , , , , or . A suitable invocation attribute must be specified. If a static member is to be invoked, the flag of must be set.
+ An object that enables the binding, coercion of argument types, invocation of members, and retrieval of objects using reflection. If is , the default binder is used.
+ Optional index values for indexed properties. This value should be for non-indexed properties.
+ The object that represents the culture for which the resource is to be localized. Note that if the resource is not localized for this culture, the method will be called successively in search of a match. If this value is , the is obtained from the property.
+ This method is not supported.
+ The property value for .
+
+
+ Indicates whether one or more instance of is defined on this property.
+ The object to which the custom attributes are applied.
+ Specifies whether to walk up this property's inheritance chain to find the custom attributes.
+ This method is not supported.
+
+ if one or more instance of is defined on this property; otherwise .
+
+
+ Sets the default value of this property.
+ The default value of this property.
+
+ has been called on the enclosing type.
+ The property is not one of the supported types.
+
+ -or-
+
+ The type of does not match the type of the property.
+
+ -or-
+
+ The property is of type or other reference type, is not , and the value cannot be assigned to the reference type.
+
+
+ When overridden in a derived class, sets the default value of this property.
+ The default value of this property.
+
+
+ Set a custom attribute using a specified custom attribute blob.
+ The constructor for the custom attribute.
+ A byte blob representing the attributes.
+
+ or is .
+
+ has been called on the enclosing type.
+
+
+ Set a custom attribute using a custom attribute builder.
+ An instance of a helper class to define the custom attribute.
+
+ is .
+ if has been called on the enclosing type.
+
+
+ When overridden in a derived class, sets a custom attribute on this assembly.
+ The constructor for the custom attribute.
+ A of bytes representing the attribute.
+
+
+ Sets the method that gets the property value.
+ A object that represents the method that gets the property value.
+
+ is .
+
+ has been called on the enclosing type.
+
+
+ When overridden in a derived class, sets the method that gets the property value.
+ A object that represents the method that gets the property value.
+
+
+ Sets the method that sets the property value.
+ A object that represents the method that sets the property value.
+
+ is .
+
+ has been called on the enclosing type.
+
+
+ When overridden in a derived class, sets the method that sets the property value.
+ A object that represents the method that sets the property value.
+
+
+ Sets the value of the property with optional index values for index properties.
+ The object whose property value will be set.
+ The new value for this property.
+ Optional index values for indexed properties. This value should be for non-indexed properties.
+ This method is not supported.
+
+
+ Sets the property value for the given object to the given value.
+ The object whose property value will be returned.
+ The new value for this property.
+ The invocation attribute. This must be a bit flag from : , , , , , , or . A suitable invocation attribute must be specified. If a static member is to be invoked, the flag of must be set.
+ An object that enables the binding, coercion of argument types, invocation of members, and retrieval of objects using reflection. If is , the default binder is used.
+ Optional index values for indexed properties. This value should be for non-indexed properties.
+ The object that represents the culture for which the resource is to be localized. Note that if the resource is not localized for this culture, the method will be called successively in search of a match. If this value is , the is obtained from the property.
+ This method is not supported.
+
+
+ Gets the attributes for this property.
+ Attributes of this property.
+
+
+ Gets a value indicating whether the property can be read.
+
+ if this property can be read; otherwise, .
+
+
+ Gets a value indicating whether the property can be written to.
+
+ if this property can be written to; otherwise, .
+
+
+ Gets the class that declares this member.
+ The object for the class that declares this member.
+
+
+ Gets the module in which the type that declares the current property is being defined.
+ The in which the type that declares the current property is defined.
+
+
+ Gets the name of this member.
+ A containing the name of this member.
+
+
+ Gets the type of the field of this property.
+ The type of this property.
+
+
+ Gets the class object that was used to obtain this instance of .
+ The object through which this object was obtained.
+
+
+ Defines and creates new instances of classes during run time.
+
+
+ Represents that total size for the type is not specified.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds an interface that this type implements.
+ The interface that this type implements.
+
+ is .
+ The type was previously created using .
+
+
+ When overridden in a derived class, adds an interface that this type implements.
+ The interface that this type implements.
+
+
+ Creates a object for the class. After defining fields and methods on the class, is called in order to load its object.
+ The enclosing type has not been created.
+
+ -or-
+
+ This type is non-abstract and contains an abstract method.
+
+ -or-
+
+ This type is not an abstract class or an interface and has a method without a method body.
+ Bad label content in : You have defined a label without calling .
+ The type contains invalid Microsoft intermediate language (MSIL) code.
+
+ -or-
+
+ The branch target is specified using a 1-byte offset, but the target is at a distance greater than 127 bytes from the branch.
+ The type cannot be loaded. For example, it contains a method that has the calling convention .
+ Returns the new object for this class.
+
+
+ Gets a object that represents this type.
+ An object that represents this type.
+
+
+ When overridden in a derived class, gets a object that represents this type.
+ A object that represents this type.
+
+
+ Adds a new constructor to the type, with the given attributes and signature.
+ The attributes of the constructor.
+ The calling convention of the constructor.
+ The parameter types of the constructor.
+ The type was previously created using .
+ The defined constructor.
+
+
+ Adds a new constructor to the type, with the given attributes, signature, and custom modifiers.
+ The attributes of the constructor.
+ The calling convention of the constructor.
+ The parameter types of the constructor.
+ An array of arrays of types. Each array of types represents the required custom modifiers for the corresponding parameter, such as . If a particular parameter has no required custom modifiers, specify instead of an array of types. If none of the parameters have required custom modifiers, specify instead of an array of arrays.
+ An array of arrays of types. Each array of types represents the optional custom modifiers for the corresponding parameter, such as . If a particular parameter has no optional custom modifiers, specify instead of an array of types. If none of the parameters have optional custom modifiers, specify instead of an array of arrays.
+ The size of or does not equal the size of .
+ The type was previously created using .
+
+ -or-
+
+ For the current dynamic type, the property is , but the property is .
+ The defined constructor.
+
+
+ When overridden in a derived class, adds a new constructor to the type, with the given attributes, signature, and custom modifiers.
+ A bitwise combination of the enumeration values that specifies the attributes of the constructor.
+ The calling convention of the constructor.
+ The parameter types of the constructor.
+ An array of arrays of types. Each array of types represents the required custom modifiers for the corresponding parameter.
+ An array of arrays of types. Each array of types represents the optional custom modifiers for the corresponding parameter.
+ The defined constructor.
+
+
+ Defines the parameterless constructor. The constructor defined here will simply call the parameterless constructor of the parent.
+ A object representing the attributes to be applied to the constructor.
+ The parent type (base type) does not have a parameterless constructor.
+ The type was previously created using .
+
+ -or-
+
+ For the current dynamic type, the property is , but the property is .
+ Returns the constructor.
+
+
+ When overridden in a derived class, defines the parameterless constructor. The constructor defined here calls the parameterless constructor of the parent.
+ A bitwise combination of the enumeration values that specifies the attributes to be applied to the constructor.
+ The constructor.
+
+
+ Adds a new event to the type, with the given name, attributes and event type.
+ The name of the event. cannot contain embedded nulls.
+ The attributes of the event.
+ The type of the event.
+ The length of is zero.
+
+ is .
+
+ -or-
+
+ is .
+ The type was previously created using .
+ The defined event.
+
+
+ When overridden in a derived class, adds a new event to the type, with the given name, attributes, and event type.
+ The name of the event. cannot contain embedded nulls.
+ A bitwise combination of the enumeration values that specifies the attributes of the event.
+ The type of the event.
+ The defined event.
+
+
+ Adds a new field to the type, with the given name, attributes, and field type.
+ The name of the field. cannot contain embedded nulls.
+ The type of the field.
+ The attributes of the field.
+ The length of is zero.
+
+ -or-
+
+ is System.Void.
+
+ -or-
+
+ A total size was specified for the parent class of this field.
+
+ is .
+ The type was previously created using .
+ The defined field.
+
+
+ Adds a new field to the type, with the given name, attributes, field type, and custom modifiers.
+ The name of the field. cannot contain embedded nulls.
+ The type of the field.
+ An array of types representing the required custom modifiers for the field, such as .
+ An array of types representing the optional custom modifiers for the field, such as .
+ The attributes of the field.
+ The length of is zero.
+
+ -or-
+
+ is System.Void.
+
+ -or-
+
+ A total size was specified for the parent class of this field.
+
+ is .
+ The type was previously created using .
+ The defined field.
+
+
+ When overridden in a derived class, adds a new field to the type, with the given name, attributes, field type, and custom modifiers.
+ The name of the field. cannot contain embedded nulls.
+ The type of the field.
+ An array of types representing the required custom modifiers for the field.
+ An array of types representing the optional custom modifiers for the field.
+ A bitwise combination of the enumeration values that specifies the attributes of the field.
+ The defined field.
+
+
+ Defines the generic type parameters for the current type, specifying their number and their names, and returns an array of objects that can be used to set their constraints.
+ An array of names for the generic type parameters.
+ Generic type parameters have already been defined for this type.
+
+ is .
+
+ -or-
+
+ An element of is .
+
+ is an empty array.
+ An array of objects that can be used to define the constraints of the generic type parameters for the current type.
+
+
+ When overridden in a derived class, defines the generic type parameters for the current type, specifying their number and their names.
+ An array of names for the generic type parameters.
+ An array of objects that can be used to define the constraints of the generic type parameters for the current type.
+
+
+ Defines initialized data field in the .sdata section of the portable executable (PE) file.
+ The name used to refer to the data. cannot contain embedded nulls.
+ The blob of data.
+ The attributes for the field.
+ Length of is zero.
+
+ -or-
+
+ The size of the data is less than or equal to zero, or greater than or equal to 0x3f0000.
+
+ or is .
+
+ has been previously called.
+ A field to reference the data.
+
+
+ When overridden in a derived class, defines initialized data field in the .sdata section of the portable executable (PE) file.
+ The name used to refer to the data. cannot contain embedded nulls
+ The blob of data.
+ A bitwise combination of the enumeration values that specifies the attributes for the field.
+ A field to reference the data.
+
+
+ Adds a new method to the type, with the specified name and method attributes.
+ The name of the method. cannot contain embedded nulls.
+ The attributes of the method.
+ The length of is zero.
+
+ -or-
+
+ The type of the parent of this method is an interface, and this method is not virtual ( in Visual Basic).
+
+ is .
+ The type was previously created using .
+
+ -or-
+
+ For the current dynamic type, the property is , but the property is .
+ A representing the newly defined method.
+
+
+ Adds a new method to the type, with the specified name, method attributes, and calling convention.
+ The name of the method. cannot contain embedded nulls.
+ The attributes of the method.
+ The calling convention of the method.
+ The length of is zero.
+
+ -or-
+
+ The type of the parent of this method is an interface and this method is not virtual ( in Visual Basic).
+
+ is .
+ The type was previously created using .
+
+ -or-
+
+ For the current dynamic type, the property is , but the property is .
+ A representing the newly defined method.
+
+
+ Adds a new method to the type, with the specified name, method attributes, calling convention, and method signature.
+ The name of the method. cannot contain embedded nulls.
+ The attributes of the method.
+ The calling convention of the method.
+ The return type of the method.
+ The types of the parameters of the method.
+ The length of is zero.
+
+ -or-
+
+ The type of the parent of this method is an interface, and this method is not virtual ( in Visual Basic).
+
+ is .
+ The type was previously created using .
+
+ -or-
+
+ For the current dynamic type, the property is , but the property is .
+ A representing the newly defined method.
+
+
+ Adds a new method to the type, with the specified name, method attributes, calling convention, method signature, and custom modifiers.
+ The name of the method. cannot contain embedded nulls.
+ The attributes of the method.
+ The calling convention of the method.
+ The return type of the method.
+ An array of types representing the required custom modifiers, such as , for the return type of the method. If the return type has no required custom modifiers, specify .
+ An array of types representing the optional custom modifiers, such as , for the return type of the method. If the return type has no optional custom modifiers, specify .
+ The types of the parameters of the method.
+ An array of arrays of types. Each array of types represents the required custom modifiers for the corresponding parameter, such as . If a particular parameter has no required custom modifiers, specify instead of an array of types. If none of the parameters have required custom modifiers, specify instead of an array of arrays.
+ An array of arrays of types. Each array of types represents the optional custom modifiers for the corresponding parameter, such as . If a particular parameter has no optional custom modifiers, specify instead of an array of types. If none of the parameters have optional custom modifiers, specify instead of an array of arrays.
+ The length of is zero.
+
+ -or-
+
+ The type of the parent of this method is an interface, and this method is not virtual ( in Visual Basic).
+
+ -or-
+
+ The size of or does not equal the size of .
+
+ is .
+ The type was previously created using .
+
+ -or-
+
+ For the current dynamic type, the property is , but the property is .
+ A object representing the newly added method.
+
+
+ Adds a new method to the type, with the specified name, method attributes, and method signature.
+ The name of the method. cannot contain embedded nulls.
+ The attributes of the method.
+ The return type of the method.
+ The types of the parameters of the method.
+ The length of is zero.
+
+ -or-
+
+ The type of the parent of this method is an interface, and this method is not virtual ( in Visual Basic).
+
+ is .
+ The type was previously created using .
+
+ -or-
+
+ For the current dynamic type, the property is , but the property is .
+ The defined method.
+
+
+ When overridden in a derived class, adds a new method to the type, with the specified name, method attributes, calling convention, method signature, and custom modifiers.
+ The name of the method. cannot contain embedded nulls.
+ A bitwise combination of the enumeration values that specifies the attributes of the method.
+ The calling convention of the method.
+ The return type of the method.
+ An array of types representing the required custom modifiers.
+ An array of types representing the optional custom modifiers.
+ The types of the parameters of the method.
+ An array of arrays of types. Each array of types represents the required custom modifiers for the corresponding parameter.
+ An array of arrays of types. Each array of types represents the optional custom modifiers for the corresponding parameter.
+ A object representing the newly added method.
+
+
+ Specifies a given method body that implements a given method declaration, potentially with a different name.
+ The method body to be used. This should be a object.
+ The method whose declaration is to be used.
+
+ does not belong to this class.
+
+ or is .
+ The type was previously created using .
+
+ -or-
+
+ The declaring type of is not the type represented by this .
+
+
+ When overridden in a derived class, specifies a given method body that implements a given method declaration, potentially with a different name.
+ The method body to be used. This should be a object.
+ The method whose declaration is to be used.
+
+
+ Defines a nested type, given its name.
+ The short name of the type. cannot contain embedded nulls.
+ Length of is zero or greater than 1023.
+
+ -or-
+
+ This operation would create a type with a duplicate in the current assembly.
+
+ is .
+ The defined nested type.
+
+
+ Defines a nested type, given its name and attributes.
+ The short name of the type. cannot contain embedded nulls.
+ The attributes of the type.
+ The nested attribute is not specified.
+
+ -or-
+
+ This type is sealed.
+
+ -or-
+
+ This type is an array.
+
+ -or-
+
+ This type is an interface, but the nested type is not an interface.
+
+ -or-
+
+ The length of is zero or greater than 1023.
+
+ -or-
+
+ This operation would create a type with a duplicate in the current assembly.
+
+ is .
+ The defined nested type.
+
+
+ Defines a nested type, given its name, attributes, and the type that it extends.
+ The short name of the type. cannot contain embedded nulls.
+ The attributes of the type.
+ The type that the nested type extends.
+ The nested attribute is not specified.
+
+ -or-
+
+ This type is sealed.
+
+ -or-
+
+ This type is an array.
+
+ -or-
+
+ This type is an interface, but the nested type is not an interface.
+
+ -or-
+
+ The length of is zero or greater than 1023.
+
+ -or-
+
+ This operation would create a type with a duplicate in the current assembly.
+
+ is .
+ The defined nested type.
+
+
+ Defines a nested type, given its name, attributes, the total size of the type, and the type that it extends.
+ The short name of the type. cannot contain embedded nulls.
+ The attributes of the type.
+ The type that the nested type extends.
+ The total size of the type.
+ The nested attribute is not specified.
+
+ -or-
+
+ This type is sealed.
+
+ -or-
+
+ This type is an array.
+
+ -or-
+
+ This type is an interface, but the nested type is not an interface.
+
+ -or-
+
+ The length of is zero or greater than 1023.
+
+ -or-
+
+ This operation would create a type with a duplicate in the current assembly.
+
+ is .
+ The defined nested type.
+
+
+ Defines a nested type, given its name, attributes, the type that it extends, and the packing size.
+ The short name of the type. cannot contain embedded nulls.
+ The attributes of the type.
+ The type that the nested type extends.
+ The packing size of the type.
+ The nested attribute is not specified.
+
+ -or-
+
+ This type is sealed.
+
+ -or-
+
+ This type is an array.
+
+ -or-
+
+ This type is an interface, but the nested type is not an interface.
+
+ -or-
+
+ The length of is zero or greater than 1023.
+
+ -or-
+
+ This operation would create a type with a duplicate in the current assembly.
+
+ is .
+ The defined nested type.
+
+
+ Defines a nested type, given its name, attributes, size, and the type that it extends.
+ The short name of the type. cannot contain embedded null values.
+ The attributes of the type.
+ The type that the nested type extends.
+ The packing size of the type.
+ The total size of the type.
+ The defined nested type.
+
+
+ Defines a nested type, given its name, attributes, the type that it extends, and the interfaces that it implements.
+ The short name of the type. cannot contain embedded nulls.
+ The attributes of the type.
+ The type that the nested type extends.
+ The interfaces that the nested type implements.
+ The nested attribute is not specified.
+
+ -or-
+
+ This type is sealed.
+
+ -or-
+
+ This type is an array.
+
+ -or-
+
+ This type is an interface, but the nested type is not an interface.
+
+ -or-
+
+ The length of is zero or greater than 1023.
+
+ -or-
+
+ This operation would create a type with a duplicate in the current assembly.
+
+ is .
+
+ -or-
+
+ An element of the array is .
+ The defined nested type.
+
+
+ When overridden in a derived class, defines a nested type, given its name, attributes, size, and the type that it extends.
+ The short name of the type. cannot contain embedded values.
+ A bitwise combination of the enumeration values that specifies the attributes of the type.
+ The type that the nested type extends.
+ The interfaces that the nested type implements.
+ The packing size of the type.
+ The total size of the type.
+ The defined nested type.
+
+
+ Defines a method given its name, the name of the DLL in which the method is defined, the attributes of the method, the calling convention of the method, the return type of the method, the types of the parameters of the method, and the flags.
+ The name of the method. cannot contain embedded nulls.
+ The name of the DLL in which the method is defined.
+ The attributes of the method.
+ The method's calling convention.
+ The method's return type.
+ The types of the method's parameters.
+ The native calling convention.
+ The method's native character set.
+ The method is not static.
+
+ -or-
+
+ The parent type is an interface.
+
+ -or-
+
+ The method is abstract.
+
+ -or-
+
+ The method was previously defined.
+
+ -or-
+
+ The length of or is zero.
+
+ or is .
+ The containing type has been previously created using .
+ The defined method.
+
+
+ Defines a method given its name, the name of the DLL in which the method is defined, the name of the entry point, the attributes of the method, the calling convention of the method, the return type of the method, the types of the parameters of the method, and the flags.
+ The name of the method. cannot contain embedded nulls.
+ The name of the DLL in which the method is defined.
+ The name of the entry point in the DLL.
+ The attributes of the method.
+ The method's calling convention.
+ The method's return type.
+ The types of the method's parameters.
+ The native calling convention.
+ The method's native character set.
+ The method is not static.
+
+ -or-
+
+ The parent type is an interface.
+
+ -or-
+
+ The method is abstract.
+
+ -or-
+
+ The method was previously defined.
+
+ -or-
+
+ The length of , , or is zero.
+
+ , , or is .
+ The containing type has been previously created using .
+ The defined method.
+
+
+ Defines a method given its name, the name of the DLL in which the method is defined, the name of the entry point, the attributes of the method, the calling convention of the method, the return type of the method, the types of the parameters of the method, the flags, and custom modifiers for the parameters and return type.
+ The name of the method. cannot contain embedded nulls.
+ The name of the DLL in which the method is defined.
+ The name of the entry point in the DLL.
+ The attributes of the method.
+ The method's calling convention.
+ The method's return type.
+ An array of types representing the required custom modifiers, such as , for the return type of the method. If the return type has no required custom modifiers, specify .
+ An array of types representing the optional custom modifiers, such as , for the return type of the method. If the return type has no optional custom modifiers, specify .
+ The types of the method's parameters.
+ An array of arrays of types. Each array of types represents the required custom modifiers for the corresponding parameter, such as . If a particular parameter has no required custom modifiers, specify instead of an array of types. If none of the parameters have required custom modifiers, specify instead of an array of arrays.
+ An array of arrays of types. Each array of types represents the optional custom modifiers for the corresponding parameter, such as . If a particular parameter has no optional custom modifiers, specify instead of an array of types. If none of the parameters have optional custom modifiers, specify instead of an array of arrays.
+ The native calling convention.
+ The method's native character set.
+ The method is not static.
+
+ -or-
+
+ The parent type is an interface.
+
+ -or-
+
+ The method is abstract.
+
+ -or-
+
+ The method was previously defined.
+
+ -or-
+
+ The length of , , or is zero.
+
+ -or-
+
+ The size of or does not equal the size of .
+
+ , , or is .
+ The type was previously created using .
+
+ -or-
+
+ For the current dynamic type, the property is , but the property is .
+ A representing the defined method.
+
+
+ When overridden in a derived class, defines a PInvoke method with the provided name, DLL name, entry point name, attributes, calling convention, return type, types of the parameters, PInvoke flags, and custom modifiers for the parameters and return type.
+ The name of the method. cannot contain embedded nulls.
+ The name of the DLL in which the method is defined.
+ The name of the entry point in the DLL.
+ A bitwise combination of the enumeration values that specifies the attributes of the method.
+ The method's calling convention.
+ The method's return type.
+ An array of types representing the required custom modifiers
+ An array of types representing the optional custom modifiers
+ The types of the method's parameters.
+ An array of arrays of types. Each array of types represents the required custom modifiers for the corresponding parameter.
+ An array of arrays of types. Each array of types represents the optional custom modifiers for the corresponding parameter.
+ The native calling convention.
+ The method's native character set.
+ A representing the defined method.
+
+
+ Adds a new property to the type, with the given name, attributes, calling convention, and property signature.
+ The name of the property. cannot contain embedded nulls.
+ The attributes of the property.
+ The calling convention of the property accessors.
+ The return type of the property.
+ The types of the parameters of the property.
+ The length of is zero.
+
+ is .
+
+ -or-
+
+ Any of the elements of the array is .
+ The type was previously created using .
+ The defined property.
+
+
+ Adds a new property to the type, with the given name, calling convention, property signature, and custom modifiers.
+ The name of the property. cannot contain embedded nulls.
+ The attributes of the property.
+ The calling convention of the property accessors.
+ The return type of the property.
+ An array of types representing the required custom modifiers, such as , for the return type of the property. If the return type has no required custom modifiers, specify .
+ An array of types representing the optional custom modifiers, such as , for the return type of the property. If the return type has no optional custom modifiers, specify .
+ The types of the parameters of the property.
+ An array of arrays of types. Each array of types represents the required custom modifiers for the corresponding parameter, such as . If a particular parameter has no required custom modifiers, specify instead of an array of types. If none of the parameters have required custom modifiers, specify instead of an array of arrays.
+ An array of arrays of types. Each array of types represents the optional custom modifiers for the corresponding parameter, such as . If a particular parameter has no optional custom modifiers, specify instead of an array of types. If none of the parameters have optional custom modifiers, specify instead of an array of arrays.
+ The length of is zero.
+
+ is .
+
+ -or-
+
+ Any of the elements of the array is .
+ The type was previously created using .
+ The defined property.
+
+
+ Adds a new property to the type, with the given name and property signature.
+ The name of the property. cannot contain embedded nulls.
+ The attributes of the property.
+ The return type of the property.
+ The types of the parameters of the property.
+ The length of is zero.
+
+ is .
+
+ -or-
+
+ Any of the elements of the array is .
+ The type was previously created using .
+ The defined property.
+
+
+ Adds a new property to the type, with the given name, property signature, and custom modifiers.
+ The name of the property. cannot contain embedded nulls.
+ The attributes of the property.
+ The return type of the property.
+ An array of types representing the required custom modifiers, such as , for the return type of the property. If the return type has no required custom modifiers, specify .
+ An array of types representing the optional custom modifiers, such as , for the return type of the property. If the return type has no optional custom modifiers, specify .
+ The types of the parameters of the property.
+ An array of arrays of types. Each array of types represents the required custom modifiers for the corresponding parameter, such as . If a particular parameter has no required custom modifiers, specify instead of an array of types. If none of the parameters have required custom modifiers, specify instead of an array of arrays.
+ An array of arrays of types. Each array of types represents the optional custom modifiers for the corresponding parameter, such as . If a particular parameter has no optional custom modifiers, specify instead of an array of types. If none of the parameters have optional custom modifiers, specify instead of an array of arrays.
+ The length of is zero.
+
+ is
+
+ -or-
+
+ Any of the elements of the array is
+ The type was previously created using .
+ The defined property.
+
+
+ When overridden in a derived class, adds a new property to the type, with the given name, calling convention, property signature, and custom modifiers.
+ The name of the property. cannot contain embedded nulls.
+ A bitwise combination of the enumeration values that specifies the attributes of the property.
+ The calling convention of the property accessors.
+ The return type of the property.
+ An array of types representing the required custom modifiers
+ An array of types representing the optional custom modifiers
+ The types of the method's parameters.
+ An array of arrays of types. Each array of types represents the required custom modifiers for the corresponding parameter.
+ An array of arrays of types. Each array of types represents the optional custom modifiers for the corresponding parameter.
+ The defined property.
+
+
+ Defines the initializer for this type.
+ The containing type has been previously created using .
+ Returns a type initializer.
+
+
+ When overridden in a derived class, defines the initializer for this type.
+ Returns a type initializer.
+
+
+ Defines an uninitialized data field in the section of the portable executable (PE) file.
+ The name used to refer to the data. cannot contain embedded nulls.
+ The size of the data field.
+ The attributes for the field.
+ Length of is zero.
+
+ -or-
+
+ is less than or equal to zero, or greater than or equal to 0x003f0000.
+
+ is .
+ The type was previously created using .
+ A field to reference the data.
+
+
+ When overridden in a derived class, defines an uninitialized data field in the section of the portable executable (PE) file.
+ The name used to refer to the data. cannot contain embedded nulls.
+ The size of the data field.
+ A bitwise combination of the enumeration values that specifies the attributes for the field.
+ A field to reference the data.
+
+
+ When overridden in a derived class, implements the property and gets a bitwise combination of enumeration values that indicate the attributes associated with the .
+ A object representing the attribute set of the .
+
+
+ Returns the constructor of the specified constructed generic type that corresponds to the specified constructor of the generic type definition.
+ The constructed generic type whose constructor is returned.
+ A constructor on the generic type definition of , which specifies which constructor of to return.
+
+ does not represent a generic type.
+
+ -or-
+
+ is not of type .
+
+ -or-
+
+ The declaring type of is not a generic type definition.
+
+ -or-
+
+ The declaring type of is not the generic type definition of .
+ A object that represents the constructor of corresponding to , which specifies a constructor belonging to the generic type definition of .
+
+
+ When overridden in a derived class, searches for a constructor whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.
+ A bitwise combination of the enumeration values that specify how the search is conducted.
+
+ -or-
+
+ to return null
.
+ An object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.
+
+ -or-
+
+ A null reference (Nothing
in Visual Basic), to use the .
+ The object that specifies the set of rules to use regarding the order and layout of arguments, how the return value is passed, what registers are used for arguments, and the stack is cleaned up.
+ An array of objects representing the number, order, and type of the parameters for the constructor to get.
+
+ -or-
+
+ An empty array of the type (that is, Type[] types = new Type[0]) to get a constructor that takes no parameters.
+ An array of objects representing the attributes associated with the corresponding element in the types
array. The default binder does not process this parameter.
+ A object representing the constructor that matches the specified requirements, if found; otherwise, null
.
+
+
+ Returns an array of objects representing the public and non-public constructors defined for this class, as specified.
+ This must be a bit flag from as in , , and so on.
+ This method is not implemented for incomplete types.
+ Returns an array of objects representing the specified constructors defined for this class. If no constructors are defined, an empty array is returned.
+
+
+ Returns all the custom attributes defined for this type.
+ Specifies whether to search this member's inheritance chain to find the attributes.
+ This method is not currently supported for incomplete types. Retrieve the type using and call on the returned .
+ Returns an array of objects representing all the custom attributes of this type.
+
+
+ Returns all the custom attributes of the current type that are assignable to a specified type.
+ The type of attribute to search for. Only attributes that are assignable to this type are returned.
+ Specifies whether to search this member's inheritance chain to find the attributes.
+ This method is not currently supported for incomplete types. Retrieve the type using and call on the returned .
+
+ is .
+ The type must be a type provided by the underlying runtime system.
+ An array of custom attributes defined on the current type.
+
+
+ Calling this method always throws .
+ This method is not supported.
+ This method is not supported. No value is returned.
+
+
+ Returns the event with the specified name.
+ The name of the event to search for.
+ A bitwise combination of values that limits the search.
+ This method is not implemented for incomplete types.
+ An object representing the event declared or inherited by this type with the specified name, or if there are no matches.
+
+
+ Returns the public events declared or inherited by this type.
+ This method is not implemented for incomplete types.
+ Returns an array of objects representing the public events declared or inherited by this type. An empty array is returned if there are no public events.
+
+
+ Returns the public and non-public events that are declared by this type.
+ A bitwise combination of values that limits the search.
+ This method is not implemented for incomplete types.
+ Returns an array of objects representing the events declared or inherited by this type that match the specified binding flags. An empty array is returned if there are no matching events.
+
+
+ Returns the field specified by the given name.
+ The name of the field to get.
+ This must be a bit flag from as in , , and so on.
+ This method is not implemented for incomplete types.
+ Returns the object representing the field declared or inherited by this type with the specified name and public or non-public modifier. If there are no matches then is returned.
+
+
+ Returns the field of the specified constructed generic type that corresponds to the specified field of the generic type definition.
+ The constructed generic type whose field is returned.
+ A field on the generic type definition of , which specifies which field of to return.
+
+ does not represent a generic type.
+
+ -or-
+
+ is not of type .
+
+ -or-
+
+ The declaring type of is not a generic type definition.
+
+ -or-
+
+ The declaring type of is not the generic type definition of .
+ A object that represents the field of corresponding to , which specifies a field belonging to the generic type definition of .
+
+
+ Returns the public and non-public fields that are declared by this type.
+ This must be a bit flag from : , , and so on.
+ This method is not implemented for incomplete types.
+ Returns an array of objects representing the public and non-public fields declared or inherited by this type. An empty array is returned if there are no fields, as specified.
+
+
+ Returns an array of objects representing the type arguments of a generic type or the type parameters of a generic type definition.
+ An array of objects. The elements of the array represent the type arguments of a generic type or the type parameters of a generic type definition.
+
+
+ Returns a object that represents a generic type definition from which the current type can be obtained.
+ The current type is not generic. That is, returns .
+ A object representing a generic type definition from which the current type can be obtained.
+
+
+ Returns the interface implemented (directly or indirectly) by this class with the fully qualified name matching the given interface name.
+ The name of the interface.
+ If , the search is case-insensitive. If , the search is case-sensitive.
+ This method is not implemented for incomplete types.
+ Returns a object representing the implemented interface. Returns null if no interface matching name is found.
+
+
+ Returns an interface mapping for the requested interface.
+ The of the interface for which the mapping is to be retrieved.
+ This method is not implemented for incomplete types.
+ Returns the requested interface mapping.
+
+
+ Returns an array of all the interfaces implemented on this type and its base types.
+ Returns an array of objects representing the implemented interfaces. If none are defined, an empty array is returned.
+
+
+ Returns all the public and non-public members declared or inherited by this type, as specified.
+ The name of the member.
+ The type of the member to return.
+ This must be a bit flag from , as in , , and so on.
+ This method is not implemented for incomplete types.
+ Returns an array of objects representing the public and non-public members defined on this type if is used; otherwise, only the public members are returned.
+
+
+ Returns the members for the public and non-public members declared or inherited by this type.
+ This must be a bit flag from , such as , , and so on.
+ This method is not implemented for incomplete types.
+ Returns an array of objects representing the public and non-public members declared or inherited by this type. An empty array is returned if there are no matching members.
+
+
+ Returns the method of the specified constructed generic type that corresponds to the specified method of the generic type definition.
+ The constructed generic type whose method is returned.
+ A method on the generic type definition of , which specifies which method of to return.
+
+ is a generic method that is not a generic method definition.
+
+ -or-
+
+ does not represent a generic type.
+
+ -or-
+
+ is not of type .
+
+ -or-
+
+ The declaring type of is not a generic type definition.
+
+ -or-
+
+ The declaring type of is not the generic type definition of .
+ A object that represents the method of corresponding to , which specifies a method belonging to the generic type definition of .
+
+
+ When overridden in a derived class, searches for the specified method whose parameters match the specified argument types and modifiers, using the specified binding constraints and the specified calling convention.
+ The string containing the name of the method to get.
+ A bitwise combination of the enumeration values that specify how the search is conducted.
+
+ -or-
+
+ to return null
.
+ An object that defines a set of properties and enables binding, which can involve selection of an overloaded method, coercion of argument types, and invocation of a member through reflection.
+
+ -or-
+
+ A null reference (Nothing
in Visual Basic), to use the .
+ The object that specifies the set of rules to use regarding the order and layout of arguments, how the return value is passed, what registers are used for arguments, and what process cleans up the stack.
+ An array of objects representing the number, order, and type of the parameters for the method to get.
+
+ -or-
+
+ An empty array of the type (that is, Type[] types = new Type[0]) to get a method that takes no parameters.
+
+ -or-
+
+ null
. If types
is null
, arguments are not matched.
+ An array of objects representing the attributes associated with the corresponding element in the types
array. The default binder does not process this parameter.
+ An object representing the method that matches the specified requirements, if found; otherwise, null
.
+
+
+ Returns all the public and non-public methods declared or inherited by this type, as specified.
+ This must be a bit flag from as in , , and so on.
+ This method is not implemented for incomplete types.
+ Returns an array of objects representing the public and non-public methods defined on this type if is used; otherwise, only the public methods are returned.
+
+
+ Returns the public and non-public nested types that are declared by this type.
+ The containing the name of the nested type to get.
+ A bitmask comprised of one or more that specify how the search is conducted.
+
+ -or-
+
+ Zero, to conduct a case-sensitive search for public methods.
+ This method is not implemented for incomplete types.
+ A object representing the nested type that matches the specified requirements, if found; otherwise, .
+
+
+ Returns the public and non-public nested types that are declared or inherited by this type.
+ This must be a bit flag from , as in , , and so on.
+ This method is not implemented for incomplete types.
+ An array of objects representing all the types nested within the current that match the specified binding constraints.
+
+ An empty array of type , if no types are nested within the current , or if none of the nested types match the binding constraints.
+
+
+ Returns all the public and non-public properties declared or inherited by this type, as specified.
+ This invocation attribute. This must be a bit flag from : , , and so on.
+ This method is not implemented for incomplete types.
+ Returns an array of objects representing the public and non-public properties defined on this type if is used; otherwise, only the public properties are returned.
+
+
+ When overridden in a derived class, searches for the specified property whose parameters match the specified argument types and modifiers, using the specified binding constraints.
+ The string containing the name of the property to get.
+ A bitwise combination of the enumeration values that specify how the search is conducted.
+
+ -or-
+
+ to return null
.
+ An object that defines a set of properties and enables binding, which can involve selection of an overloaded member, coercion of argument types, and invocation of a member through reflection.
+
+ -or-
+
+ A null reference (Nothing
in Visual Basic), to use the .
+ The return type of the property.
+ An array of objects representing the number, order, and type of the parameters for the indexed property to get.
+
+ -or-
+
+ An empty array of the type (that is, Type[] types = new Type[0]) to get a property that is not indexed.
+ An array of objects representing the attributes associated with the corresponding element in the types
array. The default binder does not process this parameter.
+ An object representing the property that matches the specified requirements, if found; otherwise, null
.
+
+
+ When overridden in a derived class, implements the property and determines whether the current encompasses or refers to another type; that is, whether the current is an array, a pointer, or is passed by reference.
+
+ true
if the is an array, a pointer, or is passed by reference; otherwise, false
.
+
+
+ Invokes the specified member. The method that is to be invoked must be accessible and provide the most specific match with the specified argument list, under the constraints of the specified binder and invocation attributes.
+ The name of the member to invoke. This can be a constructor, method, property, or field. A suitable invocation attribute must be specified. Note that it is possible to invoke the default member of a class by passing an empty string as the name of the member.
+ The invocation attribute. This must be a bit flag from .
+ An object that enables the binding, coercion of argument types, invocation of members, and retrieval of objects using reflection. If binder is , the default binder is used. See .
+ The object on which to invoke the specified member. If the member is static, this parameter is ignored.
+ An argument list. This is an array of Objects that contains the number, order, and type of the parameters of the member to be invoked. If there are no parameters this should be null.
+ An array of the same length as with elements that represent the attributes associated with the arguments of the member to be invoked. A parameter has attributes associated with it in the metadata. They are used by various interoperability services. See the metadata specs for more details.
+ An instance of used to govern the coercion of types. If this is null, the for the current thread is used. (Note that this is necessary to, for example, convert a String that represents 1000 to a Double value, since 1000 is represented differently by different cultures.)
+ Each parameter in the array gets the value in the corresponding element in the array. If the length of is greater than the length of , the remaining argument values are passed in order.
+ This method is not currently supported for incomplete types.
+ Returns the return value of the invoked member.
+
+
+ When overridden in a derived class, implements the property and determines whether the is an array.
+
+ true
if the is an array; otherwise, false
.
+
+
+ Gets a value that indicates whether a specified object can be assigned to this object.
+ The object to test.
+
+ if can be assigned to this object; otherwise, .
+
+
+ Gets a value that indicates whether a specified can be assigned to this object.
+ The object to test.
+
+ if the parameter and the current type represent the same type, or if the current type is in the inheritance hierarchy of , or if the current type is an interface that supports. if none of these conditions are valid, or if is .
+
+
+ When overridden in a derived class, implements the property and determines whether the is passed by reference.
+
+ true
if the is passed by reference; otherwise, false
.
+
+
+ When overridden in a derived class, implements the property and determines whether the is a COM object.
+
+ true
if the is a COM object; otherwise, false
.
+
+
+ Returns a value that indicates whether the current dynamic type has been created.
+
+ if the method has been called; otherwise, .
+
+
+ When overridden in a derived class, returns a value that indicates whether the current dynamic type has been created.
+
+ if the CreateType() method has been called; otherwise, .
+
+
+ Determines whether a custom attribute is applied to the current type.
+ The type of attribute to search for. Only attributes that are assignable to this type are returned.
+ Specifies whether to search this member's inheritance chain to find the attributes.
+ This method is not currently supported for incomplete types. Retrieve the type using and call on the returned .
+
+ is not defined.
+
+ is .
+
+ if one or more instances of , or an attribute derived from , is defined on this type; otherwise, .
+
+
+ When overridden in a derived class, implements the property and determines whether the is a pointer.
+
+ true
if the is a pointer; otherwise, false
.
+
+
+ When overridden in a derived class, implements the property and determines whether the is one of the primitive types.
+
+ true
if the is one of the primitive types; otherwise, false
.
+
+
+ Determines whether this type is derived from a specified type.
+ A that is to be checked.
+ Read-only. Returns if this type is the same as the type , or is a subtype of type ; otherwise, .
+
+
+ Returns a object that represents a one-dimensional array of the current type, with a lower bound of zero.
+ A object representing a one-dimensional array type whose element type is the current type, with a lower bound of zero.
+
+
+ Returns a object that represents an array of the current type, with the specified number of dimensions.
+ The number of dimensions for the array.
+
+ is not a valid array dimension.
+ A object that represents a one-dimensional array of the current type.
+
+
+ Returns a object that represents the current type when passed as a parameter ( in Visual Basic).
+ A object that represents the current type when passed as a parameter ( in Visual Basic).
+
+
+ Substitutes the elements of an array of types for the type parameters of the current generic type definition, and returns the resulting constructed type.
+ An array of types to be substituted for the type parameters of the current generic type definition.
+ The current type does not represent the definition of a generic type. That is, returns .
+
+ is .
+
+ -or-
+
+ Any element of is .
+ The property of any element of is .
+
+ -or-
+
+ The property of the module of any element of is .
+ A representing the constructed type formed by substituting the elements of for the type parameters of the current generic type.
+
+
+ Returns a object that represents the type of an unmanaged pointer to the current type.
+ A object that represents the type of an unmanaged pointer to the current type.
+
+
+ Sets a custom attribute using a specified custom attribute blob.
+ The constructor for the custom attribute.
+ A byte blob representing the attributes.
+
+ or is .
+ For the current dynamic type, the property is , but the property is .
+
+
+ Set a custom attribute using a custom attribute builder.
+ An instance of a helper class to define the custom attribute.
+
+ is .
+ For the current dynamic type, the property is , but the property is .
+
+
+ When overridden in a derived class, sets a custom attribute on this assembly.
+ The constructor for the custom attribute.
+ A of bytes representing the attribute.
+
+
+ Sets the base type of the type currently under construction.
+ The new base type.
+ The type was previously created using .
+
+ -or-
+
+ is , and the current instance represents an interface whose attributes do not include .
+
+ -or-
+
+ For the current dynamic type, the property is , but the property is .
+
+ is an interface. This exception condition is new in the .NET Framework version 2.0.
+
+
+ When overridden in a derived class, sets the base type of the type currently under construction.
+ The new base type.
+
+
+ Returns the name of the type excluding the namespace.
+ Read-only. The name of the type excluding the namespace.
+
+
+ Retrieves the dynamic assembly that contains this type definition.
+ Read-only. Retrieves the dynamic assembly that contains this type definition.
+
+
+ Returns the full name of this type qualified by the display name of the assembly.
+ Read-only. The full name of this type qualified by the display name of the assembly.
+
+
+ Retrieves the base type of this type.
+ Read-only. Retrieves the base type of this type.
+
+
+ Gets the method that declared the current generic type parameter.
+ A that represents the method that declared the current type, if the current type is a generic type parameter; otherwise, .
+
+
+ Returns the type that declared this type.
+ Read-only. The type that declared this type.
+
+
+ Retrieves the full path of this type.
+ Read-only. Retrieves the full path of this type.
+
+
+ Gets a value that indicates the covariance and special constraints of the current generic type parameter.
+ A bitwise combination of values that describes the covariance and special constraints of the current generic type parameter.
+
+
+ Gets the position of a type parameter in the type parameter list of the generic type that declared the parameter.
+ If the current object represents a generic type parameter, the position of the type parameter in the type parameter list of the generic type that declared the parameter; otherwise, undefined.
+
+
+ Retrieves the GUID of this type.
+ This method is not currently supported for incomplete types.
+ Read-only. Retrieves the GUID of this type.
+
+
+ Gets a value that indicates whether the type is a byref-like structure.
+
+ true
if the is a byref-like structure; otherwise, false
.
+
+
+ Gets a value that indicates whether this object represents a constructed generic type.
+
+ if this object represents a constructed generic type; otherwise, .
+
+
+ Gets a value indicating whether the current type is a generic type parameter.
+
+ if the current object represents a generic type parameter; otherwise, .
+
+
+ Gets a value indicating whether the current type is a generic type.
+
+ if the type represented by the current object is generic; otherwise, .
+
+
+ Gets a value indicating whether the current represents a generic type definition from which other generic types can be constructed.
+
+ if this object represents a generic type definition; otherwise, .
+
+
+ Gets a value that indicates whether the current type is security-critical or security-safe-critical, and therefore can perform critical operations.
+ The current dynamic type has not been created by calling the method.
+
+ if the current type is security-critical or security-safe-critical; if it is transparent.
+
+
+ Gets a value that indicates whether the current type is security-safe-critical; that is, whether it can perform critical operations and can be accessed by transparent code.
+ The current dynamic type has not been created by calling the method.
+
+ if the current type is security-safe-critical; if it is security-critical or transparent.
+
+
+ Gets a value that indicates whether the current type is transparent, and therefore cannot perform critical operations.
+ The current dynamic type has not been created by calling the method.
+
+ if the type is security-transparent; otherwise, .
+
+
+
+
+ Gets a token that identifies the current dynamic module in metadata.
+ An integer token that identifies the current module in metadata.
+
+
+ Retrieves the dynamic module that contains this type definition.
+ Read-only. Retrieves the dynamic module that contains this type definition.
+
+
+ Retrieves the name of this type.
+ Read-only. Retrieves the name of this type.
+
+
+ Retrieves the namespace where this is defined.
+ Read-only. Retrieves the namespace where this is defined.
+
+
+ Retrieves the packing size of this type.
+ Read-only. Retrieves the packing size of this type.
+
+
+ When overridden in a derived class, gets the packing size of this type.
+ The packing size of this type.
+
+
+ Returns the type that was used to obtain this type.
+ Read-only. The type that was used to obtain this type.
+
+
+ Retrieves the total size of a type.
+ Read-only. Retrieves this type's total size.
+
+
+ When overridden in a derived class, gets the total size of a type.
+ This type's total size.
+
+
+ Not supported in dynamic modules.
+ Not supported in dynamic modules.
+ Read-only.
+
+
+ Returns the underlying system type for this .
+ This type is an enumeration, but there is no underlying system type.
+ Read-only. Returns the underlying system type.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.Metadata.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.Metadata.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c3ade1e0cbbb1a7b51bc0c60e3223e6e57810a4f
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.Metadata.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.Primitives.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4791fe0fb951d1297df0e9b0962c47a7fa5e55b3
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.Primitives.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.TypeExtensions.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.TypeExtensions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e6b1920472e0a24ae29b8f872a544a07aa247b08
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.TypeExtensions.xml
@@ -0,0 +1,220 @@
+
+
+
+ System.Reflection.TypeExtensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Gets a metadata token for the given member, if available.
+ The member from which to retrieve the token, as reftype.
+ There is no metadata token available.
+ An integer representing the metadata token. The returned token is never nil. If unavailable, an exception is thrown.
+
+
+ Returns a value that indicates whether a metadata token is available for the specified member.
+ The member to analyze, as reftype.
+
+ if there is a metadata token available for the given member; otherwise, .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.dll
new file mode 100644
index 0000000000000000000000000000000000000000..33cf5f31e1c09b04a9861a96bc94c37db18cbbeb
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Reflection.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Resources.Writer.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Resources.Writer.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5992999c6d66d4fd1a5cf8fc92866e6e6cac1989
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Resources.Writer.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.CompilerServices.VisualC.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.CompilerServices.VisualC.dll
new file mode 100644
index 0000000000000000000000000000000000000000..06fb76c70da9db57a789d2bc92650b6882a600a3
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.CompilerServices.VisualC.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.InteropServices.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.InteropServices.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7864cd8443560c3be0a0346002562c78c94d69f8
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.InteropServices.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Intrinsics.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Intrinsics.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5ab32e9cbb158b1a41d436c0b0549ef1287b44f0
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Intrinsics.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Loader.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Loader.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8ab3be3ea5223d64e48e7f8e00c41ae2ad4dc0ce
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Loader.xml
@@ -0,0 +1,251 @@
+
+
+
+ System.Runtime.Loader
+
+
+
+
+ Retrieves the metadata section of the assembly, for use with .
+ The assembly from which to retrieve the metadata.
+ When this method returns, contains the pointer to the metadata section blob.
+ When this method returns, contains the length of the metadata section blob.
+
+ if the metadata is retrieved successfully; upon failure. The metadata might not be available for some assemblies, such as and AOT images.
+
+
+ Indicates that a type that should receive notifications of metadata updates.
+
+
+ Initializes the attribute.
+ A type that handles metadata updates and that should be notified when any occur.
+
+
+ Gets the type that handles metadata updates and that should be notified when any occur.
+
+
+
+ Updates the specified assembly using the provided metadata, IL, and PDB deltas.
+ The assembly to update.
+ The metadata changes to be applied.
+ The IL changes to be applied.
+ The PDB changes to be applied.
+ The assembly argument is not a runtime assembly.
+ The assembly argument is .
+ The assembly is not editable.
+ The update could not be applied.
+
+
+ Gets a value that indicates whether the assembly update is enabled and available.
+
+ if the assembly update is enabled and available; otherwise, .
+
+
+ Indicates a type should be replaced rather than updated when applying metadata updates.
+
+
+ Creates a new instance.
+
+
+ Emitted by the compiler when a type that's marked with is updated during a hot reload session.
+
+
+ Initializes a new instance of the class.
+ The original type that was updated.
+
+
+ Gets the original version of the type that this attribtue is attached to.
+
+
+ Allows a program to resolve assemblies and native libraries to paths based on the dependencies of a given assembly.
+
+
+ Initializes a new instance of the class with a path to a component's assembly.
+ The path to the component or plugin's managed entry point.
+
+
+ Resolves a path to an assembly with the given assembly name based on the component's dependencies.
+ The assembly name to resolve.
+ The path to an assembly with the given name from the component's deps.json file, or if the assembly does not exist in the deps.json file or is not on disk in the location specified by the deps.json file.
+
+
+ Resolves a path to a native library with the given name based on the component's dependencies.
+ The name of the native library to resolve.
+ The path to a native library with the given name from the component's deps.json file and the current runtime identifier, or if the assembly does not exist in the deps.json file or is not on disk in the location specified by the deps.json file.
+
+
+ Represents the runtime's concept of a scope for assembly loading.
+
+
+ Occurs when the resolution of an assembly fails when attempting to load into this assembly load context.
+
+
+ Occurs when the resolution of a native library fails.
+
+
+ Occurs when the is unloaded.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with a value that indicates whether unloading is enabled.
+
+ to enable ; otherwise, . The default value is because there is a performance cost associated with enabling unloading.
+
+
+ Initializes a new instance of the class with a name and a value that indicates whether unloading is enabled.
+ The value for in the new instance. Its value can be .
+
+ to enable ; otherwise, . The default value is because there is a performance cost associated with enabling unloading.
+
+
+ Sets to .
+ An object to restore the previous value of . It is intended to be used as an in a block.
+
+
+ Sets to the which loaded the assembly.
+ The assembly that is used to determine the requested instance.
+ An object to restore the previous value of . It is intended to be used as an in a block.
+
+
+ Allows the object to try to free resources and perform other cleanup operations before it's reclaimed by garbage collection.
+
+
+ Gets an for an assembly path.
+ The path to the assembly.
+
+ is .
+ The assembly cannot be found.
+ The assembly is not a valid assembly.
+ An object that contains the fully parsed assembly name for the assembly at .
+
+
+ Gets the containing the specified .
+ An assembly.
+
+ is .
+ The assembly load context containing the . If the is not provided by the runtime, this method returns null.
+
+
+ When overridden in a derived class, allows an assembly to be resolved based on its .
+ The object that describes the assembly to be resolved.
+ The resolved assembly, or .
+
+
+ Resolves and loads an assembly given its .
+ The object that describes the assembly to load.
+
+ is .
+
+ is not found.
+
+ is not a valid assembly.
+ An assembly or module was loaded which did not match the .
+ The loaded assembly, or throws.
+
+
+ Loads the contents of an assembly file on the specified path.
+ The fully qualified path of the file to load.
+ The argument is not an absolute path.
+ The argument is .
+ A file that was found could not be loaded.
+ The argument is an empty string ("") or does not exist.
+ The argument is not a valid assembly.
+ The loaded assembly.
+
+
+ Loads the contents of the native image of a managed assembly file on the specified path.
+ The fully qualified path of the file to load.
+ The fully qualified path of the IL version of the file to load, or .
+ The argument is not an absolute path.
+ The argument is not an absolute path.
+ The argument is .
+ A file that was found could not be loaded.
+ The argument is an empty string ("") or does not exist.
+ The argument is not a valid assembly.
+ The loaded assembly.
+
+
+ Loads the assembly with a common object file format (COFF)-based image containing a managed assembly.
+ A byte array that is a COFF-based image containing a managed assembly.
+
+ is .
+
+ is not a valid assembly.
+ The loaded assembly.
+
+
+ Loads the assembly with a common object file format (COFF)-based image containing a managed assembly, optionally including symbols for the assembly.
+ A byte array that is a COFF-based image containing a managed assembly.
+ A byte array that contains the raw bytes representing the symbols for the assembly.
+
+ is .
+
+ is not a valid assembly.
+ The loaded assembly.
+
+
+ Allows derived class to load an unmanaged library by name.
+ Name of the unmanaged library. Typically this is the filename without its path or extensions.
+ A handle to the loaded library, or .
+
+
+ Loads an unmanaged library from the specified path.
+ The path to the unmanaged library.
+
+ is .
+ The argument is empty or not an absolute path.
+ The library can't be found.
+ The library is not valid.
+ The OS handle for the loaded native library.
+
+
+ Sets the root path where the optimization profiles for this load context are stored.
+ The full path to the directory where the optimization profiles are stored.
+
+
+ Starts the profile optimization for the specified profile.
+ The name of the optimization profile.
+
+
+ Returns the string representation of this load context.
+ The string representation of this load context.
+
+
+ Initiates an unload of this .
+ Unloading is not allowed.
+
+
+ Returns a collection of all instances.
+ A collection of all instances.
+
+
+ Returns a collection of the instances loaded in the .
+ A collection of the instances loaded in the .
+
+
+ Gets the set by the most recent call to .
+ The set by the most recent call to . This value can be . The value is stored in an , so the value is unique per asynchronous context.
+
+
+ Gets the default . The default context contains the main application assembly and its static dependencies.
+ The default assembly load context.
+
+
+ Gets a value that indicates whether this is collectible.
+
+ if this is collectible; otherwise, . If a value is not specified in the constructor, the value is .
+
+
+ Get the name of the .
+ The name of the . Its value can be .
+
+
+ Provides a return type used exclusively for . It is intended to be used as an in a block.
+
+
+ Sets to the value preceding the call to which returned this instance.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Numerics.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Numerics.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7fc7fb62a2594fce8660e062bd582b4794c41e3c
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Numerics.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.Formatters.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.Formatters.xml
new file mode 100644
index 0000000000000000000000000000000000000000..12132fd9a5866837f187b6d03ac5b2c19acdd455
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.Formatters.xml
@@ -0,0 +1,706 @@
+
+
+
+ System.Runtime.Serialization.Formatters
+
+
+
+ Provides base functionality for the common language runtime serialization formatters.
+
+
+ Contains the used with the current formatter.
+
+
+ Contains a of the objects left to serialize.
+
+
+ Initializes a new instance of the class.
+
+
+ When overridden in a derived class, deserializes the stream attached to the formatter when it was created, creating a graph of objects identical to the graph originally serialized into that stream.
+ The stream to deserialize.
+ The top object of the deserialized graph of objects.
+
+
+ Returns the next object to serialize, from the formatter's internal work queue.
+ The ID assigned to the current object during serialization.
+ The next object retrieved from the work queue did not have an assigned ID.
+ The next object to serialize.
+
+
+ Schedules an object for later serialization.
+ The object to schedule for serialization.
+ The object ID assigned to the object.
+
+
+ When overridden in a derived class, serializes the graph of objects with the specified root to the stream already attached to the formatter.
+ The stream to which the objects are serialized.
+ The object at the root of the graph to serialize.
+
+
+ When overridden in a derived class, writes an array to the stream already attached to the formatter.
+ The array to write.
+ The name of the array.
+ The type of elements that the array holds.
+
+
+ When overridden in a derived class, writes a Boolean value to the stream already attached to the formatter.
+ The value to write.
+ The name of the member.
+
+
+ When overridden in a derived class, writes an 8-bit unsigned integer to the stream already attached to the formatter.
+ The value to write.
+ The name of the member.
+
+
+ When overridden in a derived class, writes a Unicode character to the stream already attached to the formatter.
+ The value to write.
+ The name of the member.
+
+
+ When overridden in a derived class, writes a value to the stream already attached to the formatter.
+ The value to write.
+ The name of the member.
+
+
+ When overridden in a derived class, writes a value to the stream already attached to the formatter.
+ The value to write.
+ The name of the member.
+
+
+ When overridden in a derived class, writes a double-precision floating-point number to the stream already attached to the formatter.
+ The value to write.
+ The name of the member.
+
+
+ When overridden in a derived class, writes a 16-bit signed integer to the stream already attached to the formatter.
+ The value to write.
+ The name of the member.
+
+
+ When overridden in a derived class, writes a 32-bit signed integer to the stream.
+ The value to write.
+ The name of the member.
+
+
+ When overridden in a derived class, writes a 64-bit signed integer to the stream.
+ The value to write.
+ The name of the member.
+
+
+ Inspects the type of data received, and calls the appropriate method to perform the write to the stream already attached to the formatter.
+ The name of the member to serialize.
+ The object to write to the stream attached to the formatter.
+
+
+ When overridden in a derived class, writes an object reference to the stream already attached to the formatter.
+ The object reference to write.
+ The name of the member.
+ The type of object the reference points to.
+
+
+ When overridden in a derived class, writes an 8-bit signed integer to the stream already attached to the formatter.
+ The value to write.
+ The name of the member.
+
+
+ When overridden in a derived class, writes a single-precision floating-point number to the stream already attached to the formatter.
+ The value to write.
+ The name of the member.
+
+
+ When overridden in a derived class, writes a value to the stream already attached to the formatter.
+ The value to write.
+ The name of the member.
+
+
+ When overridden in a derived class, writes a 16-bit unsigned integer to the stream already attached to the formatter.
+ The value to write.
+ The name of the member.
+
+
+ When overridden in a derived class, writes a 32-bit unsigned integer to the stream already attached to the formatter.
+ The value to write.
+ The name of the member.
+
+
+ When overridden in a derived class, writes a 64-bit unsigned integer to the stream already attached to the formatter.
+ The value to write.
+ The name of the member.
+
+
+ When overridden in a derived class, writes a value of the given type to the stream already attached to the formatter.
+ The object representing the value type.
+ The name of the member.
+ The of the value type.
+
+
+ When overridden in a derived class, gets or sets the used with the current formatter.
+ The used with the current formatter.
+
+
+ When overridden in a derived class, gets or sets the used for the current serialization.
+ The used for the current serialization.
+
+
+ When overridden in a derived class, gets or sets the used with the current formatter.
+ The used with the current formatter.
+
+
+ Represents a base implementation of the interface that uses the class and the interface.
+
+
+ Initializes a new instance of the class.
+
+
+ Converts a value to the given .
+ The object to convert.
+ The into which is converted.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts a value to the given .
+ The object to convert.
+ The into which is converted.
+ The parameter is .
+ The converted , or if the parameter is .
+
+
+ Converts a value to a .
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts a value to an 8-bit unsigned integer.
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts a value to a Unicode character.
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts a value to a .
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts a value to a .
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts a value to a double-precision floating-point number.
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts a value to a 16-bit signed integer.
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts a value to a 32-bit signed integer.
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts a value to a 64-bit signed integer.
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts a value to a .
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts a value to a single-precision floating-point number.
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts the specified object to a .
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts a value to a 16-bit unsigned integer.
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts a value to a 32-bit unsigned integer.
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Converts a value to a 64-bit unsigned integer.
+ The object to convert.
+ The parameter is .
+ The converted or if the parameter is .
+
+
+ Serializes and deserializes an object, or an entire graph of connected objects, in binary format.
+
+
+ Initializes a new instance of the class with default values.
+
+
+ Initializes a new instance of the class with a given surrogate selector and streaming context.
+ The to use. Can be .
+ The source and destination for the serialized data.
+
+
+ Deserializes the specified stream into an object graph.
+ The stream from which to deserialize the object graph.
+ The is .
+ The supports seeking, but its length is 0.
+
+ -or-
+
+The input stream does not represent a well-formed serialized payload.
+
+-or-
+
+An error occurred while deserializing an object from the input stream.
+
+The property may contain more information about the root cause.
+ The caller does not have the required permission.
+ ASP.NET Core 5 and later: Always thrown unless functionality is re-enabled in the project file. For more information, see Resolving BinaryFormatter obsoletion and disablement errors.
+ The top (root) of the object graph.
+
+
+ Serializes the object, or graph of objects with the specified top (root), to the given stream.
+ The stream to which the graph is to be serialized.
+ The object at the root of the graph to serialize.
+ The is .
+
+ -or-
+
+ The is null.
+ An error has occurred during serialization, such as if an object in the parameter is not marked as serializable.
+ The caller does not have the required permission.
+ ASP.NET Core 5 and later: Always thrown unless functionality is re-enabled in the project file. For more information, see Resolving BinaryFormatter obsoletion and disablement errors.
+
+
+ Gets or sets the behavior of the deserializer with regards to finding and loading assemblies.
+ One of the values that specifies the deserializer behavior.
+
+
+ (Insecure) Gets or sets an object of type that controls the binding of a serialized object to a type.
+ The serialization binder to use with this formatter.
+
+
+ Gets or sets the for this formatter.
+ The streaming context to use with this formatter.
+
+
+ Gets or sets the of automatic deserialization the performs.
+ The that represents the current automatic deserialization level.
+
+
+ Gets or sets a that controls type substitution during serialization and deserialization.
+ The surrogate selector to use with this formatter.
+
+
+ Gets or sets the format in which type descriptions are laid out in the serialized stream.
+ The style of type layouts to use.
+
+
+ Indicates the method that will be used during deserialization for locating and loading assemblies.
+
+
+ In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The method of the class is used to load the assembly.
+
+
+ In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the method is used to load the assembly.
+
+
+ Indicates the format in which type descriptions are laid out in the serialized stream.
+
+
+ Indicates that types can be given to all object members and object members.
+
+
+ Indicates that types can be stated only for arrays of objects, object members of type , and non-primitive value types.
+
+
+ Indicates that strings can be given in the XSD format rather than SOAP. No string IDs are transmitted.
+
+
+ Allows access to field names and field types of objects that support the interface.
+
+
+ Gets or sets the field names of serialized objects.
+ The caller does not have the required permission.
+ The field names of serialized objects.
+
+
+ Gets or sets the field types of the serialized objects.
+ The caller does not have the required permission.
+ The field types of the serialized objects.
+
+
+ Specifies the level of automatic deserialization for .NET Framework remoting.
+
+
+ The full deserialization level for .NET Framework remoting. It supports all types that remoting supports in all situations.
+
+
+ The low deserialization level for .NET Framework remoting. It supports types associated with basic remoting functionality.
+
+
+ Provides static methods to aid with the implementation of a for serialization. This class cannot be inherited.
+
+
+ Determines whether the specified can be deserialized with the property set to .
+ The to check for the ability to deserialize.
+ The property value.
+ The parameter is an advanced type and cannot be deserialized when the property is set to .
+
+
+ Extracts the data from the specified object and returns it as an array of objects.
+ The object to write to the formatter.
+ The members to extract from the object.
+ The or parameter is .
+
+ An element of is .
+ An element of does not represent a field.
+ An array of that contains data stored in and associated with .
+
+
+ Creates a new instance of the specified object type.
+ The type of object to create.
+ The parameter is .
+ The parameter is not a valid common language runtime type.
+ The caller does not have the required permission.
+ A zeroed object of the specified type.
+
+
+ Gets all the serializable members for a class of the specified .
+ The type being serialized.
+ The parameter is .
+ The caller does not have the required permission.
+ An array of type of the non-transient, non-static members.
+
+
+ Gets all the serializable members for a class of the specified and in the provided .
+ The type being serialized or cloned.
+ The context where the serialization occurs.
+ The parameter is .
+ The caller does not have the required permission.
+ An array of type of the non-transient, non-static members.
+
+
+ Returns a serialization surrogate for the specified .
+ The specified surrogate.
+ An for the specified .
+
+
+ Looks up the of the specified object in the provided .
+ The assembly where you want to look up the object.
+ The name of the object.
+ The parameter is .
+ The caller does not have the required permission.
+ The of the named object.
+
+
+ Creates a new instance of the specified object type.
+ The type of object to create.
+ The parameter is .
+ The caller does not have the required permission.
+ A zeroed object of the specified type.
+
+
+ Populates the specified object with values for each field drawn from the data array of objects.
+ The object to populate.
+ An array of that describes which fields and properties to populate.
+ An array of that specifies the values for each field and property to populate.
+ The , , or parameter is .
+
+ An element of is .
+ The length of does not match the length of .
+ An element of is not an instance of .
+ The caller does not have the required permission.
+ The newly populated object.
+
+
+ Provides functionality for formatting serialized objects.
+
+
+ Deserializes the data on the provided stream and reconstitutes the graph of objects.
+ The stream that contains the data to deserialize.
+ The top object of the deserialized graph.
+
+
+ Serializes an object, or graph of objects with the given root to the provided stream.
+ The stream where the formatter puts the serialized data. This stream can reference a variety of backing stores (such as files, network, memory, and so on).
+ The object, or root of the object graph, to serialize. All child objects of this root object are automatically serialized.
+
+
+ Gets or sets the that performs type lookups during deserialization.
+ The that performs type lookups during deserialization.
+
+
+ Gets or sets the used for serialization and deserialization.
+ The used for serialization and deserialization.
+
+
+ Gets or sets the used by the current formatter.
+ The used by this formatter.
+
+
+ Implements a serialization surrogate selector that allows one object to perform serialization and deserialization of another.
+
+
+ Populates the provided with the data needed to serialize the object.
+ The object to serialize.
+ The to populate with data.
+ The destination (see ) for this serialization.
+ The caller does not have the required permission.
+
+
+ Populates the object using the information in the .
+ The object to populate.
+ The information to populate the object.
+ The source from which the object is deserialized.
+ The surrogate selector where the search for a compatible surrogate begins.
+ The caller does not have the required permission.
+ The populated deserialized object.
+
+
+ Indicates a serialization surrogate selector class.
+
+
+ Specifies the next for surrogates to examine if the current instance does not have a surrogate for the specified type and assembly in the specified context.
+ The next surrogate selector to examine.
+ The caller does not have the required permission.
+
+
+ Returns the next surrogate selector in the chain.
+ The caller does not have the required permission.
+ The next surrogate selector in the chain or .
+
+
+ Finds the surrogate that represents the specified object's type, starting with the specified surrogate selector for the specified serialization context.
+ The of object (class) that needs a surrogate.
+ The source or destination context for the current serialization.
+ When this method returns, contains a that holds a reference to the surrogate selector where the appropriate surrogate was found. This parameter is passed uninitialized.
+ The caller does not have the required permission.
+ The appropriate surrogate for the given type in the given context.
+
+
+ Generates IDs for objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns the ID for the specified object, generating a new ID if the specified object has not already been identified by the .
+ The object you want an ID for.
+
+ if was not previously known to the ; otherwise, .
+ The parameter is .
+ The has been asked to keep track of too many objects.
+ The object's ID is used for serialization. is set to if this is the first time the object has been identified; otherwise, it is set to .
+
+
+ Determines whether an object has already been assigned an ID.
+ The object you are asking for.
+
+ if was not previously known to the ; otherwise, .
+ The parameter is .
+ The object ID of if previously known to the ; otherwise, zero.
+
+
+ Keeps track of objects as they are deserialized.
+
+
+ Initializes a new instance of the class.
+ The surrogate selector to use. The determines the correct surrogate to use when deserializing objects of a given type. At deserialization time, the surrogate selector creates a new instance of the object from the information transmitted on the stream.
+ The streaming context. The is not used by , but is passed as a parameter to any objects implementing or having a . These objects can take specific actions depending on the source of the information to deserialize.
+ The caller does not have the required permission.
+
+
+ Performs all the recorded fixups.
+ A fixup was not successfully completed.
+
+
+ Returns the object with the specified object ID.
+ The ID of the requested object.
+ The parameter is less than or equal to zero.
+ The object with the specified object ID if it has been previously stored or if no such object has been registered.
+
+
+ Raises the deserialization event to any registered object that implements .
+
+
+ Invokes the method marked with the .
+ The instance of the type that contains the method to be invoked.
+
+
+ Records a fixup for one element in an array.
+ The ID of the array used to record a fixup.
+ The index within arrayFixup that a fixup is requested for.
+ The ID of the object that the current array element will point to after fixup is completed.
+ The or parameter is less than or equal to zero.
+ The parameter is .
+
+
+ Records fixups for the specified elements in an array, to be executed later.
+ The ID of the array used to record a fixup.
+ The indexes within the multidimensional array that a fixup is requested for.
+ The ID of the object the array elements will point to after fixup is completed.
+ The or parameter is less than or equal to zero.
+ The parameter is .
+
+
+ Records a fixup for an object member, to be executed later.
+ The ID of the object that needs the reference to .
+ The member name of where the fixup will be performed.
+ The ID of the object required by .
+
+ or parameter is less than or equal to zero.
+ The parameter is .
+
+
+ Records a fixup for a member of an object, to be executed later.
+ The ID of the object that needs the reference to the object.
+ The member of where the fixup will be performed.
+ The ID of the object required by .
+ The or parameter is less than or equal to zero.
+ The parameter is .
+
+
+ Registers an object as it is deserialized, associating it with .
+ The object to register.
+ The ID of the object to register.
+ The parameter is .
+ The parameter is less than or equal to zero.
+ The has already been registered for an object other than .
+
+
+ Registers an object as it is deserialized, associating it with , and recording the used with it.
+ The object to register.
+ The ID of the object to register.
+ The used if implements or has a . will be completed with any required fixup information and then passed to the required object when that object is completed.
+ The parameter is .
+ The parameter is less than or equal to zero.
+ The has already been registered for an object other than .
+
+
+ Registers a member of an object as it is deserialized, associating it with , and recording the .
+ The object to register.
+ The ID of the object to register.
+ The used if implements or has a . will be completed with any required fixup information and then passed to the required object when that object is completed.
+ The ID of the object that contains . This parameter is required only if is a value type.
+ The field in the containing object where exists. This parameter has meaning only if is a value type.
+ The parameter is .
+ The parameter is less than or equal to zero.
+ The has already been registered for an object other than , or is not a and is not .
+
+
+ Registers a member of an array contained in an object while it is deserialized, associating it with , and recording the .
+ The object to register.
+ The ID of the object to register.
+ The used if implements or has a . will be completed with any required fixup information and then passed to the required object when that object is completed.
+ The ID of the object that contains . This parameter is required only if is a value type.
+ The field in the containing object where exists. This parameter has meaning only if is a value type.
+ If is a and a member of an array, contains the index within that array where exists. is ignored if is not both a and a member of an array.
+ The parameter is .
+ The parameter is less than or equal to zero.
+ The has already been registered for an object other than , or is not a and isn't .
+
+
+ Allows users to control class loading and mandate what class to load.
+
+
+ Initializes a new instance of the class.
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+ The type of the object the formatter creates a new instance of.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+
+
+ When overridden in a derived class, controls the binding of a serialized object to a type.
+ Specifies the name of the serialized object.
+ Specifies the name of the serialized object.
+ The type of the object the formatter creates a new instance of.
+
+
+ Manages serialization processes at run time. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ An instance of the class that contains information about the current serialization operation.
+
+
+ Invokes the OnSerializing callback event if the type of the object has one; and registers the object for raising the OnSerialized event if the type of the object has one.
+
+
+ Registers the object upon which events will be raised.
+ The object to register.
+
+
+ Assists formatters in selection of the serialization surrogate to delegate the serialization or deserialization process to.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds a surrogate to the list of checked surrogates.
+ The for which the surrogate is required.
+ The context-specific data.
+ The surrogate to call for this type.
+ The or parameter is .
+ A surrogate already exists for this type and context.
+
+
+ Adds the specified that can handle a particular object type to the list of surrogates.
+ The surrogate selector to add.
+ The parameter is .
+ The selector is already on the list of selectors.
+ The caller does not have the required permission.
+
+
+ Returns the next selector on the chain of selectors.
+ The caller does not have the required permission.
+ The next on the chain of selectors.
+
+
+ Returns the surrogate for a particular type.
+ The for which the surrogate is requested.
+ The streaming context.
+ The surrogate to use.
+ The parameter is .
+ The caller does not have the required permission.
+ The surrogate for a particular type.
+
+
+ Removes the surrogate associated with a given type.
+ The for which to remove the surrogate.
+ The for the current surrogate.
+ The parameter is .
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.Json.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.Json.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8b0c60066d5c297716cd0c419005797cdd8cba29
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.Json.xml
@@ -0,0 +1,363 @@
+
+
+
+ System.Runtime.Serialization.Json
+
+
+
+ Specifies date-time format options.
+
+
+ Initializes a new instance of the class using the format string.
+ The format string.
+
+
+ Initializes a new instance of the class using the format string and format provider.
+ The format sting.
+ The format provider.
+
+
+ Gets or sets the formatting options that customize string parsing for some date and time parsing methods.
+ The formatting options that customize string parsing for some date and time parsing methods.
+
+
+ Gets an object that controls formatting.
+
+
+ Gets the format strings to control the formatting produced when a date or time is represented as a string.
+ The format strings to control the formatting produced when a date or time is represented as a string.
+
+
+ Specifies how often to emit type information.
+
+
+ Always to emit type information.
+
+
+ As needed emit type information.
+
+
+ Never to emit type information.
+
+
+ Serializes objects to the JavaScript Object Notation (JSON) and deserializes JSON data to objects. This class cannot be inherited.
+
+
+ Initializes a new instance of the class to serialize or deserialize an object of the specified type.
+ The type of the instances that is serialized or deserialized.
+
+
+ Initializes a new instance of the class to serialize or deserialize an object of the specified type, with a collection of known types that may be present in the object graph.
+ The type of the instances that are serialized or deserialized.
+ An of that contains the types that may be present in the object graph.
+
+
+ Initializes a new instance of the class to serialize or deserialize an object of the specified type and serializer settings.
+ The type of the instances that is serialized or deserialized.
+ The serializer settings for the JSON serializer.
+
+
+ Initializes a new instance of the class to serialize or deserialize an object of a specified type using the XML root element specified by a parameter.
+ The type of the instances that is serialized or deserialized.
+ The name of the XML element that encloses the content to serialize or deserialize.
+
+
+ Initializes a new instance of the class to serialize or deserialize an object of a specified type using the XML root element specified by a parameter, with a collection of known types that may be present in the object graph.
+ The type of the instances that is serialized or deserialized.
+ The name of the XML element that encloses the content to serialize or deserialize. The default is "root".
+ An of that contains the types that may be present in the object graph.
+
+
+ Initializes a new instance of the class to serialize or deserialize an object of a specified type using the XML root element specified by a parameter of type .
+ The type of the instances that is serialized or deserialized.
+ An that contains the root element name of the content.
+
+
+ Initializes a new instance of the class to serialize or deserialize an object of a specified type using the XML root element specified by a parameter of type , with a collection of known types that may be present in the object graph.
+ The type of the instances that is serialized or deserialized.
+ An that contains the root element name of the content.
+ An of that contains the types that may be present in the object graph.
+
+
+
+ Gets a value that specifies whether the is positioned over an XML element that represents an object the serializer can deserialize from.
+ The used to read the XML stream mapped from JSON.
+
+ if the reader is positioned correctly; otherwise, .
+
+
+ Determines whether the is positioned on an object that can be deserialized.
+ The used to read the XML stream.
+
+ if the reader is positioned correctly; otherwise, .
+
+
+ Reads a document stream in the JSON (JavaScript Object Notation) format and returns the deserialized object.
+ The to be read.
+ The deserialized object.
+
+
+ Reads the XML document mapped from JSON (JavaScript Object Notation) with an and returns the deserialized object.
+ An used to read the XML document mapped from JSON.
+ The deserialized object.
+
+
+ Reads the XML document mapped from JSON with an and returns the deserialized object; it also enables you to specify whether the serializer should verify that it is positioned on an appropriate element before attempting to deserialize.
+ An used to read the XML document mapped from JSON.
+
+ to check whether the enclosing XML element name and namespace correspond to the expected name and namespace; otherwise, to skip the verification. The default is .
+ The deserialized object.
+
+
+ Reads the XML document mapped from JSON (JavaScript Object Notation) with an and returns the deserialized object.
+ An used to read the XML document mapped from JSON.
+ The deserialized object.
+
+
+ Reads an XML document mapped from JSON with an and returns the deserialized object; it also enables you to specify whether the serializer should verify that it is positioned on an appropriate element before attempting to deserialize.
+ An used to read the XML document mapped from JSON.
+
+ to check whether the enclosing XML element name and namespace correspond to the expected name and namespace; otherwise, , which skips the verification. The default is .
+ The deserialized object.
+
+
+
+
+
+ Writes the closing XML element to an XML document, using an , which can be mapped to JavaScript Object Notation (JSON).
+ An used to write the XML document to map to JSON.
+
+
+ Writes the closing XML element to an XML document, using an , which can be mapped to JavaScript Object Notation (JSON).
+ An used to write the XML document mapped to JSON.
+
+
+ Serializes a specified object to JavaScript Object Notation (JSON) data and writes the resulting JSON to a stream.
+ The that is written to.
+ The object that contains the data to write to the stream.
+ The type being serialized does not conform to data contract rules. For example, the attribute has not been applied to the type.
+ There is a problem with the instance being written.
+ The maximum number of objects to serialize has been exceeded. Check the property.
+
+
+ Serializes an object to XML that may be mapped to JavaScript Object Notation (JSON). Writes all the object data, including the starting XML element, content, and closing element, with an .
+ The used to write the XML document or stream to map to JSON.
+ The object that contains the data to write.
+ The type being serialized does not conform to data contract rules. For example, the attribute has not been applied to the type.
+ There is a problem with the instance being written.
+ The maximum number of objects to serialize has been exceeded. Check the property.
+
+
+ Serializes an object to XML that may be mapped to JavaScript Object Notation (JSON). Writes all the object data, including the starting XML element, content, and closing element, with an .
+ The used to write the XML document to map to JSON.
+ The object that contains the data to write.
+ The type being serialized does not conform to data contract rules. For example, the attribute has not been applied to the type.
+ There is a problem with the instance being written.
+ The maximum number of objects to serialize has been exceeded. Check the property.
+
+
+ Writes the XML content that can be mapped to JavaScript Object Notation (JSON) using an .
+ The to write to.
+ The object to write.
+ The type being serialized does not conform to data contract rules. For example, the attribute has not been applied to the type.
+ There is a problem with the instance being written.
+ The maximum number of objects to serialize has been exceeded. Check the property.
+
+
+ Writes the XML content that can be mapped to JavaScript Object Notation (JSON) using an .
+ The used to write to.
+ The object to write.
+ The type being serialized does not conform to data contract rules. For example, the attribute has not been applied to the type.
+ There is a problem with the instance being written.
+ The maximum number of objects to serialize has been exceeded. Check the property.
+
+
+ Writes the opening XML element for serializing an object to XML that can be mapped to JavaScript Object Notation (JSON) using an .
+ The used to write the XML start element.
+ The object to write.
+
+
+ Writes the opening XML element for serializing an object to XML that can be mapped to JavaScript Object Notation (JSON) using an .
+ The used to write the XML start element.
+ The object to write.
+
+
+ Gets the format of the date and time type items in object graph.
+ The format of the date and time type items in object graph.
+
+
+ Gets or sets the data contract JSON serializer settings to emit type information.
+ The data contract JSON serializer settings to emit type information.
+
+
+ Gets a value that specifies whether unknown data is ignored on deserialization and whether the interface is ignored on serialization.
+
+ to ignore unknown data and ; otherwise, .
+
+
+ Gets a collection of types that may be present in the object graph serialized using this instance of the .
+ A that contains the expected types passed in as known types to the constructor.
+
+
+ Gets the maximum number of items in an object graph that the serializer serializes or deserializes in one read or write call.
+ The number of items exceeds the maximum value.
+ The maximum number of items to serialize or deserialize.
+
+
+ Gets or sets a value that specifies whether to serialize read only types.
+
+ to serialize read only types; otherwise .
+
+
+ Gets a value that specifies whether to use a simple dictionary format.
+
+ to use a simple dictionary format; otherwise, .
+
+
+ Specifies settings.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a DateTimeFormat that defines the culturally appropriate format of displaying dates and times.
+ The DateTimeFormat that defines the culturally appropriate format of displaying dates and times.
+
+
+ Gets or sets the data contract JSON serializer settings to emit type information.
+ The data contract JSON serializer settings to emit type information.
+
+
+ Gets or sets a value that specifies whether to ignore data supplied by an extension of the class when the class is being serialized or deserialized.
+
+ to ignore data supplied by an extension of the class when the class is being serialized or deserialized; otherwise, .
+
+
+ Gets or sets a collection of types that may be present in the object graph serialized using this instance the DataContractJsonSerializerSettings.
+ A collection of types that may be present in the object graph serialized using this instance the DataContractJsonSerializerSettings.
+
+
+ Gets or sets the maximum number of items in an object graph to serialize or deserialize.
+ The maximum number of items in an object graph to serialize or deserialize.
+
+
+ Gets or sets the root name of the selected object.
+ The root name of the selected object.
+
+
+ Gets or sets a value that specifies whether to serialize read only types.
+
+ to serialize read only types; otherwise .
+
+
+ Gets or sets a value that specifies whether to use a simple dictionary format.
+
+ to use a simple dictionary format; otherwise, .
+
+
+ Specifies the interface for initializing a JavaScript Object Notation (JSON) reader when reusing them to read from a particular stream or buffer.
+
+
+ Reinitializes a JavaScript Object Notation (JSON) enabled reader to a specified buffer that contains JSON-encoded data.
+ The input buffer array from which to read.
+ The starting position from which to read in .
+ The number of bytes that can be read from .
+ The used by the reader.
+ The to apply.
+ The delegate to call when the reader is closed.
+
+
+ Reinitializes a JavaScript Object Notation (JSON) enabled reader to a specified stream that contains JSON-encoded data.
+ The input from which to read.
+ The used by the reader.
+
+ to apply.
+ Delegate to call when the reader is closed.
+
+
+ Specifies the interface for initializing a JavaScript Object Notation (JSON) writer when reusing them to write to a particular output stream.
+
+
+ Initializes (or reinitializes) a JavaScript Object Notation (JSON) writer to a specified output stream with specified character encoding.
+ The output to which the writer writes.
+ The that specifies the character encoding of the output stream.
+ If , the output stream is closed by the writer when done; otherwise .
+
+
+ Produces instances of that can read data encoded with JavaScript Object Notation (JSON) from a stream or buffer and map it to an XML Infoset and instances of that can map an XML Infoset to JSON and write JSON-encoded data to a stream.
+
+
+ Creates an that can map buffers encoded with JavaScript Object Notation (JSON), with a specified size and offset and character encoding, to an XML Infoset.
+ The input buffer array from which to read.
+ Starting position from which to read in .
+ Number of bytes that can be read from .
+ The that specifies the character encoding used by the reader. If is specified as the value, the reader attempts to auto-detect the encoding.
+ The used to prevent Denial of Service attacks when reading untrusted data.
+ The delegate to call when the reader is closed. The default value is .
+ An that can read JavaScript Object Notation (JSON).
+
+
+ Creates an that can map buffers encoded with JavaScript Object Notation (JSON), of a specified size and offset, to an XML Infoset.
+ The input buffer array from which to read.
+ Starting position from which to read in .
+ Number of bytes that can be read from .
+ The used to prevent Denial of Service attacks when reading untrusted data.
+ An that can read JavaScript Object Notation (JSON).
+
+
+ Creates an that can map buffers encoded with JavaScript Object Notation (JSON) to an XML Infoset.
+ The input buffer array from which to read.
+ The used to prevent Denial of Service attacks when reading untrusted data.
+ An that can process JavaScript Object Notation (JSON) data.
+
+
+ Creates an that can map streams encoded with JavaScript Object Notation (JSON), of a specified size and offset, to an XML Infoset.
+ The input from which to read.
+ The that specifies the character encoding used by the reader. If is specified as the value, the reader attempts to auto-detect the encoding.
+ The used to prevent Denial of Service attacks when reading untrusted data.
+ The delegate to call when the reader is closed.
+ An that can read JavaScript Object Notation (JSON).
+
+
+ Creates an that can map streams encoded with JavaScript Object Notation (JSON) to an XML Infoset.
+ The input from which to read.
+ The used to prevent Denial of Service attacks when reading untrusted data.
+ An that can read JavaScript Object Notation (JSON).
+
+
+ Creates an that writes data encoded with JSON to a stream.
+ The output for the JSON writer.
+ An that writes data encoded with JSON to the stream based on an XML Infoset.
+
+
+ Creates an that writes data encoded with JSON to a stream with a specified character encoding.
+ The output for the JSON writer.
+ The that specifies the character encoding used by the writer. The default encoding is UTF-8.
+ An that writes data encoded with JSON to the stream based on an XML Infoset.
+
+
+ Creates an that writes data encoded with JSON to a stream with a specified character encoding.
+ The output for the JSON writer.
+ The that specifies the character encoding used by the writer. The default encoding is UTF-8.
+ If , the output stream is closed by the writer when done; otherwise . The default value is .
+ An that writes data encoded with JSON to the stream based on an XML Infoset.
+
+
+ Creates an that writes data encoded with JSON to a stream with a specified character.
+ The output for the JSON writer.
+ The that specifies the character encoding used by the writer. The default encoding is UTF-8.
+ If , the output stream is closed by the writer when done; otherwise . The default value is .
+ If , the output uses multiline format, indenting each level properly; otherwise, .
+ An that writes data encoded with JSON to the stream based on an XML Infoset.
+
+
+ Creates an that writes data encoded with JSON to a stream with a specified character.
+ The output for the JSON writer.
+ The that specifies the character encoding used by the writer. The default encoding is UTF-8.
+ If , the output stream is closed by the writer when done; otherwise . The default value is .
+ If , the output uses multiline format, indenting each level properly; otherwise, .
+ The string used to indent each level.
+ An that writes data encoded with JSON to the stream based on an XML Infoset.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.Primitives.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.Primitives.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9583992906a74326fed356d287d0df2466d11d98
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.Primitives.xml
@@ -0,0 +1,254 @@
+
+
+
+ System.Runtime.Serialization.Primitives
+
+
+
+ When applied to a collection type, enables custom specification of the collection item elements. This attribute can be applied only to types that are recognized by the as valid, serializable collections.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets whether has been explicitly set.
+
+ if the item name has been explicitly set; otherwise, .
+
+
+ Gets whether has been explicitly set.
+
+ if the key name has been explicitly set; otherwise, .
+
+
+ Gets whether has been explicitly set.
+
+ if the name has been explicitly set; otherwise, .
+
+
+ Gets whether has been explicitly set.
+
+ if the item namespace has been explicitly set; otherwise, .
+
+
+ Gets or sets a value that indicates whether to preserve object reference data.
+
+ to keep object reference data; otherwise, . The default is .
+
+
+ Gets whether reference has been explicitly set.
+
+ if the reference has been explicitly set; otherwise, .
+
+
+ Gets whether has been explicitly set.
+
+ if the value name has been explicitly set; otherwise, .
+
+
+ Gets or sets a custom name for a collection element.
+ The name to apply to collection elements.
+
+
+ Gets or sets the custom name for a dictionary key name.
+ The name to use instead of the default dictionary key name.
+
+
+ Gets or sets the data contract name for the collection type.
+ The data contract name for the collection type.
+
+
+ Gets or sets the namespace for the data contract.
+ The namespace of the data contract.
+
+
+ Gets or sets the custom name for a dictionary value name.
+ The name to use instead of the default dictionary value name.
+
+
+ Specifies the CLR namespace and XML namespace of the data contract.
+
+
+ Initializes a new instance of the class using the supplied namespace.
+ The namespace of the contract.
+
+
+ Gets or sets the CLR namespace of the data contract type.
+ The CLR-legal namespace of a type.
+
+
+ Gets the namespace of the data contract members.
+ The namespace of the data contract members.
+
+
+ Specifies that the type defines or implements a data contract and is serializable by a serializer, such as the . To make their type serializable, type authors must define a data contract for their type.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets whether has been explicitly set.
+
+ if the name has been explicitly set; otherwise, .
+
+
+ Gets whether has been explicitly set.
+
+ if the namespace has been explicitly set; otherwise, .
+
+
+ Gets or sets a value that indicates whether to preserve object reference data.
+
+ to keep object reference data using standard XML; otherwise, . The default is .
+
+
+ Gets whether has been explicitly set.
+
+ if the reference has been explicitly set; otherwise, .
+
+
+ Gets or sets the name of the data contract for the type.
+ The local name of a data contract. The default is the name of the class that the attribute is applied to.
+
+
+ Gets or sets the namespace for the data contract for the type.
+ The namespace of the contract.
+
+
+ When applied to the member of a type, specifies that the member is part of a data contract and is serializable by the .
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value that specifies whether to serialize the default value for a field or property being serialized.
+
+ if the default value for a member should be generated in the serialization stream; otherwise, . The default is .
+
+
+ Gets whether has been explicitly set.
+
+ if the name has been explicitly set; otherwise, .
+
+
+ Gets or sets a value that instructs the serialization engine that the member must be present when reading or deserializing.
+ the member is not present.
+
+ , if the member is required; otherwise, .
+
+
+ Gets or sets a data member name.
+ The name of the data member. The default is the name of the target that the attribute is applied to.
+
+
+ Gets or sets the order of serialization and deserialization of a member.
+ The numeric order of serialization or deserialization.
+
+
+ Specifies that the field is an enumeration member and should be serialized.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets whether the has been explicitly set.
+
+ if the value has been explicitly set; otherwise, .
+
+
+ Gets or sets the value associated with the enumeration member the attribute is applied to.
+ The value associated with the enumeration member.
+
+
+ When applied to the member of a type, specifies that the member is not part of a data contract and is not serialized.
+
+
+ Initializes a new instance of the class.
+
+
+ The exception that is thrown when the or encounters an invalid data contract during serialization and deserialization.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified and .
+ A that contains data needed to serialize and deserialize an object.
+ A that specifies user context during serialization and deserialization.
+
+
+ Initializes a new instance of the class with the specified error message.
+ A description of the error.
+
+
+ Initializes a new instance of the class with the specified error message and inner exception.
+ A description of the error.
+ The original .
+
+
+ Provides the methods needed to construct a serialization surrogate that extends the . A serialization surrogate is used during serialization and deserialization to substitute one type for another.
+
+
+ During deserialization, returns an object that is a substitute for the specified object.
+ The deserialized object to be substituted.
+ The that the substituted object should be assigned to.
+ The substituted deserialized object.
+
+
+ During serialization, returns an object that substitutes the specified object.
+ The object to substitute.
+ The that the substituted object should be assigned to.
+ The substituted object that will be serialized.
+
+
+ During serialization, deserialization, and schema import and export, returns a data contract type that substitutes the specified type.
+ The type to substitute.
+ The to substitute for the value.
+
+
+ Provides the methods needed to substitute one type for another by DataContractSerializer during export and import of XML schema documents (XSD). This interface builds upon .
+
+
+ During schema export operations, inserts annotations into the schema for non- return values.
+ A that describes the member.
+ The data contract type to be annotated.
+ An object that represents the annotation to be inserted into the XML schema definition.
+
+
+ During schema export operations, inserts annotations into the schema for non- return values.
+ The runtime type to be replaced.
+ The data contract type to be annotated.
+ An object that represents the annotation to be inserted into the XML schema definition.
+
+
+ Sets the collection of known types to use for serialization and deserialization of the custom data objects.
+ A collection of instances to add known types to.
+
+
+ During schema import, returns the type referenced by the schema.
+ The name of the type in the schema.
+ The namespace of the type in the schema.
+ The object that represents the annotation inserted into the XML schema definition, which is data that can be used for finding the referenced type.
+ The to use for the referenced type.
+
+
+ Specifies types that should be recognized by the when serializing or deserializing a given type.
+
+
+ Initializes a new instance of the class with the name of a method that returns an of known types.
+ The name of the method that returns an of types used when serializing or deserializing data.
+
+
+ Initializes a new instance of the class with the specified type.
+ The that is included as a known type when serializing or deserializing data.
+
+
+ Gets the name of a method that will return a list of types that should be recognized during serialization or deserialization.
+ A that contains the name of the method on the type defined by the class.
+
+
+ Gets the type that should be recognized during serialization or deserialization by the .
+ The that is used during serialization or deserialization.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.Xml.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.Xml.dll
new file mode 100644
index 0000000000000000000000000000000000000000..61695f66dcc9b9d1b5c5056e5827b494dd25ed33
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.Xml.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.dll
new file mode 100644
index 0000000000000000000000000000000000000000..21c93dab02588333ea67a4813c24e444ca6c8731
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Runtime.Serialization.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.AccessControl.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.AccessControl.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6b02089ea31a567fc4134261b55d7f4e29ffdc68
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.AccessControl.xml
@@ -0,0 +1,2185 @@
+
+
+
+ System.Security.AccessControl
+
+
+
+ Specifies the actions that are permitted for securable objects.
+
+
+ Specifies write-only access.
+
+
+ Specifies no access.
+
+
+ Specifies read-only access.
+
+
+ Specifies the type of access control modification to perform. This enumeration is used by methods of the class and its descendants.
+
+
+ Add the specified authorization rule to the access control list (ACL).
+
+
+ Remove authorization rules that contain the same security identifier (SID) and access mask as the specified authorization rule from the ACL.
+
+
+ Remove authorization rules that contain the same SID as the specified authorization rule from the ACL.
+
+
+ Remove authorization rules that exactly match the specified authorization rule from the ACL.
+
+
+ Remove authorization rules that contain the same SID as the specified authorization rule from the ACL, and then add the specified authorization rule to the ACL.
+
+
+ Remove all authorization rules from the ACL, then add the specified authorization rule to the ACL.
+
+
+ Specifies which sections of a security descriptor to save or load.
+
+
+ The discretionary access control list (DACL).
+
+
+ The entire security descriptor.
+
+
+ The system access control list (SACL).
+
+
+ The primary group.
+
+
+ No sections.
+
+
+ The owner.
+
+
+ Specifies whether an object is used to allow or deny access. These values are not flags, and they cannot be combined.
+
+
+ The object is used to allow access to a secured object.
+
+
+ The object is used to deny access to a secured object.
+
+
+ Represents a combination of a user's identity, an access mask, and an access control type (allow or deny). An object also contains information about how the rule is inherited by child objects and how that inheritance is propagated.
+
+
+ Initializes a new instance of the class by using the specified values.
+ The identity to which the access rule applies. This parameter must be an object that can be cast as a .
+ The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.
+
+ if this rule is inherited from a parent container.
+ The inheritance properties of the access rule.
+ Whether inherited access rules are automatically propagated. The propagation flags are ignored if is set to .
+ The valid access control type.
+ The value of the parameter cannot be cast as a , or the parameter contains an invalid value.
+ The value of the parameter is zero, or the or parameters contain unrecognized flag values.
+
+
+ Gets the value associated with this object.
+ The value associated with this object.
+
+
+ Represents a combination of a user's identity, an access mask, and an access control type (allow or deny). An AccessRule`1 object also contains information about the how the rule is inherited by child objects and how that inheritance is propagated.
+ The access rights type for the access rule.
+
+
+ Initializes a new instance of the AccessRule'1 class by using the specified values.
+ The identity to which the access rule applies.
+ The rights of the access rule.
+ The valid access control type.
+
+
+ Initializes a new instance of the AccessRule'1 class by using the specified values.
+ The identity to which the access rule applies.
+ The rights of the access rule.
+ The inheritance properties of the access rule.
+ Whether inherited access rules are automatically propagated. The propagation flags are ignored if is set to .
+ The valid access control type.
+
+
+ Initializes a new instance of the AccessRule'1 class by using the specified values.
+ The identity to which the access rule applies.
+ The rights of the access rule.
+ The valid access control type.
+
+
+ Initializes a new instance of the AccessRule'1 class by using the specified values.
+ The identity to which the access rule applies.
+ The rights of the access rule.
+ The inheritance properties of the access rule.
+ Whether inherited access rules are automatically propagated. The propagation flags are ignored if is set to .
+ The valid access control type.
+
+
+ Gets the rights of the current instance.
+ The rights, cast as type <T>, of the current instance.
+
+
+ Provides the ability to iterate through the access control entries (ACEs) in an access control list (ACL).
+
+
+ Advances the enumerator to the next element of the collection.
+ The collection was modified after the enumerator was created.
+
+ if the enumerator was successfully advanced to the next element; if the enumerator has passed the end of the collection.
+
+
+ Sets the enumerator to its initial position, which is before the first element in the collection.
+ The collection was modified after the enumerator was created.
+
+
+ Gets the current element in the collection. This property gets the type-friendly version of the object.
+ The current element in the collection.
+
+
+ Gets the current element in the collection.
+ The collection was modified after the enumerator was created.
+ The current element in the collection.
+
+
+ Specifies the inheritance and auditing behavior of an access control entry (ACE).
+
+
+ All access attempts are audited.
+
+
+ The access mask is propagated to child container objects.
+
+
+ Failed access attempts are audited.
+
+
+ A logical of , , , and .
+
+
+ An ACE is inherited from a parent container rather than being explicitly set for an object.
+
+
+ The access mask is propagated only to child objects. This includes both container and leaf child objects.
+
+
+ No ACE flags are set.
+
+
+ The access checks do not apply to the object; they only apply to its children.
+
+
+ The access mask is propagated onto child leaf objects.
+
+
+ Successful access attempts are audited.
+
+
+ Specifies the function of an access control entry (ACE).
+
+
+ Allow access.
+
+
+ Deny access.
+
+
+ Cause a system alarm.
+
+
+ Cause a system audit.
+
+
+ Defines the available access control entry (ACE) types.
+
+
+ Allows access to an object for a specific trustee identified by an object.
+
+
+ Allows access to an object for a specific trustee identified by an object. This ACE type may contain optional callback data. The callback data is a resource manager-specific BLOB that is not interpreted.
+
+
+ Allows access to an object, property set, or property. The ACE contains a set of access rights, a GUID that identifies the type of object, and an object that identifies the trustee to whom the system will grant access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects. This ACE type may contain optional callback data. The callback data is a resource manager-specific BLOB that is not interpreted.
+
+
+ Defined but never used. Included here for completeness.
+
+
+ Allows access to an object, property set, or property. The ACE contains a set of access rights, a GUID that identifies the type of object, and an object that identifies the trustee to whom the system will grant access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects.
+
+
+ Denies access to an object for a specific trustee identified by an object.
+
+
+ Denies access to an object for a specific trustee identified by an object. This ACE type can contain optional callback data. The callback data is a resource manager-specific BLOB that is not interpreted.
+
+
+ Denies access to an object, property set, or property. The ACE contains a set of access rights, a GUID that identifies the type of object, and an object that identifies the trustee to whom the system will grant access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects. This ACE type can contain optional callback data. The callback data is a resource manager-specific BLOB that is not interpreted.
+
+
+ Denies access to an object, property set, or property. The ACE contains a set of access rights, a GUID that identifies the type of object, and an object that identifies the trustee to whom the system will grant access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects.
+
+
+ Tracks the maximum defined ACE type in the enumeration.
+
+
+ Reserved for future use.
+
+
+ Reserved for future use.
+
+
+ Reserved for future use.
+
+
+ Reserved for future use.
+
+
+ Causes an audit message to be logged when a specified trustee attempts to gain access to an object. The trustee is identified by an object.
+
+
+ Causes an audit message to be logged when a specified trustee attempts to gain access to an object. The trustee is identified by an object. This ACE type can contain optional callback data. The callback data is a resource manager-specific BLOB that is not interpreted.
+
+
+ Causes an audit message to be logged when a specified trustee attempts to gain access to an object or subobjects such as property sets or properties. The ACE contains a set of access rights, a GUID that identifies the type of object or subobject, and an object that identifies the trustee for whom the system will audit access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects. This ACE type can contain optional callback data. The callback data is a resource manager-specific BLOB that is not interpreted.
+
+
+ Causes an audit message to be logged when a specified trustee attempts to gain access to an object or subobjects such as property sets or properties. The ACE contains a set of access rights, a GUID that identifies the type of object or subobject, and an object that identifies the trustee for whom the system will audit access. The ACE also contains a GUID and a set of flags that control inheritance of the ACE by child objects.
+
+
+ Specifies the conditions for auditing attempts to access a securable object.
+
+
+ Failed access attempts are to be audited.
+
+
+ No access attempts are to be audited.
+
+
+ Successful access attempts are to be audited.
+
+
+ Represents a combination of a user's identity and an access mask. An object also contains information about how the rule is inherited by child objects, how that inheritance is propagated, and for what conditions it is audited.
+
+
+ Initializes a new instance of the class by using the specified values.
+ The identity to which the audit rule applies. It must be an object that can be cast as a .
+ The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.
+
+ to inherit this rule from a parent container.
+ The inheritance properties of the audit rule.
+ Whether inherited audit rules are automatically propagated. The propagation flags are ignored if is set to .
+ The conditions for which the rule is audited.
+ The value of the parameter cannot be cast as a , or the parameter contains an invalid value.
+ The value of the parameter is zero, or the or parameters contain unrecognized flag values.
+
+
+ Gets the audit flags for this audit rule.
+ A bitwise combination of the enumeration values. This combination specifies the audit conditions for this audit rule.
+
+
+ Represents a combination of a user's identity and an access mask.
+ The type of the audit rule.
+
+
+ Initializes a new instance of the class by using the specified values.
+ The identity to which this audit rule applies.
+ The rights of the audit rule.
+ The conditions for which the rule is audited.
+
+
+ Initializes a new instance of the class by using the specified values.
+ The identity to which the audit rule applies.
+ The rights of the audit rule.
+ The inheritance properties of the audit rule.
+ Whether inherited audit rules are automatically propagated.
+ The conditions for which the rule is audited.
+
+
+ Initializes a new instance of the class by using the specified values.
+ The identity to which the audit rule applies.
+ The rights of the audit rule.
+ The properties of the audit rule.
+
+
+ Initializes a new instance of the class by using the specified values.
+ The identity to which the audit rule applies.
+ The rights of the audit rule.
+ The inheritance properties of the audit rule.
+ Whether inherited audit rules are automatically propagated.
+ The conditions for which the rule is audited.
+
+
+ Gets the rights of the audit rule.
+ The rights of the audit rule.
+
+
+ Determines access to securable objects. The derived classes and offer specializations for access and audit functionality.
+
+
+ Initializes a new instance of the class by using the specified values.
+ The identity to which the access rule applies. This parameter must be an object that can be cast as a .
+ The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.
+
+ to inherit this rule from a parent container.
+ The inheritance properties of the access rule.
+ Whether inherited access rules are automatically propagated. The propagation flags are ignored if is set to .
+ The value of the parameter cannot be cast as a .
+ The value of the parameter is zero, or the or parameters contain unrecognized flag values.
+
+
+ Gets the access mask for this rule.
+ The access mask for this rule.
+
+
+ Gets the to which this rule applies.
+ The to which this rule applies.
+
+
+ Gets the value of flags that determine how this rule is inherited by child objects.
+ A bitwise combination of the enumeration values.
+
+
+ Gets a value indicating whether this rule is explicitly set or is inherited from a parent container object.
+
+ if this rule is not explicitly set but is instead inherited from a parent container.
+
+
+ Gets the value of the propagation flags, which determine how inheritance of this rule is propagated to child objects. This property is significant only when the value of the enumeration is not .
+ A bitwise combination of the enumeration values.
+
+
+ Represents a collection of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Adds an object to the collection.
+ The object to add to the collection.
+
+
+ Copies the contents of the collection to an array.
+ An array to which to copy the contents of the collection.
+ The zero-based index from which to begin copying.
+
+
+ Gets the object at the specified index of the collection.
+ The zero-based index of the object to get.
+ The object at the specified index.
+
+
+ Represents an access control entry (ACE).
+
+
+ Initializes a new instance of the class.
+ Flags that specify information about the inheritance, inheritance propagation, and auditing conditions for the new access control entry (ACE).
+ The use of the new ACE.
+ The access mask for the ACE.
+ The associated with the new ACE.
+
+ to specify that the new ACE is a callback type ACE.
+ Opaque data associated with the new ACE. Opaque data is allowed only for callback ACE types. The length of this array must not be greater than the return value of the method.
+
+
+ Marshals the contents of the object into the specified byte array beginning at the specified offset.
+ The byte array into which the contents of the object is marshaled.
+ The offset at which to start marshaling.
+
+ is negative or too high to allow the entire to be copied into the array.
+
+
+ Gets the maximum allowed length of an opaque data BLOB for callback access control entries (ACEs).
+
+ to specify that the object is a callback ACE type.
+ The allowed length of an opaque data BLOB.
+
+
+ Gets the length, in bytes, of the binary representation of the current object. Use this length with the method before marshaling the ACL into a binary array.
+ The length, in bytes, of the binary representation of the current object.
+
+
+ Represents an access control list (ACL) and is the base class for the and classes.
+
+
+ Marshals the contents of the object into the specified byte array beginning at the specified offset.
+ The byte array into which the contents of the is marshaled.
+ The offset at which to start marshaling.
+
+
+ Removes all access control entries (ACEs) contained by this object that are associated with the specified object.
+ The object to check for.
+
+
+ Removes all inherited access control entries (ACEs) from this object.
+
+
+ Gets the length, in bytes, of the binary representation of the current object. This length should be used before marshaling the access control list (ACL) into a binary array by using the method.
+ The length, in bytes, of the binary representation of the current object.
+
+
+ Gets the number of access control entries (ACEs) in the current object.
+ The number of ACEs in the current object.
+
+
+ Gets a Boolean value that specifies whether the access control entries (ACEs) in the current object are in canonical order.
+
+ if the ACEs in the current object are in canonical order; otherwise, .
+
+
+ Sets whether the object is a container.
+
+ if the current object is a container.
+
+
+ Sets whether the current object is a directory object access control list (ACL).
+
+ if the current object is a directory object ACL.
+
+
+ Gets or sets the at the specified index.
+ The zero-based index of the to get or set.
+ The at the specified index.
+
+
+ Gets the revision level of the .
+ A byte value that specifies the revision level of the .
+
+
+ Controls access to objects without direct manipulation of access control lists (ACLs). This class is the abstract base class for the class.
+
+
+ Initializes a new instance of the class.
+
+ if the new object is a container object.
+
+
+ Adds the specified access rule to the Discretionary Access Control List (DACL) associated with this object.
+ The access rule to add.
+
+
+ Adds the specified audit rule to the System Access Control List (SACL) associated with this object.
+ The audit rule to add.
+
+
+ Gets a collection of the access rules associated with the specified security identifier.
+
+ to include access rules explicitly set for the object.
+
+ to include inherited access rules.
+ Specifies whether the security identifier for which to retrieve access rules is of type or type . The value of this parameter must be a type that can be translated to the type.
+ The collection of access rules associated with the specified object.
+
+
+ Gets a collection of the audit rules associated with the specified security identifier.
+
+ to include audit rules explicitly set for the object.
+
+ to include inherited audit rules.
+ The security identifier for which to retrieve audit rules. This must be an object that can be cast as a object.
+ The collection of audit rules associated with the specified object.
+
+
+ Applies the specified modification to the Discretionary Access Control List (DACL) associated with this object.
+ The modification to apply to the DACL.
+ The access rule to modify.
+
+ if the DACL is successfully modified; otherwise, .
+
+ if the DACL is successfully modified; otherwise, .
+
+
+ Applies the specified modification to the System Access Control List (SACL) associated with this object.
+ The modification to apply to the SACL.
+ The audit rule to modify.
+
+ if the SACL is successfully modified; otherwise, .
+
+ if the SACL is successfully modified; otherwise, .
+
+
+ Removes access rules that contain the same security identifier and access mask as the specified access rule from the Discretionary Access Control List (DACL) associated with this object.
+ The access rule to remove.
+
+ if the access rule was successfully removed; otherwise, .
+
+
+ Removes all access rules that have the same security identifier as the specified access rule from the Discretionary Access Control List (DACL) associated with this object.
+ The access rule to remove.
+
+
+ Removes all access rules that exactly match the specified access rule from the Discretionary Access Control List (DACL) associated with this object.
+ The access rule to remove.
+
+
+ Removes audit rules that contain the same security identifier and access mask as the specified audit rule from the System Access Control List (SACL) associated with this object.
+ The audit rule to remove.
+
+ if the audit rule was successfully removed; otherwise, .
+
+
+ Removes all audit rules that have the same security identifier as the specified audit rule from the System Access Control List (SACL) associated with this object.
+ The audit rule to remove.
+
+
+ Removes all audit rules that exactly match the specified audit rule from the System Access Control List (SACL) associated with this object.
+ The audit rule to remove.
+
+
+ Removes all access rules in the Discretionary Access Control List (DACL) associated with this object and then adds the specified access rule.
+ The access rule to reset.
+
+
+ Removes all access rules that contain the same security identifier and qualifier as the specified access rule in the Discretionary Access Control List (DACL) associated with this object and then adds the specified access rule.
+ The access rule to set.
+
+
+ Removes all audit rules that contain the same security identifier and qualifier as the specified audit rule in the System Access Control List (SACL) associated with this object and then adds the specified audit rule.
+ The audit rule to set.
+
+
+ Represents a security descriptor. A security descriptor includes an owner, a primary group, a Discretionary Access Control List (DACL), and a System Access Control List (SACL).
+
+
+ Initializes a new instance of the class from the specified array of byte values.
+
+ if the new security descriptor is associated with a container object.
+
+ if the new security descriptor is associated with a directory object.
+ The array of byte values from which to create the new object.
+ The offset in the array at which to begin copying.
+
+
+ Initializes a new instance of the class from the specified information.
+
+ if the new security descriptor is associated with a container object.
+
+ if the new security descriptor is associated with a directory object.
+ Flags that specify behavior of the new object.
+ The owner for the new object.
+ The primary group for the new object.
+ The System Access Control List (SACL) for the new object.
+ The Discretionary Access Control List (DACL) for the new object.
+
+
+ Initializes a new instance of the class from the specified object.
+
+ if the new security descriptor is associated with a container object.
+
+ if the new security descriptor is associated with a directory object.
+ The object from which to create the new object.
+
+
+ Initializes a new instance of the class from the specified Security Descriptor Definition Language (SDDL) string.
+
+ if the new security descriptor is associated with a container object.
+
+ if the new security descriptor is associated with a directory object.
+ The SDDL string from which to create the new object.
+
+
+ Sets the property for this instance and sets the flag.
+ The revision level of the new object.
+ The number of Access Control Entries (ACEs) this object can contain. This number is to be used only as a hint.
+
+
+ Sets the property for this instance and sets the flag.
+ The revision level of the new object.
+ The number of Access Control Entries (ACEs) this object can contain. This number should only be used as a hint.
+
+
+ Removes all access rules for the specified security identifier from the Discretionary Access Control List (DACL) associated with this object.
+ The security identifier for which to remove access rules.
+
+
+ Removes all audit rules for the specified security identifier from the System Access Control List (SACL) associated with this object.
+ The security identifier for which to remove audit rules.
+
+
+ Sets the inheritance protection for the Discretionary Access Control List (DACL) associated with this object. DACLs that are protected do not inherit access rules from parent containers.
+
+ to protect the DACL from inheritance.
+
+ to keep inherited access rules in the DACL; to remove inherited access rules from the DACL.
+
+
+ Sets the inheritance protection for the System Access Control List (SACL) associated with this object. SACLs that are protected do not inherit audit rules from parent containers.
+
+ to protect the SACL from inheritance.
+
+ to keep inherited audit rules in the SACL; to remove inherited audit rules from the SACL.
+
+
+ Gets values that specify behavior of the object.
+ One or more values of the enumeration combined with a logical OR operation.
+
+
+ Gets or sets the discretionary access control list (DACL) for this object. The DACL contains access rules.
+ The DACL for this object.
+
+
+ Gets or sets the primary group for this object.
+ The primary group for this object.
+
+
+ Gets a Boolean value that specifies whether the object associated with this object is a container object.
+
+ if the object associated with this object is a container object; otherwise, .
+
+
+ Gets a Boolean value that specifies whether the Discretionary Access Control List (DACL) associated with this object is in canonical order.
+
+ if the DACL associated with this object is in canonical order; otherwise, .
+
+
+ Gets a Boolean value that specifies whether the object associated with this object is a directory object.
+
+ if the object associated with this object is a directory object; otherwise, .
+
+
+ Gets a Boolean value that specifies whether the System Access Control List (SACL) associated with this object is in canonical order.
+
+ if the SACL associated with this object is in canonical order; otherwise, .
+
+
+ Gets or sets the owner of the object associated with this object.
+ The owner of the object associated with this object.
+
+
+ Gets or sets the System Access Control List (SACL) for this object. The SACL contains audit rules.
+ The SACL for this object.
+
+
+ Represents a compound Access Control Entry (ACE).
+
+
+ Initializes a new instance of the class.
+ Contains flags that specify information about the inheritance, inheritance propagation, and auditing conditions for the new Access Control Entry (ACE).
+ The access mask for the ACE.
+ A value from the enumeration.
+ The associated with the new ACE.
+
+
+ Marshals the contents of the object into the specified byte array beginning at the specified offset.
+ The byte array into which the contents of the is marshaled.
+ The offset at which to start marshaling.
+
+ is negative or too high to allow the entire to be copied into .
+
+
+ Gets the length, in bytes, of the binary representation of the current object. This length should be used before marshaling the ACL into a binary array with the method.
+ The length, in bytes, of the binary representation of the current object.
+
+
+ Gets or sets the type of this object.
+ The type of this object.
+
+
+ Specifies the type of a object.
+
+
+ The object is used for impersonation.
+
+
+ These flags affect the security descriptor behavior.
+
+
+ Specifies that the Discretionary Access Control List (DACL) has been automatically inherited from the parent. Set by resource managers only.
+
+
+ Ignored.
+
+
+ Specifies that the DACL was obtained by a defaulting mechanism. Set by resource managers only.
+
+
+ Specifies that the DACL is not . Set by resource managers or users.
+
+
+ Specifies that the resource manager prevents auto-inheritance. Set by resource managers or users.
+
+
+ Ignored.
+
+
+ Specifies that the group was obtained by a defaulting mechanism. Set by resource managers only; should not be set by callers.
+
+
+ No control flags.
+
+
+ Specifies that the owner was obtained by a defaulting mechanism. Set by resource managers only; should not be set by callers.
+
+
+ Specifies that the contents of the Reserved field are valid.
+
+
+ Specifies that the security descriptor binary representation is in the self-relative format. This flag is always set.
+
+
+ Ignored.
+
+
+ Specifies that the System Access Control List (SACL) has been automatically inherited from the parent. Set by resource managers only.
+
+
+ Ignored.
+
+
+ Specifies that the SACL was obtained by a defaulting mechanism. Set by resource managers only.
+
+
+ Specifies that the SACL is not . Set by resource managers or users.
+
+
+ Specifies that the resource manager prevents auto-inheritance. Set by resource managers or users.
+
+
+ Represents an Access Control Entry (ACE) that is not defined by one of the members of the enumeration.
+
+
+ Returns the maximum allowed length of an opaque data blob for this object.
+
+
+ Initializes a new instance of the class.
+ Type of the new Access Control Entry (ACE). This value must be greater than .
+ Flags that specify information about the inheritance, inheritance propagation, and auditing conditions for the new ACE.
+ An array of byte values that contains the data for the new ACE. This value can be . The length of this array must not be greater than the value of the field, and must be a multiple of four.
+ The value of the parameter is not greater than or the length of the array is either greater than the value of the field or not a multiple of four.
+
+
+ Marshals the contents of the object into the specified byte array beginning at the specified offset.
+ The byte array into which the contents of the is marshaled.
+ The offset at which to start marshaling.
+
+ is negative or too high to allow the entire to be copied into .
+
+
+ Returns the opaque data associated with this object.
+ An array of byte values that represents the opaque data associated with this object.
+
+
+ Sets the opaque callback data associated with this object.
+ An array of byte values that represents the opaque callback data for this object.
+
+
+ Gets the length, in bytes, of the binary representation of the current object. This length should be used before marshaling the ACL into a binary array with the method.
+ The length, in bytes, of the binary representation of the current object.
+
+
+ Gets the length of the opaque data associated with this object.
+ The length of the opaque callback data.
+
+
+ Represents a Discretionary Access Control List (DACL).
+
+
+ Initializes a new instance of the class with the specified values.
+
+ if the new object is a container.
+
+ if the new object is a directory object Access Control List (ACL).
+ The revision level of the new object.
+ The number of Access Control Entries (ACEs) this object can contain. This number is to be used only as a hint.
+
+
+ Initializes a new instance of the class with the specified values.
+
+ if the new object is a container.
+
+ if the new object is a directory object Access Control List (ACL).
+ The number of Access Control Entries (ACEs) this object can contain. This number is to be used only as a hint.
+
+
+ Initializes a new instance of the class with the specified values from the specified object.
+
+ if the new object is a container.
+
+ if the new object is a directory object Access Control List (ACL).
+ The underlying object for the new object. Specify to create an empty ACL.
+
+
+ Adds an Access Control Entry (ACE) with the specified settings to the current object.
+ The type of access control (allow or deny) to add.
+ The for which to add an ACE.
+ The access rule for the new ACE.
+ Flags that specify the inheritance properties of the new ACE.
+ Flags that specify the inheritance propagation properties for the new ACE.
+
+
+ Adds an Access Control Entry (ACE) with the specified settings to the current object. Use this method for directory object Access Control Lists (ACLs) when specifying the object type or the inherited object type for the new ACE.
+ The type of access control (allow or deny) to add.
+ The for which to add an ACE.
+ The access rule for the new ACE.
+ Flags that specify the inheritance properties of the new ACE.
+ Flags that specify the inheritance propagation properties for the new ACE.
+ Flags that specify if the and parameters contain non- values.
+ The identity of the class of objects to which the new ACE applies.
+ The identity of the class of child objects which can inherit the new ACE.
+
+
+ Adds an Access Control Entry (ACE) with the specified settings to the current object.
+ The type of access control (allow or deny) to add.
+ The for which to add an ACE.
+ The for the new access.
+
+
+ Removes the specified access control rule from the current object.
+ The type of access control (allow or deny) to remove.
+ The for which to remove an access control rule.
+ The access mask for the rule to be removed.
+ Flags that specify the inheritance properties of the rule to be removed.
+ Flags that specify the inheritance propagation properties for the rule to be removed.
+
+ if this method successfully removes the specified access; otherwise, .
+
+
+ Removes the specified access control rule from the current object. Use this method for directory object Access Control Lists (ACLs) when specifying the object type or the inherited object type.
+ The type of access control (allow or deny) to remove.
+ The for which to remove an access control rule.
+ The access mask for the access control rule to be removed.
+ Flags that specify the inheritance properties of the access control rule to be removed.
+ Flags that specify the inheritance propagation properties for the access control rule to be removed.
+ Flags that specify if the and parameters contain non- values.
+ The identity of the class of objects to which the removed access control rule applies.
+ The identity of the class of child objects which can inherit the removed access control rule.
+
+ if this method successfully removes the specified access; otherwise, .
+
+
+ Removes the specified access control rule from the current object.
+ The type of access control (allow or deny) to remove.
+ The for which to remove an access control rule.
+ The for which to remove access.
+ Returns .
+
+
+ Removes the specified Access Control Entry (ACE) from the current object.
+ The type of access control (allow or deny) to remove.
+ The for which to remove an ACE.
+ The access mask for the ACE to be removed.
+ Flags that specify the inheritance properties of the ACE to be removed.
+ Flags that specify the inheritance propagation properties for the ACE to be removed.
+
+
+ Removes the specified Access Control Entry (ACE) from the current object. Use this method for directory object Access Control Lists (ACLs) when specifying the object type or the inherited object type for the ACE to be removed.
+ The type of access control (allow or deny) to remove.
+ The for which to remove an ACE.
+ The access mask for the ACE to be removed.
+ Flags that specify the inheritance properties of the ACE to be removed.
+ Flags that specify the inheritance propagation properties for the ACE to be removed.
+ Flags that specify if the and parameters contain non- values.
+ The identity of the class of objects to which the removed ACE applies.
+ The identity of the class of child objects which can inherit the removed ACE.
+
+
+ Removes the specified Access Control Entry (ACE) from the current object.
+ The type of access control (allow or deny) to remove.
+ The for which to remove an ACE.
+ The for which to remove access.
+
+
+ Sets the specified access control for the specified object.
+ The type of access control (allow or deny) to set.
+ The for which to set an ACE.
+ The access rule for the new ACE.
+ Flags that specify the inheritance properties of the new ACE.
+ Flags that specify the inheritance propagation properties for the new ACE.
+
+
+ Sets the specified access control for the specified object.
+ The type of access control (allow or deny) to set.
+ The for which to set an ACE.
+ The access rule for the new ACE.
+ Flags that specify the inheritance properties of the new ACE.
+ Flags that specify the inheritance propagation properties for the new ACE.
+ Flags that specify if the and parameters contain non- values.
+ The identity of the class of objects to which the new ACE applies.
+ The identity of the class of child objects which can inherit the new ACE.
+
+
+ Sets the specified access control for the specified object.
+ The type of access control (allow or deny) to set.
+ The for which to set an ACE.
+ The for which to set access.
+
+
+ Represents an Access Control Entry (ACE), and is the base class for all other ACE classes.
+
+
+ Creates a deep copy of this Access Control Entry (ACE).
+ The object that this method creates.
+
+
+ Creates a object from the specified binary data.
+ The binary data from which to create the new object.
+ The offset at which to begin unmarshaling.
+ The object this method creates.
+
+
+ Determines whether the specified object is equal to the current object.
+ The object to compare to the current object.
+
+ if the specified object is equal to the current object; otherwise, .
+
+
+ Marshals the contents of the object into the specified byte array beginning at the specified offset.
+ The byte array into which the contents of the is marshaled.
+ The offset at which to start marshaling.
+
+ is negative or too high to allow the entire to be copied into .
+
+
+ Serves as a hash function for the class. The method is suitable for use in hashing algorithms and data structures like a hash table.
+ A hash code for the current object.
+
+
+ Determines whether the specified objects are considered equal.
+ The first object to compare.
+ The second to compare.
+
+ if the two objects are equal; otherwise, .
+
+
+ Determines whether the specified objects are considered unequal.
+ The first object to compare.
+ The second to compare.
+
+ if the two objects are unequal; otherwise, .
+
+
+ Gets or sets the associated with this object.
+ The associated with this object.
+
+
+ Gets the type of this Access Control Entry (ACE).
+ The type of this ACE.
+
+
+ Gets the audit information associated with this Access Control Entry (ACE).
+ The audit information associated with this Access Control Entry (ACE).
+
+
+ Gets the length, in bytes, of the binary representation of the current object. This length should be used before marshaling the ACL into a binary array with the method.
+ The length, in bytes, of the binary representation of the current object.
+
+
+ Gets flags that specify the inheritance properties of this Access Control Entry (ACE).
+ Flags that specify the inheritance properties of this ACE.
+
+
+ Gets a Boolean value that specifies whether this Access Control Entry (ACE) is inherited or is set explicitly.
+
+ if this ACE is inherited; otherwise, .
+
+
+ Gets flags that specify the inheritance propagation properties of this Access Control Entry (ACE).
+ Flags that specify the inheritance propagation properties of this ACE.
+
+
+ Represents an access control list (ACL) and is the base class for the , , , and classes.
+
+
+ The revision level of the current . This value is returned by the property for Access Control Lists (ACLs) that are not associated with Directory Services objects.
+
+
+ The revision level of the current . This value is returned by the property for Access Control Lists (ACLs) that are associated with Directory Services objects.
+
+
+ The maximum allowed binary length of a object.
+
+
+ Initializes a new instance of the class.
+
+
+ Copies each of the current into the specified array.
+ The array into which copies of the objects contained by the current are placed.
+ The zero-based index of where the copying begins.
+
+
+ Marshals the contents of the object into the specified byte array beginning at the specified offset.
+ The byte array into which the contents of the is marshaled.
+ The offset at which to start marshaling.
+
+ is negative or too high to allow the entire to be copied into .
+
+
+ Retrieves an object that you can use to iterate through the access control entries (ACEs) in an access control list (ACL).
+ An enumerator object.
+
+
+ Copies each of the current into the specified array.
+ The array into which copies of the objects contained by the current are placed.
+ The zero-based index of where the copying begins.
+
+
+ Returns a new instance of the class cast as an instance of the interface.
+ A new object, cast as an instance of the interface.
+
+
+ Gets the length, in bytes, of the binary representation of the current object. This length should be used before marshaling the ACL into a binary array with the method.
+ The length, in bytes, of the binary representation of the current object.
+
+
+ Gets the number of access control entries (ACEs) in the current object.
+ The number of ACEs in the current object.
+
+
+ This property is always set to . It is implemented only because it is required for the implementation of the interface.
+ Always .
+
+
+ Gets or sets the at the specified index.
+ The zero-based index of the to get or set.
+ The at the specified index.
+
+
+ Gets the revision level of the .
+ A byte value that specifies the revision level of the .
+
+
+ This property always returns . It is implemented only because it is required for the implementation of the interface.
+ Always returns .
+
+
+ Represents a security descriptor. A security descriptor includes an owner, a primary group, a Discretionary Access Control List (DACL), and a System Access Control List (SACL).
+
+
+ Returns an array of byte values that represents the information contained in this object.
+ The byte array into which the contents of the is marshaled.
+ The offset at which to start marshaling.
+
+ is negative or too high to allow the entire to be copied into .
+
+
+ Returns the Security Descriptor Definition Language (SDDL) representation of the specified sections of the security descriptor that this object represents.
+ Specifies which sections (access rules, audit rules, primary group, owner) of the security descriptor to get.
+ The SDDL representation of the specified sections of the security descriptor associated with this object.
+
+
+ Returns a boolean value that specifies whether the security descriptor associated with this object can be converted to the Security Descriptor Definition Language (SDDL) format.
+
+ if the security descriptor associated with this object can be converted to the Security Descriptor Definition Language (SDDL) format; otherwise, .
+
+
+ Gets the length, in bytes, of the binary representation of the current object. This length should be used before marshaling the ACL into a binary array with the method.
+ The length, in bytes, of the binary representation of the current object.
+
+
+ Gets values that specify behavior of the object.
+ One or more values of the enumeration combined with a logical OR operation.
+
+
+ Gets or sets the primary group for this object.
+ The primary group for this object.
+
+
+ Gets or sets the owner of the object associated with this object.
+ The owner of the object associated with this object.
+
+
+ Gets the revision level of the object.
+ A byte value that specifies the revision level of the .
+
+
+ Inheritance flags specify the semantics of inheritance for access control entries (ACEs).
+
+
+ The ACE is inherited by child container objects.
+
+
+ The ACE is not inherited by child objects.
+
+
+ The ACE is inherited by child leaf objects.
+
+
+ Encapsulates all Access Control Entry (ACE) types currently defined by Microsoft Corporation. All objects contain a 32-bit access mask and a object.
+
+
+ Gets or sets the access mask for this object.
+ The access mask for this object.
+
+
+ Gets or sets the object associated with this object.
+ The object associated with this object.
+
+
+ Provides the ability to control access to native objects without direct manipulation of Access Control Lists (ACLs). Native object types are defined by the enumeration.
+
+
+ Initializes a new instance of the class with the specified values.
+
+ if the new object is a container object.
+ The type of securable object with which the new object is associated.
+
+
+ Initializes a new instance of the class with the specified values. We recommend that the values of the parameters passed to the constructor and persist methods be identical.
+
+ if the new object is a container object.
+ The type of securable object with which the new object is associated.
+ The handle of the securable object with which the new object is associated.
+ One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to include in this object.
+
+
+ Initializes a new instance of the class with the specified values. We recommend that the values of the parameters passed to the constructor and persist methods be identical.
+
+ if the new object is a container object.
+ The type of securable object with which the new object is associated.
+ The handle of the securable object with which the new object is associated.
+ One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to include in this object.
+ A delegate implemented by integrators that provides custom exceptions.
+ An object that contains contextual information about the source or destination of the exception.
+
+
+ Initializes a new instance of the class by using the specified values.
+
+ if the new object is a container object.
+ The type of securable object with which the new object is associated.
+ A delegate implemented by integrators that provides custom exceptions.
+ An object that contains contextual information about the source or destination of the exception.
+
+
+ Initializes a new instance of the class with the specified values. We recommend that the values of the parameters passed to the constructor and persist methods be identical.
+
+ if the new object is a container object.
+ The type of securable object with which the new object is associated.
+ The name of the securable object with which the new object is associated.
+ One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to include in this object.
+
+
+ Initializes a new instance of the class with the specified values. We recommend that the values of the parameters passed to the constructor and persist methods be identical.
+
+ if the new object is a container object.
+ The type of securable object with which the new object is associated.
+ The name of the securable object with which the new object is associated.
+ One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to include in this object.
+ A delegate implemented by integrators that provides custom exceptions.
+ An object that contains contextual information about the source or destination of the exception.
+
+
+ Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend.persist that the values of the parameters passed to the constructor and persist methods be identical.
+ The handle of the securable object with which this object is associated.
+ One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save.
+ The securable object with which this object is associated is either a directory or a file, and that directory or file could not be found.
+
+
+ Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical.
+ The handle of the securable object with which this object is associated.
+ One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save.
+ An object that contains contextual information about the source or destination of the exception.
+ The securable object with which this object is associated is either a directory or a file, and that directory or file could not be found.
+
+
+ Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical.
+ The name of the securable object with which this object is associated.
+ One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save.
+ The securable object with which this object is associated is either a directory or a file, and that directory or file could not be found.
+
+
+ Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical.
+ The name of the securable object with which this object is associated.
+ One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save.
+ An object that contains contextual information about the source or destination of the exception.
+ The securable object with which this object is associated is either a directory or a file, and that directory or file could not be found.
+
+
+ Provides a way for integrators to map numeric error codes to specific exceptions that they create.
+ The numeric error code.
+ The name of the securable object with which the object is associated.
+ The handle of the securable object with which the object is associated.
+ An object that contains contextual information about the source or destination of the exception.
+ The this delegate creates.
+
+
+ Represents a combination of a user's identity, an access mask, and an access control type (allow or deny). An object also contains information about the type of object to which the rule applies, the type of child object that can inherit the rule, how the rule is inherited by child objects, and how that inheritance is propagated.
+
+
+ Initializes a new instance of the class with the specified values.
+ The identity to which the access rule applies. It must be an object that can be cast as a .
+ The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.
+
+ if this rule is inherited from a parent container.
+ Specifies the inheritance properties of the access rule.
+ Specifies whether inherited access rules are automatically propagated. The propagation flags are ignored if is set to .
+ The type of object to which the rule applies.
+ The type of child object that can inherit the rule.
+ Specifies whether this rule allows or denies access.
+ The value of the parameter cannot be cast as a , or the parameter contains an invalid value.
+ The value of the parameter is 0, or the or parameters contain unrecognized flag values.
+
+
+ Gets the type of child object that can inherit the object.
+ The type of child object that can inherit the object.
+
+
+ Gets flags that specify if the and properties of the object contain valid values.
+
+ specifies that the property contains a valid value. specifies that the property contains a valid value. These values can be combined with a logical OR.
+
+
+ Gets the type of object to which the applies.
+ The type of object to which the applies.
+
+
+ Controls access to Directory Services objects. This class represents an Access Control Entry (ACE) associated with a directory object.
+
+
+ Initiates a new instance of the class.
+ The inheritance, inheritance propagation, and auditing conditions for the new Access Control Entry (ACE).
+ The use of the new ACE.
+ The access mask for the ACE.
+ The associated with the new ACE.
+ Whether the and parameters contain valid object GUIDs.
+ A GUID that identifies the object type to which the new ACE applies.
+ A GUID that identifies the object type that can inherit the new ACE.
+
+ if the new ACE is a callback type ACE.
+ Opaque data associated with the new ACE. This is allowed only for callback ACE types. The length of this array must not be greater than the return value of the method.
+ The qualifier parameter contains an invalid value or the length of the value of the opaque parameter is greater than the return value of the method.
+
+
+ Marshals the contents of the object into the specified byte array beginning at the specified offset.
+ The byte array into which the contents of the is marshaled.
+ The offset at which to start marshaling.
+
+ is negative or too high to allow the entire to be copied into .
+
+
+ Returns the maximum allowed length, in bytes, of an opaque data BLOB for callback Access Control Entries (ACEs).
+ True if the is a callback ACE type.
+ The maximum allowed length, in bytes, of an opaque data BLOB for callback Access Control Entries (ACEs).
+
+
+ Gets the length, in bytes, of the binary representation of the current object. This length should be used before marshaling the ACL into a binary array with the method.
+ The length, in bytes, of the binary representation of the current object.
+
+
+ Gets or sets the GUID of the object type that can inherit the Access Control Entry (ACE) that this object represents.
+ The GUID of the object type that can inherit the Access Control Entry (ACE) that this object represents.
+
+
+ Gets or sets flags that specify whether the and properties contain values that identify valid object types.
+ On or more members of the enumeration combined with a logical OR operation.
+
+
+ Gets or sets the GUID of the object type associated with this object.
+ The GUID of the object type associated with this object.
+
+
+ Specifies the presence of object types for Access Control Entries (ACEs).
+
+
+ The type of object that can inherit the ACE.
+
+
+ No object types are present.
+
+
+ The type of object that is associated with the ACE is present.
+
+
+ Represents a combination of a user's identity, an access mask, and audit conditions. An object also contains information about the type of object to which the rule applies, the type of child object that can inherit the rule, how the rule is inherited by child objects, and how that inheritance is propagated.
+
+
+ Initializes a new instance of the class.
+ The identity to which the access rule applies. It must be an object that can be cast as a .
+ The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.
+
+ if this rule is inherited from a parent container.
+ Specifies the inheritance properties of the access rule.
+ Whether inherited access rules are automatically propagated. The propagation flags are ignored if is set to .
+ The type of object to which the rule applies.
+ The type of child object that can inherit the rule.
+ The audit conditions.
+ The value of the parameter cannot be cast as a , or the parameter contains an invalid value.
+ The value of the parameter is 0, or the or parameters contain unrecognized flag values.
+
+
+ Gets the type of child object that can inherit the object.
+ The type of child object that can inherit the object.
+
+
+
+ and properties of the object contain valid values.
+
+ specifies that the property contains a valid value. specifies that the property contains a valid value. These values can be combined with a logical OR.
+
+
+ Gets the type of object to which the applies.
+ The type of object to which the applies.
+
+
+ Provides the ability to control access to objects without direct manipulation of Access Control Lists (ACLs). This class is the abstract base class for the and classes.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+
+ if the new object is a container object.
+ True if the new object is a directory object.
+
+
+ Initializes a new instance of the class.
+ The of the new instance.
+
+
+ Initializes a new instance of the class with the specified values.
+ The identity to which the access rule applies. It must be an object that can be cast as a .
+ The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.
+ true if this rule is inherited from a parent container.
+ Specifies the inheritance properties of the access rule.
+ Specifies whether inherited access rules are automatically propagated. The propagation flags are ignored if is set to .
+ Specifies the valid access control type.
+ The object that this method creates.
+
+
+ Initializes a new instance of the class with the specified values.
+ The identity to which the audit rule applies. It must be an object that can be cast as a .
+ The access mask of this rule. The access mask is a 32-bit collection of anonymous bits, the meaning of which is defined by the individual integrators.
+
+ if this rule is inherited from a parent container.
+ Specifies the inheritance properties of the audit rule.
+ Specifies whether inherited audit rules are automatically propagated. The propagation flags are ignored if is set to .
+ Specifies the conditions for which the rule is audited.
+ The object that this method creates.
+
+
+ Gets the primary group associated with the specified owner.
+ The owner for which to get the primary group.
+ The primary group associated with the specified owner.
+
+
+ Gets the owner associated with the specified primary group.
+ The primary group for which to get the owner.
+
+ is .
+
+ is not an type.
+ Some or all identity references could not be translated.
+ A Win32 error code was returned.
+ The owner associated with the specified group.
+
+
+ Returns an array of byte values that represents the security descriptor information for this object.
+ An array of byte values that represents the security descriptor for this object. This method returns if there is no security information in this object.
+
+
+ Returns the Security Descriptor Definition Language (SDDL) representation of the specified sections of the security descriptor associated with this object.
+ Specifies which sections (access rules, audit rules, primary group, owner) of the security descriptor to get.
+ The SDDL representation of the specified sections of the security descriptor associated with this object.
+
+
+ Returns a Boolean value that specifies whether the security descriptor associated with this object can be converted to the Security Descriptor Definition Language (SDDL) format.
+
+ if the security descriptor associated with this object can be converted to the Security Descriptor Definition Language (SDDL) format; otherwise, .
+
+
+ Applies the specified modification to the Discretionary Access Control List (DACL) associated with this object.
+ The modification to apply to the DACL.
+ The access rule to modify.
+
+ if the DACL is successfully modified; otherwise, .
+
+ if the DACL is successfully modified; otherwise, .
+
+
+ Applies the specified modification to the Discretionary Access Control List (DACL) associated with this object.
+ The modification to apply to the DACL.
+ The access rule to modify.
+
+ if the DACL is actually modified; otherwise, .
+
+ if the DACL is successfully modified; otherwise, .
+
+
+ Applies the specified modification to the System Access Control List (SACL) associated with this object.
+ The modification to apply to the SACL.
+ The audit rule to modify.
+
+ if the SACL is actually modified; otherwise, .
+
+ if the SACL is successfully modified; otherwise, .
+
+
+ Applies the specified modification to the System Access Control List (SACL) associated with this object.
+ The modification to apply to the SACL.
+ The audit rule to modify.
+
+ if the SACL is successfully modified; otherwise, .
+
+ if the SACL is successfully modified; otherwise, .
+
+
+ Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical.
+
+ to enable the privilege that allows the caller to take ownership of the object.
+ The name used to retrieve the persisted information.
+ One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save.
+
+
+ Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical.
+ The handle used to retrieve the persisted information.
+ One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save.
+
+
+ Saves the specified sections of the security descriptor associated with this object to permanent storage. We recommend that the values of the parameters passed to the constructor and persist methods be identical.
+ The name used to retrieve the persisted information.
+ One of the enumeration values that specifies the sections of the security descriptor (access rules, audit rules, owner, primary group) of the securable object to save.
+
+
+ Removes all access rules associated with the specified .
+ The for which to remove all access rules.
+ All access rules are not in canonical order.
+
+
+ Removes all audit rules associated with the specified .
+ The for which to remove all audit rules.
+ All audit rules are not in canonical order.
+
+
+ Locks this object for read access.
+
+
+ Unlocks this object for read access.
+
+
+ Sets or removes protection of the access rules associated with this object. Protected access rules cannot be modified by parent objects through inheritance.
+
+ to protect the access rules associated with this object from inheritance; to allow inheritance.
+
+ to preserve inherited access rules; to remove inherited access rules. This parameter is ignored if is .
+ This method attempts to remove inherited rules from a non-canonical Discretionary Access Control List (DACL).
+
+
+ Sets or removes protection of the audit rules associated with this object. Protected audit rules cannot be modified by parent objects through inheritance.
+
+ to protect the audit rules associated with this object from inheritance; to allow inheritance.
+
+ to preserve inherited audit rules; to remove inherited audit rules. This parameter is ignored if is .
+ This method attempts to remove inherited rules from a non-canonical System Access Control List (SACL).
+
+
+ Sets the primary group for the security descriptor associated with this object.
+ The primary group to set.
+
+
+ Sets the owner for the security descriptor associated with this object.
+ The owner to set.
+
+
+ Sets the security descriptor for this object from the specified array of byte values.
+ The array of bytes from which to set the security descriptor.
+
+
+ Sets the specified sections of the security descriptor for this object from the specified array of byte values.
+ The array of bytes from which to set the security descriptor.
+ The sections (access rules, audit rules, owner, primary group) of the security descriptor to set.
+
+
+ Sets the security descriptor for this object from the specified Security Descriptor Definition Language (SDDL) string.
+ The SDDL string from which to set the security descriptor.
+
+
+ Sets the specified sections of the security descriptor for this object from the specified Security Descriptor Definition Language (SDDL) string.
+ The SDDL string from which to set the security descriptor.
+ The sections (access rules, audit rules, owner, primary group) of the security descriptor to set.
+
+
+ Locks this object for write access.
+
+
+ Unlocks this object for write access.
+
+
+ Gets the of the securable object associated with this object.
+ The type of the securable object associated with this object.
+
+
+ Gets or sets a Boolean value that specifies whether the access rules associated with this object have been modified.
+
+ if the access rules associated with this object have been modified; otherwise, .
+
+
+ Gets the of the object associated with the access rules of this object. The object must be an object that can be cast as a object.
+ The type of the object associated with the access rules of this object.
+
+
+ Gets a Boolean value that specifies whether the access rules associated with this object are in canonical order.
+
+ if the access rules are in canonical order; otherwise, .
+
+
+ Gets a Boolean value that specifies whether the Discretionary Access Control List (DACL) associated with this object is protected.
+
+ if the DACL is protected; otherwise, .
+
+
+ Gets a Boolean value that specifies whether the audit rules associated with this object are in canonical order.
+
+ if the audit rules are in canonical order; otherwise, .
+
+
+ Gets a Boolean value that specifies whether the System Access Control List (SACL) associated with this object is protected.
+
+ if the SACL is protected; otherwise, .
+
+
+ Gets or sets a Boolean value that specifies whether the audit rules associated with this object have been modified.
+
+ if the audit rules associated with this object have been modified; otherwise, .
+
+
+ Gets the object associated with the audit rules of this object. The object must be an object that can be cast as a object.
+ The type of the object associated with the audit rules of this object.
+
+
+ Gets or sets a Boolean value that specifies whether the group associated with the securable object has been modified.
+
+ if the group associated with the securable object has been modified; otherwise, .
+
+
+ Gets a Boolean value that specifies whether this object is a container object.
+
+ if the object is a container object; otherwise, .
+
+
+ Gets a Boolean value that specifies whether this object is a directory object.
+
+ if the object is a directory object; otherwise, .
+
+
+ Gets or sets a Boolean value that specifies whether the owner of the securable object has been modified.
+
+ if the owner of the securable object has been modified; otherwise, .
+
+
+ Gets the security descriptor for this instance.
+ The security descriptor for this instance.
+
+
+ Provides the ability to control access to objects without direct manipulation of Access Control Lists (ACLs); also grants the ability to type-cast access rights.
+ The access rights for the object.
+
+
+ Initializes a new instance of the ObjectSecurity`1 class.
+
+ if the new object is a container object.
+ The type of resource.
+
+
+ Initializes a new instance of the ObjectSecurity`1 class.
+
+ if the new object is a container object.
+ The type of resource.
+ A handle.
+ The sections to include.
+
+
+ Initializes a new instance of the ObjectSecurity`1 class.
+
+ if the new object is a container object.
+ The type of resource.
+ A handle.
+ The sections to include.
+ A delegate implemented by integrators that provides custom exceptions.
+ An object that contains contextual information about the source or destination of the exception.
+
+
+ Initializes a new instance of the ObjectSecurity`1 class.
+
+ if the new object is a container object.
+ The type of resource.
+ The name of the securable object with which the new object is associated.
+ The sections to include.
+
+
+ Initializes a new instance of the ObjectSecurity`1 class.
+
+ if the new object is a container object.
+ The type of resource.
+ The name of the securable object with which the new object is associated.
+ The sections to include.
+ A delegate implemented by integrators that provides custom exceptions.
+ An object that contains contextual information about the source or destination of the exception.
+
+
+ Initializes a new instance of the ObjectAccessRule class that represents a new access control rule for the associated security object.
+ Represents a user account.
+ The access type.
+
+ if the access rule is inherited; otherwise, .
+ Specifies how to propagate access masks to child objects.
+ Specifies how to propagate Access Control Entries (ACEs) to child objects.
+ Specifies whether access is allowed or denied.
+ Represents a new access control rule for the specified user, with the specified access rights, access control, and flags.
+
+
+ Adds the specified access rule to the Discretionary Access Control List (DACL) associated with this ObjectSecurity`1 object.
+ The rule to add.
+
+
+ Adds the specified audit rule to the System Access Control List (SACL) associated with this ObjectSecurity`1 object.
+ The audit rule to add.
+
+
+ Initializes a new instance of the class representing the specified audit rule for the specified user.
+ Represents a user account.
+ An integer that specifies an access type.
+
+ if the access rule is inherited; otherwise, .
+ Specifies how to propagate access masks to child objects.
+ Specifies how to propagate Access Control Entries (ACEs) to child objects.
+ Describes the type of auditing to perform.
+ The specified audit rule for the specified user.
+
+
+ Saves the security descriptor associated with this ObjectSecurity`1 object to permanent storage, using the specified handle.
+ The handle of the securable object with which this ObjectSecurity`1 object is associated.
+
+
+ Saves the security descriptor associated with this ObjectSecurity`1 object to permanent storage, using the specified name.
+ The name of the securable object with which this ObjectSecurity`1 object is associated.
+
+
+ Removes access rules that contain the same security identifier and access mask as the specified access rule from the Discretionary Access Control List (DACL) associated with this ObjectSecurity`1 object.
+ The rule to remove.
+
+ if the access rule was successfully removed; otherwise, .
+
+
+ Removes all access rules that have the same security identifier as the specified access rule from the Discretionary Access Control List (DACL) associated with this ObjectSecurity`1 object.
+ The access rule to remove.
+
+
+ Removes all access rules that exactly match the specified access rule from the Discretionary Access Control List (DACL) associated with this ObjectSecurity`1 object.
+ The access rule to remove.
+
+
+ Removes audit rules that contain the same security identifier and access mask as the specified audit rule from the System Access Control List (SACL) associated with this ObjectSecurity`1 object.
+ The audit rule to remove.
+
+ if the object was removed; otherwise, .
+
+
+ Removes all audit rules that have the same security identifier as the specified audit rule from the System Access Control List (SACL) associated with this ObjectSecurity`1 object.
+ The audit rule to remove.
+
+
+ Removes all audit rules that exactly match the specified audit rule from the System Access Control List (SACL) associated with this ObjectSecurity`1 object.
+ The audit rule to remove.
+
+
+ Removes all access rules in the Discretionary Access Control List (DACL) associated with this ObjectSecurity`1 object and then adds the specified access rule.
+ The access rule to reset.
+
+
+ Removes all access rules that contain the same security identifier and qualifier as the specified access rule in the Discretionary Access Control List (DACL) associated with this ObjectSecurity`1 object and then adds the specified access rule.
+ The access rule to set.
+
+
+ Removes all audit rules that contain the same security identifier and qualifier as the specified audit rule in the System Access Control List (SACL) associated with this ObjectSecurity`1 object and then adds the specified audit rule.
+ The audit rule to set.
+
+
+ Gets the Type of the securable object associated with this ObjectSecurity`1 object.
+ The type of the securable object associated with the current instance.
+
+
+ Gets the Type of the object associated with the access rules of this ObjectSecurity`1 object.
+ The Type of the object associated with the access rules of the current instance.
+
+
+ Gets the Type object associated with the audit rules of this ObjectSecurity`1 object.
+ The Type object associated with the audit rules of the current instance.
+
+
+ The exception that is thrown when a method in the namespace attempts to enable a privilege that it does not have.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class by using the specified privilege.
+ The privilege that is not enabled.
+
+
+ Initializes a new instance of the class by using the specified exception.
+ The privilege that is not enabled.
+ The exception that is the cause of the current exception. If the innerException parameter is not a null reference ( in Visual Basic), the current exception is raised in a block that handles the inner exception.
+
+
+ Sets the parameter with information about the exception.
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+
+
+ Gets the name of the privilege that is not enabled.
+ The name of the privilege that the method failed to enable.
+
+
+ Specifies how Access Control Entries (ACEs) are propagated to child objects. These flags are significant only if inheritance flags are present.
+
+
+ Specifies that the ACE is propagated only to child objects. This includes both container and leaf child objects.
+
+
+ Specifies that no inheritance flags are set.
+
+
+ Specifies that the ACE is not propagated to child objects.
+
+
+ Represents an Access Control Entry (ACE) that contains a qualifier. The qualifier, represented by an object, specifies whether the ACE allows access, denies access, causes system audits, or causes system alarms. The class is the abstract base class for the and classes.
+
+
+ Returns the opaque callback data associated with this object.
+ An array of byte values that represents the opaque callback data associated with this object.
+
+
+ Sets the opaque callback data associated with this object.
+ An array of byte values that represents the opaque callback data for this object.
+
+
+ Gets a value that specifies whether the ACE allows access, denies access, causes system audits, or causes system alarms.
+ A value that specifies whether the ACE allows access, denies access, causes system audits, or causes system alarms.
+
+
+ Specifies whether this object contains callback data.
+
+ if this object contains callback data; otherwise, false.
+
+
+ Gets the length of the opaque callback data associated with this object. This property is valid only for callback Access Control Entries (ACEs).
+ The length of the opaque callback data.
+
+
+ Represents an Access Control List (ACL).
+
+
+ Initializes a new instance of the class with the specified revision level.
+ The revision level of the new Access Control List (ACL).
+ The number of Access Control Entries (ACEs) this object can contain. This number is to be used only as a hint.
+
+
+ Initializes a new instance of the class from the specified binary form.
+ An array of byte values that represent an Access Control List (ACL).
+ The offset in the parameter at which to begin unmarshaling data.
+
+
+ Marshals the contents of the object into the specified byte array beginning at the specified offset.
+ The byte array into which the contents of the is marshaled.
+ The offset at which to start marshaling.
+
+ is negative or too high to allow the entire to be copied into .
+
+
+ Inserts the specified Access Control Entry (ACE) at the specified index.
+ The position at which to add the new ACE. Specify the value of the property to insert an ACE at the end of the object.
+ The ACE to insert.
+
+ is negative or too high to allow the entire to be copied into .
+
+
+ Removes the Access Control Entry (ACE) at the specified location.
+ The zero-based index of the ACE to remove.
+ The value of the parameter is higher than the value of the property minus one or is negative.
+
+
+ Gets the length, in bytes, of the binary representation of the current object. This length should be used before marshaling the ACL into a binary array with the method.
+ The length, in bytes, of the binary representation of the current object.
+
+
+ Gets the number of access control entries (ACEs) in the current object.
+ The number of ACEs in the current object.
+
+
+ Gets or sets the Access Control Entry (ACE) at the specified index.
+ The zero-based index of the ACE to get or set.
+ The ACE at the specified index.
+
+
+ Gets the revision level of the .
+ A byte value that specifies the revision level of the .
+
+
+ Represents a security descriptor. A security descriptor includes an owner, a primary group, a Discretionary Access Control List (DACL), and a System Access Control List (SACL).
+
+
+ Initializes a new instance of the class from the specified array of byte values.
+ The array of byte values from which to create the new object.
+ The offset in the array at which to begin copying.
+
+
+ Initializes a new instance of the class with the specified values.
+ Flags that specify behavior of the new object.
+ The owner for the new object.
+ The primary group for the new object.
+ The System Access Control List (SACL) for the new object.
+ The Discretionary Access Control List (DACL) for the new object.
+
+
+ Initializes a new instance of the class from the specified Security Descriptor Definition Language (SDDL) string.
+ The SDDL string from which to create the new object.
+ The SDDL form of a security descriptor object is invalid.
+
+
+ Sets the property of this object to the specified value.
+ One or more values of the enumeration combined with a logical OR operation.
+
+
+ Gets values that specify behavior of the object.
+ One or more values of the enumeration combined with a logical OR operation.
+
+
+ Gets or sets the Discretionary Access Control List (DACL) for this object. The DACL contains access rules.
+ The DACL for this object.
+
+
+ Gets or sets the primary group for this object.
+ The primary group for this object.
+
+
+ Gets or sets the owner of the object associated with this object.
+ The owner of the object associated with this object.
+
+
+ Gets or sets a byte value that represents the resource manager control bits associated with this object.
+ A byte value that represents the resource manager control bits associated with this object.
+
+
+ Gets or sets the System Access Control List (SACL) for this object. The SACL contains audit rules.
+ The SACL for this object.
+
+
+ Specifies the defined native object types.
+
+
+ A directory service (DS) object or a property set or property of a directory service object.
+
+
+ A directory service object and all of its property sets and properties.
+
+
+ A file or directory.
+
+
+ A local kernel object.
+
+
+ A network share.
+
+
+ A printer.
+
+
+ An object defined by a provider.
+
+
+ A registry key.
+
+
+ An object for a registry entry under WOW64.
+
+
+ A Windows service.
+
+
+ An unknown object type.
+
+
+ A window station or desktop object on the local computer.
+
+
+ A Windows Management Instrumentation (WMI) object.
+
+
+ Specifies the section of a security descriptor to be queried or set.
+
+
+ Specifies the discretionary access control list (DACL).
+
+
+ Specifies the primary group identifier.
+
+
+ Specifies the owner identifier.
+
+
+ Specifies the system access control list (SACL).
+
+
+ Represents a System Access Control List (SACL).
+
+
+ Initializes a new instance of the class with the specified values.
+
+ if the new object is a container.
+
+ if the new object is a directory object Access Control List (ACL).
+ The revision level of the new object.
+ The number of Access Control Entries (ACEs) this object can contain. This number is to be used only as a hint.
+
+
+ Initializes a new instance of the class with the specified values.
+
+ if the new object is a container.
+
+ if the new object is a directory object Access Control List (ACL).
+ The number of Access Control Entries (ACEs) this object can contain. This number is to be used only as a hint.
+
+
+ Initializes a new instance of the class with the specified values from the specified object.
+
+ if the new object is a container.
+
+ if the new object is a directory object Access Control List (ACL).
+ The underlying object for the new object. Specify to create an empty ACL.
+
+
+ Adds an audit rule to the current object.
+ The type of audit rule to add.
+ The for which to add an audit rule.
+ The access mask for the new audit rule.
+ Flags that specify the inheritance properties of the new audit rule.
+ Flags that specify the inheritance propagation properties for the new audit rule.
+
+
+ Adds an audit rule with the specified settings to the current object. Use this method for directory object Access Control Lists (ACLs) when specifying the object type or the inherited object type for the new audit rule.
+ The type of audit rule to add.
+ The for which to add an audit rule.
+ The access mask for the new audit rule.
+ Flags that specify the inheritance properties of the new audit rule.
+ Flags that specify the inheritance propagation properties for the new audit rule.
+ Flags that specify if the and parameters contain non- values.
+ The identity of the class of objects to which the new audit rule applies.
+ The identity of the class of child objects which can inherit the new audit rule.
+
+
+ Adds an audit rule to the current object.
+ The for which to add an audit rule.
+ The for the new audit rule.
+
+
+ Removes the specified audit rule from the current object.
+ The type of audit rule to remove.
+ The for which to remove an audit rule.
+ The access mask for the rule to be removed.
+ Flags that specify the inheritance properties of the rule to be removed.
+ Flags that specify the inheritance propagation properties for the rule to be removed.
+
+ if this method successfully removes the specified audit rule; otherwise, .
+
+
+ Removes the specified audit rule from the current object. Use this method for directory object Access Control Lists (ACLs) when specifying the object type or the inherited object type.
+ The type of audit rule to remove.
+ The for which to remove an audit rule.
+ The access mask for the rule to be removed.
+ Flags that specify the inheritance properties of the rule to be removed.
+ Flags that specify the inheritance propagation properties for the rule to be removed.
+ Flags that specify if the and parameters contain non- values.
+ The identity of the class of objects to which the removed audit control rule applies.
+ The identity of the class of child objects which can inherit the removed audit rule.
+
+ if this method successfully removes the specified audit rule; otherwise, .
+
+
+ Removes the specified audit rule from the current object.
+ The for which to remove an audit rule.
+ The for which to remove an audit rule.
+
+ if this method successfully removes the specified audit rule; otherwise, .
+
+
+ Removes the specified audit rule from the current object.
+ The type of audit rule to remove.
+ The for which to remove an audit rule.
+ The access mask for the rule to be removed.
+ Flags that specify the inheritance properties of the rule to be removed.
+ Flags that specify the inheritance propagation properties for the rule to be removed.
+
+
+ Removes the specified audit rule from the current object. Use this method for directory object Access Control Lists (ACLs) when specifying the object type or the inherited object type.
+ The type of audit rule to remove.
+ The for which to remove an audit rule.
+ The access mask for the rule to be removed.
+ Flags that specify the inheritance properties of the rule to be removed.
+ Flags that specify the inheritance propagation properties for the rule to be removed.
+ Flags that specify if the and parameters contain non- values.
+ The identity of the class of objects to which the removed audit control rule applies.
+ The identity of the class of child objects which can inherit the removed audit rule.
+
+
+ Removes the specified audit rule from the current object.
+ The for which to remove an audit rule.
+ The for the rule to be removed.
+
+
+ Sets the specified audit rule for the specified object.
+ The audit condition to set.
+ The for which to set an audit rule.
+ The access mask for the new audit rule.
+ Flags that specify the inheritance properties of the new audit rule.
+ Flags that specify the inheritance propagation properties for the new audit rule.
+
+
+ Sets the specified audit rule for the specified object. Use this method for directory object Access Control Lists (ACLs) when specifying the object type or the inherited object type.
+ The audit condition to set.
+ The for which to set an audit rule.
+ The access mask for the new audit rule.
+ Flags that specify the inheritance properties of the new audit rule.
+ Flags that specify the inheritance propagation properties for the new audit rule.
+ Flags that specify if the and parameters contain non- values.
+ The identity of the class of objects to which the new audit rule applies.
+ The identity of the class of child objects which can inherit the new audit rule.
+
+
+ Sets the specified audit rule for the specified object.
+ The for which to set an audit rule.
+ The for which to set an audit rule.
+
+
+ Defines the set of information that constitutes input to security policy decisions. This class cannot be inherited.
+
+
+ Initializes a new empty instance of the class.
+
+
+ Initializes a new instance of the class from multiple sets of host and assembly evidence.
+ The host evidence from which to create the new instance.
+ The assembly evidence from which to create the new instance.
+
+
+ Initializes a new instance of the class from a shallow copy of an existing one.
+ The instance from which to create the new instance. This instance is not deep-copied.
+ The parameter is not a valid instance of .
+
+
+ Initializes a new instance of the class from multiple sets of host and assembly evidence.
+ The host evidence from which to create the new instance.
+ The assembly evidence from which to create the new instance.
+
+
+ Adds the specified assembly evidence to the evidence set.
+ Any evidence object.
+
+ is null.
+
+ is not serializable.
+
+
+ Adds an evidence object of the specified type to the assembly-supplied evidence list.
+ The assembly evidence to add.
+ The type of the object in .
+
+ is .
+ Evidence of type is already in the list.
+
+ is not serializable.
+
+
+ Adds the specified evidence supplied by the host to the evidence set.
+ Any evidence object.
+
+ is null.
+
+ is not serializable.
+
+
+ Adds host evidence of the specified type to the host evidence collection.
+ The host evidence to add.
+ The type of the object in .
+
+ is .
+ Evidence of type is already in the list.
+
+
+ Removes the host and assembly evidence from the evidence set.
+
+
+ Returns a duplicate copy of this evidence object.
+ A duplicate copy of this evidence object.
+
+
+ Copies evidence objects to an .
+ The target array to which to copy evidence objects.
+ The zero-based position in the array to which to begin copying evidence objects.
+
+ is null.
+
+ is outside the range of the target array.
+
+
+ Enumerates evidence provided by the assembly.
+ An enumerator for evidence added by the method.
+
+
+ Gets assembly evidence of the specified type from the collection.
+ The type of the evidence to get.
+ Evidence of type in the assembly evidence collection.
+
+
+ Enumerates all evidence in the set, both that provided by the host and that provided by the assembly.
+ An enumerator for evidence added by both the method and the method.
+
+
+ Enumerates evidence supplied by the host.
+ An enumerator for evidence added by the method.
+
+
+ Gets host evidence of the specified type from the collection.
+ The type of the evidence to get.
+ Evidence of type in the host evidence collection.
+
+
+ Merges the specified evidence set into the current evidence set.
+ The evidence set to be merged into the current evidence set.
+ The parameter is not a valid instance of .
+
+ is , the code that calls this method does not have , and the parameter has a host list that is not empty.
+
+
+ Removes the evidence for a given type from the host and assembly enumerations.
+ The type of the evidence to be removed.
+
+ is null.
+
+
+ Gets the number of evidence objects in the evidence set.
+ The number of evidence objects in the evidence set.
+
+
+ Gets a value indicating whether the evidence set is read-only.
+ Always , because read-only evidence sets are not supported.
+
+
+ Gets a value indicating whether the evidence set is thread-safe.
+ Always because thread-safe evidence sets are not supported.
+
+
+ Gets or sets a value indicating whether the evidence is locked.
+
+ if the evidence is locked; otherwise, . The default is .
+
+
+ Gets the synchronization root.
+ Always ( in Visual Basic), because synchronization of evidence sets is not supported.
+
+
+ Provides a base class from which all objects to be used as evidence must derive.
+
+
+ Initializes a new instance of the class.
+ An object to be used as evidence is not serializable.
+
+
+ Creates a new object that is a complete copy of the current instance.
+ A duplicate copy of this evidence object.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Claims.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Claims.dll
new file mode 100644
index 0000000000000000000000000000000000000000..35ab17e8c25b18663e23e36c0bf87e5ff74e6fca
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Claims.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Cryptography.Cng.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Cryptography.Cng.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3ce06d2c82c0a9bc1644ac9d108b408d109982f7
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Cryptography.Cng.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Cryptography.X509Certificates.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Cryptography.X509Certificates.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e4b950cca9cc6177625ac0df78a117fbe6d3a48d
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Cryptography.X509Certificates.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Principal.Windows.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Principal.Windows.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cde85186ef0ee0de2bc2560b10af9cf02c46d259
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Principal.Windows.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Principal.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Principal.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2c396c41cf69b11b94cd41cdcf918d111373d4e9
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Security.Principal.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.ServiceModel.Web.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.ServiceModel.Web.dll
new file mode 100644
index 0000000000000000000000000000000000000000..65bca194d3b5925289bae3017540599b0d42162b
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.ServiceModel.Web.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Text.Encoding.CodePages.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Text.Encoding.CodePages.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a1a3195076fb1a7a5fc8ea2798949d7d7c77257c
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Text.Encoding.CodePages.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Text.Encoding.Extensions.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Text.Encoding.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d812bdf8427cc5e6481f036746a7141cd359647e
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Text.Encoding.Extensions.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Text.Encodings.Web.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Text.Encodings.Web.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0c929290f674b7c69154e4d031b648b6ed6038e1
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Text.Encodings.Web.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Text.RegularExpressions.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Text.RegularExpressions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e33d7cb8655fc207cc76b887b7f461cfa94beb98
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Text.RegularExpressions.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Channels.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Channels.xml
new file mode 100644
index 0000000000000000000000000000000000000000..230746df26f64bf3ef17df52fcd4057b9834901a
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Channels.xml
@@ -0,0 +1,243 @@
+
+
+
+ System.Threading.Channels
+
+
+
+ Specifies the behavior to use when writing to a bounded channel that is already full.
+
+
+ Removes and ignores the newest item in the channel in order to make room for the item being written.
+
+
+ Removes and ignores the oldest item in the channel in order to make room for the item being written.
+
+
+ Drops the item being written.
+
+
+ Waits for space to be available in order to complete the write operation.
+
+
+ Provides options that control the behavior of bounded instances.
+
+
+ Initializes the options.
+ The maximum number of items the bounded channel may store.
+
+
+ Gets or sets the maximum number of items the bounded channel may store.
+
+
+ Gets or sets the behavior incurred by write operations when the channel is full.
+
+
+ Provides static methods for creating channels.
+
+
+ Creates a channel with the specified maximum capacity.
+ The maximum number of items the channel may store.
+ Specifies the type of data in the channel.
+ The created channel.
+
+
+ Creates a channel with the specified maximum capacity.
+ Options that guide the behavior of the channel.
+ Specifies the type of data in the channel.
+ The created channel.
+
+
+ Creates a channel subject to the provided options.
+ Options that guide the behavior of the channel.
+ Delegate that will be called when item is being dropped from channel. See .
+ Specifies the type of data in the channel.
+ The created channel.
+
+
+ Creates an unbounded channel usable by any number of readers and writers concurrently.
+ The type of data in the channel.
+ The created channel.
+
+
+ Creates an unbounded channel subject to the provided options.
+ Options that guide the behavior of the channel.
+ Specifies the type of data in the channel.
+ The created channel.
+
+
+ Provides a base class for channels that support reading and writing elements of type .
+ Specifies the type of data readable and writable in the channel.
+
+
+ Initializes an instance of the class.
+
+
+ Provides a base class for channels that support reading elements of type and writing elements of type .
+ Specifies the type of data that may be written to the channel.
+ Specifies the type of data that may be read from the channel.
+
+
+ Initializes an instance of the class.
+
+
+ Implicit cast from a to its readable half.
+ The being cast.
+ The readable half.
+
+
+ Implicit cast from a to its writable half.
+ The being cast.
+ The writable half.
+
+
+ Gets the readable half of this channel.
+
+
+ Gets the writable half of this channel.
+
+
+ Exception thrown when a channel is used after it's been closed.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The exception that is the cause of this exception.
+
+
+ Initializes a new instance of the class with serialized data.
+ The object that holds the serialized object data.
+ The contextual information about the source or destination.
+
+
+ Initializes a new instance of the class.
+ The message that describes the error.
+
+
+ Initializes a new instance of the class.
+ The message that describes the error.
+ The exception that is the cause of this exception.
+
+
+ Provides options that control the behavior of channel instances.
+
+
+ Initializes an instance of the class.
+
+
+
+ if operations performed on a channel may synchronously invoke continuations subscribed to
+ notifications of pending async operations; if all continuations should be invoked asynchronously.
+
+
+
+ readers from the channel guarantee that there will only ever be at most one read operation at a time;
+ if no such constraint is guaranteed.
+
+
+
+ if writers to the channel guarantee that there will only ever be at most one write operation
+ at a time; if no such constraint is guaranteed.
+
+
+ Provides a base class for reading from a channel.
+ Specifies the type of data that may be read from the channel.
+
+
+ Initializes an instance of the class.
+
+
+ Creates an that enables reading all of the data from the channel.
+ The cancellation token to use to cancel the enumeration. If data is immediately ready for reading, then that data may be yielded even after cancellation has been requested.
+ The created async enumerable.
+
+
+ Asynchronously reads an item from the channel.
+ A used to cancel the read operation.
+ A that represents the asynchronous read operation.
+
+
+ Attempts to peek at an item from the channel.
+ The peeked item, or a default value if no item could be peeked.
+
+ if an item was read; otherwise, .
+
+
+ Attempts to read an item from the channel.
+ The read item, or a default value if no item could be read.
+
+ if an item was read; otherwise, .
+
+
+ Returns a that will complete when data is available to read.
+ A used to cancel the wait operation.
+
+ A that will complete with a result when data is available to read
+ or with a result when no further data will ever be available to be read due to the channel completing successfully.
+ If the channel completes with an exception, the task will also complete with an exception.
+
+
+
+ Gets a value that indicates whether is available for use on this instance.
+
+
+ Gets a value that indicates whether is available for use on this instance.
+
+ if peeking is supported by this channel instance; otherwise.
+
+
+ Gets a that completes when no more data will ever
+ be available to be read from this channel.
+
+
+ Gets the current number of items available from this channel reader.
+ Counting is not supported on this instance.
+
+
+ Provides a base class for writing to a channel.
+ Specifies the type of data that may be written to the channel.
+
+
+ Initializes an instance of the class.
+
+
+ Mark the channel as being complete, meaning no more items will be written to it.
+ Optional Exception indicating a failure that's causing the channel to complete.
+ The channel has already been marked as complete.
+
+
+ Attempts to mark the channel as being completed, meaning no more data will be written to it.
+ An indicating the failure causing no more data to be written, or null for success.
+
+ if this operation successfully completes the channel; otherwise, if the channel could not be marked for completion,
+ for example due to having already been marked as such, or due to not supporting completion.
+ .
+
+
+ Attempts to write the specified item to the channel.
+ The item to write.
+
+ if the item was written; otherwise, .
+
+
+ Returns a that will complete when space is available to write an item.
+ A used to cancel the wait operation.
+ A that will complete with a result when space is available to write an item
+ or with a result when no further writing will be permitted.
+
+
+ Asynchronously writes an item to the channel.
+ The value to write to the channel.
+ A used to cancel the write operation.
+ A that represents the asynchronous write operation.
+
+
+ Provides options that control the behavior of unbounded instances.
+
+
+ Initializes a new instance of the class.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Overlapped.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Overlapped.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cd4b8310d990aff74407ebe16d67c14efd918c07
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Overlapped.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Tasks.Parallel.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Tasks.Parallel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7391e56315b92c1b1cdb1b1d46178f5111e4b2f2
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Tasks.Parallel.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Thread.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Thread.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2a44e243b9401890c9d9ca97561d18f569eb8832
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Thread.xml
@@ -0,0 +1,620 @@
+
+
+
+ System.Threading.Thread
+
+
+
+ Encapsulates a memory slot to store local data. This class cannot be inherited.
+
+
+ Ensures that resources are freed and other cleanup operations are performed when the garbage collector reclaims the object.
+
+
+ Specifies the apartment state of a .
+
+
+ The will create and enter a multithreaded apartment.
+
+
+ The will create and enter a single-threaded apartment.
+
+
+ The property has not been set.
+
+
+ Provides methods for setting and capturing the compressed stack on the current thread. This class cannot be inherited.
+
+
+ Captures the compressed stack from the current thread.
+ A object.
+
+
+ Creates a copy of the current compressed stack.
+ A object representing the current compressed stack.
+
+
+ Gets the compressed stack for the current thread.
+ A caller in the call chain does not have permission to access unmanaged code.
+
+ -or-
+
+ The request for failed.
+ A for the current thread.
+
+
+ Sets the object with the logical context information needed to recreate an instance of this execution context.
+ The object to be populated with serialization information.
+ The structure representing the destination context of the serialization.
+
+ is .
+
+
+ Runs a method in the specified compressed stack on the current thread.
+ The to set.
+ A that represents the method to be run in the specified security context.
+ The object to be passed to the callback method.
+
+ is .
+
+
+ Represents the method that executes on a .
+ An object that contains data for the thread procedure.
+
+
+ Creates and controls a thread, sets its priority, and gets its status.
+
+
+ Initializes a new instance of the class, specifying a delegate that allows an object to be passed to the thread when the thread is started.
+ A delegate that represents the methods to be invoked when this thread begins executing.
+
+ is .
+
+
+ Initializes a new instance of the class, specifying a delegate that allows an object to be passed to the thread when the thread is started and specifying the maximum stack size for the thread.
+ A delegate that represents the methods to be invoked when this thread begins executing.
+ The maximum stack size, in bytes, to be used by the thread, or 0 to use the default maximum stack size specified in the header for the executable.
+
+ Important For partially trusted code, is ignored if it is greater than the default stack size. No exception is thrown.
+
+ is .
+
+ is less than zero.
+
+
+ Initializes a new instance of the class.
+ A delegate that represents the methods to be invoked when this thread begins executing.
+ The parameter is .
+
+
+ Initializes a new instance of the class, specifying the maximum stack size for the thread.
+ A delegate that represents the methods to be invoked when this thread begins executing.
+ The maximum stack size, in bytes, to be used by the thread, or 0 to use the default maximum stack size specified in the header for the executable.
+
+ Important For partially trusted code, is ignored if it is greater than the default stack size. No exception is thrown.
+
+ is .
+
+ is less than zero.
+
+
+ Raises a in the thread on which it is invoked, to begin the process of terminating the thread. Calling this method usually terminates the thread.
+ .NET Core and .NET 5+ only: In all cases.
+ The caller does not have the required permission.
+ The thread that is being aborted is currently suspended.
+
+
+ Raises a in the thread on which it is invoked, to begin the process of terminating the thread while also providing exception information about the thread termination. Calling this method usually terminates the thread.
+ An object that contains application-specific information, such as state, which can be used by the thread being aborted.
+ .NET Core and .NET 5+ only: In all cases.
+ The caller does not have the required permission.
+ The thread that is being aborted is currently suspended.
+
+
+ Allocates an unnamed data slot on all the threads. For better performance, use fields that are marked with the attribute instead.
+ The allocated named data slot on all threads.
+
+
+ Allocates a named data slot on all threads. For better performance, use fields that are marked with the attribute instead.
+ The name of the data slot to be allocated.
+ A named data slot with the specified name already exists.
+ The allocated named data slot on all threads.
+
+
+ Notifies a host that execution is about to enter a region of code in which the effects of a thread abort or unhandled exception might jeopardize other tasks in the application domain.
+
+
+ Notifies a host that managed code is about to execute instructions that depend on the identity of the current physical operating system thread.
+ The caller does not have the required permission.
+
+
+ Turns off automatic cleanup of runtime callable wrappers (RCW) for the current thread.
+
+
+ Notifies a host that execution is about to enter a region of code in which the effects of a thread abort or unhandled exception are limited to the current task.
+
+
+ Notifies a host that managed code has finished executing instructions that depend on the identity of the current physical operating system thread.
+ The caller does not have the required permission.
+
+
+ Ensures that resources are freed and other cleanup operations are performed when the garbage collector reclaims the object.
+
+
+ Eliminates the association between a name and a slot, for all threads in the process. For better performance, use fields that are marked with the attribute instead.
+ The name of the data slot to be freed.
+
+
+ Returns an value indicating the apartment state.
+ One of the values indicating the apartment state of the managed thread. The default is .
+
+
+ Returns a object that can be used to capture the stack for the current thread.
+ In all cases.
+
+
+ Gets an ID used to indicate on which processor the current thread is executing.
+ An integer representing the cached processor ID.
+
+
+ Retrieves the value from the specified slot on the current thread, within the current thread's current domain. For better performance, use fields that are marked with the attribute instead.
+ The from which to get the value.
+ The retrieved value.
+
+
+ Returns the current domain in which the current thread is running.
+ An representing the current application domain of the running thread.
+
+
+ Returns a unique application domain identifier.
+ A 32-bit signed integer uniquely identifying the application domain.
+
+
+ Returns a hash code for the current thread.
+ An integer hash code value.
+
+
+ Looks up a named data slot. For better performance, use fields that are marked with the attribute instead.
+ The name of the local data slot.
+ A allocated for this thread.
+
+
+ Interrupts a thread that is in the thread state.
+ The caller does not have the appropriate .
+
+
+ Blocks the calling thread until the thread represented by this instance terminates, while continuing to perform standard COM and pumping.
+ The caller attempted to join a thread that is in the state.
+ The thread is interrupted while waiting.
+
+
+ Blocks the calling thread until the thread represented by this instance terminates or the specified time elapses, while continuing to perform standard COM and SendMessage pumping.
+ The number of milliseconds to wait for the thread to terminate.
+ The value of is negative and is not equal to in milliseconds.
+ The thread has not been started.
+
+ is less than -1 (Timeout.Infinite).
+ The thread was interrupted while waiting.
+
+ if the thread has terminated; if the thread has not terminated after the amount of time specified by the parameter has elapsed.
+
+
+ Blocks the calling thread until the thread represented by this instance terminates or the specified time elapses, while continuing to perform standard COM and SendMessage pumping.
+ A set to the amount of time to wait for the thread to terminate.
+ The value of is negative and is not equal to in milliseconds, or is greater than Int32.MaxValue milliseconds.
+ The caller attempted to join a thread that is in the state.
+
+ if the thread terminated; if the thread has not terminated after the amount of time specified by the parameter has elapsed.
+
+
+ Synchronizes memory access as follows: The processor executing the current thread cannot reorder instructions in such a way that memory accesses prior to the call to execute after memory accesses that follow the call to .
+
+
+ Cancels an requested for the current thread.
+ .NET Core and .NET 5+ only: In all cases.
+
+ was not invoked on the current thread.
+ The caller does not have the required security permission for the current thread.
+
+
+ Resumes a thread that has been suspended.
+ .NET Core and .NET 5+ only: In all cases.
+ The thread has not been started, is dead, or is not in the suspended state.
+ The caller does not have the appropriate .
+
+
+ Sets the apartment state of a thread before it is started.
+ The new apartment state.
+ .NET Core and .NET 5+ only: In all cases on macOS and Linux.
+
+ is not a valid apartment state.
+ The thread has already been started.
+ The apartment state has already been initialized.
+
+
+ Applies a captured to the current thread.
+ The object to be applied to the current thread.
+ In all cases.
+
+
+ Sets the data in the specified slot on the currently running thread, for that thread's current domain. For better performance, use fields marked with the attribute instead.
+ The in which to set the value.
+ The value to be set.
+
+
+ Suspends the current thread for the specified number of milliseconds.
+ The number of milliseconds for which the thread is suspended. If the value of the argument is zero, the thread relinquishes the remainder of its time slice to any thread of equal priority that is ready to run. If there are no other threads of equal priority that are ready to run, execution of the current thread is not suspended.
+ The time-out value is negative and is not equal to .
+
+
+ Suspends the current thread for the specified amount of time.
+ The amount of time for which the thread is suspended. If the value of the argument is , the thread relinquishes the remainder of its time slice to any thread of equal priority that is ready to run. If there are no other threads of equal priority that are ready to run, execution of the current thread is not suspended.
+ The value of is negative and is not equal to in milliseconds, or is greater than Int32.MaxValue milliseconds.
+
+
+ Causes a thread to wait the number of times defined by the parameter.
+ A 32-bit signed integer that defines how long a thread is to wait.
+
+
+ Causes the operating system to change the state of the current instance to .
+ The thread has already been started.
+ There is not enough memory available to start this thread.
+
+
+ Causes the operating system to change the state of the current instance to , and optionally supplies an object containing data to be used by the method the thread executes.
+ An object that contains data to be used by the method the thread executes.
+ The thread has already been started.
+ There is not enough memory available to start this thread.
+ This thread was created using a delegate instead of a delegate.
+
+
+ Either suspends the thread, or if the thread is already suspended, has no effect.
+ .NET Core and .NET 5+ only: In all cases.
+ The thread has not been started or is dead.
+ The caller does not have the appropriate .
+
+
+ Sets the apartment state of a thread before it is started.
+ The new apartment state.
+ .NET Core and .NET 5+ only: In all cases on macOS and Linux.
+
+ is not a valid apartment state.
+ The thread was started and has terminated, or the call is not being made from the thread's context while the thread is running.
+
+ if the apartment state is set; otherwise, .
+
+
+ Causes the operating system to change the state of the current instance to .
+ The thread has already been started.
+ There is not enough memory available to start this thread.
+
+
+ Causes the operating system to change the state of the current instance to , and optionally supplies an object containing data to be used by the method the thread executes.
+ An object that contains data to be used by the method the thread executes.
+ The thread has already been started.
+ There is not enough memory available to start this thread.
+ This thread was created using a delegate instead of a delegate.
+
+
+ Reads the value of a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
+ The field to be read.
+ The value that was read.
+
+
+ Reads the value of a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
+ The field to be read.
+ The value that was read.
+
+
+ Reads the value of a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
+ The field to be read.
+ The value that was read.
+
+
+ Reads the value of a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
+ The field to be read.
+ The value that was read.
+
+
+ Reads the value of a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
+ The field to be read.
+ The value that was read.
+
+
+ Reads the value of a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
+ The field to be read.
+ The value that was read.
+
+
+ Reads the value of a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
+ The field to be read.
+ The value that was read.
+
+
+ Reads the value of a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
+ The field to be read.
+ The value that was read.
+
+
+ Reads the value of a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
+ The field to be read.
+ The value that was read.
+
+
+ Reads the value of a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
+ The field to be read.
+ The value that was read.
+
+
+ Reads the value of a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
+ The field to be read.
+ The value that was read.
+
+
+ Reads the value of a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
+ The field to be read.
+ The value that was read.
+
+
+ Reads the value of a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears after this method in the code, the processor cannot move it before this method.
+ The field to be read.
+ The value that was read.
+
+
+ Writes a value to a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
+ The field to which the value is to be written.
+ The value to be written.
+
+
+ Writes a value to a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
+ The field to which the value is to be written.
+ The value to be written.
+
+
+ Writes a value to a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
+ The field to which the value is to be written.
+ The value to be written.
+
+
+ Writes a value to a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
+ The field to which the value is to be written.
+ The value to be written.
+
+
+ Writes a value to a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
+ The field to which the value is to be written.
+ The value to be written.
+
+
+ Writes a value to a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
+ The field to which the value is to be written.
+ The value to be written.
+
+
+ Writes a value to a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
+ The field to which the value is to be written.
+ The value to be written.
+
+
+ Writes a value to a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
+ The field to which the value is to be written.
+ The value to be written.
+
+
+ Writes a value to a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
+ The field to which the value is to be written.
+ The value to be written.
+
+
+ Writes a value to a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
+ The field to which the value is to be written.
+ The value to be written.
+
+
+ Writes a value to a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
+ The field to which the value is to be written.
+ The value to be written.
+
+
+ Writes a value to a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
+ The field to which the value is to be written.
+ The value to be written.
+
+
+ Writes a value to a field. On systems that require it, inserts a memory barrier that prevents the processor from reordering memory operations as follows: If a read or write appears before this method in the code, the processor cannot move it after this method.
+ The field to which the value is to be written.
+ The value to be written.
+
+
+ Causes the calling thread to yield execution to another thread that is ready to run on the current processor. The operating system selects the thread to yield to.
+
+ if the operating system switched execution to another thread; otherwise, .
+
+
+ Gets or sets the apartment state of this thread.
+ An attempt is made to set this property to a state that is not a valid apartment state (a state other than single-threaded apartment () or multithreaded apartment ()).
+ One of the values. The initial value is .
+
+
+ Gets or sets the culture for the current thread.
+ The property is set to .
+ .NET Core and .NET 5+ only: Reading or writing the culture of a thread from another thread is not supported.
+ An object that represents the culture for the current thread.
+
+
+ Gets or sets the thread's current principal (for role-based security).
+ The caller does not have the permission required to set the principal.
+ An value representing the security context.
+
+
+ Gets the currently running thread.
+ A that is the representation of the currently running thread.
+
+
+ Gets or sets the current culture used by the Resource Manager to look up culture-specific resources at run time.
+ The property is set to .
+ The property is set to a culture name that cannot be used to locate a resource file. Resource filenames must include only letters, numbers, hyphens or underscores.
+ .NET Core and .NET 5+ only: Reading or writing the culture of a thread from another thread is not supported.
+ An object that represents the current culture.
+
+
+ Gets an object that contains information about the various contexts of the current thread.
+ An object that consolidates context information for the current thread.
+
+
+ Gets a value indicating the execution status of the current thread.
+
+ if this thread has been started and has not terminated normally or aborted; otherwise, .
+
+
+ Gets or sets a value indicating whether or not a thread is a background thread.
+ The thread is dead.
+
+ if this thread is or is to become a background thread; otherwise, .
+
+
+ Gets a value indicating whether or not a thread belongs to the managed thread pool.
+
+ if this thread belongs to the managed thread pool; otherwise, .
+
+
+ Gets a unique identifier for the current managed thread.
+ An integer that represents a unique identifier for this managed thread.
+
+
+ Gets or sets the name of the thread.
+ A set operation was requested, but the property has already been set.
+ A string containing the name of the thread, or if no name was set.
+
+
+ Gets or sets a value indicating the scheduling priority of a thread.
+ The thread has reached a final state, such as .
+ The value specified for a set operation is not a valid value.
+ One of the values. The default value is .
+
+
+ Gets a value containing the states of the current thread.
+ One of the values indicating the state of the current thread. The initial value is .
+
+
+ The exception that is thrown when a call is made to the method. This class cannot be inherited.
+
+
+ Gets an object that contains application-specific information related to the thread abort.
+ An object containing application-specific information.
+
+
+ Provides data for the event.
+
+
+ Initializes a new instance of the class.
+ The that occurred.
+
+
+ Gets the that occurred.
+ The that occurred.
+
+
+ Represents the method that will handle the event of an .
+ The source of the event.
+ A that contains the event data.
+
+
+ The exception that is thrown when a is interrupted while it is in a waiting state.
+
+
+ Initializes a new instance of the class with default properties.
+
+
+ Initializes a new instance of the class with serialized data.
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class with a specified error message.
+ The error message that explains the reason for the exception.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception. If the parameter is not , the current exception is raised in a block that handles the inner exception.
+
+
+ Specifies the scheduling priority of a .
+
+
+ The can be scheduled after threads with priority and before those with priority.
+
+
+ The can be scheduled after threads with priority and before those with priority.
+
+
+ The can be scheduled before threads with any other priority.
+
+
+ The can be scheduled after threads with any other priority.
+
+
+ The can be scheduled after threads with priority and before those with priority. Threads have priority by default.
+
+
+ Represents the method that executes on a .
+
+
+ The exception that is thrown when a failure occurs in a managed thread after the underlying operating system thread has been started, but before the thread is ready to execute user code.
+
+
+ Specifies the execution states of a .
+
+
+ The thread state includes and the thread is now dead, but its state has not yet changed to .
+
+
+ The method has been invoked on the thread, but the thread has not yet received the pending that will attempt to terminate it.
+
+
+ The thread is being executed as a background thread, as opposed to a foreground thread. This state is controlled by setting the property.
+
+
+ The thread has been started and not yet stopped.
+
+
+ The thread has stopped.
+
+
+ The thread is being requested to stop. This is for internal use only.
+
+
+ The thread has been suspended.
+
+
+ The thread is being requested to suspend.
+
+
+ The method has not been invoked on the thread.
+
+
+ The thread is blocked. This could be the result of calling or , of requesting a lock - for example, by calling or - or of waiting on a thread synchronization object such as .
+
+
+ The exception that is thrown when a is in an invalid for the method call.
+
+
+ Initializes a new instance of the class with default properties.
+
+
+ Initializes a new instance of the class with serialized data.
+ The that holds the serialized object data about the exception being thrown.
+ The that contains contextual information about the source or destination.
+
+
+ Initializes a new instance of the class with a specified error message.
+ The error message that explains the reason for the exception.
+
+
+ Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception.
+ The error message that explains the reason for the exception.
+ The exception that is the cause of the current exception. If the parameter is not , the current exception is raised in a block that handles the inner exception.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.ThreadPool.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.ThreadPool.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a3f0de0de9d1f5ac7314e6f0f5693866d441bd99
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.ThreadPool.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Timer.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Timer.dll
new file mode 100644
index 0000000000000000000000000000000000000000..da5a6a9b12e51a4fe32c21760a04a21431a99900
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.Timer.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9a45e093e94efa9df5399e8893bd711dfb19ebc5
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Threading.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Transactions.Local.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Transactions.Local.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c721f4b68e0e4579ee0e0cc88f71e0c58beff540
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Transactions.Local.xml
@@ -0,0 +1,777 @@
+
+
+
+ System.Transactions.Local
+
+
+
+ Describes a committable transaction.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified value.
+ The maximum amount of time the transaction can exist, before it is aborted.
+
+
+ Initializes a new instance of the class with the specified transaction options.
+ A structure that describes the transaction options to use for the new transaction.
+
+ is invalid.
+
+
+ Begins an attempt to commit the transaction asynchronously.
+ The delegate that is invoked when the transaction completes. This parameter can be , in which case the application is not notified of the transaction's completion. Instead, the application must use the interface to check for completion and wait accordingly, or call to wait for completion.
+ An object, which might contain arbitrary state information, associated with the asynchronous commitment. This object is passed to the callback, and is not interpreted by . A null reference is permitted.
+ An interface that can be used by the caller to check the status of the asynchronous operation, or to wait for the operation to complete.
+
+
+ Attempts to commit the transaction.
+
+ is called on a transaction and the transaction becomes .
+
+ is called and the transaction rolls back for the first time.
+
+
+ Ends an attempt to commit the transaction asynchronously.
+ The object associated with the asynchronous commitment.
+
+ is called and the transaction rolls back for the first time.
+
+
+ Gets the object provided as the last parameter of the method call.
+ The object provided as the last parameter of the method call.
+
+
+ Gets a that is used to wait for an asynchronous operation to complete.
+ A that is used to wait for an asynchronous operation to complete.
+
+
+ Gets an indication of whether the asynchronous commit operation completed synchronously.
+
+ if the asynchronous commit operation completed synchronously; otherwise, . This property always returns even if the operation completed synchronously.
+
+
+ Gets an indication whether the asynchronous commit operation has completed.
+
+ if the operation is complete; otherwise, .
+
+
+ Controls what kind of dependent transaction to create.
+
+
+ The dependent transaction blocks the commit process of the transaction until the parent transaction times out, or is called. In this case, additional work can be done on the transaction and new enlistments can be created.
+
+
+ The dependent transaction automatically aborts the transaction if Commit is called on the parent transaction before is called.
+
+
+ Describes a clone of a transaction providing guarantee that the transaction cannot be committed until the application comes to rest regarding work on the transaction. This class cannot be inherited.
+
+
+ Attempts to complete the dependent transaction.
+ Any attempt for additional work on the transaction after this method is called. These include invoking methods such as , , , , or any serialization operations on the transaction.
+
+
+ Facilitates communication between an enlisted transaction participant and the transaction manager during the final phase of the transaction.
+
+
+ Indicates that the transaction participant has completed its work.
+
+
+ Determines whether the object should be enlisted during the prepare phase.
+
+
+ The object must enlist during the initial phase of the commitment process.
+
+
+ The object does not require enlistment during the initial phase of the commitment process.
+
+
+ Specifies how distributed transactions interact with COM+ transactions.
+
+
+ Search for an existing COM+ context and synchronize with it if one exists.
+
+
+ The context (which can be retrieved by calling the static method of the class) and the ambient transaction (which can be retrieved by calling the static method of the class) are always synchronized. This introduces a performance penalty because new contexts may need to be created.
+
+
+ There is no synchronization between and .
+
+
+ Provides a mechanism for the hosting environment to supply its own default notion of .
+ A object.
+
+
+ Describes a DTC transaction.
+
+
+ Aborts a transaction.
+ An optional that indicates why the transaction is being aborted. This parameter can be , indicating that no reason for the abort is provided.
+ This value must be .
+ When is , an asynchronous abort is performed and the caller must use to learn about the outcome of the transaction.
+
+
+ Commits a transaction.
+ This value must be .
+ A value taken from the OLE DB enumeration .
+ This value must be zero.
+
+
+ Retrieves information about a transaction.
+ Pointer to the caller-allocated structure that will receive information about the transaction. This value must not be .
+
+
+ Describes an interface that a resource manager should implement to provide two phase commit notification callbacks for the transaction manager upon enlisting for participation.
+
+
+ Notifies an enlisted object that a transaction is being committed.
+ An object used to send a response to the transaction manager.
+
+
+ Notifies an enlisted object that the status of a transaction is in doubt.
+ An object used to send a response to the transaction manager.
+
+
+ Notifies an enlisted object that a transaction is being prepared for commitment.
+ A object used to send a response to the transaction manager.
+
+
+ Notifies an enlisted object that a transaction is being rolled back (aborted).
+ A object used to send a response to the transaction manager.
+
+
+ Describes an object that acts as a commit delegate for a non-distributed transaction internal to a resource manager.
+
+
+ Notifies a transaction participant that enlistment has completed successfully.
+ An attempt to enlist or serialize a transaction.
+
+
+ Notifies an enlisted object that the transaction is being rolled back.
+ A object used to send a response to the transaction manager.
+
+
+ Notifies an enlisted object that the transaction is being committed.
+ A interface used to send a response to the transaction manager.
+
+
+ Represents a transaction that is not a root transaction, but can be escalated to be managed by the MSDTC.
+
+
+ Notifies an enlisted object that the transaction is being rolled back.
+
+
+ Describes a resource object that supports single phase commit optimization to participate in a transaction.
+
+
+ Represents the resource manager's implementation of the callback for the single phase commit optimization.
+ A used to send a response to the transaction manager.
+
+
+ Specifies the isolation level of a transaction.
+
+
+ The pending changes from more highly isolated transactions cannot be overwritten.
+
+
+ Volatile data cannot be read during the transaction, but can be modified.
+
+
+ Volatile data can be read and modified during the transaction.
+
+
+ Volatile data can be read but not modified during the transaction. New data can be added during the transaction.
+
+
+ Volatile data can be read but not modified, and no new data can be added during the transaction.
+
+
+
+ Volatile data can be read. Before a transaction modifies data, it verifies if another transaction has changed the data after it was initially read. If the data has been updated, an error is raised. This allows a transaction to get to the previously committed value of the data.
+ When you try to promote a transaction that was created with the isolation level, an is thrown with the error message "Transactions with IsolationLevel Snapshot cannot be promoted".
+
+
+
+ A different isolation level than the one specified is being used, but the level cannot be determined. An exception is thrown if this value is set.
+
+
+ Describes a delegated transaction for an existing transaction that can be escalated to be managed by the MSDTC when needed.
+
+
+ Notifies an enlisted object that an escalation of the delegated transaction has been requested.
+ A transmitter/receiver propagation token that marshals a distributed transaction. For more information, see .
+
+
+ Facilitates communication between an enlisted transaction participant and the transaction manager during the Prepare phase of the transaction.
+
+
+ Indicates that the transaction should be rolled back.
+
+
+ Indicates that the transaction should be rolled back.
+ An explanation of why a rollback is triggered.
+
+
+ Indicates that the transaction can be committed.
+
+
+ Gets the recovery information of an enlistment.
+ An attempt to get recovery information inside a volatile enlistment, which does not generate any recovery information.
+ The recovery information of an enlistment.
+
+
+ Provides a set of callbacks that facilitate communication between a participant enlisted for Single Phase Commit and the transaction manager when the notification is received.
+
+
+ Represents a callback that is used to indicate to the transaction manager that the transaction should be rolled back.
+
+
+ Represents a callback that is used to indicate to the transaction manager that the transaction should be rolled back, and provides an explanation.
+ An explanation of why a rollback is initiated.
+
+
+ Represents a callback that is used to indicate to the transaction manager that the SinglePhaseCommit was successful.
+
+
+ Represents a callback that is used to indicate to the transaction manager that the status of the transaction is in doubt.
+
+
+ Represents a callback that is used to indicate to the transaction manager that the status of the transaction is in doubt, and provides an explanation.
+ An explanation of why the transaction is in doubt.
+
+
+ Represents a non-rooted transaction that can be delegated. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+ The isolation level of the transaction.
+ A .
+
+
+ Represents a transaction.
+
+
+ Indicates that the transaction is completed.
+ An attempt to subscribe this event on a transaction that has been disposed.
+
+
+ Creates a clone of the transaction.
+ A that is a copy of the current transaction object.
+
+
+ Creates a dependent clone of the transaction.
+ A that controls what kind of dependent transaction to create.
+ A that represents the dependent clone.
+
+
+ Releases the resources that are held by the object.
+
+
+ Enlists a durable resource manager that supports two phase commit to participate in a transaction.
+ A unique identifier for a resource manager, which should persist across resource manager failure or reboot.
+ An object that implements the interface to receive two phase commit notifications.
+
+ if the resource manager wants to perform additional work during the prepare phase.
+ An object that describes the enlistment.
+
+
+ Enlists a durable resource manager that supports single phase commit optimization to participate in a transaction.
+ A unique identifier for a resource manager, which should persist across resource manager failure or reboot.
+ An object that implements the interface that must be able to receive single phase commit and two phase commit notifications.
+
+ if the resource manager wants to perform additional work during the prepare phase.
+ An object that describes the enlistment.
+
+
+ Enlists a resource manager that has an internal transaction using a promotable single phase enlistment (PSPE).
+ A interface implemented by the participant.
+ A interface implementation that describes the enlistment.
+
+
+ Enlists a resource manager that has an internal transaction using a promotable single phase enlistment (PSPE).
+ A interface implemented by the participant.
+ The type of the distributed transaction processor.
+ A interface implementation that describes the enlistment.
+
+
+ Enlists a volatile resource manager that supports two phase commit to participate in a transaction.
+ An object that implements the interface to receive two-phase commit notifications.
+
+ if the resource manager wants to perform additional work during the prepare phase.
+ An object that describes the enlistment.
+
+
+ Enlists a volatile resource manager that supports single phase commit optimization to participate in a transaction.
+ An object that implements the interface that must be able to receive single phase commit and two phase commit notifications.
+
+ if the resource manager wants to perform additional work during the prepare phase.
+ An object that describes the enlistment.
+
+
+ Determines whether this transaction and the specified object are equal.
+ The object to compare with this instance.
+
+ if and this transaction are identical; otherwise, .
+
+
+ Returns the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Gets the byte[] returned by the Promote method when the transaction is promoted.
+ The byte[] returned by the Promote method when the transaction is promoted.
+
+
+ Tests whether two specified instances are equivalent.
+ The instance that is to the left of the equality operator.
+ The instance that is to the right of the equality operator.
+
+ if and are equal; otherwise, .
+
+
+ Returns a value that indicates whether two instances are not equal.
+ The instance that is to the left of the inequality operator.
+ The instance that is to the right of the inequality operator.
+
+ if and are not equal; otherwise, .
+
+
+ Promotes and enlists a durable resource manager that supports two phase commit to participate in a transaction.
+ A unique identifier for a resource manager, which should persist across resource manager failure or reboot.
+ An object that acts as a commit delegate for a non-distributed transaction internal to a resource manager.
+ An object that implements the interface to receive two phase commit notifications.
+
+ if the resource manager wants to perform additional work during the prepare phase.
+
+
+ Rolls back (aborts) the transaction.
+
+
+ Rolls back (aborts) the transaction.
+ An explanation of why a rollback occurred.
+
+
+ Sets the distributed transaction identifier generated by the non-MSDTC promoter.
+ A interface implemented by the participant.
+ The identifier for the transaction used by the distributed transaction manager.
+
+
+ Gets a with the data required to serialize this transaction.
+ The to populate with data.
+ The destination (see ) for this serialization.
+
+
+ Gets or sets the ambient transaction.
+ A that describes the current transaction.
+
+
+ Gets the isolation level of the transaction.
+ One of the values that indicates the isolation level of the transaction.
+
+
+ Uniquely identifies the format of the byte[] returned by the Promote method when the transaction is promoted.
+ A guid that uniquely identifies the format of the byte[] returned by the Promote method when the transaction is promoted.
+
+
+ Retrieves additional information about a transaction.
+ A that contains additional information about the transaction.
+
+
+ The exception that is thrown when an operation is attempted on a transaction that has already been rolled back, or an attempt is made to commit the transaction and the transaction aborts.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified serialization and streaming context information.
+ A object that describes a failed serialization.
+ A object that describes a failed serialization context.
+
+
+ Initializes a new instance of the class with the specified message.
+ A that contains a message that explains why the exception occurred.
+
+
+ Initializes a new instance of the class with the specified message and inner exception.
+ A that contains a message that explains why the exception occurred.
+ Gets the exception instance that causes the current exception. For more information, see the property.
+
+
+ Represents the method that handles the event of a class.
+ The source of the event.
+ The that contains the event data.
+
+
+ Provides data for the following transaction events: , .
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the transaction for which event status is provided.
+ A for which event status is provided.
+
+
+ The exception that is thrown when you attempt to do work on a transaction that cannot accept new work.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified serialization and streaming context information.
+ A object that describes a failed serialization.
+ A object that describes a failed serialization context.
+
+
+ Initializes a new instance of the class with the specified message.
+ A that contains a message that explains why the exception occurred.
+
+
+ Initializes a new instance of the class with the specified message and inner exception.
+ A that contains a message that explains why the exception occurred.
+ Gets the exception instance that causes the current exception. For more information, see the property.
+
+
+ The exception that is thrown when an operation is attempted on a transaction that is in doubt, or an attempt is made to commit the transaction and the transaction becomes InDoubt.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified serialization and streaming context information.
+ A object that describes a failed serialization.
+ A object that describes a failed serialization context.
+
+
+ Initializes a new instance of the class with the specified message.
+ A that contains a message that explains why the exception occurred.
+
+
+ Initializes a new instance of the class with the specified message and inner exception.
+ A that contains a message that explains why the exception occurred.
+ Gets the exception instance that causes the current exception. For more information, see the property.
+
+
+ Provides additional information regarding a transaction.
+
+
+ Gets the creation time of the transaction.
+ A that contains the creation time of the transaction.
+
+
+ Gets a unique identifier of the escalated transaction.
+ A that contains the unique identifier of the escalated transaction.
+
+
+ Gets a unique identifier of the transaction.
+ A unique identifier of the transaction.
+
+
+ Gets the status of the transaction.
+ A that contains the status of the transaction.
+
+
+ Facilitates interaction between and components that were previously written to interact with MSDTC, COM+, or . This class cannot be inherited.
+
+
+ The type of the distributed transaction processor.
+
+
+ Gets an instance that represents a .
+ A instance to be marshaled.
+ An instance that represents a . The instance is compatible with the unmanaged form of ITransaction used by MSDTC and with the Managed form of used by .
+
+
+ Transforms a transaction object into an export transaction cookie.
+ The object to be marshaled.
+ An address that describes the location of the destination transaction manager. This permits two transaction managers to communicate with one another and thereby propagate a transaction from one system to the other.
+ An export transaction cookie representing the specified object.
+
+
+ Generates a from a specified .
+ The object to be marshaled.
+ A instance that represents the given .
+
+
+ Generates a from the specified an export cookie.
+ A marshaled form of the transaction object.
+ A from the specified export cookie.
+
+
+ Generates a instance from the specified transmitter propagation token.
+ A propagation token representing a transaction.
+ The deserialization of a transaction fails because the transaction manager cannot be contacted. This may be caused by network firewall or security settings.
+ A from the specified transmitter propagation token.
+
+
+ Generates a propagation token for the specified .
+ A transaction to be marshaled into a propagation token.
+ This method, together with the method, provide functionality for Transmitter/Receiver propagation, in which the transaction is "pulled" from the remote machine when the latter is called to unmarshal the transaction.
+
+ For more information on different propagation models, see class.
+
+
+ Gets the Whereabouts of the distributed transaction manager that uses.
+ The Whereabouts of the distributed transaction manager that uses.
+
+
+ Contains methods used for transaction management. This class cannot be inherited.
+
+
+ Indicates that a distributed transaction has started.
+
+
+ Notifies the transaction manager that a resource manager recovering from failure has finished reenlisting in all unresolved transactions.
+ A that uniquely identifies the resource to be recovered from.
+ The parameter is .
+
+
+ Reenlists a durable participant in a transaction.
+ A that uniquely identifies the resource manager.
+ Contains additional information of recovery information.
+ A resource object that implements to receive notifications.
+
+ is invalid.
+
+ -or-
+
+ Transaction Manager information in does not match the configured transaction manager.
+
+ -or-
+
+ is not recognized by .
+
+ has already been called for the specified . The reenlistment is rejected.
+ The does not match the content of the specified recovery information in .
+ An that describes the enlistment.
+
+
+ Gets the default timeout interval for new transactions.
+ A value that specifies the timeout interval for new transactions.
+
+
+ Gets or sets a custom transaction factory.
+ A that contains a custom transaction factory.
+
+
+ Gets or sets a value that indicates whether usage of System.Transactions APIs that require escalation to a distributed transaction will do so.
+
+ if transactions APIs are opted into distributed transaction; if a is thrown when transactions APIs escalate to a distributed transaction. The default is .
+
+
+ Gets the default maximum timeout interval for new transactions.
+ A value that specifies the maximum timeout interval that is allowed when creating new transactions.
+
+
+ The exception that is thrown when a resource manager cannot communicate with the transaction manager.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified serialization and streaming context information.
+ A object that describes a failed serialization.
+ A object that describes a failed serialization context.
+
+
+ Initializes a new instance of the class with the specified message.
+ A that contains a message that explains why the exception occurred.
+
+
+ Initializes a new instance of the class with the specified message and inner exception.
+ A that contains a message that explains why the exception occurred.
+ Gets the exception instance that causes the current exception. For more information, see the property.
+
+
+ Contains additional information that specifies transaction behaviors.
+
+
+ Determines whether this instance and the specified object are equal.
+ The object to compare with this instance.
+
+ if and this instance are identical; otherwise, .
+
+
+ Indicates whether the current instance is equal to another instance of the same type.
+ An instance to compare with this instance.
+
+ if the current instance is equal to the other instance; otherwise, .
+
+
+ Returns the hash code for this instance.
+ A 32-bit signed integer hash code.
+
+
+ Tests whether two specified instances are equivalent.
+ The instance that is to the left of the equality operator.
+ The instance that is to the right of the equality operator.
+
+ if and are equal; otherwise, .
+
+
+ Returns a value that indicates whether two instances are not equal.
+ The instance that is to the left of the equality operator.
+ The instance that is to the right of the equality operator.
+
+ if and are not equal; otherwise, .
+
+
+ Gets or sets the isolation level of the transaction.
+ A enumeration that specifies the isolation level of the transaction.
+
+
+ Gets or sets the timeout period for the transaction.
+ A value that specifies the timeout period for the transaction.
+
+
+ The exception that is thrown when a promotion fails.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified serialization and streaming context information.
+ A object that describes a failed serialization.
+ A object that describes a failed serialization context.
+
+
+ Initializes a new instance of the class with the specified message.
+ A that contains a message that explains why the exception occurred.
+
+
+ Initializes a new instance of the class with the specified message and inner exception.
+ A that contains a message that explains why the exception occurred.
+ Gets the exception instance that causes the current exception. For more information, see the property.
+
+
+ Makes a code block transactional. This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class and sets the specified transaction as the ambient transaction, so that transactional work done inside the scope uses this transaction.
+ The transaction to be set as the ambient transaction, so that transactional work done inside the scope uses this transaction.
+
+
+ Initializes a new instance of the class with the specified timeout value, and sets the specified transaction as the ambient transaction, so that transactional work done inside the scope uses this transaction.
+ The transaction to be set as the ambient transaction, so that transactional work done inside the scope uses this transaction.
+ The after which the transaction scope times out and aborts the transaction.
+
+
+ Initializes a new instance of the class with the specified timeout value and COM+ interoperability requirements, and sets the specified transaction as the ambient transaction, so that transactional work done inside the scope uses this transaction.
+ The transaction to be set as the ambient transaction, so that transactional work done inside the scope uses this transaction.
+ The after which the transaction scope times out and aborts the transaction.
+ An instance of the enumeration that describes how the associated transaction interacts with COM+ transactions.
+
+
+ [Supported in the .NET Framework 4.5.1 and later versions]
+
+ Initializes a new instance of the class with the specified timeout value, and sets the specified transaction as the ambient transaction, so that transactional work done inside the scope uses this transaction.
+ The transaction to be set as the ambient transaction, so that transactional work done inside the scope uses this transaction.
+ The after which the transaction scope times out and aborts the transaction.
+ An instance of the enumeration that describes whether the ambient transaction associated with the transaction scope will flow across thread continuations when using Task or async/await .NET async programming patterns.
+
+
+ [Supported in the .NET Framework 4.5.1 and later versions]
+
+ Initializes a new instance of the class and sets the specified transaction as the ambient transaction, so that transactional work done inside the scope uses this transaction.
+ The transaction to be set as the ambient transaction, so that transactional work done inside the scope uses this transaction.
+ An instance of the enumeration that describes whether the ambient transaction associated with the transaction scope will flow across thread continuations when using Task or async/await .NET async programming patterns.
+
+
+ Initializes a new instance of the class with the specified asynchronous flow option.
+ An instance of the enumeration that describes whether the ambient transaction associated with the transaction scope will flow across thread continuations when using Task or async/await .NET async programming patterns.
+
+
+ Initializes a new instance of the class with the specified requirements.
+ An instance of the enumeration that describes the transaction requirements associated with this transaction scope.
+
+
+ Initializes a new instance of the class with the specified timeout value and requirements.
+ An instance of the enumeration that describes the transaction requirements associated with this transaction scope.
+ The after which the transaction scope times out and aborts the transaction.
+
+
+ Initializes a new instance of the class with the specified timeout value, requirements, and asynchronous flow option.
+ An instance of the enumeration that describes the transaction requirements associated with this transaction scope.
+ The after which the transaction scope times out and aborts the transaction.
+ An instance of the enumeration that describes whether the ambient transaction associated with the transaction scope will flow across thread continuations when using Task or async/await .NET async programming patterns.
+
+
+ Initializes a new instance of the class with the specified requirements.
+ An instance of the enumeration that describes the transaction requirements associated with this transaction scope.
+ A structure that describes the transaction options to use if a new transaction is created. If an existing transaction is used, the timeout value in this parameter applies to the transaction scope. If that time expires before the scope is disposed, the transaction is aborted.
+
+
+ Initializes a new instance of the class with the specified scope and COM+ interoperability requirements, and transaction options.
+ An instance of the enumeration that describes the transaction requirements associated with this transaction scope.
+ A structure that describes the transaction options to use if a new transaction is created. If an existing transaction is used, the timeout value in this parameter applies to the transaction scope. If that time expires before the scope is disposed, the transaction is aborted.
+ An instance of the enumeration that describes how the associated transaction interacts with COM+ transactions.
+
+
+ [Supported in the .NET Framework 4.5.1 and later versions]
+
+ Initializes a new instance of the class with the specified requirements and asynchronous flow option.
+ An instance of the enumeration that describes the transaction requirements associated with this transaction scope.
+ A structure that describes the transaction options to use if a new transaction is created. If an existing transaction is used, the timeout value in this parameter applies to the transaction scope. If that time expires before the scope is disposed, the transaction is aborted.
+ An instance of the enumeration that describes whether the ambient transaction associated with the transaction scope will flow across thread continuations when using Task or async/await .NET async programming patterns.
+
+
+ Initializes a new instance of the class with the specified requirements and asynchronous flow option.
+ An instance of the enumeration that describes the transaction requirements associated with this transaction scope.
+ An instance of the enumeration that describes whether the ambient transaction associated with the transaction scope will flow across thread continuations when using Task or async/await .NET async programming patterns.
+
+
+ Indicates that all operations within the scope are completed successfully.
+ This method has already been called once.
+
+
+ Ends the transaction scope.
+
+
+ Specifies whether transaction flow across thread continuations is enabled for .
+
+
+ Specifies that transaction flow across thread continuations is enabled.
+
+
+ Specifies that transaction flow across thread continuations is suppressed. This is the default setting if no is specified in the constructor.
+
+
+ Provides additional options for creating a transaction scope.
+
+
+ A transaction is required by the scope. It uses an ambient transaction if one already exists. Otherwise, it creates a new transaction before entering the scope. This is the default value.
+
+
+ A new transaction is always created for the scope.
+
+
+ The ambient transaction context is suppressed when creating the scope. All operations within the scope are done without an ambient transaction context.
+
+
+ Represents the method that will handle the event of a class.
+ The source of the event.
+ The that contains the transaction from which transaction information can be retrieved.
+
+
+ Describes the current status of a distributed transaction.
+
+
+ The transaction has been rolled back.
+
+
+ The status of the transaction is unknown, because some participants must still be polled.
+
+
+ The transaction has been committed.
+
+
+ The status of the transaction is unknown.
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Web.HttpUtility.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Web.HttpUtility.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8c30a7bcadbd1e34dfaa8e62acbe812ac40cb1da
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Web.HttpUtility.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Web.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Web.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d12536b068ab401ec66ae42988ec54ce0e6d2341
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Web.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.Linq.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.Linq.dll
new file mode 100644
index 0000000000000000000000000000000000000000..529769ff1ef5dfabbf7768dbcc66f7fc2c0524dc
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.Linq.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.ReaderWriter.xml b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.ReaderWriter.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d231d3a7e9d055d30d9c82cbf32566c5db6cd2c7
--- /dev/null
+++ b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.ReaderWriter.xml
@@ -0,0 +1,11506 @@
+
+
+
+ System.Xml.ReaderWriter
+
+
+
+ Specifies the amount of input or output checking that and objects perform.
+
+
+ The or object automatically detects whether document-level or fragment-level checking should be performed, and does the appropriate checking. If you're wrapping another or object, the outer object doesn't do any additional conformance checking. Conformance checking is left up to the underlying object.
+
+ See the and properties for details on how the compliance level is determined.
+
+
+ The XML data complies with the rules for a well-formed XML 1.0 document, as defined by the W3C. This level of checking ensures that the stream being read or written can be consumed by any processor as an XML 1.0 document.
+
+
+ The XML data is a well-formed XML fragment, as defined by the W3C. This conformance level represents an XML document that might not have a root element but is otherwise well-formed. This level of checking ensures that the stream being read or written can be consumed by any processor as an XML 1.0 external parsed entity].
+
+
+ Specifies the options for processing DTDs. The enumeration is used by the class.
+
+
+ Causes the DOCTYPE element to be ignored. No DTD processing occurs, and the DTD/DOCTYPE is lost on output.
+
+
+ Used for parsing DTDs.
+
+
+ Specifies that when a DTD is encountered, an is thrown with a message that states that DTDs are prohibited. This is the default behavior.
+
+
+ Specifies how the or handle entities.
+
+
+ Expands character entities and returns general entities as nodes.
+
+You must call to see what the general entities expand to. This enables you to optimize entity handling by only expanding the entity the first time it is used.
+
+When set to , a reader call to the method expands all entities (both general and character entities).
+
+
+ Expands all entities and returns the expanded nodes.
+
+ nodes are not returned. The entity text is expanded in place of the entity references.
+
+
+ Specifies formatting options for the .
+
+
+ Causes child elements to be indented according to the and settings.
+
+This option indents element content only; mixed content is not affected. For the XML 1.0 definitions of these terms, see the World Wide Web Consortium (W3C) documentation Element Content and Mixed Content.
+
+
+ No special formatting is applied. This is the default.
+
+
+ Represents an application resource stream resolver.
+
+
+ Returns an application resource stream from the specified URI.
+ The relative URI.
+ An application resource stream.
+
+
+ Enables a class to return an from the current context or position.
+
+
+ Returns the for the current position.
+ The for the current position.
+
+
+ Provides an interface to enable a class to return line and position information.
+
+
+ Gets a value indicating whether the class can return line information.
+
+ if and can be provided; otherwise, .
+
+
+ Gets the current line number.
+ The current line number or 0 if no line information is available (for example, returns ).
+
+
+ Gets the current line position.
+ The current line position or 0 if no line information is available (for example, returns ).
+
+
+ Provides read-only access to a set of prefix and namespace mappings.
+
+
+ Gets a collection of defined prefix-namespace mappings that are currently in scope.
+ An value that specifies the type of namespace nodes to return.
+ An that contains the current in-scope namespaces.
+
+
+ Gets the namespace URI mapped to the specified prefix.
+ The prefix whose namespace URI you wish to find.
+ The namespace URI that is mapped to the prefix; if the prefix is not mapped to a namespace URI.
+
+
+ Gets the prefix that is mapped to the specified namespace URI.
+ The namespace URI whose prefix you wish to find.
+ The prefix that is mapped to the namespace URI; if the namespace URI is not mapped to a prefix.
+
+
+ Specifies whether to remove duplicate namespace declarations in the .
+
+
+ Specifies that duplicate namespace declarations will not be removed.
+
+
+ Specifies that duplicate namespace declarations will be removed. For the duplicate namespace to be removed, the prefix and the namespace must match.
+
+
+ Implements a single-threaded .
+
+
+ Initializes a new instance of the class.
+
+
+ Atomizes the specified string and adds it to the .
+ The character array containing the string to add.
+ The zero-based index into the array specifying the first character of the string.
+ The number of characters in the string.
+ 0 >
+
+ -or-
+
+ >= .Length
+
+ -or-
+
+ >= .Length
+
+ The above conditions do not cause an exception to be thrown if =0.
+
+ < 0.
+ The atomized string or the existing string if one already exists in the . If is zero, String.Empty is returned.
+
+
+ Atomizes the specified string and adds it to the .
+ The string to add.
+
+ is .
+ The atomized string or the existing string if it already exists in the .
+
+
+ Gets the atomized string containing the same characters as the specified range of characters in the given array.
+ The character array containing the name to find.
+ The zero-based index into the array specifying the first character of the name.
+ The number of characters in the name.
+ 0 >
+
+ -or-
+
+ >= .Length
+
+ -or-
+
+ >= .Length
+
+ The above conditions do not cause an exception to be thrown if =0.
+
+ < 0.
+ The atomized string or if the string has not already been atomized. If is zero, String.Empty is returned.
+
+
+ Gets the atomized string with the specified value.
+ The name to find.
+
+ is .
+ The atomized string object or if the string has not already been atomized.
+
+
+ Specifies how to handle line breaks.
+
+
+ New line characters are entitized. This setting preserves all characters when the output is read by a normalizing .
+
+
+ The new line characters are unchanged. The output is the same as the input.
+
+
+ New line characters are replaced to match the character specified in the property.
+
+
+ Specifies the state of the reader.
+
+
+ The method has been called.
+
+
+ The end of the file has been reached successfully.
+
+
+ An error occurred that prevents the read operation from continuing.
+
+
+ The method has not been called.
+
+
+ The method has been called. Additional methods may be called on the reader.
+
+
+ The enumeration is used by the and defines which well-known DTDs that the recognizes.
+
+
+ Specifies that the will recognize all currently supported DTDs. This is the default behavior.
+
+
+ Specifies that the will not recognize any of the predefined DTDs.
+
+
+ Specifies that the will recognize DTDs and entities that are defined in RSS 0.91.
+
+
+ Specifies that the will recognize DTDs and entities that are defined in XHTML 1.0.
+
+
+ Represents a class that is used to prepopulate the cache with DTDs or XML streams.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified preloaded well-known DTDs.
+ The well-known DTDs that should be prepopulated into the cache.
+
+
+ Initializes a new instance of the class with the specified fallback resolver.
+ The , , or your own resolver.
+
+
+ Initializes a new instance of the class with the specified fallback resolver and preloaded well-known DTDs.
+ The , , or your own resolver.
+ The well-known DTDs that should be prepopulated into the cache.
+
+
+ Initializes a new instance of the class with the specified fallback resolver, preloaded well-known DTDs, and URI equality comparer.
+ The , , or your own resolver.
+ The well-known DTDs that should be prepopulated into cache.
+ The implementation of the generic interface to use when you compare URIs.
+
+
+ Adds a byte array to the store and maps it to a URI. If the store already contains a mapping for the same URI, the existing mapping is overridden.
+ The URI of the data that is being added to the store.
+ A byte array with the data that corresponds to the provided URI.
+
+ or is .
+
+
+ Adds a byte array to the store and maps it to a URI. If the store already contains a mapping for the same URI, the existing mapping is overridden.
+ The URI of the data that is being added to the store.
+ A byte array with the data that corresponds to the provided URI.
+ The offset in the provided byte array where the data starts.
+ The number of bytes to read from the byte array, starting at the provided offset.
+
+ or is .
+
+ or is less than 0.
+
+ -or-
+
+ The length of the minus is less than .
+
+
+ Adds a to the store and maps it to a URI. If the store already contains a mapping for the same URI, the existing mapping is overridden.
+ The URI of the data that is being added to the store.
+ A with the data that corresponds to the provided URI.
+
+ or is .
+
+
+ Adds a string with preloaded data to the store and maps it to a URI. If the store already contains a mapping for the same URI, the existing mapping is overridden.
+ The URI of the data that is being added to the store.
+ A with the data that corresponds to the provided URI.
+
+ or is .
+
+
+ Maps a URI to an object that contains the actual resource.
+ The URI returned from .
+ The current version of the .NET Framework for Silverlight does not use this parameter when resolving URIs. This parameter is provided for future extensibility purposes. For example, this parameter can be mapped to the xlink:role and used as an implementation-specific argument in other scenarios.
+ The type of object to return. The supports objects and objects for URIs that were added as . If the requested type is not supported by the resolver, an exception will be thrown. Use the method to determine whether a certain is supported by this resolver.
+
+ is .
+ Cannot resolve URI passed in .
+
+ -or-
+
+ is not of a supported type.
+ A or object that corresponds to the actual source.
+
+
+ Asynchronously maps a URI to an object that contains the actual resource.
+ The URI returned from .
+ The current version of the .NET Framework for Silverlight does not use this parameter when resolving URIs. This parameter is provided for future extensibility purposes. For example, this parameter can be mapped to the xlink:role and used as an implementation-specific argument in other scenarios.
+ The type of object to return. The supports objects and objects for URIs that were added as . If the requested type is not supported by the resolver, an exception will be thrown. Use the method to determine whether a certain is supported by this resolver.
+ A or object that corresponds to the actual source.
+
+
+ Removes the data that corresponds to the URI from the .
+ The URI of the data that should be removed from the store.
+
+ is .
+
+
+ Resolves the absolute URI from the base and relative URIs.
+ The base URI used to resolve the relative URI.
+ The URI to resolve. The URI can be absolute or relative. If absolute, this value effectively replaces the value. If relative, it combines with the to make an absolute URI.
+
+ is .
+ The representing the absolute URI or if the relative URI cannot be resolved.
+
+
+ Determines whether the resolver supports other s than just .
+ The absolute URI to check.
+ The to return.
+
+ is .
+
+ if the is supported; otherwise, .
+
+
+ Sets the credentials that are used to authenticate the underlying .
+ The credentials that are used to authenticate the underlying web request.
+
+
+ Gets a collection of preloaded URIs.
+ The collection of preloaded URIs.
+
+
+ Defines the post-schema-validation infoset of a validated XML node.
+
+
+ Gets a value indicating if this validated XML node was set as the result of a default being applied during XML Schema Definition Language (XSD) schema validation.
+
+ if this validated XML node was set as the result of a default being applied during schema validation; otherwise, .
+
+
+ Gets a value indicating if the value for this validated XML node is nil.
+
+ if the value for this validated XML node is nil; otherwise, .
+
+
+ Gets the dynamic schema type for this validated XML node.
+ An object that represents the dynamic schema type for this validated XML node.
+
+
+ Gets the compiled that corresponds to this validated XML node.
+ An that corresponds to this validated XML node.
+
+
+ Gets the compiled that corresponds to this validated XML node.
+ An that corresponds to this validated XML node.
+
+
+ Gets the static XML Schema Definition Language (XSD) schema type of this validated XML node.
+ An of this validated XML node.
+
+
+ Gets the value of this validated XML node.
+ An value of this validated XML node.
+
+
+ Returns detailed information related to the .
+
+
+ Gets the associated with the validation event.
+ The associated with the validation event.
+
+
+ Gets the text description corresponding to the validation event.
+ The text description.
+
+
+ Gets the severity of the validation event.
+ An value representing the severity of the validation event.
+
+
+ Represents the callback method that will handle XML schema validation events and the .
+ The source of the event.
+
+ Note Determine the type of a sender before using it in your code. You cannot assume that the sender is an instance of a particular type. The sender is also not guaranteed to not be null. Always surround your casts with failure handling logic.
+ The event data.
+
+
+ Represents the typed value of a validated XML element or attribute. The class cannot be inherited.
+
+
+ Returns a copy of this object.
+ An object copy of this object.
+
+
+ For a description of this member, see .
+ A copy of this object.
+
+
+ Gets the value of the validated XML element or attribute.
+ The value of the validated XML element or attribute.
+
+
+ Returns the validated XML element or attribute's value as the type specified using the object specified to resolve namespace prefixes.
+ The type to return the validated XML element or attribute's value as.
+ The object used to resolve namespace prefixes.
+ The validated XML element or attribute's value is not in the correct format for the target type.
+ The attempted cast is not valid.
+ The attempted cast resulted in an overflow.
+ The value of the validated XML element or attribute as the type requested.
+
+
+ Gets a value indicating whether the validated XML element or attribute is an XPath node or an atomic value.
+
+ if the validated XML element or attribute is an XPath node; if the validated XML element or attribute is an atomic value.
+
+
+ Gets the current validated XML element or attribute as a boxed object of the most appropriate .NET type according to its schema type.
+ The current validated XML element or attribute as a boxed object of the most appropriate .NET type.
+
+
+ Gets the value of the validated XML element or attribute.
+ The value of the validated XML element or attribute.
+
+
+ Gets the validated XML element or attribute's value as a .
+ The validated XML element or attribute's value is not in the correct format for the type.
+ The attempted cast to is not valid.
+ The validated XML element or attribute's value as a .
+
+
+ Gets the validated XML element or attribute's value as a .
+ The validated XML element or attribute's value is not in the correct format for the type.
+ The attempted cast to is not valid.
+ The validated XML element or attribute's value as a .
+
+
+ Gets the validated XML element or attribute's value as a .
+ The validated XML element or attribute's value is not in the correct format for the type.
+ The attempted cast to is not valid.
+ The attempted cast resulted in an overflow.
+ The validated XML element or attribute's value as a .
+
+
+ Gets the validated XML element or attribute's value as an .
+ The validated XML element or attribute's value is not in the correct format for the type.
+ The attempted cast to is not valid.
+ The attempted cast resulted in an overflow.
+ The validated XML element or attribute's value as an .
+
+
+ Gets the validated XML element or attribute's value as an .
+ The validated XML element or attribute's value is not in the correct format for the type.
+ The attempted cast to is not valid.
+ The attempted cast resulted in an overflow.
+ The validated XML element or attribute's value as an .
+
+
+ Gets the .NET type of the validated XML element or attribute.
+ The .NET type of the validated XML element or attribute. The default value is .
+
+
+ Gets the for the validated XML element or attribute.
+ The for the validated XML element or attribute.
+
+
+ An in-memory representation of an XML Schema, as specified in the World Wide Web Consortium (W3C) XML Schema Part 1: Structures and XML Schema Part 2: Datatypes].
+
+
+ The XML schema instance namespace. This field is constant.
+
+
+ The XML schema namespace. This field is constant.
+
+
+ Initializes a new instance of the class.
+
+
+ Compiles the XML Schema Object Model (SOM) into schema information for validation. Used to check the syntactic and semantic structure of the programmatically built SOM. Semantic validation checking is performed during compilation.
+ The validation event handler that receives information about XML Schema validation errors.
+
+
+ Compiles the XML Schema Object Model (SOM) into schema information for validation. Used to check the syntactic and semantic structure of the programmatically built SOM. Semantic validation checking is performed during compilation.
+ The validation event handler that receives information about the XML Schema validation errors.
+ The used to resolve namespaces referenced in and elements.
+
+
+ Reads an XML Schema from the supplied stream.
+ The supplied data stream.
+ The validation event handler that receives information about XML Schema syntax errors.
+ An is raised if no is specified.
+ The object representing the XML Schema.
+
+
+ Reads an XML Schema from the supplied .
+ The containing the XML Schema to read.
+ The validation event handler that receives information about the XML Schema syntax errors.
+ An is raised if no is specified.
+ The object representing the XML Schema.
+
+
+ Reads an XML Schema from the supplied .
+ The containing the XML Schema to read.
+ The validation event handler that receives information about the XML Schema syntax errors.
+ An is raised if no is specified.
+ The object representing the XML Schema.
+
+
+ Writes the XML Schema to the supplied data stream.
+ The supplied data stream.
+
+
+ Writes the XML Schema to the supplied using the specified.
+ The supplied data stream.
+ The .
+
+
+ Writes the XML Schema to the supplied .
+ The to write to.
+
+
+ Writes the XML Schema to the supplied .
+ The to write to.
+ The .
+
+
+ Writes the XML Schema to the supplied .
+ The to write to.
+ The parameter is null.
+
+
+ Writes the XML Schema to the supplied .
+ The to write to.
+ The .
+
+
+ Gets or sets the form for attributes declared in the target namespace of the schema.
+ The value that indicates if attributes from the target namespace are required to be qualified with the namespace prefix. The default is .
+
+
+ Gets the post-schema-compilation value of all the global attribute groups in the schema.
+ An collection of all the global attribute groups in the schema.
+
+
+ Gets the post-schema-compilation value for all the attributes in the schema.
+ An collection of all the attributes in the schema.
+
+
+ Gets or sets the attribute which sets the default value of the attribute on element and complex types in the of the schema.
+ An value representing the different methods for preventing derivation. The default value is .
+
+
+ Gets or sets the form for elements declared in the target namespace of the schema.
+ The value that indicates if elements from the target namespace are required to be qualified with the namespace prefix. The default is .
+
+
+ Gets the post-schema-compilation value for all the elements in the schema.
+ An collection of all the elements in the schema.
+
+
+ Gets or sets the attribute which sets the default value of the attribute on elements and complex types in the target namespace of the schema.
+ An value representing the different methods for preventing derivation. The default value is .
+
+
+ Gets the post-schema-compilation value of all the groups in the schema.
+ An collection of all the groups in the schema.
+
+
+ Gets or sets the string ID.
+ The ID of the string. The default value is .
+
+
+ Gets the collection of included and imported schemas.
+ An of the included and imported schemas.
+
+
+ Indicates if the schema has been compiled.
+
+ if schema has been compiled, otherwise, . The default value is .
+
+
+ Gets the collection of schema elements in the schema and is used to add new element types at the element level.
+ An of schema elements in the schema.
+
+
+ Gets the post-schema-compilation value for all notations in the schema.
+ An collection of all notations in the schema.
+
+
+ Gets the post-schema-compilation value of all schema types in the schema.
+ An of all schema types in the schema.
+
+
+ Gets or sets the Uniform Resource Identifier (URI) of the schema target namespace.
+ The schema target namespace.
+
+
+ Gets or sets the qualified attributes which do not belong to the schema target namespace.
+ An array of qualified objects that do not belong to the schema target namespace.
+
+
+ Gets or sets the version of the schema.
+ The version of the schema. The default value is .
+
+
+ Represents the World Wide Web Consortium (W3C) element (compositor).
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the collection of elements contained within the compositor.
+ The collection of elements contained in .
+
+
+ The base class for any element that can contain annotation elements.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the property.
+ An representing the property.
+
+
+ Gets or sets the string id.
+ The string id. The default is . Optional.
+
+
+ Gets or sets the qualified attributes that do not belong to the current schema's target namespace.
+ An array of qualified objects that do not belong to the schema's target namespace.
+
+
+ Represents the World Wide Web Consortium (W3C) element.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the string id.
+ The string id. The default is . Optional.
+
+
+ Gets the collection that is used to store the and child elements.
+ An of and child elements.
+
+
+ Gets or sets the qualified attributes that do not belong to the schema's target namespace.
+ An array of objects that do not belong to the schema's target namespace.
+
+
+ Represents the World Wide Web Consortium (W3C) element.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the namespaces containing the elements that can be used.
+ Namespaces for elements that are available for use. The default is . Optional.
+
+
+ Gets or sets information about how an application or XML processor should handle the validation of XML documents for the elements specified by the element.
+ One of the values. If no attribute is specified, the default is .
+
+
+ Represents the World Wide Web Consortium (W3C) element.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the namespaces containing the attributes that can be used.
+ Namespaces for attributes that are available for use. The default is . Optional.
+
+
+ Gets or sets information about how an application or XML processor should handle the validation of XML documents for the attributes specified by the element.
+ One of the values. If no attribute is specified, the default is .
+
+
+ Represents the World Wide Web Consortium (W3C) element.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets an array of objects that represents the child nodes.
+ An array of objects that represents the child nodes.
+
+
+ Gets or sets the source of the application information.
+ A Uniform Resource Identifier (URI) reference. The default is . Optional.
+
+
+ Represents the element from the XML Schema as specified by the World Wide Web Consortium (W3C). Attributes provide additional information for other document elements. The attribute tag is nested between the tags of a document's element for the schema. The XML document displays attributes as named items in the opening tag of an element.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets an object representing the type of the attribute based on the or of the attribute.
+ An object.
+
+
+ Gets the common language runtime (CLR) object based on the or of the attribute that holds the post-compilation value of the property.
+ The common runtime library (CLR) object that holds the post-compilation value of the property.
+
+
+ Gets or sets the default value for the attribute.
+ The default value for the attribute. The default is a null reference. Optional.
+
+
+ Gets or sets the fixed value for the attribute.
+ The fixed value for the attribute. The default is null. Optional.
+
+
+ Gets or sets the form for the attribute.
+ One of the values. The default is the value of the of the schema element containing the attribute. Optional.
+
+
+ Gets or sets the name of the attribute.
+ The name of the attribute.
+
+
+ Gets the qualified name for the attribute.
+ The post-compilation value of the property.
+
+
+ Gets or sets the name of an attribute declared in this schema (or another schema indicated by the specified namespace).
+ The name of the attribute declared.
+
+
+ Gets or sets the attribute type to a simple type.
+ The simple type defined in this schema.
+
+
+ Gets or sets the name of the simple type defined in this schema (or another schema indicated by the specified namespace).
+ The name of the simple type.
+
+
+ Gets or sets information about how the attribute is used.
+ One of the following values: None, Prohibited, Optional, or Required. The default is Optional. Optional.
+
+
+ Represents the element from the XML Schema as specified by the World Wide Web Consortium (W3C). AttributesGroups provides a mechanism to group a set of attribute declarations so that they can be incorporated as a group into complex type definitions.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the component of the attribute group.
+ The World Wide Web Consortium (W3C) element.
+
+
+ Gets the collection of attributes for the attribute group. Contains and elements.
+ The collection of attributes for the attribute group.
+
+
+ Gets or sets the name of the attribute group.
+ The name of the attribute group.
+
+
+ Gets the qualified name of the attribute group.
+ The qualified name of the attribute group.
+
+
+ Gets the redefined attribute group property from the XML Schema.
+ The redefined attribute group property.
+
+
+ Represents the element with the attribute from the XML Schema as specified by the World Wide Web Consortium (W3C). AttributesGroupRef is the reference for an attributeGroup, name property contains the attribute group being referenced.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the name of the referenced element.
+ The name of the referenced attribute group. The value must be a QName.
+
+
+ Represents the element (compositor) from the XML Schema as specified by the World Wide Web Consortium (W3C). The allows only one of its children to appear in an instance.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the collection of the elements contained with the compositor (): , , , , or .
+ The collection of elements contained within .
+
+
+ Contains a cache of XML Schema definition language (XSD) and XML-Data Reduced (XDR) schemas. The class is obsolete. Use instead.
+
+
+ Sets an event handler for receiving information about the XDR and XML schema validation errors.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified . The is used when loading schemas.
+ The to use.
+
+
+ Adds the schema located by the given URL into the schema collection.
+ The namespace URI associated with the schema. For XML Schemas, this will typically be the .
+ The URL that specifies the schema to load.
+ The schema is not a valid schema.
+ The added to the schema collection; if the schema being added is an XDR schema or if there are compilation errors in the schema.
+
+
+ Adds the schema contained in the to the schema collection.
+ The namespace URI associated with the schema. For XML Schemas, this will typically be the .
+
+ containing the schema to add.
+ The schema is not a valid schema.
+ The added to the schema collection; if the schema being added is an XDR schema or if there are compilation errors in the schema.
+
+
+ Adds the schema contained in the to the schema collection. The specified is used to resolve any external resources.
+ The namespace URI associated with the schema. For XML Schemas, this will typically be the .
+
+ containing the schema to add.
+ The used to resolve namespaces referenced in and elements or attribute (XDR schemas). If this is , external references are not resolved.
+ The schema is not a valid schema.
+ The added to the schema collection; if the schema being added is an XDR schema or if there are compilation errors in the schema.
+
+
+ Adds the to the collection.
+ The to add to the collection.
+ The object.
+
+
+ Adds the to the collection. The specified is used to resolve any external references.
+ The to add to the collection.
+ The used to resolve namespaces referenced in and elements. If this is , external references are not resolved.
+ The schema is not a valid schema.
+ The added to the schema collection.
+
+
+ Adds all the namespaces defined in the given collection (including their associated schemas) to this collection.
+ The you want to add to this collection.
+
+
+ Gets a value indicating whether a schema with the specified namespace is in the collection.
+ The namespace URI associated with the schema. For XML Schemas, this will typically be the target namespace.
+
+ if a schema with the specified namespace is in the collection; otherwise, .
+
+
+ Gets a value indicating whether the of the specified is in the collection.
+ The object.
+
+ if there is a schema in the collection with the same ; otherwise, .
+
+
+ Copies all the objects from this collection into the given array starting at the given index.
+ The array to copy the objects to.
+ The index in where copying will begin.
+
+
+ Provides support for the "for each" style iteration over the collection of schemas.
+ An enumerator for iterating over all schemas in the current collection.
+
+
+ For a description of this member, see .
+ The array to copy the objects to.
+ The index in where copying will begin.
+
+
+ For a description of this member, see .
+ The for the collection.
+
+
+ Gets the number of namespaces defined in this collection.
+ The number of namespaces defined in this collection.
+
+
+ Gets the associated with the given namespace URI.
+ The namespace URI associated with the schema you want to return. This will typically be the of the schema.
+ The associated with the namespace URI; if there is no loaded schema associated with the given namespace or if the namespace is associated with an XDR schema.
+
+
+ Gets the default used by the when loading new schemas.
+ An .
+
+
+ For a description of this member, see .
+ The count of the items in the collection.
+
+
+ For a description of this member, see .
+
+ if the collection is synchronized; otherwise, .
+
+
+ For a description of this member, see .
+ A object that can be used to synchronize access to the collection.
+
+
+ Supports a simple iteration over a collection. This class cannot be inherited.
+
+
+ Advances the enumerator to the next schema in the collection.
+
+ if the move was successful; if the enumerator has passed the end of the collection.
+
+
+ For a description of this member, see .
+ The next node.
+
+
+ For a description of this member, see .
+
+
+ Gets the current in the collection.
+ The current in the collection.
+
+
+ For a description of this member, see .
+ The current node.
+
+
+ Provides schema compilation options for the class This class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a value indicating whether the should check for Unique Particle Attribution (UPA) violations.
+
+ if the should check for Unique Particle Attribution (UPA) violations; otherwise, . The default is .
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class represents the complex content model for complex types. It contains extensions or restrictions on a complex type that has either only elements or mixed content.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the content.
+ One of either the or classes.
+
+
+ Gets or sets information that determines if the type has a mixed content model.
+ If this property is , character data is allowed to appear between the child elements of the complex type (mixed content model). The default is . Optional.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class is for complex types with complex content model derived by extension. It extends the complex type by adding attributes or elements.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the component of the complex content model.
+ The component of the complex content model.
+
+
+ Gets the collection of attributes for the complex content. Contains and elements.
+ The collection of attributes for the complex content.
+
+
+ Gets or sets the name of the complex type from which this type is derived by extension.
+ The name of the complex type from which this type is derived by extension.
+
+
+ Gets or sets one of the , , , or classes.
+ One of the , , , or classes.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class is for complex types with a complex content model derived by restriction. It restricts the contents of the complex type to a subset of the inherited complex type.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the component of the complex content model.
+ The component of the complex content model.
+
+
+ Gets the collection of attributes for the complex type. Contains the and elements.
+ The collection of attributes for the complex type.
+
+
+ Gets or sets the name of a complex type from which this type is derived by restriction.
+ The name of the complex type from which this type is derived by restriction.
+
+
+ Gets or sets one of the , , , or classes.
+ One of the , , , or classes.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class defines a complex type that determines the set of attributes and content of an element.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the value for the component of the complex type.
+ The component of the complex type.
+
+
+ Gets the collection of attributes for the complex type.
+ Contains and classes.
+
+
+ Gets the collection of all the complied attributes of this complex type and its base types.
+ The collection of all the attributes from this complex type and its base types. The post-compilation value of the property.
+
+
+ Gets the post-compilation value for for this complex type and its base type(s).
+ The post-compilation value of the element.
+
+
+ Gets or sets the attribute.
+ The attribute prevents a complex type from being used in the specified type of derivation. The default is . Optional.
+
+
+ Gets the value after the type has been compiled to the post-schema-validation information set (infoset). This value indicates how the type is enforced when is used in the instance document.
+ The post-schema-validated infoset value. The default is value on the element.
+
+
+ Gets or sets the post-compilation of this complex type.
+ The content model type that is one of the or classes.
+
+
+ Gets the content model of the complex type which holds the post-compilation value.
+ The post-compilation value of the content model for the complex type.
+
+
+ Gets the particle that holds the post-compilation value of the particle.
+ The particle for the content type. The post-compilation value of the particle.
+
+
+ Gets or sets the information that determines if the element can be used in the instance document.
+ If , an element cannot use this element directly and must use a complex type that is derived from this element. The default is . Optional.
+
+
+ Gets or sets information that determines if the complex type has a mixed content model (markup within the content).
+
+ , if character data can appear between child elements of this complex type; otherwise, . The default is . Optional.
+
+
+ Gets or sets the compositor type as one of the , , , or classes.
+ The compositor type.
+
+
+ An abstract class for schema content.
+
+
+ Initializes a new instance of the class.
+
+
+ Specifies the order and structure of the child elements of a type.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the content of the type.
+ Provides the content of the type.
+
+
+ Provides information about the validation mode of and element replacements.
+
+
+ If the associated schema is found, the document items will be validated. No errors will be thrown otherwise.
+
+If the item is not validated, the XML processor attempts to notify the client through a validation event handler with = . If a validation event handler has not been set up, no information is returned when the warning is produced.
+
+
+ Document items are not validated.
+
+
+ Document items must consist of well-formed XML and are not validated by the schema.
+
+The XML processor attempts to notify the client through a validation event handler with = that no validation took place for the given item. If a validation event handler has not been set up, no information is returned when the warning is produced.
+
+
+ The schema processor must find a schema associated with the indicated namespace to validate the document items.
+
+If the processor cannot find a schema or if the items are not valid, the XML processor attempts to notify the client through a validation event handler with = . If a validation error occurs and a validation event handler is not provided, an exception is thrown.
+
+
+ Enumerations for the content model of the complex type. This represents the content in the post-schema-validation information set (infoset).
+
+
+ Element-only content.
+
+
+ Empty content.
+
+
+ Mixed content.
+
+
+ Text-only content.
+
+
+ The class is an abstract class for mapping XML Schema definition language (XSD) types to Common Language Runtime (CLR) types.
+
+
+ Converts the value specified, whose type is one of the valid Common Language Runtime (CLR) representations of the XML schema type represented by the , to the CLR type specified.
+ The input value to convert to the specified type.
+ The target type to convert the input value to.
+ The or parameter is .
+ The type represented by the does not support a conversion from type of the value specified to the type specified.
+ The converted input value.
+
+
+ Converts the value specified, whose type is one of the valid Common Language Runtime (CLR) representations of the XML schema type represented by the , to the CLR type specified using the if the represents the xs:QName type or a type derived from it.
+ The input value to convert to the specified type.
+ The target type to convert the input value to.
+ An used for resolving namespace prefixes. This is only of use if the represents the xs:QName type or a type derived from it.
+ The or parameter is .
+ The type represented by the does not support a conversion from type of the value specified to the type specified.
+ The converted input value.
+
+
+ The method always returns .
+ The .
+ Always returns .
+
+
+ When overridden in a derived class, validates the specified against a built-in or user-defined simple type.
+ The to validate against the simple type.
+ The to use for atomization while parsing the if this object represents the xs:NCName type.
+ The object to use while parsing the if this object represents the xs:QName type.
+ The input value is not a valid instance of this W3C XML Schema type.
+ The value to parse cannot be .
+ An that can be cast safely to the type returned by the property.
+
+
+ When overridden in a derived class, gets the type for the as specified in the World Wide Web Consortium (W3C) XML 1.0 specification.
+ An value for the .
+
+
+ Gets the value for the simple type.
+ The value for the simple type.
+
+
+ When overridden in a derived class, gets the Common Language Runtime (CLR) type of the item.
+ The Common Language Runtime (CLR) type of the item.
+
+
+ Gets the value for the simple type.
+ The value for the simple type.
+
+
+ Specifies the W3C XML schema data type variety of the type.
+
+
+ A W3C XML schema atomic type.
+
+
+ A W3C XML schema list type.
+
+
+ A W3C XML schema union type.
+
+
+ Provides different methods for preventing derivation.
+
+
+
+ . Refers to all derivation methods.
+
+
+ Override default derivation method to allow any derivation.
+
+
+ Refers to derivations by .
+
+
+ Refers to derivations by .
+
+
+ Accepts the default derivation method.
+
+
+ Refers to derivations by .
+
+
+ Refers to derivations by .
+
+
+ Refers to derivations by .
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class specifies information to be read or used by humans within an .
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the attribute. This serves as an indicator of the language used in the contents.
+ The attribute. Optional.
+
+
+ Gets or sets an array of that represents the documentation child nodes.
+ The array that represents the documentation child nodes.
+
+
+ Gets or sets the Uniform Resource Identifier (URI) source of the information.
+ A URI reference. The default is . Optional.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class is the base class for all particle types and is used to describe an element in an XML document.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets a derivation.
+ The attribute used to block a type derivation. Default value is . Optional.
+
+
+ Gets the post-compilation value of the property.
+ The post-compilation value of the property. The default is the value on the element.
+
+
+ Gets the collection of constraints on the element.
+ The collection of constraints.
+
+
+ Gets or sets the default value of the element if its content is a simple type or content of the element is .
+ The default value for the element. The default is a null reference. Optional.
+
+
+ Gets an object representing the type of the element based on the or values of the element.
+ An object.
+
+
+ Gets a common language runtime (CLR) object based on the or of the element, which holds the post-compilation value of the property.
+ The common language runtime object. The post-compilation value of the property.
+
+
+ Gets or sets the property to indicate that no further derivations are allowed.
+ The property. The default is . Optional.
+
+
+ Gets the post-compilation value of the property.
+ The post-compilation value of the property. Default value is the value on the element.
+
+
+ Gets or sets the fixed value.
+ The fixed value that is predetermined and unchangeable. The default is a null reference. Optional.
+
+
+ Gets or sets the form for the element.
+ The form for the element. The default is the value. Optional.
+
+
+ Gets or sets information to indicate if the element can be used in an instance document.
+ If , the element cannot appear in the instance document. The default is . Optional.
+
+
+ Gets or sets information that indicates if can occur in the instance data. Indicates if an explicit nil value can be assigned to the element.
+ If nillable is , this enables an instance of the element to have the attribute set to . The attribute is defined as part of the XML Schema namespace for instances. The default is . Optional.
+
+
+ Gets or sets the name of the element.
+ The name of the element. The default is .
+
+
+ Gets the actual qualified name for the given element.
+ The qualified name of the element. The post-compilation value of the property.
+
+
+ Gets or sets the reference name of an element declared in this schema (or another schema indicated by the specified namespace).
+ The reference name of the element.
+
+
+ Gets or sets the type of the element. This can either be a complex type or a simple type.
+ The type of the element.
+
+
+ Gets or sets the name of a built-in data type defined in this schema or another schema indicated by the specified namespace.
+ The name of the built-in data type.
+
+
+ Gets or sets the name of an element that is being substituted by this element.
+ The qualified name of an element that is being substituted by this element. Optional.
+
+
+ Represents the facet from XML Schema as specified by the World Wide Web Consortium (W3C). This class specifies a list of valid values for a simpleType element. Declaration is contained within a declaration.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns detailed information about the schema exception.
+
+
+ Initializes a new instance of the class.
+
+
+ Constructs a new object with the given and information that contains all the properties of the .
+ SerializationInfo.
+ StreamingContext.
+
+
+ Initializes a new instance of the class with the exception message specified.
+ A description of the error condition.
+
+
+ Initializes a new instance of the class with the exception message and original object that caused this exception specified.
+ A description of the error condition.
+ The original object that caused this exception.
+
+
+ Initializes a new instance of the class with the exception message specified, and the original object, line number, and line position of the XML that cause this exception specified.
+ A description of the error condition.
+ The original object that caused this exception.
+ The line number of the XML that caused this exception.
+ The line position of the XML that caused this exception.
+
+
+ Streams all the properties into the class for the given .
+ The .
+ The information.
+
+
+ Gets the line number indicating where the error occurred.
+ The line number indicating where the error occurred.
+
+
+ Gets the line position indicating where the error occurred.
+ The line position indicating where the error occurred.
+
+
+ Gets the description of the error condition of this exception.
+ The description of the error condition of this exception.
+
+
+ The that produced the .
+ A valid object instance represents a structural validation error in the XML Schema Object Model (SOM).
+
+
+ Gets the Uniform Resource Identifier (URI) location of the schema that caused the exception.
+ The URI location of the schema that caused the exception.
+
+
+ An abstract class. Provides information about the included schema.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the string id.
+ The string id. The default is . Optional.
+
+
+ Gets or sets the for the referenced schema.
+ The for the referenced schema.
+
+
+ Gets or sets the Uniform Resource Identifier (URI) location for the schema, which tells the schema processor where the schema physically resides.
+ The URI location for the schema. Optional for imported schemas.
+
+
+ Gets or sets the qualified attributes, which do not belong to the schema target namespace.
+ Qualified attributes that belong to another target namespace.
+
+
+ Abstract class for all facets that are used when simple types are derived by restriction.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets information that indicates that this facet is fixed.
+ If , value is fixed; otherwise, . The default is . Optional.
+
+
+ Gets or sets the attribute of the facet.
+ The value attribute.
+
+
+ Indicates if attributes or elements need to be qualified with a namespace prefix.
+
+
+ Element and attribute form is not specified in the schema.
+
+
+ Elements and attributes must be qualified with a namespace prefix.
+
+
+ Elements and attributes are not required to be qualified with a namespace prefix.
+
+
+ Specifies a restriction on the number of digits that can be entered for the fraction value of a simpleType element. The value of fractionDigits must be a positive integer. Represents the World Wide Web Consortium (W3C) facet.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class defines groups at the level that are referenced from the complex types. It groups a set of element declarations so that they can be incorporated as a group into complex type definitions.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the name of the schema group.
+ The name of the schema group.
+
+
+ Gets or sets one of the , , or classes.
+ One of the , , or classes.
+
+
+ Gets the qualified name of the schema group.
+ An object representing the qualified name of the schema group.
+
+
+ An abstract class for , , or .
+
+
+ This collection is used to add new elements to the compositor.
+ An .
+
+
+ Represents the element with attribute from the XML Schema as specified by the World Wide Web Consortium (W3C). This class is used within complex types that reference a defined at the level.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets one of the , , or classes, which holds the post-compilation value of the property.
+ The post-compilation value of the property, which is one of the , , or classes.
+
+
+ Gets or sets the name of a group defined in this schema (or another schema indicated by the specified namespace).
+ The name of a group defined in this schema.
+
+
+ Class for the identity constraints: , , and elements.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the collection of fields that apply as children for the XML Path Language (XPath) expression selector.
+ The collection of fields.
+
+
+ Gets or sets the name of the identity constraint.
+ The name of the identity constraint.
+
+
+ Gets the qualified name of the identity constraint, which holds the post-compilation value of the property.
+ The post-compilation value of the property.
+
+
+ Gets or sets the XPath expression element.
+ The XPath expression element.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class is used to import schema components from other schemas.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the property.
+ The annotation.
+
+
+ Gets or sets the target namespace for the imported schema as a Uniform Resource Identifier (URI) reference.
+ The target namespace for the imported schema as a URI reference. Optional.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class is used to include declarations and definitions from an external schema. The included declarations and definitions are then available for processing in the containing schema.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the property.
+ The annotation.
+
+
+ Infers an XML Schema Definition Language (XSD) schema from an XML document. The class cannot be inherited.
+
+
+ Initializes a new instance of the class.
+
+
+ Infers an XML Schema Definition Language (XSD) schema from the XML document contained in the object specified.
+ An object containing the XML document to infer a schema from.
+ The XML document is not well-formed.
+ The object is not positioned on the root node or on an element. An error occurs during the schema inference process.
+ An object containing the inferred schemas.
+
+
+ Infers an XML Schema Definition Language (XSD) schema from the XML document contained in the object specified, and refines the inferred schema using an existing schema in the object specified with the same target namespace.
+ An object containing the XML document to infer a schema from.
+ An object containing an existing schema used to refine the inferred schema.
+ The XML document is not well-formed.
+ The object is not positioned on the root node or on an element. An error occurs during the schema inference process.
+ An object containing the inferred schemas.
+
+
+ Gets or sets the value that affects schema occurrence declarations inferred from the XML document.
+ An object.
+
+
+ Gets or sets the value that affects types inferred from the XML document.
+ An object.
+
+
+ Affects occurrence and type information inferred by the class for elements and attributes in an XML document.
+
+
+ Indicates that a less restrictive schema declaration should be inferred for a particular element or attribute.
+
+
+ Indicates that a more restrictive schema declaration should be inferred for a particular element or attribute.
+
+
+ Returns information about errors encountered by the class while inferring a schema from an XML document.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the and objects specified that contain all the properties of the .
+ A object.
+ A object.
+
+
+ Initializes a new instance of the class with the error message specified.
+ A description of the error.
+
+
+ Initializes a new instance of the class with the error message specified and the original that caused the specified.
+ A description of the error.
+ An object containing the original exception that caused the .
+
+
+ Initializes a new instance of the class with the error message specified, the original that caused the specified, and the line number and line position of the error in the XML document specified.
+ A description of the error.
+ An object containing the original exception that caused the .
+ The line number in the XML document that caused the .
+ The line position in the XML document that caused the .
+
+
+ Streams all the object properties into the object specified for the object specified.
+ A object.
+ A object.
+
+
+ Represents the post-schema-validation infoset of a validated XML node.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the object that corresponds to the content type of this validated XML node.
+ An object.
+
+
+ Gets or sets a value indicating if this validated XML node was set as the result of a default being applied during XML Schema Definition Language (XSD) schema validation.
+ A value.
+
+
+ Gets or sets a value indicating if the value for this validated XML node is nil.
+ A value.
+
+
+ Gets or sets the dynamic schema type for this validated XML node.
+ An object.
+
+
+ Gets or sets the compiled object that corresponds to this validated XML node.
+ An object.
+
+
+ Gets or sets the compiled object that corresponds to this validated XML node.
+ An object.
+
+
+ Gets or sets the static XML Schema Definition Language (XSD) schema type of this validated XML node.
+ An object.
+
+
+ Gets or sets the value of this validated XML node.
+ An value.
+
+
+ This class represents the element from XMLSchema as specified by the World Wide Web Consortium (W3C).
+
+
+ Initializes a new instance of the class.
+
+
+ This class represents the element from XMLSchema as specified by the World Wide Web Consortium (W3C).
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the name of the key that this constraint refers to in another simple or complex type.
+ The QName of the key that this constraint refers to.
+
+
+ Represents the facet from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used to specify a restriction on the length of a element on the data type.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used to specify a restriction on the maximum value of a element. The element value must be less than the value of the element.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used to specify a restriction on the maximum value of a element. The element value must be less than or equal to the value of the element.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used to specify a restriction on the maximum length of the data value of a element. The length must be less than the value of the element.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used to specify a restriction on the minimum value of a element. The element value must be greater than the value of the element.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used to specify a restriction on the minimum value of a simpleType element. The element value must be greater than or equal to the value of the element.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used to specify a restriction on the minimum length of the data value of a element. The length must be greater than the value of the element.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). An XML Schema declaration is a reconstruction of declarations. The purpose of notations is to describe the format of non-XML data within an XML document.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the name of the notation.
+ The name of the notation.
+
+
+ Gets or sets the identifier.
+ The identifier. The value must be a valid Uniform Resource Identifier (URI).
+
+
+ Gets or sets the identifier.
+ The identifier. The value must be a valid URI.
+
+
+ Abstract class for defining facets. This class is the base class for numeric facet classes such as .
+
+
+ Initializes a new instance of the class.
+
+
+ Represents the root class for the Xml schema object model hierarchy and serves as a base class for classes such as the class.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the line number in the file to which the element refers.
+ The line number.
+
+
+ Gets or sets the line position in the file to which the element refers.
+ The line position.
+
+
+ Gets or sets the to use with this schema object.
+ The property for the schema object.
+
+
+ Gets or sets the parent of this .
+ The parent of this .
+
+
+ Gets or sets the source location for the file that loaded the schema.
+ The source location (URI) for the file.
+
+
+ A collection of s.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class that takes an .
+ The .
+
+
+ Adds an to the .
+ The .
+
+ is less than zero.
+
+ -or-
+
+ is greater than .
+ The parameter specified is not of type or its derived types , , and .
+ The index at which the item has been added.
+
+
+ Indicates if the specified is in the .
+ The .
+
+ if the specified qualified name is in the collection; otherwise, returns . If null is supplied, is returned because there is no qualified name with a null name.
+
+
+ Copies all the s from the collection into the given array, starting at the given index.
+ The one-dimensional array that is the destination of the elements copied from the . The array must have zero-based indexing.
+ The zero-based index in the array at which copying begins.
+
+ is a null reference ( in Visual Basic).
+
+ is less than zero.
+
+ is multi-dimensional.
+
+-or-
+
+ is equal to or greater than the length of .
+
+-or-
+
+ The number of elements in the source is greater than the available space from index to the end of the destination array.
+ The type of the source cannot be cast automatically to the type of the destination array.
+
+
+ Returns an enumerator for iterating through the contained in the .
+ The iterator returns .
+
+
+ Gets the collection index corresponding to the specified .
+ The whose index you want to return.
+ The index corresponding to the specified .
+
+
+ Inserts an to the .
+ The zero-based index at which an item should be inserted.
+ The to insert.
+
+ is less than zero.
+
+ -or-
+
+ is greater than .
+
+
+
+ is invoked before the standard behavior. For more information, see OnClear method for .
+
+
+
+ is invoked before the standard behavior. For more information, see method .
+ The index of .
+ The item.
+
+
+
+ is invoked before the standard behavior. For more information, see the method for .
+ The index of .
+ The item.
+
+
+
+ is invoked before the standard behavior. For more information, see the OnSet method for .
+ The index of .
+ The old value.
+ The new value.
+
+
+ Removes an from the .
+ The to remove.
+
+
+ Gets the at the specified index.
+ The index of the .
+ The at the specified index.
+
+
+ Represents the enumerator for the .
+
+
+ Moves to the next item in the collection.
+
+ at the end of the collection.
+
+
+ Resets the enumerator to the start of the collection.
+
+
+ For a description of this member, see .
+ The next .
+
+
+ For a description of this member, see .
+
+
+ Gets the current in the collection.
+ The current .
+
+
+ For a description of this member, see .
+ The current .
+
+
+ Provides the collections for contained elements in the class (for example, Attributes, AttributeGroups, Elements, and so on).
+
+
+ Determines if the qualified name specified exists in the collection.
+ The .
+
+ if the qualified name specified exists in the collection; otherwise, .
+
+
+ Returns an enumerator that can iterate through the .
+ An that can iterate through .
+
+
+ Gets the number of items contained in the .
+ The number of items contained in the .
+
+
+ Returns the element in the specified by qualified name.
+ The of the element to return.
+ The of the element in the specified by qualified name.
+
+
+ Returns a collection of all the named elements in the .
+ A collection of all the named elements in the .
+
+
+ Returns a collection of all the values for all the elements in the .
+ A collection of all the values for all the elements in the .
+
+
+ Abstract class for that is the base class for all particle types (e.g. ).
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the maximum number of times the particle can occur.
+ The maximum number of times the particle can occur. The default is 1.
+
+
+ Gets or sets the number as a string value. Maximum number of times the particle can occur.
+ The number as a string value. indicates that is equal to the default value. The default is a null reference.
+
+
+ Gets or sets the minimum number of times the particle can occur.
+ The minimum number of times the particle can occur. The default is 1.
+
+
+ Gets or sets the number as a string value. The minimum number of times the particle can occur.
+ The number as a string value. indicates that is equal to the default value. The default is a null reference.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used to specify a restriction on the value entered for a element.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used to allow simple and complex types, groups and attribute groups from external schema files to be redefined in the current schema. This class can also be used to provide versioning for the schema elements.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the , for all attributes in the schema, which holds the post-compilation value of the property.
+ The for all attributes in the schema. The post-compilation value of the property.
+
+
+ Gets the , for all groups in the schema, which holds the post-compilation value of the property.
+ The for all groups in the schema. The post-compilation value of the property.
+
+
+ Gets the collection of the following classes: , , , , and .
+ The elements contained within the redefine element.
+
+
+ Gets the , for all simple and complex types in the schema, which holds the post-compilation value of the property.
+ The for all schema types in the schema. The post-compilation value of the property.
+
+
+ Represents the element (compositor) from the XML Schema as specified by the World Wide Web Consortium (W3C). The requires the elements in the group to appear in the specified sequence within the containing element.
+
+
+ Initializes a new instance of the class.
+
+
+ The elements contained within the compositor. Collection of , , , , or .
+ The elements contained within the compositor.
+
+
+ Contains a cache of XML Schema definition language (XSD) schemas.
+
+
+ Specifies an event handler for receiving information about XML Schema definition language (XSD) schema validation errors.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified .
+ The object to use.
+ The object passed as a parameter is .
+
+
+ Adds the XML Schema definition language (XSD) schema at the URL specified to the .
+ The schema property, or to use the specified in the schema.
+ The URL that specifies the schema to load.
+ The schema is not valid.
+ The URL passed as a parameter is or .
+ An object if the schema is valid. If the schema is not valid and a is specified, then is returned and the appropriate validation event is raised. Otherwise, an is thrown.
+
+
+ Adds the XML Schema definition language (XSD) schema contained in the to the .
+ The schema property, or to use the specified in the schema.
+ The object.
+ The schema is not valid.
+ The object passed as a parameter is .
+ An object if the schema is valid. If the schema is not valid and a is specified, then is returned and the appropriate validation event is raised. Otherwise, an is thrown.
+
+
+ Adds the given to the .
+ The object to add to the .
+ The schema is not valid.
+ The object passed as a parameter is .
+ An object if the schema is valid. If the schema is not valid and a is specified, then is returned and the appropriate validation event is raised. Otherwise, an is thrown.
+
+
+ Adds all the XML Schema definition language (XSD) schemas in the given to the .
+ The object.
+ A schema in the is not valid.
+ The object passed as a parameter is .
+
+
+ Compiles the XML Schema definition language (XSD) schemas added to the into one logical schema.
+ An error occurred when validating and compiling the schemas in the .
+
+
+ Indicates whether an XML Schema definition language (XSD) schema with the specified target namespace URI is in the .
+ The schema property.
+
+ if a schema with the specified target namespace URI is in the ; otherwise, .
+
+
+ Indicates whether the specified XML Schema definition language (XSD) object is in the .
+ The object.
+ The passed as a parameter is .
+
+ if the object is in the ; otherwise, .
+
+
+ Copies all the objects from the to the given array, starting at the given index.
+ The array to copy the objects to.
+ The index in the array where copying will begin.
+
+
+ Removes the specified XML Schema definition language (XSD) schema from the .
+ The object to remove from the .
+ The schema is not a valid schema.
+ The passed as a parameter is .
+ The object removed from the or if the schema was not found in the .
+
+
+ Removes the specified XML Schema definition language (XSD) schema and all the schemas it imports from the .
+ The object to remove from the .
+ The passed as a parameter is .
+
+ if the object and all its imports were successfully removed; otherwise, .
+
+
+ Reprocesses an XML Schema definition language (XSD) schema that already exists in the .
+ The schema to reprocess.
+ The schema is not valid.
+ The object passed as a parameter is .
+ The object passed as a parameter does not already exist in the .
+ An object if the schema is a valid schema. If the schema is not valid and a is specified, is returned and the appropriate validation event is raised. Otherwise, an is thrown.
+
+
+ Returns a collection of all the XML Schema definition language (XSD) schemas in the .
+ An object containing all the schemas that have been added to the . If no schemas have been added to the , an empty object is returned.
+
+
+ Returns a collection of all the XML Schema definition language (XSD) schemas in the that belong to the given namespace.
+ The schema property.
+ An object containing all the schemas that have been added to the that belong to the given namespace. If no schemas have been added to the , an empty object is returned.
+
+
+ Gets or sets the for the .
+ The for the . The default is an instance with the property set to .
+
+
+ Gets the number of logical XML Schema definition language (XSD) schemas in the .
+ The number of logical schemas in the .
+
+
+ Gets all the global attributes in all the XML Schema definition language (XSD) schemas in the .
+ The collection of global attributes.
+
+
+ Gets all the global elements in all the XML Schema definition language (XSD) schemas in the .
+ The collection of global elements.
+
+
+ Gets all of the global simple and complex types in all the XML Schema definition language (XSD) schemas in the .
+ The collection of global simple and complex types.
+
+
+ Gets a value that indicates whether the XML Schema definition language (XSD) schemas in the have been compiled.
+
+ if the schemas in the have been compiled since the last time a schema was added or removed from the ; otherwise, .
+
+
+ Gets the default used by the when loading new XML Schema definition language (XSD) schemas.
+ A table of atomized string objects.
+
+
+ Sets the used to resolve namespaces or locations referenced in include and import elements of a schema.
+ The used to resolve namespaces or locations referenced in include and import elements of a schema.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class is for simple and complex types with simple content model.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets one of the or .
+ The content contained within the or class.
+
+
+ Represents the element for simple content from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used to derive simple types by extension. Such derivations are used to extend the simple type content of the element by adding attributes.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the to be used for the attribute value.
+ The . Optional.
+
+
+ Gets the collection of and .
+ The collection of attributes for the element.
+
+
+ Gets or sets the name of a built-in data type or simple type from which this type is extended.
+ The base type name.
+
+
+ Represents the element for simple content from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used to derive simple types by restriction. Such derivations can be used to restrict the range of values for the element to a subset of the values specified in the inherited simple type.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets an to be used for the attribute value.
+ The for the attribute value. Optional.
+
+
+ Gets the and collection of attributes for the simple type.
+ The collection of attributes for a simple type.
+
+
+ Gets or sets the simple type base value.
+ The simple type base value.
+
+
+ Gets or sets the name of the built-in data type or simple type from which this type is derived.
+ The name of the base type.
+
+
+ Gets or sets an Xml Schema facet.
+ One of the following facet classes:
+
+ , , , , , , , , , , , .
+
+
+ Represents the element for simple content from XML Schema as specified by the World Wide Web Consortium (W3C). This class defines a simple type. Simple types can specify information and constraints for the value of attributes or elements with text-only content.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets one of , , or .
+ One of , , or .
+
+
+ Abstract class for simple type content classes.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used to define a element as a list of values of a specified data type.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the representing the type of the element based on the and values of the simple type.
+ The representing the type of the element.
+
+
+ Gets or sets the element that is derived from the type specified by the base value.
+ The item type for the simple type element.
+
+
+ Gets or sets the name of a built-in data type or element defined in this schema (or another schema indicated by the specified namespace).
+ The type name of the simple type list.
+
+
+ Represents the element for simple types from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used restricting element.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets information on the base type.
+ The base type for the element.
+
+
+ Gets or sets the name of the qualified base type.
+ The qualified name of the simple type restriction base type.
+
+
+ Gets or sets an Xml Schema facet.
+ One of the following facet classes:
+
+ , , , , , , , , , , , .
+
+
+ Represents the element for simple types from XML Schema as specified by the World Wide Web Consortium (W3C). A datatype can be used to specify the content of a . The value of the element must be any one of a set of alternative datatypes specified in the union. Union types are always derived types and must comprise at least two alternative datatypes.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets an array of objects representing the type of the element based on the and values of the simple type.
+ An array of objects representing the type of the element.
+
+
+ Gets the collection of base types.
+ The collection of simple type base values.
+
+
+ Gets or sets the array of qualified member names of built-in data types or elements defined in this schema (or another schema indicated by the specified namespace).
+ An array that consists of a list of members of built-in data types or simple types.
+
+
+ Represents the facet from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used to specify a restriction on the number of digits that can be entered for the value of a element. That value of must be a positive integer.
+
+
+ Initializes a new instance of the class.
+
+
+ The base class for all simple types and complex types.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns an that represents the built-in complex type of the complex type specified.
+ One of the values representing the complex type.
+ The that represents the built-in complex type.
+
+
+ Returns an that represents the built-in complex type of the complex type specified by qualified name.
+ The of the complex type.
+ The parameter is .
+ The that represents the built-in complex type.
+
+
+ Returns an that represents the built-in simple type of the specified simple type.
+ One of the values representing the simple type.
+ The that represents the built-in simple type.
+
+
+ Returns an that represents the built-in simple type of the simple type that is specified by the qualified name.
+ The of the simple type.
+ The parameter is .
+ The that represents the built-in simple type.
+
+
+ Returns a value indicating if the derived schema type specified is derived from the base schema type specified.
+ The derived to test.
+ The base to test the derived against.
+ One of the values representing a type derivation method to exclude from testing.
+
+ if the derived type is derived from the base type; otherwise, .
+
+
+ Gets the post-compilation object type or the built-in XML Schema Definition Language (XSD) data type, simpleType element, or complexType element. This is a post-schema-compilation infoset property.
+ The built-in XSD data type, simpleType element, or complexType element.
+
+
+ Gets the post-compilation value for the base type of this schema type.
+ An object representing the base type of this schema type.
+
+
+ Gets the post-compilation value for the data type of the complex type.
+ The post-schema-compilation value.
+
+
+ Gets the post-compilation information on how this element was derived from its base type.
+ One of the valid values.
+
+
+ Gets or sets the final attribute of the type derivation that indicates if further derivations are allowed.
+ One of the valid values. The default is .
+
+
+ Gets the post-compilation value of the property.
+ The post-compilation value of the property. The default is the attribute value of the element.
+
+
+ Gets or sets a value indicating if this type has a mixed content model. This property is only valid in a complex type.
+
+ if the type has a mixed content model; otherwise, . The default is .
+
+
+ Gets or sets the name of the type.
+ The name of the type.
+
+
+ Gets the qualified name for the type built from the attribute of this type. This is a post-schema-compilation property.
+ The for the type built from the attribute of this type.
+
+
+ Gets the of the type.
+ One of the values.
+
+
+ Represents the element from XML Schema as specified by the World Wide Web Consortium (W3C). This class can be used to identify a unique constraint among a set of elements.
+
+
+ Initializes a new instance of the class.
+
+
+ Indicator of how the attribute is used.
+
+
+ Attribute use not specified.
+
+
+ Attribute is optional.
+
+
+ Attribute cannot be used.
+
+
+ Attribute must appear once.
+
+
+ Represents the exception thrown when XML Schema Definition Language (XSD) schema validation errors and warnings are encountered in an XML document being validated.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the and objects specified.
+ A object.
+ A object.
+
+
+ Initializes a new instance of the class with the exception message specified.
+ A description of the error condition.
+
+
+ Initializes a new instance of the class with the exception message and original object that caused this exception specified.
+ A description of the error condition.
+ The original object that caused this exception.
+
+
+ Initializes a new instance of the class with the exception message specified, and the original object, line number, and line position of the XML that cause this exception specified.
+ A description of the error condition.
+ The original object that caused this exception.
+ The line number of the XML that caused this exception.
+ The line position of the XML that caused this exception.
+
+
+ Constructs a new object with the given and information that contains all the properties of the .
+
+
+
+
+
+
+
+
+ Sets the XML node that causes the error.
+ The source object.
+
+
+ Gets the XML node that caused this .
+ The XML node that caused this .
+
+
+ Specifies schema validation options used by the and classes.
+
+
+ Allow xml:* attributes even if they are not defined in the schema. The attributes will be validated based on their data type.
+
+
+ Do not process identity constraints, inline schemas, schema location hints, or report schema validation warnings.
+
+
+ Process identity constraints (xs:ID, xs:IDREF, xs:key, xs:keyref, xs:unique) encountered during validation.
+
+
+ Process inline schemas encountered during validation.
+
+
+ Process schema location hints (xsi:schemaLocation, xsi:noNamespaceSchemaLocation) encountered during validation.
+
+
+ Report schema validation warnings encountered during validation.
+
+
+ Represents an XML Schema Definition Language (XSD) Schema validation engine. The class cannot be inherited.
+
+
+ The that receives schema validation warnings and errors encountered during schema validation.
+
+
+ Initializes a new instance of the class.
+ An object containing element and attribute names as atomized strings.
+ An object containing the XML Schema Definition Language (XSD) schemas used for validation.
+ An object used for resolving namespaces encountered during validation.
+ An value specifying schema validation options.
+ One or more of the parameters specified are .
+ An error occurred while compiling schemas in the parameter.
+
+
+ Adds an XML Schema Definition Language (XSD) schema to the set of schemas used for validation.
+ An object to add to the set of schemas used for validation.
+ The parameter specified is .
+ The target namespace of the parameter matches that of any element or attribute already encountered by the object.
+ The parameter is invalid.
+
+
+ Ends validation and checks identity constraints for the entire XML document.
+ An identity constraint error was found in the XML document.
+
+
+ Returns the expected attributes for the current element context.
+ An array of objects or an empty array if there are no expected attributes.
+
+
+ Returns the expected particles in the current element context.
+ An array of objects or an empty array if there are no expected particles.
+
+
+ Validates identity constraints on the default attributes and populates the specified with objects for any attributes with default values that have not been previously validated using the method in the element context.
+ An to populate with objects for any attributes not yet encountered during validation in the element context.
+
+
+ Initializes the state of the object.
+ Calling the method is valid immediately after the construction of an object or after a call to only.
+
+
+ Initializes the state of the object using the specified for partial validation.
+ An , , or object used to initialize the validation context of the object for partial validation.
+ Calling the method is valid immediately after the construction of an object or after a call to only.
+ The parameter is not an , , or object.
+ The parameter cannot be .
+
+
+ Skips validation of the current element content and prepares the object to validate content in the parent element's context.
+ An object whose properties are set if the current element content is successfully skipped. This parameter can be .
+ The method was not called in the correct sequence. For example, calling after calling .
+
+
+ Validates the attribute name, namespace URI, and value in the current element context.
+ The local name of the attribute to validate.
+ The namespace URI of the attribute to validate.
+ The value of the attribute to validate.
+ An object whose properties are set on successful validation of the attribute. This parameter can be .
+ The attribute is not valid in the current element context.
+ The method was not called in the correct sequence. For example, calling after calling .
+ One or more of the parameters specified are .
+ The validated attribute's value.
+
+
+ Validates the attribute name, namespace URI, and value in the current element context.
+ The local name of the attribute to validate.
+ The namespace URI of the attribute to validate.
+ An used to pass the attribute's value as a Common Language Runtime (CLR) type compatible with the XML Schema Definition Language (XSD) type of the attribute.
+ An object whose properties are set on successful validation of the attribute. This parameter and can be .
+ The attribute is not valid in the current element context.
+ The method was not called in the correct sequence. For example, calling after calling .
+ One or more of the parameters specified are .
+ The validated attribute's value.
+
+
+ Validates the element in the current context.
+ The local name of the element to validate.
+ The namespace URI of the element to validate.
+ An object whose properties are set on successful validation of the element's name. This parameter can be .
+ The element's name is not valid in the current context.
+ The method was not called in the correct sequence. For example, the method is called after calling .
+
+
+ Validates the element in the current context with the xsi:Type, xsi:Nil, xsi:SchemaLocation, and xsi:NoNamespaceSchemaLocation attribute values specified.
+ The local name of the element to validate.
+ The namespace URI of the element to validate.
+ An object whose properties are set on successful validation of the element's name. This parameter can be .
+ The xsi:Type attribute value of the element. This parameter can be .
+ The xsi:Nil attribute value of the element. This parameter can be .
+ The xsi:SchemaLocation attribute value of the element. This parameter can be .
+ The xsi:NoNamespaceSchemaLocation attribute value of the element. This parameter can be .
+ The element's name is not valid in the current context.
+ The method was not called in the correct sequence. For example, the method is called after calling .
+
+
+ Verifies if the text content of the element is valid according to its data type for elements with simple content, and verifies if the content of the current element is complete for elements with complex content.
+ An object whose properties are set on successful validation of the element. This parameter can be .
+ The element's content is not valid.
+ The method was not called in the correct sequence. For example, if the method is called after calling .
+ The parsed, typed text value of the element if the element has simple content.
+
+
+ Verifies if the text content of the element specified is valid according to its data type.
+ An object whose properties are set on successful validation of the text content of the element. This parameter can be .
+ The typed text content of the element.
+ The element's text content is not valid.
+ The method was not called in the correct sequence (for example, if the method is called after calling ), calls to the method have been previously made, or the element has complex content.
+ The typed text content parameter cannot be .
+ The parsed, typed simple content of the element.
+
+
+ Verifies whether all the required attributes in the element context are present and prepares the object to validate the child content of the element.
+ An object whose properties are set on successful verification that all the required attributes in the element context are present. This parameter can be .
+ One or more of the required attributes in the current element context were not found.
+ The method was not called in the correct sequence. For example, calling after calling .
+ One or more of the parameters specified are .
+
+
+ Validates whether the text specified is allowed in the current element context, and accumulates the text for validation if the current element has simple content.
+ A text to validate in the current element context.
+ The text specified is not allowed in the current element context.
+ The method was not called in the correct sequence. For example, the method is called after calling .
+ The text parameter cannot be .
+
+
+ Validates whether the text returned by the object specified is allowed in the current element context, and accumulates the text for validation if the current element has simple content.
+ An used to pass the text value as a Common Language Runtime (CLR) type compatible with the XML Schema Definition Language (XSD) type of the attribute.
+ The text specified is not allowed in the current element context.
+ The method was not called in the correct sequence. For example, the method is called after calling .
+ The text parameter cannot be .
+
+
+ Validates whether the white space in the specified is allowed in the current element context, and accumulates the white space for validation if the current element has simple content.
+ A white space to validate in the current element context.
+ White space is not allowed in the current element context.
+ The method was not called in the correct sequence. For example, if the method is called after calling .
+
+
+ Validates whether the white space returned by the object specified is allowed in the current element context, and accumulates the white space for validation if the current element has simple content.
+ An used to pass the white space value as a Common Language Runtime (CLR) type compatible with the XML Schema Definition Language (XSD) type of the attribute.
+ White space is not allowed in the current element context.
+ The method was not called in the correct sequence. For example, if the method is called after calling .
+
+
+ Gets or sets the line number information for the XML node being validated.
+ An object.
+
+
+ Gets or sets the source URI for the XML node being validated.
+ A object representing the source URI for the XML node being validated; the default is .
+
+
+ Gets or sets the object sent as the sender object of a validation event.
+ An ; the default is this object.
+
+
+ Sets the object used to resolve xs:import and xs:include elements as well as xsi:schemaLocation and xsi:noNamespaceSchemaLocation attributes.
+ An object; the default is an object.
+
+
+ Represents the validity of an XML item validated by the class.
+
+
+ The XML item is invalid.
+
+
+ The validity of the XML item is not known.
+
+
+ The XML item is valid.
+
+
+ Represents the World Wide Web Consortium (W3C) facet.
+
+
+ Initializes a new instance of the class.
+
+
+ Represents the World Wide Web Consortium (W3C) element.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets or sets the attribute for the XPath expression.
+ The string attribute value for the XPath expression.
+
+
+ Represents the severity of the validation event.
+
+
+ Indicates a validation error occurred when validating the instance document. This applies to document type definitions (DTDs) and XML Schema definition language (XSD) schemas. The World Wide Web Consortium (W3C) validity constraints are considered errors. If no validation event handler has been created, errors throw an exception.
+
+
+ Indicates that a validation event occurred that is not an error. A warning is typically issued when there is no DTD, or XML Schema to validate a particular element or attribute against. Unlike errors, warnings do not throw an exception if there is no validation event handler.
+
+
+ Represents the W3C XML Schema Definition Language (XSD) schema types.
+
+
+ Any atomic value of a union.
+
+
+ A W3C XML Schema type.
+
+
+ This value supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ This value supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ This value supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ A W3C XML Schema type.
+
+
+ This value supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ This value supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ An item such as a node or atomic value.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ This value supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ This value supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ No type information.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ This value supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ This value supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ A W3C XML Schema type.
+
+
+ An untyped atomic value.
+
+
+ This value supports the .NET Framework infrastructure and is not intended to be used directly from your code.
+
+
+ A used by the class to pass attribute, text, and white space values as a Common Language Runtime (CLR) type compatible with the XML Schema Definition Language (XSD) type of the attribute, text, or white space.
+ An object containing the attribute, text, or white space value. The object is a CLR type that corresponds to the XSD type of the attribute, text, or white space value.
+
+
+ Provides custom formatting for XML serialization and deserialization.
+
+
+ This method is reserved and should not be used. When implementing the interface, you should return ( in Visual Basic) from this method, and instead, if specifying a custom schema is required, apply the to the class.
+ An that describes the XML representation of the object that is produced by the method and consumed by the method.
+
+
+ Generates an object from its XML representation.
+ The stream from which the object is deserialized.
+
+
+ Converts an object into its XML representation.
+ The stream to which the object is serialized.
+
+
+ Specifies that the member (a field that returns an array of objects) can contain any XML attributes.
+
+
+ Constructs a new instance of the class.
+
+
+ Specifies that the member (a field that returns an array of or objects) contains objects that represent any XML element that has no corresponding member in the object being serialized or deserialized.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class and specifies the XML element name generated in the XML document.
+ The name of the XML element that the generates.
+
+
+ Initializes a new instance of the class and specifies the XML element name generated in the XML document and its XML namespace.
+ The name of the XML element that the generates.
+ The XML namespace of the XML element.
+
+
+ Gets or sets the XML element name.
+ The element name of an array member does not match the element name specified by the property.
+ The name of the XML element.
+
+
+ Gets or sets the XML namespace generated in the XML document.
+ An XML namespace.
+
+
+ Gets or sets the explicit order in which the elements are serialized or deserialized.
+ The order of the code generation.
+
+
+ Specifies that the must serialize the class member as an XML attribute.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class and specifies the name of the generated XML attribute.
+ The name of the XML attribute that the generates.
+
+
+ Initializes a new instance of the class.
+ The name of the XML attribute that is generated.
+ The used to store the attribute.
+
+
+ Initializes a new instance of the class.
+ The used to store the attribute.
+
+
+ Gets or sets the name of the XML attribute.
+ The name of the XML attribute. The default is the member name.
+
+
+ Gets or sets the XSD data type of the XML attribute generated by the .
+ An XSD (XML Schema Document) data type.
+
+
+ Gets or sets a value that indicates whether the XML attribute name generated by the is qualified.
+ One of the values. The default is .
+
+
+ Gets or sets the XML namespace of the XML attribute.
+ The XML namespace of the XML attribute.
+
+
+ Gets or sets the complex type of the XML attribute.
+ The type of the XML attribute.
+
+
+ Indicates that a public field or property represents an XML element when the serializes or deserializes the object that contains it.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class and specifies the name of the XML element.
+ The XML element name of the serialized member.
+
+
+ Initializes a new instance of the and specifies the name of the XML element and a derived type for the member to which the is applied. This member type is used when the serializes the object that contains it.
+ The XML element name of the serialized member.
+ The of an object derived from the member's type.
+
+
+ Initializes a new instance of the class and specifies a type for the member to which the is applied. This type is used by the when serializing or deserializing object that contains it.
+ The of an object derived from the member's type.
+
+
+ Gets or sets the XML Schema definition (XSD) data type of the XML element generated by the .
+ The XML Schema data type you have specified cannot be mapped to the.NET data type.
+ An XML Schema data type.
+
+
+ Gets or sets the name of the generated XML element.
+ The name of the generated XML element. The default is the member identifier.
+
+
+ Gets or sets a value that indicates whether the element is qualified.
+ One of the values. The default is .
+
+
+ Gets or sets a value that indicates whether the must serialize a member that is set to as an empty tag with the attribute set to .
+
+ if the generates the attribute; otherwise, .
+
+
+ Gets or sets the namespace assigned to the XML element that results when the class is serialized.
+ The namespace of the XML element.
+
+
+ Gets or sets the explicit order in which the elements are serialized or deserialized.
+ The order of the code generation.
+
+
+ Gets or sets the object type used to represent the XML element.
+ The of the member.
+
+
+ Controls how the serializes an enumeration member.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class, and specifies the XML value that the generates or recognizes (when it serializes or deserializes the enumeration, respectively).
+ The overriding name of the enumeration member.
+
+
+ Gets or sets the value generated in an XML-document instance when the serializes an enumeration, or the value recognized when it deserializes the enumeration member.
+ The value generated in an XML-document instance when the serializes the enumeration, or the value recognized when it is deserializes the enumeration member.
+
+
+ Instructs the method of the not to serialize the public field or public read/write property value.
+
+
+ Initializes a new instance of the class.
+
+
+ Specifies that the target property, parameter, return value, or class member contains prefixes associated with namespaces that are used within an XML document.
+
+
+ Initializes a new instance of the class.
+
+
+ Controls XML serialization of the attribute target as an XML root element.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class and specifies the name of the XML root element.
+ The name of the XML root element.
+
+
+ Gets or sets the XSD data type of the XML root element.
+ An XSD (XML Schema Document) data type.
+
+
+ Gets or sets the name of the XML element that is generated and recognized by the class's and methods, respectively.
+ The name of the XML root element that is generated and recognized in an XML-document instance. The default is the name of the serialized class.
+
+
+ Gets or sets a value that indicates whether the must serialize a member that is set to into the attribute set to .
+
+ if the generates the attribute; otherwise, .
+
+
+ Gets or sets the namespace for the XML root element.
+ The namespace for the XML element.
+
+
+ When applied to a type, stores the name of a static method of the type that returns an XML schema and a (or for anonymous types) that controls the serialization of the type.
+
+
+ Initializes a new instance of the class, taking the name of the static method that supplies the type's XML schema.
+ The name of the static method that must be implemented.
+
+
+ Gets or sets a value that determines whether the target class is a wildcard, or that the schema for the class has contains only an element.
+
+ , if the class is a wildcard, or if the schema contains only the element; otherwise, .
+
+
+ Gets the name of the static method that supplies the type's XML schema and the name of its XML Schema data type.
+ The name of the method that is invoked by the XML infrastructure to return an XML schema.
+
+
+ Contains the XML namespaces and prefixes that the uses to generate qualified names in an XML-document instance.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class, using the specified instance of containing the collection of prefix and namespace pairs.
+ An instance of the containing the namespace and prefix pairs.
+
+
+ Initializes a new instance of the class.
+ An array of objects.
+
+
+ Adds a prefix and namespace pair to an object.
+ The prefix associated with an XML namespace.
+ An XML namespace.
+
+
+ Gets the array of prefix and namespace pairs in an object.
+ An array of objects that are used as qualified names in an XML document.
+
+
+ Gets the number of prefix and namespace pairs in the collection.
+ The number of prefix and namespace pairs in the collection.
+
+
+ Indicates to the that the member must be treated as XML text when the class that contains it is serialized or deserialized.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The of the member to be serialized.
+
+
+ Gets or sets the XML Schema definition language (XSD) data type of the text generated by the .
+ The XML Schema data type you have specified cannot be mapped to the .NET data type.
+ The XML Schema data type you have specified is invalid for the property and cannot be converted to the member type.
+ An XML Schema (XSD) data type.
+
+
+ Gets or sets the type of the member.
+ The of the member.
+
+
+ Specifies the type of validation to perform.
+
+
+ Validates if DTD or schema information is found.
+
+Starting with .NET Framework 2.0, this field is obsolete. It applies only to the obsolete class.
+
+
+ Validates according to the DTD.
+
+
+ No validation is performed, and no validation errors are thrown. This setting creates an XML 1.0 compliant non-validating parser.
+
+Calls to report default attributes and resolve general entities. The DOCTYPE is not used for validation purposes.
+
+
+ Validate according to XML Schema definition language (XSD) schemas, including inline XML Schemas. XML Schemas are associated with namespace URIs either by using the attribute or the provided property.
+
+
+ Validate according to XML-Data Reduced (XDR) schemas, including inline XDR schemas. XDR schemas are recognized using the namespace prefix or the property.
+
+Starting with .NET Framework 2.0, this field is obsolete. It applies only to the obsolete class.
+
+
+ Specifies how white space is handled.
+
+
+ Return and nodes. This is the default.
+
+
+ Return no and no nodes.
+
+
+ Return nodes only.
+
+
+ Specifies the state of the .
+
+
+ Indicates that an attribute value is being written.
+
+
+ Indicates that the method has been called.
+
+
+ Indicates that element content is being written.
+
+
+ Indicates that an element start tag is being written.
+
+
+ An exception has been thrown, which has left the in an invalid state. You can call the method to put the in the state. Any other method calls results in an .
+
+This field was added in .NET Framework 2.0.
+
+
+ Indicates that the prolog is being written.
+
+
+ Indicates that a Write method has not yet been called.
+
+
+ Represents an attribute. Valid and default values for the attribute are defined in a document type definition (DTD) or schema.
+
+
+ Initializes a new instance of the class.
+ The namespace prefix.
+ The local name of the attribute.
+ The namespace uniform resource identifier (URI).
+ The parent XML document.
+
+
+ Adds the specified node to the end of the list of child nodes, of this node.
+ The to add.
+ This node is of a type that does not allow child nodes of the type of the node.
+
+ The is an ancestor of this node.
+ The was created from a different document than the one that created this node.
+
+ This node is read-only.
+ The added.
+
+
+ Creates a duplicate of this node.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself.
+ The duplicate node.
+
+
+ Inserts the specified node immediately after the specified reference node.
+ The to insert.
+ The that is the reference node. The is placed after the .
+ This node is of a type that does not allow child nodes of the type of the node.
+
+ The is an ancestor of this node.
+ The was created from a different document than the one that created this node.
+
+ The is not a child of this node.
+
+ This node is read-only.
+ The inserted.
+
+
+ Inserts the specified node immediately before the specified reference node.
+ The to insert.
+ The that is the reference node. The is placed before this node.
+ The current node is of a type that does not allow child nodes of the type of the node.
+
+ The is an ancestor of this node.
+ The was created from a different document than the one that created this node.
+
+ The is not a child of this node.
+
+ This node is read-only.
+ The inserted.
+
+
+ Adds the specified node to the beginning of the list of child nodes for this node.
+ The to add. If it is an , the entire contents of the document fragment are moved into the child list of this node.
+ This node is of a type that does not allow child nodes of the type of the node.
+
+ The is an ancestor of this node.
+ The was created from a different document than the one that created this node.
+
+ This node is read-only.
+ The added.
+
+
+ Removes the specified child node.
+ The to remove.
+ The is not a child of this node. Or this node is read-only.
+ The removed.
+
+
+ Replaces the child node specified with the new child node specified.
+ The new child .
+ The to replace.
+ This node is of a type that does not allow child nodes of the type of the node.
+
+ The is an ancestor of this node.
+ The was created from a different document than the one that created this node.
+
+ This node is read-only.
+
+ The is not a child of this node.
+ The replaced.
+
+
+ Saves all the children of the node to the specified .
+ The to which you want to save.
+
+
+ Saves the node to the specified .
+ The to which you want to save.
+
+
+ Gets the base Uniform Resource Identifier (URI) of the node.
+ The location from which the node was loaded or String.Empty if the node has no base URI. Attribute nodes have the same base URI as their owner element. If an attribute node does not have an owner element, returns String.Empty.
+
+
+ Sets the concatenated values of the node and all its children.
+ The concatenated values of the node and all its children. For attribute nodes, this property has the same functionality as the property.
+
+
+ Sets the value of the attribute.
+ The XML specified when setting this property is not well-formed.
+ The attribute value.
+
+
+ Gets the local name of the node.
+ The name of the attribute node with the prefix removed. In the following example <book bk:genre= 'novel'>, the of the attribute is .
+
+
+ Gets the qualified name of the node.
+ The qualified name of the attribute node.
+
+
+ Gets the namespace URI of this node.
+ The namespace URI of this node. If the attribute is not explicitly given a namespace, this property returns String.Empty.
+
+
+ Gets the type of the current node.
+ The node type for nodes is XmlNodeType.Attribute.
+
+
+ Gets the to which this node belongs.
+ An XML document to which this node belongs.
+
+
+ Gets the to which the attribute belongs.
+ The that the attribute belongs to or if this attribute is not part of an .
+
+
+ Gets the parent of this node. For nodes, this property always returns .
+ For nodes, this property always returns .
+
+
+ Gets or sets the namespace prefix of this node.
+ This node is read-only.
+ The specified prefix contains an invalid character.
+
+ The specified prefix is malformed.
+
+ The namespaceURI of this node is .
+
+ The specified prefix is "xml", and the namespaceURI of this node is different from "http://www.w3.org/XML/1998/namespace".
+
+ This node is an attribute, the specified prefix is "xmlns", and the namespaceURI of this node is different from "http://www.w3.org/2000/xmlns/".
+
+ This node is an attribute, and the qualifiedName of this node is "xmlns" [Namespaces].
+ The namespace prefix of this node. If there is no prefix, this property returns String.Empty.
+
+
+ Gets the post-schema-validation-infoset that has been assigned to this node as a result of schema validation.
+ An containing the post-schema-validation-infoset of this node.
+
+
+ Gets a value indicating whether the attribute value was explicitly set.
+
+ if this attribute was explicitly given a value in the original instance document; otherwise, . A value of indicates that the value of the attribute came from the DTD.
+
+
+ Gets or sets the value of the node.
+ The node is read-only and a set operation is called.
+ The value returned depends on the of the node. For nodes, this property is the value of attribute.
+
+
+ Represents a collection of attributes that can be accessed by name or index.
+
+
+ Inserts the specified attribute as the last node in the collection.
+ The attribute to insert.
+
+ was created from a document different from the one that created this collection.
+ The to append to the collection.
+
+
+ Copies all the objects from this collection into the given array.
+ The array that is the destination of the objects copied from this collection.
+ The index in the array where copying begins.
+
+
+ Inserts the specified attribute immediately after the specified reference attribute.
+ The attribute to insert.
+ The reference attribute. is placed after the .
+ The was created from a document different from the one that created this collection. Or the is not a member of this collection.
+ The to insert into the collection.
+
+
+ Inserts the specified attribute immediately before the specified reference attribute.
+ The attribute to insert.
+ The reference attribute. is placed before the .
+ The was created from a document different from the one that created this collection. Or the is not a member of this collection.
+ The to insert into the collection.
+
+
+ Inserts the specified attribute as the first node in the collection.
+ The attribute to insert.
+ The added to the collection.
+
+
+ Removes the specified attribute from the collection.
+ The attribute to remove.
+ The node removed or if it is not found in the collection.
+
+
+ Removes all attributes from the collection.
+
+
+ Removes the attribute corresponding to the specified index from the collection.
+ The index of the node to remove. The first node has index 0.
+ Returns if there is no attribute at the specified index.
+
+
+ Adds a using its property.
+ An attribute node to store in this collection. The node will later be accessible using the name of the node. If a node with that name is already present in the collection, it is replaced by the new one; otherwise, the node is appended to the end of the collection.
+
+ was created from a different than the one that created this collection.
+
+ This is read-only.
+
+ is an that is already an attribute of another object. To re-use attributes in other elements, you must clone the objects you want to re-use.
+ If the replaces an existing node with the same name, the old node is returned; otherwise, the added node is returned.
+
+
+ For a description of this member, see .
+ The array that is the destination of the objects copied from this collection.
+ The index in the array where copying begins.
+
+
+ Gets the attribute with the specified index.
+ The index of the attribute.
+ The index being passed in is out of range.
+ The attribute at the specified index.
+
+
+ Gets the attribute with the specified name.
+ The qualified name of the attribute.
+ The attribute with the specified name. If the attribute does not exist, this property returns .
+
+
+ Gets the attribute with the specified local name and namespace Uniform Resource Identifier (URI).
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ The attribute with the specified local name and namespace URI. If the attribute does not exist, this property returns .
+
+
+ For a description of this member, see .
+ An that contains the count of the attributes.
+
+
+ For a description of this member, see .
+
+ if the collection is synchronized.
+
+
+ For a description of this member, see .
+ The that is the root of the collection.
+
+
+ Represents a CDATA section.
+
+
+ Initializes a new instance of the class.
+
+ that contains character data.
+
+ object.
+
+
+ Creates a duplicate of this node.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself. Because CDATA nodes do not have children, regardless of the parameter setting, the cloned node will always include the data content.
+ The cloned node.
+
+
+ Saves the children of the node to the specified .
+ The to which you want to save.
+
+
+ Saves the node to the specified .
+ The to which you want to save.
+
+
+ Gets the local name of the node.
+ For CDATA nodes, the local name is .
+
+
+ Gets the qualified name of the node.
+ For CDATA nodes, the name is .
+
+
+ Gets the type of the current node.
+ The node type. For CDATA nodes, the value is XmlNodeType.CDATA.
+
+
+ Gets the parent of this node (for nodes that can have parents).
+ The that is the parent of the current node. If a node has just been created and not yet added to the tree, or if it has been removed from the tree, the parent is . For all other nodes, the value returned depends on the of the node. The following table describes the possible return values for the property.
+
+
+ Gets the text node that immediately precedes this node.
+ Returns .
+
+
+ Provides text manipulation methods that are used by several classes.
+
+
+ Initializes a new instance of the class.
+ String that contains character data to be added to document.
+
+ to contain character data.
+
+
+ Appends the specified string to the end of the character data of the node.
+ The string to insert into the existing string.
+
+
+ Removes a range of characters from the node.
+ The position within the string to start deleting.
+ The number of characters to delete.
+
+
+ Inserts the specified string at the specified character offset.
+ The position within the string to insert the supplied string data.
+ The string data that is to be inserted into the existing string.
+
+
+ Replaces the specified number of characters starting at the specified offset with the specified string.
+ The position within the string to start replacing.
+ The number of characters to replace.
+ The new data that replaces the old string data.
+
+
+ Retrieves a substring of the full string from the specified range.
+ The position within the string to start retrieving. An offset of zero indicates the starting point is at the start of the data.
+ The number of characters to retrieve.
+ The substring corresponding to the specified range.
+
+
+ Contains the data of the node.
+ The data of the node.
+
+
+ Gets or sets the concatenated values of the node and all the children of the node.
+ The concatenated values of the node and all the children of the node.
+
+
+ Gets the length of the data, in characters.
+ The length, in characters, of the string in the property. The length may be zero; that is, CharacterData nodes can be empty.
+
+
+ Gets or sets the value of the node.
+ Node is read-only.
+ The value of the node.
+
+
+ Represents the content of an XML comment.
+
+
+ Initializes a new instance of the class.
+ The content of the comment element.
+ The parent XML document.
+
+
+ Creates a duplicate of this node.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself. Because comment nodes do not have children, the cloned node always includes the text content, regardless of the parameter setting.
+ The cloned node.
+
+
+ Saves all the children of the node to the specified . Because comment nodes do not have children, this method has no effect.
+ The to which you want to save.
+
+
+ Saves the node to the specified .
+ The to which you want to save.
+
+
+ Gets the local name of the node.
+ For comment nodes, the value is .
+
+
+ Gets the qualified name of the node.
+ For comment nodes, the value is .
+
+
+ Gets the type of the current node.
+ For comment nodes, the value is XmlNodeType.Comment.
+
+
+ Encodes and decodes XML names, and provides methods for converting between common language runtime types and XML Schema definition language (XSD) types. When converting data types, the values returned are locale-independent.
+
+
+ Initializes a new instance of the class.
+
+
+ Decodes a name. This method does the reverse of the and methods.
+ The name to be transformed.
+ The decoded name.
+
+
+ Converts the name to a valid XML local name.
+ The name to be encoded.
+ The encoded name.
+
+
+ Converts the name to a valid XML name.
+ A name to be translated.
+ The name with any invalid characters replaced by an escape string.
+
+
+ Verifies the name is valid according to the XML specification.
+ The name to be encoded.
+ The encoded name.
+
+
+ Checks whether the passed-in character is a valid non-colon character type.
+ The character to verify as a non-colon character.
+
+ if the character is a valid non-colon character type; otherwise, .
+
+
+ Returns the passed-in character instance if the character in the argument is a valid public id character, otherwise .
+
+ object to validate.
+ The passed-in character if the character is a valid public id character, otherwise .
+
+
+ Checks if the passed-in character is a valid Start Name Character type.
+ The character to validate.
+
+ if the character is a valid Start Name Character type; otherwise, .
+
+
+ Checks if the passed-in character is a valid XML whitespace character.
+ The character to validate.
+
+ if the passed in character is a valid XML whitespace character; otherwise, .
+
+
+ Checks if the passed-in character is a valid XML character.
+ The character to validate.
+
+ if the passed in character is a valid XML character; otherwise, .
+
+
+ Checks if the passed-in surrogate pair of characters is a valid XML character.
+ The surrogate character to validate.
+ The surrogate character to validate.
+
+ if the passed in surrogate pair of characters is a valid XML character; otherwise, .
+
+
+ Converts the to a equivalent.
+ The string to convert.
+
+ is .
+
+ does not represent a value.
+ A value, that is, or .
+
+
+ Converts the to a equivalent.
+ The string to convert.
+
+ is .
+
+ is not in the correct format.
+
+ represents a number less than Byte.MinValue or greater than Byte.MaxValue.
+ A equivalent of the string.
+
+
+ Converts the to a equivalent.
+ The string containing a single character to convert.
+ The value of the parameter is .
+ The parameter contains more than one character.
+ A representing the single character.
+
+
+ Converts the to a equivalent.
+ The string to convert.
+
+ is .
+
+ is an empty string or is not in the correct format.
+ A equivalent of the string.
+
+
+ Converts the to a equivalent.
+ The string to convert.
+ The format structure to apply to the converted . Valid formats include "yyyy-MM-ddTHH:mm:sszzzzzz" and its subsets. The string is validated against this format.
+
+ is .
+
+ or is String.Empty
+
+ -or-
+
+ does not contain a date and time that corresponds to .
+ A equivalent of the string.
+
+
+ Converts the to a equivalent.
+ The string to convert.
+ An array containing the format structures to apply to the converted . Valid formats include "yyyy-MM-ddTHH:mm:sszzzzzz" and its subsets.
+
+ is .
+
+ or an element of is String.Empty
+
+ -or-
+
+ does not contain a date and time that corresponds to any of the elements of .
+ A equivalent of the string.
+
+
+ Converts the to a using the specified.
+ The value to convert.
+ One of the enumeration values that specify whether the date should be converted to local time or preserved as Coordinated Universal Time (UTC), if it is a UTC date.
+
+ is .
+
+ is .
+
+ is an empty string or is not in a valid format.
+ A equivalent of the .
+
+
+ Converts the supplied to a equivalent.
+ The string to convert. The string must conform to a subset of the W3C Recommendation for the XML dateTime type. For more information, see the dateTime section of the XML Schema specification.
+
+ is .
+ The argument passed to this method is outside the range of allowable values. For information about allowable values, see .
+ The argument passed to this method does not conform to a subset of the W3C Recommendations for the XML dateTime type. For more information, see the dateTime section of the XML Schema specification.
+ The equivalent of the supplied string.
+
+
+ Converts the supplied to a equivalent.
+ The string to convert.
+ The format from which is converted. The format parameter can be any subset of the W3C Recommendation for the XML dateTime type. (For more information, see the dateTime section of the XML Schema specification..) The string is validated against this format.
+
+ is .
+
+ or is an empty string or is not in the specified format.
+ The equivalent of the supplied string.
+
+
+ Converts the supplied to a equivalent.
+ The string to convert.
+ An array of formats from which can be converted. Each format in can be any subset of the W3C Recommendation for the XML dateTime type. (For more information, see the dateTime section of the XML Schema specification..) The string is validated against one of these formats.
+ The equivalent of the supplied string.
+
+
+ Converts the to a equivalent.
+ The string to convert.
+
+ is .
+
+ is not in the correct format.
+
+ represents a number less than Decimal.MinValue or greater than Decimal.MaxValue.
+ A equivalent of the string.
+
+
+ Converts the to a equivalent.
+ The string to convert.
+
+ is .
+
+ is not in the correct format.
+
+ represents a number less than Double.MinValue or greater than Double.MaxValue.
+ A equivalent of the string.
+
+
+ Converts the to a equivalent.
+ The string to convert.
+ A equivalent of the string.
+
+
+ Converts the to a equivalent.
+ The string to convert.
+
+ is .
+
+ is not in the correct format.
+
+ represents a number less than Int16.MinValue or greater than Int16.MaxValue.
+ An equivalent of the string.
+
+
+ Converts the to a equivalent.
+ The string to convert.
+
+ is .
+
+ is not in the correct format.
+
+ represents a number less than Int32.MinValue or greater than Int32.MaxValue.
+ An equivalent of the string.
+
+
+ Converts the to a equivalent.
+ The string to convert.
+
+ is .
+
+ is not in the correct format.
+
+ represents a number less than Int64.MinValue or greater than Int64.MaxValue.
+ An equivalent of the string.
+
+
+ Converts the to a equivalent.
+ The string to convert.
+
+ is .
+
+ is not in the correct format.
+
+ represents a number less than SByte.MinValue or greater than SByte.MaxValue.
+ An equivalent of the string.
+
+
+ Converts the to a equivalent.
+ The string to convert.
+
+ is .
+
+ is not in the correct format.
+
+ represents a number less than Single.MinValue or greater than Single.MaxValue.
+ A equivalent of the string.
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the , that is, "true" or "false".
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the .
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the .
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the in the format yyyy-MM-ddTHH:mm:ss where 'T' is a constant literal.
+
+
+ Converts the to a .
+ The value to convert.
+ The format structure that defines how to display the converted string. Valid formats include "yyyy-MM-ddTHH:mm:sszzzzzz" and its subsets.
+ A string representation of the in the specified format.
+
+
+ Converts the to a using the specified.
+ The value to convert.
+ One of the values that specify how to treat the value.
+ The value is not valid.
+ The or value is .
+ A equivalent of the .
+
+
+ Converts the supplied to a .
+ The to be converted.
+ A representation of the supplied .
+
+
+ Converts the supplied to a in the specified format.
+ The to be converted.
+ The format to which is converted. The format parameter can be any subset of the W3C Recommendation for the XML dateTime type. (For more information, see the dateTime section of the XML Schema specification..)
+ A representation in the specified format of the supplied .
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the .
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the .
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the .
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the .
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the .
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the .
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the .
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the .
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the .
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the .
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the .
+
+
+ Converts the to a .
+ The value to convert.
+ A string representation of the .
+
+
+ Converts the to a equivalent.
+ The string to convert. The string format must conform to the W3C XML Schema Part 2: Datatypes recommendation for duration.
+
+ is not in correct format to represent a value.
+ A equivalent of the string.
+
+
+ Converts the to a equivalent.
+ The string to convert.
+
+ is .
+
+ is not in the correct format.
+
+ represents a number less than UInt16.MinValue or greater than UInt16.MaxValue.
+ A equivalent of the string.
+
+
+ Converts the to a equivalent.
+ The string to convert.
+
+ is .
+
+ is not in the correct format.
+
+ represents a number less than UInt32.MinValue or greater than UInt32.MaxValue.
+ A equivalent of the string.
+
+
+ Converts the to a equivalent.
+ The string to convert.
+
+ is .
+
+ is not in the correct format.
+
+ represents a number less than UInt64.MinValue or greater than UInt64.MaxValue.
+ A equivalent of the string.
+
+
+ Verifies that the name is a valid name according to the W3C Extended Markup Language recommendation.
+ The name to verify.
+
+ is not a valid XML name.
+
+ is or String.Empty.
+ The name, if it is a valid XML name.
+
+
+ Verifies that the name is a valid according to the W3C Extended Markup Language recommendation. An is a name that cannot contain a colon.
+ The name to verify.
+
+ is or .
+
+ is not a valid non-colon name.
+ The name, if it is a valid NCName.
+
+
+ Verifies that the string is a valid NMTOKEN according to the W3C XML Schema Part2: Datatypes recommendation.
+ The string you wish to verify.
+ The string is not a valid name token.
+
+ is .
+ The name token, if it is a valid NMTOKEN.
+
+
+ Returns the passed in string instance if all the characters in the string argument are valid public id characters.
+
+ that contains the id to validate.
+ The passed-in string if all the characters in the argument are valid public id characters.
+
+
+ Verifies that the string is a valid token according to the W3C XML Schema Part2: Datatypes recommendation.
+ The string value you wish to verify.
+ The string value is not a valid token.
+ The token, if it is a valid token.
+
+
+ Returns the passed-in string instance if all the characters in the string argument are valid whitespace characters.
+
+ to verify.
+ The passed-in string instance if all the characters in the string argument are valid whitespace characters, otherwise .
+
+
+ Returns the passed-in string if all the characters and surrogate pair characters in the string argument are valid XML characters, otherwise an is thrown with information on the first invalid character encountered.
+
+ that contains characters to verify.
+ The passed-in string if all the characters and surrogate-pair characters in the string argument are valid XML characters, otherwise an is thrown with information on the first invalid character encountered.
+
+
+ Specifies how to treat the time value when converting between string and .
+
+
+ Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time.
+
+
+ Time zone information should be preserved when converting.
+
+
+ Treat as a local time if a is being converted to a string. If a string is being converted to , convert to a local time if a time zone is specified.
+
+
+ Treat as a UTC. If the object represents a local time, it is converted to a UTC.
+
+
+ Represents the XML declaration node <?xml version='1.0'...?>.
+
+
+ Initializes a new instance of the class.
+ The XML version; see the property.
+ The encoding scheme; see the property.
+ Indicates whether the XML document depends on an external DTD; see the property.
+ The parent XML document.
+
+
+ Creates a duplicate of this node.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself. Because nodes do not have children, the cloned node always includes the data value, regardless of the parameter setting.
+ The cloned node.
+
+
+ Saves the children of the node to the specified . Because nodes do not have children, this method has no effect.
+ The to which you want to save.
+
+
+ Saves the node to the specified .
+ The to which you want to save.
+
+
+ Gets or sets the encoding level of the XML document.
+ The valid character encoding name. The most commonly supported character encoding names for XML are the following:
+
+ Category Encoding Names- Unicode UTF-8, UTF-16
- ISO 10646 ISO-10646-UCS-2, ISO-10646-UCS-4
- ISO 8859 ISO-8859-n (where "n" is a digit from 1 to 9)
- JIS X-0208-1997 ISO-2022-JP, Shift_JIS, EUC-JP
+
+ This value is optional. If a value is not set, this property returns String.Empty.
+
+ If an encoding attribute is not included, UTF-8 encoding is assumed when the document is written or saved out.
+
+
+ Gets or sets the concatenated values of the .
+ The concatenated values of the (that is, everything between <?xml and ?>).
+
+
+ Gets the local name of the node.
+ For nodes, the local name is .
+
+
+ Gets the qualified name of the node.
+ For nodes, the name is .
+
+
+ Gets the type of the current node.
+ For nodes, this value is XmlNodeType.XmlDeclaration.
+
+
+ Gets or sets the value of the standalone attribute.
+ Valid values are if all entity declarations required by the XML document are contained within the document or if an external document type definition (DTD) is required. If a standalone attribute is not present in the XML declaration, this property returns String.Empty.
+
+
+ Gets or sets the value of the .
+ The contents of the (that is, everything between <?xml and ?>).
+
+
+ Gets the XML version of the document.
+ The value is always .
+
+
+ Represents an XML document. You can use this class to load, validate, edit, add, and position XML in a document.
+
+
+ Occurs when the of a node belonging to this document has been changed.
+
+
+ Occurs when the of a node belonging to this document is about to be changed.
+
+
+ Occurs when a node belonging to this document has been inserted into another node.
+
+
+ Occurs when a node belonging to this document is about to be inserted into another node.
+
+
+ Occurs when a node belonging to this document has been removed from its parent.
+
+
+ Occurs when a node belonging to this document is about to be removed from the document.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified .
+ The to use.
+
+
+ Initializes a new instance of the class with the specified .
+ The to use.
+
+
+ Creates a duplicate of this node.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself.
+ The cloned node.
+
+
+ Creates an with the specified .
+ The qualified name of the attribute. If the name contains a colon, the property reflects the part of the name preceding the first colon and the property reflects the part of the name following the first colon. The remains empty unless the prefix is a recognized built-in prefix such as xmlns. In this case has a value of http://www.w3.org/2000/xmlns/.
+ The new .
+
+
+ Creates an with the specified qualified name and .
+ The qualified name of the attribute. If the name contains a colon then the property will reflect the part of the name preceding the colon and the property will reflect the part of the name after the colon.
+ The namespaceURI of the attribute. If the qualified name includes a prefix of xmlns, then this parameter must be http://www.w3.org/2000/xmlns/.
+ The new .
+
+
+ Creates an with the specified , , and .
+ The prefix of the attribute (if any). String.Empty and are equivalent.
+ The local name of the attribute.
+ The namespace URI of the attribute (if any). String.Empty and are equivalent. If is xmlns, then this parameter must be http://www.w3.org/2000/xmlns/; otherwise an exception is thrown.
+ The new .
+
+
+ Creates an containing the specified data.
+ The content of the new .
+ The new .
+
+
+ Creates an containing the specified data.
+ The content of the new .
+ The new .
+
+
+ Creates a default attribute with the specified prefix, local name and namespace URI.
+ The prefix of the attribute (if any).
+ The local name of the attribute.
+ The namespace URI of the attribute (if any).
+ The new .
+
+
+ Creates an .
+ The new .
+
+
+ Returns a new object.
+ Name of the document type.
+ The public identifier of the document type or . You can specify a public URI and also a system identifier to identify the location of the external DTD subset.
+ The system identifier of the document type or . Specifies the URL of the file location for the external DTD subset.
+ The DTD internal subset of the document type or .
+ The new .
+
+
+ Creates an element with the specified name.
+ The qualified name of the element. If the name contains a colon then the property reflects the part of the name preceding the colon and the property reflects the part of the name after the colon. The qualified name cannot include a prefix of 'xmlns'.
+ The new .
+
+
+ Creates an with the qualified name and .
+ The qualified name of the element. If the name contains a colon then the property will reflect the part of the name preceding the colon and the property will reflect the part of the name after the colon. The qualified name cannot include a prefix of 'xmlns'.
+ The namespace URI of the element.
+ The new .
+
+
+ Creates an element with the specified , , and .
+ The prefix of the new element (if any). String.Empty and are equivalent.
+ The local name of the new element.
+ The namespace URI of the new element (if any). String.Empty and are equivalent.
+ The new .
+
+
+ Creates an with the specified name.
+ The name of the entity reference.
+ The name is invalid (for example, names starting with'#' are invalid.)
+ The new .
+
+
+ Creates a new object for navigating this document.
+ An object.
+
+
+ Creates an object for navigating this document positioned on the specified.
+ The you want the navigator initially positioned on.
+ An object.
+
+
+ Creates an with the specified node type, , and .
+ String version of the of the new node. This parameter must be one of the values listed in the table below.
+ The qualified name of the new node. If the name contains a colon, it is parsed into and components.
+ The namespace URI of the new node.
+ The name was not provided and the requires a name; or is not one of the strings listed below.
+ The new .
+
+
+ Creates an with the specified , , and .
+ The of the new node.
+ The qualified name of the new node. If the name contains a colon then it is parsed into and components.
+ The namespace URI of the new node.
+ The name was not provided and the requires a name.
+ The new .
+
+
+ Creates a with the specified , , , and .
+ The of the new node.
+ The prefix of the new node.
+ The local name of the new node.
+ The namespace URI of the new node.
+ The name was not provided and the requires a name.
+ The new .
+
+
+ Creates an with the specified name and data.
+ The name of the processing instruction.
+ The data for the processing instruction.
+ The new .
+
+
+ Creates an node.
+ The string must contain only the following characters  and 	.
+ A new node.
+
+
+ Creates an with the specified text.
+ The text for the Text node.
+ The new node.
+
+
+ Creates an node.
+ The string must contain only the following characters  and 	.
+ A new node.
+
+
+ Creates an node with the specified values.
+ The version must be "1.0".
+ The value of the encoding attribute. This is the encoding that is used when you save the to a file or a stream; therefore, it must be set to a string supported by the class, otherwise fails. If this is or String.Empty, the method does not write an encoding attribute on the XML declaration and therefore the default encoding, UTF-8, is used.
+
+ Note: If the is saved to either a or an , this encoding value is discarded. Instead, the encoding of the or the is used. This ensures that the XML written out can be read back using the correct encoding.
+ The value must be either "yes" or "no". If this is or String.Empty, the method does not write a standalone attribute on the XML declaration.
+ The values of or are something other than the ones specified above.
+ The new node.
+
+
+ Gets the with the specified ID.
+ The attribute ID to match.
+ The with the matching ID or if no matching element is found.
+
+
+ Returns an containing a list of all descendant elements that match the specified .
+ The qualified name to match. It is matched against the property of the matching node. The special value "*" matches all tags.
+ An containing a list of all matching nodes. If no nodes match , the returned collection will be empty.
+
+
+ Returns an containing a list of all descendant elements that match the specified and .
+ The LocalName to match. The special value "*" matches all tags.
+ NamespaceURI to match.
+ An containing a list of all matching nodes. If no nodes match the specified and , the returned collection will be empty.
+
+
+ Imports a node from another document to the current document.
+ The node being imported.
+
+ to perform a deep clone; otherwise, .
+ Calling this method on a node type which cannot be imported.
+ The imported .
+
+
+ Loads the XML document from the specified stream.
+ The stream containing the XML document to load.
+ There is a load or parse error in the XML. In this case, a is raised.
+
+
+ Loads the XML document from the specified .
+ The used to feed the XML data into the document.
+ There is a load or parse error in the XML. In this case, the document remains empty.
+
+
+ Loads the XML document from the specified URL.
+ URL for the file containing the XML document to load. The URL can be either a local file or an HTTP URL (a Web address).
+ There is a load or parse error in the XML. In this case, a is raised.
+
+ is a zero-length string, contains only white space, or contains one or more invalid characters as defined by .
+
+ is .
+ The specified path, file name, or both exceed the system-defined maximum length.
+ The specified path is invalid (for example, it is on an unmapped drive).
+ An I/O error occurred while opening the file.
+
+ specified a file that is read-only.
+
+ -or-
+
+ This operation is not supported on the current platform.
+
+ -or-
+
+ specified a directory.
+
+ -or-
+
+ The caller does not have the required permission.
+ The file specified in was not found.
+
+ is in an invalid format.
+ The caller does not have the required permission.
+
+
+ Loads the XML document from the specified .
+ The used to feed the XML data into the document.
+ There is a load or parse error in the XML. In this case, the document remains empty.
+
+
+ Loads the XML document from the specified string.
+ String containing the XML document to load.
+ There is a load or parse error in the XML. In this case, the document remains empty.
+
+
+ Creates an object based on the information in the . The reader must be positioned on a node or attribute.
+ The XML source.
+ The reader is positioned on a node type that does not translate to a valid DOM node (for example, EndElement or EndEntity).
+ The new or if no more nodes exist.
+
+
+ Saves the XML document to the specified stream.
+ The stream to which you want to save.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Saves the XML document to the specified .
+ The to which you want to save.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Saves the XML document to the specified file. If the specified file exists, this method overwrites it.
+ The location of the file where you want to save the document.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Saves the XML document to the specified .
+ The to which you want to save.
+ The operation would not result in a well formed XML document (for example, no document element or duplicate XML declarations).
+
+
+ Validates the against the XML Schema Definition Language (XSD) schemas contained in the property.
+ The object that receives information about schema validation warnings and errors.
+ A schema validation event occurred and no object was specified.
+
+
+ Validates the object specified against the XML Schema Definition Language (XSD) schemas in the property.
+ The object that receives information about schema validation warnings and errors.
+ The object created from an to validate.
+ The object parameter was not created from an .
+ The object parameter is not an element, attribute, document fragment, or the root node.
+ A schema validation event occurred and no object was specified.
+
+
+ Saves all the children of the node to the specified .
+ The to which you want to save.
+
+
+ Saves the node to the specified .
+ The to which you want to save.
+
+
+ Gets the base URI of the current node.
+ The location from which the node was loaded.
+
+
+ Gets the root for the document.
+ The that represents the root of the XML document tree. If no root exists, is returned.
+
+
+ Gets the node containing the DOCTYPE declaration.
+ The containing the DocumentType (DOCTYPE declaration).
+
+
+ Gets the object for the current document.
+ The object for the current document.
+
+
+ Throws an in all cases.
+ In all cases.
+ The values of the node and all its child nodes.
+
+
+ Gets or sets the markup representing the children of the current node.
+ The XML specified when setting this property is not well-formed.
+ The markup of the children of the current node.
+
+
+ Gets a value indicating whether the current node is read-only.
+
+ if the current node is read-only; otherwise . nodes always return .
+
+
+ Gets the local name of the node.
+ For nodes, the local name is #document.
+
+
+ Gets the qualified name of the node.
+ For nodes, the name is #document.
+
+
+ Gets the associated with this implementation.
+ An enabling you to get the atomized version of a string within the document.
+
+
+ Gets the type of the current node.
+ The node type. For nodes, this value is XmlNodeType.Document.
+
+
+ Gets the to which the current node belongs.
+ For nodes ( equals XmlNodeType.Document), this property always returns .
+
+
+ Gets the parent node of this node (for nodes that can have parents).
+ Always returns .
+
+
+ Gets or sets a value indicating whether to preserve white space in element content.
+
+ to preserve white space; otherwise . The default is .
+
+
+ Returns the Post-Schema-Validation-Infoset (PSVI) of the node.
+ The object representing the PSVI of the node.
+
+
+ Gets or sets the object associated with this .
+ An object containing the XML Schema Definition Language (XSD) schemas associated with this ; otherwise, an empty object.
+
+
+ Sets the to use for resolving external resources.
+ This property is set to and an external DTD or entity is encountered.
+ The to use.
+
+ In version 1.1 of the.NET Framework, the caller must be fully trusted in order to specify an .
+
+
+ Represents a lightweight object that is useful for tree insert operations.
+
+
+ Initializes a new instance of the class.
+ The XML document that is the source of the fragment.
+
+
+ Creates a duplicate of this node.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself.
+ The cloned node.
+
+
+ Saves all the children of the node to the specified .
+ The to which you want to save.
+
+
+ Saves the node to the specified .
+ The to which you want to save.
+
+
+ Gets or sets the markup representing the children of this node.
+ The XML specified when setting this property is not well-formed.
+ The markup of the children of this node.
+
+
+ Gets the local name of the node.
+ For nodes, the local name is .
+
+
+ Gets the qualified name of the node.
+ For , the name is .
+
+
+ Gets the type of the current node.
+ For nodes, this value is XmlNodeType.DocumentFragment.
+
+
+ Gets the to which this node belongs.
+ The to which this node belongs.
+
+
+ Gets the parent of this node (for nodes that can have parents).
+ The parent of this node.
+
+ For nodes, this property is always .
+
+
+ Represents the document type declaration.
+
+
+ Initializes a new instance of the class.
+ The qualified name; see the property.
+ The public identifier; see the property.
+ The system identifier; see the property.
+ The DTD internal subset; see the property.
+ The parent document.
+
+
+ Creates a duplicate of this node.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself. For document type nodes, the cloned node always includes the subtree, regardless of the parameter setting.
+ The cloned node.
+
+
+ Saves all the children of the node to the specified . For nodes, this method has no effect.
+ The to which you want to save.
+
+
+ Saves the node to the specified .
+ The to which you want to save.
+
+
+ Gets the collection of nodes declared in the document type declaration.
+ An containing the nodes. The returned is read-only.
+
+
+ Gets the value of the document type definition (DTD) internal subset on the DOCTYPE declaration.
+ The DTD internal subset on the DOCTYPE. If there is no DTD internal subset, String.Empty is returned.
+
+
+ Gets a value indicating whether the node is read-only.
+
+ if the node is read-only; otherwise, .
+
+ Because DocumentType nodes are read-only, this property always returns .
+
+
+ Gets the local name of the node.
+ For DocumentType nodes, this property returns the name of the document type.
+
+
+ Gets the qualified name of the node.
+ For DocumentType nodes, this property returns the name of the document type.
+
+
+ Gets the type of the current node.
+ For DocumentType nodes, this value is XmlNodeType.DocumentType.
+
+
+ Gets the collection of nodes present in the document type declaration.
+ An containing the nodes. The returned is read-only.
+
+
+ Gets the value of the public identifier on the DOCTYPE declaration.
+ The public identifier on the DOCTYPE. If there is no public identifier, is returned.
+
+
+ Gets the value of the system identifier on the DOCTYPE declaration.
+ The system identifier on the DOCTYPE. If there is no system identifier, is returned.
+
+
+ Represents an element.
+
+
+ Initializes a new instance of the class.
+ The namespace prefix; see the property.
+ The local name; see the property.
+ The namespace URI; see the property.
+ The parent XML document.
+
+
+ Creates a duplicate of this node.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself (and its attributes if the node is an ).
+ The cloned node.
+
+
+ Returns the value for the attribute with the specified name.
+ The name of the attribute to retrieve. This is a qualified name. It is matched against the property of the matching node.
+ The value of the specified attribute. An empty string is returned if a matching attribute is not found or if the attribute does not have a specified or default value.
+
+
+ Returns the value for the attribute with the specified local name and namespace URI.
+ The local name of the attribute to retrieve.
+ The namespace URI of the attribute to retrieve.
+ The value of the specified attribute. An empty string is returned if a matching attribute is not found or if the attribute does not have a specified or default value.
+
+
+ Returns the with the specified name.
+ The name of the attribute to retrieve. This is a qualified name. It is matched against the property of the matching node.
+ The specified or if a matching attribute was not found.
+
+
+ Returns the with the specified local name and namespace URI.
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ The specified or if a matching attribute was not found.
+
+
+ Returns an containing a list of all descendant elements that match the specified .
+ The name tag to match. This is a qualified name. It is matched against the property of the matching node. The asterisk (*) is a special value that matches all tags.
+ An containing a list of all matching nodes. The list is empty if there are no matching nodes.
+
+
+ Returns an containing a list of all descendant elements that match the specified and .
+ The local name to match. The asterisk (*) is a special value that matches all tags.
+ The namespace URI to match.
+ An containing a list of all matching nodes. The list is empty if there are no matching nodes.
+
+
+ Determines whether the current node has an attribute with the specified name.
+ The name of the attribute to find. This is a qualified name. It is matched against the property of the matching node.
+
+ if the current node has the specified attribute; otherwise, .
+
+
+ Determines whether the current node has an attribute with the specified local name and namespace URI.
+ The local name of the attribute to find.
+ The namespace URI of the attribute to find.
+
+ if the current node has the specified attribute; otherwise, .
+
+
+ Removes all specified attributes and children of the current node. Default attributes are not removed.
+
+
+ Removes all specified attributes from the element. Default attributes are not removed.
+
+
+ Removes an attribute by name.
+ The name of the attribute to remove. This is a qualified name. It is matched against the property of the matching node.
+ The node is read-only.
+
+
+ Removes an attribute with the specified local name and namespace URI. (If the removed attribute has a default value, it is immediately replaced).
+ The local name of the attribute to remove.
+ The namespace URI of the attribute to remove.
+ The node is read-only.
+
+
+ Removes the attribute node with the specified index from the element. (If the removed attribute has a default value, it is immediately replaced).
+ The index of the node to remove. The first node has index 0.
+ The attribute node removed or if there is no node at the given index.
+
+
+ Removes the specified by the local name and namespace URI. (If the removed attribute has a default value, it is immediately replaced).
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ This node is read-only.
+ The removed or if the does not have a matching attribute node.
+
+
+ Removes the specified .
+ The node to remove. If the removed attribute has a default value, it is immediately replaced.
+ This node is read-only.
+ The removed or if is not an attribute node of the .
+
+
+ Sets the value of the attribute with the specified name.
+ The name of the attribute to create or alter. This is a qualified name. If the name contains a colon it is parsed into prefix and local name components.
+ The value to set for the attribute.
+ The specified name contains an invalid character.
+ The node is read-only.
+
+
+ Sets the value of the attribute with the specified local name and namespace URI.
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ The value to set for the attribute.
+ The attribute value.
+
+
+ Adds the specified .
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ The to add.
+
+
+ Adds the specified .
+ The node to add to the attribute collection for this element.
+ The was created from a different document than the one that created this node. Or this node is read-only.
+ The is already an attribute of another object. You must explicitly clone nodes to re-use them in other objects.
+ If the attribute replaces an existing attribute with the same name, the old is returned; otherwise, is returned.
+
+
+ Saves all the children of the node to the specified .
+ The to which you want to save.
+
+
+ Saves the current node to the specified .
+ The to which you want to save.
+
+
+ Gets an containing the list of attributes for this node.
+
+ containing the list of attributes for this node.
+
+
+ Gets a value indicating whether the current node has any attributes.
+
+ if the current node has attributes; otherwise, .
+
+
+ Gets or sets the concatenated values of the node and all its children.
+ The concatenated values of the node and all its children.
+
+
+ Gets or sets the markup representing just the children of this node.
+ The XML specified when setting this property is not well-formed.
+ The markup of the children of this node.
+
+
+ Gets or sets the tag format of the element.
+
+ if the element is to be serialized in the short tag format "<item/>"; for the long format "<item></item>".
+
+ When setting this property, if set to , the children of the element are removed and the element is serialized in the short tag format. If set to , the value of the property is changed (regardless of whether or not the element has content); if the element is empty, it is serialized in the long format.
+
+ This property is a Microsoft extension to the Document Object Model (DOM).
+
+
+ Gets the local name of the current node.
+ The name of the current node with the prefix removed. For example, is book for the element <bk:book>.
+
+
+ Gets the qualified name of the node.
+ The qualified name of the node. For nodes, this is the tag name of the element.
+
+
+ Gets the namespace URI of this node.
+ The namespace URI of this node. If there is no namespace URI, this property returns String.Empty.
+
+
+ Gets the immediately following this element.
+ The immediately following this element.
+
+
+ Gets the type of the current node.
+ The node type. For nodes, this value is XmlNodeType.Element.
+
+
+ Gets the to which this node belongs.
+ The to which this element belongs.
+
+
+ Gets the parent of this node (for nodes that can have parents).
+ The that is the parent of the current node. If a node has just been created and not yet added to the tree, or if it has been removed from the tree, the parent is . For all other nodes, the value returned depends on the of the node. The following table describes the possible return values for the property.
+
+
+ Gets or sets the namespace prefix of this node.
+ This node is read-only.
+ The specified prefix contains an invalid character.
+
+ The specified prefix is malformed.
+
+ The namespaceURI of this node is .
+
+ The specified prefix is "xml" and the namespaceURI of this node is different from http://www.w3.org/XML/1998/namespace.
+ The namespace prefix of this node. If there is no prefix, this property returns String.Empty.
+
+
+ Gets the post schema validation infoset that has been assigned to this node as a result of schema validation.
+ An object containing the post schema validation infoset of this node.
+
+
+ Represents an entity declaration, such as <!ENTITY... >.
+
+
+ Creates a duplicate of this node. Entity nodes cannot be cloned. Calling this method on an object throws an exception.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself.
+ Entity nodes cannot be cloned. Calling this method on an object throws an exception.
+ A copy of the from which the method is called.
+
+
+ Saves all the children of the node to the specified . For nodes, this method has no effect.
+ The to which you want to save.
+
+
+ Saves the node to the specified . For nodes, this method has no effect.
+ The to which you want to save.
+
+
+ Gets the base Uniform Resource Identifier (URI) of the current node.
+ The location from which the node was loaded.
+
+
+ Gets the concatenated values of the entity node and all its children.
+ Attempting to set the property.
+ The concatenated values of the node and all its children.
+
+
+ Gets the markup representing the children of this node.
+ Attempting to set the property.
+ For nodes, String.Empty is returned.
+
+
+ Gets a value indicating whether the node is read-only.
+
+ if the node is read-only; otherwise, .
+
+ Because nodes are read-only, this property always returns .
+
+
+ Gets the name of the node without the namespace prefix.
+ For nodes, this property returns the name of the entity.
+
+
+ Gets the name of the node.
+ The name of the entity.
+
+
+ Gets the type of the node.
+ The node type. For nodes, the value is XmlNodeType.Entity.
+
+
+ Gets the name of the optional NDATA attribute on the entity declaration.
+ The name of the NDATA attribute. If there is no NDATA, is returned.
+
+
+ Gets the markup representing this node and all its children.
+ For nodes, String.Empty is returned.
+
+
+ Gets the value of the public identifier on the entity declaration.
+ The public identifier on the entity. If there is no public identifier, is returned.
+
+
+ Gets the value of the system identifier on the entity declaration.
+ The system identifier on the entity. If there is no system identifier, is returned.
+
+
+ Represents an entity reference node.
+
+
+ Initializes a new instance of the class.
+ The name of the entity reference; see the property.
+ The parent XML document.
+
+
+ Creates a duplicate of this node.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself. For nodes, this method always returns an entity reference node with no children. The replacement text is set when the node is inserted into a parent.
+ The cloned node.
+
+
+ Saves all the children of the node to the specified .
+ The to which you want to save.
+
+
+ Saves the node to the specified .
+ The to which you want to save.
+
+
+ Gets the base Uniform Resource Identifier (URI) of the current node.
+ The location from which the node was loaded.
+
+
+ Gets a value indicating whether the node is read-only.
+
+ if the node is read-only; otherwise .
+
+ Because nodes are read-only, this property always returns .
+
+
+ Gets the local name of the node.
+ For nodes, this property returns the name of the entity referenced.
+
+
+ Gets the name of the node.
+ The name of the entity referenced.
+
+
+ Gets the type of the node.
+ The node type. For nodes, the value is XmlNodeType.EntityReference.
+
+
+ Gets or sets the value of the node.
+ Node is read-only.
+ Setting the property.
+ The value of the node. For nodes, this property returns .
+
+
+ Returns detailed information about the last exception.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the information in the and objects.
+ The object containing all the properties of an .
+ The object containing the context information.
+
+
+ Initializes a new instance of the class with a specified error message.
+ The error description.
+
+
+ Initializes a new instance of the class.
+ The description of the error condition.
+ The that threw the , if any. This value can be .
+
+
+ Initializes a new instance of the class with the specified message, inner exception, line number, and line position.
+ The error description.
+ The exception that is the cause of the current exception. This value can be .
+ The line number indicating where the error occurred.
+ The line position indicating where the error occurred.
+
+
+ Streams all the properties into the class for the given .
+ The object.
+ The object.
+
+
+ Gets the line number indicating where the error occurred. Line numbers start at 1.
+ The line number indicating where the error occurred.
+
+
+ Gets the line position indicating where the error occurred. Line position starts at 1.
+ The line position indicating where the error occurred.
+
+
+ Gets a message describing the current exception.
+ The error message that explains the reason for the exception.
+
+
+ Gets the location of the XML file.
+ The source URI for the XML data. If there is no source URI, this property returns .
+
+
+ Defines the context for a set of objects.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified.
+ An object.
+
+
+ Creates a new .
+ The new object.
+
+
+ Tests if the Document Object Model (DOM) implementation implements a specific feature.
+ The package name of the feature to test. This name is not case-sensitive.
+ This is the version number of the package name to test. If the version is not specified (), supporting any version of the feature causes the method to return .
+
+ if the feature is implemented in the specified version; otherwise, .
+
+ The following table shows the combinations that cause to return .
+
+ strFeature strVersion- XML 1.0
- XML 2.0
+
+
+ Gets the node immediately preceding or following this node.
+
+
+ Gets the node immediately following this node.
+ The immediately following this node or if one does not exist.
+
+
+ Gets the node immediately preceding this node.
+ The preceding or if one does not exist.
+
+
+ Represents a collection of nodes that can be accessed by name or index.
+
+
+ Provides support for the "foreach" style iteration over the collection of nodes in the .
+ An enumerator object.
+
+
+ Retrieves an specified by name.
+ The qualified name of the node to retrieve. It is matched against the property of the matching node.
+ An with the specified name or if a matching node is not found.
+
+
+ Retrieves a node with the matching and .
+ The local name of the node to retrieve.
+ The namespace Uniform Resource Identifier (URI) of the node to retrieve.
+ An with the matching local name and namespace URI or if a matching node was not found.
+
+
+ Retrieves the node at the specified index in the .
+ The index position of the node to retrieve from the . The index is zero-based; therefore, the index of the first node is 0 and the index of the last node is -1.
+ The at the specified index. If is less than 0 or greater than or equal to the property, is returned.
+
+
+ Removes the node from the .
+ The qualified name of the node to remove. The name is matched against the property of the matching node.
+ The removed from this or if a matching node was not found.
+
+
+ Removes a node with the matching and .
+ The local name of the node to remove.
+ The namespace URI of the node to remove.
+ The removed or if a matching node was not found.
+
+
+ Adds an using its property.
+ An to store in the . If a node with that name is already present in the map, it is replaced by the new one.
+ The was created from a different than the one that created the ; or the is read-only.
+ If the replaces an existing node with the same name, the old node is returned; otherwise, is returned.
+
+
+ Gets the number of nodes in the .
+ The number of nodes.
+
+
+ Resolves, adds, and removes namespaces to a collection and provides scope management for these namespaces.
+
+
+ Initializes a new instance of the class with the specified .
+ The to use.
+
+ is passed to the constructor.
+
+
+ Adds the given namespace to the collection.
+ The prefix to associate with the namespace being added. Use String.Empty to add a default namespace.
+
+ Note If the will be used for resolving namespaces in an XML Path Language (XPath) expression, a prefix must be specified. If an XPath expression does not include a prefix, it is assumed that the namespace Uniform Resource Identifier (URI) is the empty namespace. For more information about XPath expressions and the , refer to the and methods.
+ The namespace to add.
+ The value for is "xml" or "xmlns".
+ The value for or is .
+
+
+ Returns an enumerator to use to iterate through the namespaces in the .
+ An containing the prefixes stored by the .
+
+
+ Gets a collection of namespace names keyed by prefix which can be used to enumerate the namespaces currently in scope.
+ An enumeration value that specifies the type of namespace nodes to return.
+ A collection of namespace and prefix pairs currently in scope.
+
+
+ Gets a value indicating whether the supplied prefix has a namespace defined for the current pushed scope.
+ The prefix of the namespace you want to find.
+
+ if there is a namespace defined; otherwise, .
+
+
+ Gets the namespace URI for the specified prefix.
+ The prefix whose namespace URI you want to resolve. To match the default namespace, pass String.Empty.
+ The namespace URI for or if there is no mapped namespace. The returned string is atomized.
+
+ For more information on atomized strings, see the class.
+
+
+ Finds the prefix declared for the given namespace URI.
+ The namespace to resolve for the prefix.
+ The matching prefix. If there is no mapped prefix, the method returns String.Empty. If a null value is supplied, then is returned.
+
+
+ Pops a namespace scope off the stack.
+
+ if there are namespace scopes left on the stack; if there are no more namespaces to pop.
+
+
+ Pushes a namespace scope onto the stack.
+
+
+ Removes the given namespace for the given prefix.
+ The prefix for the namespace.
+ The namespace to remove for the given prefix. The namespace removed is from the current namespace scope. Namespaces outside the current scope are ignored.
+ The value of or is .
+
+
+ Gets the namespace URI for the default namespace.
+ The namespace URI for the default namespace, or an empty string if there is no default namespace.
+
+
+ Gets the associated with this object.
+ The used by this object.
+
+
+ Defines the namespace scope.
+
+
+ All namespaces defined in the scope of the current node. This includes the xmlns:xml namespace which is always declared implicitly. The order of the namespaces returned is not defined.
+
+
+ All namespaces defined in the scope of the current node, excluding the xmlns:xml namespace, which is always declared implicitly. The order of the namespaces returned is not defined.
+
+
+ All namespaces that are defined locally at the current node.
+
+
+ Table of atomized string objects.
+
+
+ Initializes a new instance of the class.
+
+
+ When overridden in a derived class, atomizes the specified string and adds it to the .
+ The character array containing the name to add.
+ Zero-based index into the array specifying the first character of the name.
+ The number of characters in the name.
+ 0 >
+
+ -or-
+
+ >= .Length
+
+ -or-
+
+ > .Length
+
+ The above conditions do not cause an exception to be thrown if =0.
+
+ < 0.
+ The new atomized string or the existing one if it already exists. If length is zero, String.Empty is returned.
+
+
+ When overridden in a derived class, atomizes the specified string and adds it to the .
+ The name to add.
+
+ is .
+ The new atomized string or the existing one if it already exists.
+
+
+ When overridden in a derived class, gets the atomized string containing the same characters as the specified range of characters in the given array.
+ The character array containing the name to look up.
+ The zero-based index into the array specifying the first character of the name.
+ The number of characters in the name.
+ 0 >
+
+ -or-
+
+ >= .Length
+
+ -or-
+
+ > .Length
+
+ The above conditions do not cause an exception to be thrown if =0.
+
+ < 0.
+ The atomized string or if the string has not already been atomized. If is zero, String.Empty is returned.
+
+
+ When overridden in a derived class, gets the atomized string containing the same value as the specified string.
+ The name to look up.
+
+ is .
+ The atomized string or if the string has not already been atomized.
+
+
+ Represents a single node in the XML document.
+
+
+ Adds the specified node to the end of the list of child nodes, of this node.
+ The node to add. All the contents of the node to be added are moved into the specified location.
+ This node is of a type that does not allow child nodes of the type of the node.
+
+ The is an ancestor of this node.
+ The was created from a different document than the one that created this node.
+
+ This node is read-only.
+ The node added.
+
+
+ Creates a duplicate of this node.
+ The cloned node.
+
+
+ Creates a duplicate of the node, when overridden in a derived class.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself.
+ Calling this method on a node type that cannot be cloned.
+ The cloned node.
+
+
+ Creates an for navigating this object.
+ An object used to navigate the node. The is positioned on the node from which the method was called. It is not positioned on the root of the document.
+
+
+ Gets an enumerator that iterates through the child nodes in the current node.
+ An object that can be used to iterate through the child nodes in the current node.
+
+
+ Looks up the closest xmlns declaration for the given prefix that is in scope for the current node and returns the namespace URI in the declaration.
+ The prefix whose namespace URI you want to find.
+ The namespace URI of the specified prefix.
+
+
+ Looks up the closest xmlns declaration for the given namespace URI that is in scope for the current node and returns the prefix defined in that declaration.
+ The namespace URI whose prefix you want to find.
+ The prefix for the specified namespace URI.
+
+
+ Inserts the specified node immediately after the specified reference node.
+ The node to insert.
+ The reference node. is placed after .
+ This node is of a type that does not allow child nodes of the type of the node.
+
+ The is an ancestor of this node.
+ The was created from a different document than the one that created this node.
+
+ The is not a child of this node.
+
+ This node is read-only.
+ The node being inserted.
+
+
+ Inserts the specified node immediately before the specified reference node.
+ The node to insert.
+ The reference node. is placed before this node.
+ The current node is of a type that does not allow child nodes of the type of the node.
+
+ The is an ancestor of this node.
+ The was created from a different document than the one that created this node.
+
+ The is not a child of this node.
+
+ This node is read-only.
+ The node being inserted.
+
+
+ Puts all XmlText nodes in the full depth of the sub-tree underneath this XmlNode into a "normal" form where only markup (that is, tags, comments, processing instructions, CDATA sections, and entity references) separates XmlText nodes, that is, there are no adjacent XmlText nodes.
+
+
+ Adds the specified node to the beginning of the list of child nodes for this node.
+ The node to add. All the contents of the node to be added are moved into the specified location.
+ This node is of a type that does not allow child nodes of the type of the node.
+
+ The is an ancestor of this node.
+ The was created from a different document than the one that created this node.
+
+ This node is read-only.
+ The node added.
+
+
+ Removes all the child nodes and/or attributes of the current node.
+
+
+ Removes specified child node.
+ The node being removed.
+ The is not a child of this node. Or this node is read-only.
+ The node removed.
+
+
+ Replaces the child node with node.
+ The new node to put in the child list.
+ The node being replaced in the list.
+ This node is of a type that does not allow child nodes of the type of the node.
+
+ The is an ancestor of this node.
+ The was created from a different document than the one that created this node.
+
+ This node is read-only.
+
+ The is not a child of this node.
+ The node replaced.
+
+
+ Selects a list of nodes matching the XPath expression.
+ The XPath expression.
+ The XPath expression contains a prefix. See XPath Examples.
+ An containing a collection of nodes matching the XPath query.
+
+
+ Selects a list of nodes matching the XPath expression. Any prefixes found in the XPath expression are resolved using the supplied .
+ The XPath expression. See XPath Examples.
+ An to use for resolving namespaces for prefixes in the XPath expression.
+ The XPath expression contains a prefix which is not defined in the .
+ An containing a collection of nodes matching the XPath query.
+
+
+ Selects the first that matches the XPath expression.
+ The XPath expression. See XPath Examples.
+ The XPath expression contains a prefix.
+ The first that matches the XPath query or if no matching node is found.
+
+
+ Selects the first that matches the XPath expression. Any prefixes found in the XPath expression are resolved using the supplied .
+ The XPath expression. See XPath Examples.
+ An to use for resolving namespaces for prefixes in the XPath expression.
+ The XPath expression contains a prefix which is not defined in the .
+ The first that matches the XPath query or if no matching node is found.
+
+
+ Tests if the DOM implementation implements a specific feature.
+ The package name of the feature to test. This name is not case-sensitive.
+ The version number of the package name to test. If the version is not specified (null), supporting any version of the feature causes the method to return true.
+
+ if the feature is implemented in the specified version; otherwise, . The following table describes the combinations that return .
+
+ Feature Version- XML 1.0
- XML 2.0
+
+
+ For a description of this member, see .
+ An enumerator for the collection.
+
+
+ For a description of this member, see .
+ A copy of the node from which it is called.
+
+
+ Saves all the child nodes of the node to the specified , when overridden in a derived class.
+ The to which you want to save.
+
+
+ Saves the current node to the specified , when overridden in a derived class.
+ The to which you want to save.
+
+
+ Gets an containing the attributes of this node.
+ An containing the attributes of the node.
+
+ If the node is of type XmlNodeType.Element, the attributes of the node are returned. Otherwise, this property returns .
+
+
+ Gets the base URI of the current node.
+ The location from which the node was loaded or String.Empty if the node has no base URI.
+
+
+ Gets all the child nodes of the node.
+ An object that contains all the child nodes of the node.
+
+ If there are no child nodes, this property returns an empty .
+
+
+ Gets the first child of the node.
+ The first child of the node. If there is no such node, is returned.
+
+
+ Gets a value indicating whether this node has any child nodes.
+
+ if the node has child nodes; otherwise, .
+
+
+ Gets or sets the concatenated values of the node and all its child nodes.
+ The concatenated values of the node and all its child nodes.
+
+
+ Gets or sets the markup representing only the child nodes of this node.
+ Setting this property on a node that cannot have child nodes.
+ The XML specified when setting this property is not well-formed.
+ The markup of the child nodes of this node, not including default attributes.
+
+
+ Gets a value indicating whether the node is read-only.
+
+ if the node is read-only; otherwise, .
+
+
+ Gets the first child element with the specified .
+ The qualified name of the element to retrieve.
+ The first that matches the specified name. It returns a null reference ( in Visual Basic) if there is no match.
+
+
+ Gets the first child element with the specified and .
+ The local name of the element.
+ The namespace URI of the element.
+ The first with the matching and . It returns a null reference ( in Visual Basic) if there is no match.
+
+
+ Gets the last child of the node.
+ The last child of the node. If there is no such node, is returned.
+
+
+ Gets the local name of the node, when overridden in a derived class.
+ The name of the node with the prefix removed. For example, is book for the element <bk:book>.
+
+ The name returned is dependent on the of the node:
+
+ Type Name- Attribute The local name of the attribute.
- CDATA #cdata-section
- Comment #comment
- Document #document
- DocumentFragment #document-fragment
- DocumentType The document type name.
- Element The local name of the element.
- Entity The name of the entity.
- EntityReference The name of the entity referenced.
- Notation The notation name.
- ProcessingInstruction The target of the processing instruction.
- Text #text
- Whitespace #whitespace
- SignificantWhitespace #significant-whitespace
- XmlDeclaration #xml-declaration
+
+
+ Gets the qualified name of the node, when overridden in a derived class.
+ The qualified name of the node. The name returned is dependent on the of the node:
+
+ Type Name- Attribute The qualified name of the attribute.
- CDATA #cdata-section
- Comment #comment
- Document #document
- DocumentFragment #document-fragment
- DocumentType The document type name.
- Element The qualified name of the element.
- Entity The name of the entity.
- EntityReference The name of the entity referenced.
- Notation The notation name.
- ProcessingInstruction The target of the processing instruction.
- Text #text
- Whitespace #whitespace
- SignificantWhitespace #significant-whitespace
- XmlDeclaration #xml-declaration
+
+
+ Gets the namespace URI of this node.
+ The namespace URI of this node. If there is no namespace URI, this property returns String.Empty.
+
+
+ Gets the node immediately following this node.
+ The next . If there is no next node, is returned.
+
+
+ Gets the type of the current node, when overridden in a derived class.
+ One of the values.
+
+
+ Gets the markup containing this node and all its child nodes.
+ The markup containing this node and all its child nodes, not including default attributes.
+
+
+ Gets the to which this node belongs.
+ The to which this node belongs.
+
+ If the node is an (NodeType equals XmlNodeType.Document), this property returns .
+
+
+ Gets the parent of this node (for nodes that can have parents).
+ The that is the parent of the current node. If a node has just been created and not yet added to the tree, or if it has been removed from the tree, the parent is . For all other nodes, the value returned depends on the of the node. The following table describes the possible return values for the property.
+
+ NodeType Return Value of ParentNode- Attribute, Document, DocumentFragment, Entity, Notation Returns ; these nodes do not have parents.
- CDATA Returns the element or entity reference containing the CDATA section.
- Comment Returns the element, entity reference, document type, or document containing the comment.
- DocumentType Returns the document node.
- Element Returns the parent node of the element. If the element is the root node in the tree, the parent is the document node.
- EntityReference Returns the element, attribute, or entity reference containing the entity reference.
- ProcessingInstruction Returns the document, element, document type, or entity reference containing the processing instruction.
- Text Returns the parent element, attribute, or entity reference containing the text node.
+
+
+ Gets or sets the namespace prefix of this node.
+ This node is read-only.
+ The specified prefix contains an invalid character.
+
+ The specified prefix is malformed.
+
+ The specified prefix is "xml" and the namespaceURI of this node is different from "http://www.w3.org/XML/1998/namespace".
+
+ This node is an attribute and the specified prefix is "xmlns" and the namespaceURI of this node is different from "http://www.w3.org/2000/xmlns/ ".
+
+ This node is an attribute and the qualifiedName of this node is "xmlns".
+ The namespace prefix of this node. For example, is bk for the element <bk:book>. If there is no prefix, this property returns String.Empty.
+
+
+ Gets the node immediately preceding this node.
+ The preceding . If there is no preceding node, is returned.
+
+
+ Gets the text node that immediately precedes this node.
+ Returns .
+
+
+ Gets the post schema validation infoset that has been assigned to this node as a result of schema validation.
+ An object containing the post schema validation infoset of this node.
+
+
+ Gets or sets the value of the node.
+ Setting the value of a node that is read-only.
+ Setting the value of a node that is not supposed to have a value (for example, an Element node).
+ The value returned depends on the of the node:
+
+ Type Value- Attribute The value of the attribute.
- CDATASection The content of the CDATA Section.
- Comment The content of the comment.
- Document.
- DocumentFragment.
- DocumentType.
- Element. You can use the or properties to access the value of the element node.
- Entity.
- EntityReference.
- Notation.
- ProcessingInstruction The entire content excluding the target.
- Text The content of the text node.
- SignificantWhitespace The white space characters. White space can consist of one or more space characters, carriage returns, line feeds, or tabs.
- Whitespace The white space characters. White space can consist of one or more space characters, carriage returns, line feeds, or tabs.
- XmlDeclaration The content of the declaration (that is, everything between <?xml and ?>).
+
+
+ Specifies the type of node change.
+
+
+ A node value is being changed.
+
+
+ A node is being inserted in the tree.
+
+
+ A node is being removed from the tree.
+
+
+ Provides data for the , , , , and events.
+
+
+ Initializes a new instance of the class.
+ The that generated the event.
+ The old parent of the that generated the event.
+ The new parent of the that generated the event.
+ The old value of the that generated the event.
+ The new value of the that generated the event.
+ The .
+
+
+ Gets a value indicating what type of node change event is occurring.
+ One of the enumeration values that describes the node change event. The value does not differentiate between when the event occurred (before or after). You can create separate event handlers to handle both instances.
+
+
+ Gets the value of the after the operation completes.
+ The value of the after the operation completes. This property returns if the node is being removed. For attribute nodes, this property returns the .
+
+
+ Gets the new value of the node.
+ The new value of the node. This property returns if the node is neither an attribute nor a text node, or if the node is being removed.
+
+ If called in a event, returns the value of the node if the change is successful. If called in a event, returns the current value of the node.
+
+
+ Gets the that is being added, removed or changed.
+ The that is being added, removed or changed; this property never returns .
+
+
+ Gets the value of the before the operation began.
+ The value of the before the operation began. This property returns if the node did not have a parent. For attribute nodes, this property returns the .
+
+
+ Gets the original value of the node.
+ The original value of the node. This property returns if the node is neither an attribute nor a text node, or if the node is being inserted.
+
+ If called in a event, returns the current value of the node that will be replaced if the change is successful. If called in a event, returns the value of node prior to the change.
+
+
+ Represents the method that handles , , , , and events.
+ The source of the event.
+ An containing the event data.
+
+
+ Represents an ordered collection of nodes.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets an enumerator that iterates through the collection of nodes.
+ An enumerator used to iterate through the collection of nodes.
+
+
+ Retrieves a node at the given index.
+ The zero-based index into the list of nodes.
+ The with the specified index in the collection. If is greater than or equal to the number of nodes in the list, this returns .
+
+
+ Disposes resources in the node list privately.
+
+
+ Releases all resources used by the class.
+
+
+ Gets the number of nodes in the .
+ The number of nodes in the .
+
+
+ Gets a node at the given index.
+ The zero-based index into the list of nodes.
+ The with the specified index in the collection. If index is greater than or equal to the number of nodes in the list, this returns .
+
+
+ Describes the document order of a node compared to a second node.
+
+
+ The current node of this navigator is after the current node of the supplied navigator.
+
+
+ The current node of this navigator is before the current node of the supplied navigator.
+
+
+ The two navigators are positioned on the same node.
+
+
+ The node positions cannot be determined in document order, relative to each other. This could occur if the two nodes reside in different trees.
+
+
+ Represents a reader that provides fast, non-cached forward only access to XML data in an .
+
+
+ Creates an instance of the class using the specified .
+ The you want to read.
+
+
+ Changes the to .
+
+
+ Gets the value of the attribute with the specified index.
+ The index of the attribute. The index is zero-based. (The first attribute has index 0.)
+ The parameter is less than 0 or greater than or equal to .
+ The value of the specified attribute.
+
+
+ Gets the value of the attribute with the specified name.
+ The qualified name of the attribute.
+ The value of the specified attribute. If the attribute is not found, is returned.
+
+
+ Gets the value of the attribute with the specified local name and namespace URI.
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ The value of the specified attribute. If the attribute is not found, is returned.
+
+
+ Resolves a namespace prefix in the current element's scope.
+ The prefix whose namespace URI you want to resolve. To match the default namespace, pass an empty string. This string does not have to be atomized.
+ The namespace URI to which the prefix maps or if no matching prefix is found.
+
+
+ Moves to the attribute with the specified index.
+ The index of the attribute.
+ The parameter is less than 0 or greater than or equal to .
+
+
+ Moves to the attribute with the specified name.
+ The qualified name of the attribute.
+
+ if the attribute is found; otherwise, . If , the reader's position does not change.
+
+
+ Moves to the attribute with the specified local name and namespace URI.
+ The local name of the attribute.
+ The namespace URI of the attribute.
+
+ if the attribute is found; otherwise, . If , the reader's position does not change.
+
+
+ Moves to the element that contains the current attribute node.
+
+ if the reader is positioned on an attribute (the reader moves to the element that owns the attribute); if the reader is not positioned on an attribute (the position of the reader does not change).
+
+
+ Moves to the first attribute.
+
+ if an attribute exists (the reader moves to the first attribute); otherwise, (the position of the reader does not change).
+
+
+ Moves to the next attribute.
+
+ if there is a next attribute; if there are no more attributes.
+
+
+ Reads the next node from the stream.
+
+ if the next node was read successfully; if there are no more nodes to read.
+
+
+ Parses the attribute value into one or more , , or nodes.
+
+ if there are nodes to return.
+
+ if the reader is not positioned on an attribute node when the initial call is made or if all the attribute values have been read.
+
+ An empty attribute, such as, misc="", returns with a single node with a value of String.Empty.
+
+
+ Reads the content and returns the Base64 decoded binary bytes.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+
+ is not supported on the current node.
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The number of bytes written to the buffer.
+
+
+ Reads the content and returns the BinHex decoded binary bytes.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+
+ is not supported on the current node.
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The number of bytes written to the buffer.
+
+
+ Reads the element and decodes the Base64 content.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+ The current node is not an element node.
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The element contains mixed content.
+ The content cannot be converted to the requested type.
+ The number of bytes written to the buffer.
+
+
+ Reads the element and decodes the BinHex content.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+ The current node is not an element node.
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The element contains mixed content.
+ The content cannot be converted to the requested type.
+ The number of bytes written to the buffer.
+
+
+ Reads the contents of an element or text node as a string.
+ The contents of the element or text-like node (This can include CDATA, Text nodes, and so on). This can be an empty string if the reader is positioned on something other than an element or text node, or if there is no more text content to return in the current context.
+
+ The text node can be either an element or an attribute text node.
+
+
+ Resolves the entity reference for nodes.
+ The reader is not positioned on an node.
+
+
+ Skips the children of the current node.
+
+
+ For a description of this member, see .
+
+ object.
+
+ object that contains the namespaces that are in scope.
+
+
+ For a description of this member, see .
+
+ that contains the namespace prefix.
+
+ that contains the namespace name.
+
+
+ For a description of this member, see .
+
+ object that identifies the namespace.
+
+ object that contains the namespace prefix.
+
+
+ Gets the number of attributes on the current node.
+ The number of attributes on the current node. This number includes default attributes.
+
+
+ Gets the base URI of the current node.
+ The base URI of the current node.
+
+
+ Gets a value indicating whether the implements the binary content read methods.
+
+ if the binary content read methods are implemented; otherwise . The class always returns .
+
+
+ Gets a value indicating whether this reader can parse and resolve entities.
+
+ if the reader can parse and resolve entities; otherwise, . always returns .
+
+
+ Gets the depth of the current node in the XML document.
+ The depth of the current node in the XML document.
+
+
+ Gets a value indicating whether the reader is positioned at the end of the stream.
+
+ if the reader is positioned at the end of the stream; otherwise, .
+
+
+ Gets a value indicating whether the current node has any attributes.
+
+ if the current node has attributes; otherwise, .
+
+
+ Gets a value indicating whether the current node can have a .
+
+ if the node on which the reader is currently positioned can have a ; otherwise, .
+
+
+ Gets a value indicating whether the current node is an attribute that was generated from the default value defined in the document type definition (DTD) or schema.
+
+ if the current node is an attribute whose value was generated from the default value defined in the DTD or schema; if the attribute value was explicitly set.
+
+
+ Gets a value indicating whether the current node is an empty element (for example, <MyElement/>).
+
+ if the current node is an element ( equals ) and it ends with />; otherwise, .
+
+
+ Gets the local name of the current node.
+ The name of the current node with the prefix removed. For example, is for the element <bk:book>.
+
+ For node types that do not have a name (like , , and so on), this property returns String.Empty.
+
+
+ Gets the qualified name of the current node.
+ The qualified name of the current node. For example, is for the element <bk:book>.
+
+ The name returned is dependent on the of the node. The following node types return the listed values. All other node types return an empty string.
+
+ Node Type Name- The name of the attribute.
- The document type name.
- The tag name.
- The name of the entity referenced.
- The target of the processing instruction.
- The literal string .
+
+
+ Gets the namespace URI (as defined in the W3C Namespace specification) of the node on which the reader is positioned.
+ The namespace URI of the current node; otherwise an empty string.
+
+
+ Gets the associated with this implementation.
+ The enabling you to get the atomized version of a string within the node.
+
+
+ Gets the type of the current node.
+ One of the values representing the type of the current node.
+
+
+ Gets the namespace prefix associated with the current node.
+ The namespace prefix associated with the current node.
+
+
+ Gets the state of the reader.
+ One of the values.
+
+
+ Gets the schema information that has been assigned to the current node.
+ An object containing the schema information for the current node.
+
+
+ Gets the text value of the current node.
+ The value returned depends on the of the node. The following table lists node types that have a value to return. All other node types return String.Empty.
+
+ Node Type Value- The value of the attribute.
- The content of the CDATA section.
- The content of the comment.
- The internal subset.
- The entire content, excluding the target.
- The white space between markup in a mixed content model.
- The content of the text node.
- The white space between markup.
- The content of the declaration.
+
+
+ Gets the current scope.
+ The current scope.
+
+
+ Gets the current scope.
+ One of the values. If no scope exists, this property defaults to .
+
+
+ Specifies the type of node.
+
+
+ An attribute (for example, id='123' ).
+
+
+ A CDATA section (for example, <![CDATA[my escaped text]]> ).
+
+
+ A comment (for example, <!-- my comment --> ).
+
+
+ A document object that, as the root of the document tree, provides access to the entire XML document.
+
+
+ A document fragment.
+
+
+ The document type declaration, indicated by the following tag (for example, <!DOCTYPE...> ).
+
+
+ An element (for example, <item> ).
+
+
+ An end element tag (for example, </item> ).
+
+
+ Returned when gets to the end of the entity replacement as a result of a call to .
+
+
+ An entity declaration (for example, <!ENTITY...> ).
+
+
+ A reference to an entity (for example, # ).
+
+
+ This is returned by the if a method has not been called.
+
+
+ A notation in the document type declaration (for example, <!NOTATION...> ).
+
+
+ A processing instruction (for example, <?pi test?> ).
+
+
+ White space between markup in a mixed content model or white space within the xml:space="preserve" scope.
+
+
+
+ The text content of a node.
+ A node cannot have any child nodes. It can appear as the child node of the , , , and nodes.
+
+
+
+ White space between markup.
+
+
+
+ The XML declaration (for example, <?xml version='1.0'?> ).
+ The node must be the first node in the document. It cannot have children. It is a child of the node. It can have attributes that provide version and encoding information.
+
+
+
+ Represents a notation declaration, such as <!NOTATION... >.
+
+
+ Creates a duplicate of this node. Notation nodes cannot be cloned. Calling this method on an object throws an exception.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself.
+ Notation nodes cannot be cloned. Calling this method on an object throws an exception.
+ A copy of the node from which the method is called.
+
+
+ Saves the children of the node to the specified . This method has no effect on nodes.
+ The to which you want to save.
+
+
+ Saves the node to the specified . This method has no effect on nodes.
+ The to which you want to save.
+
+
+ Gets the markup representing the children of this node.
+ Attempting to set the property.
+ For nodes, String.Empty is returned.
+
+
+ Gets a value indicating whether the node is read-only.
+
+ if the node is read-only; otherwise, .
+
+ Because nodes are read-only, this property always returns .
+
+
+ Gets the name of the current node without the namespace prefix.
+ For nodes, this property returns the name of the notation.
+
+
+ Gets the name of the current node.
+ The name of the notation.
+
+
+ Gets the type of the current node.
+ The node type. For nodes, the value is XmlNodeType.Notation.
+
+
+ Gets the markup representing this node and all its children.
+ For nodes, String.Empty is returned.
+
+
+ Gets the value of the public identifier on the notation declaration.
+ The public identifier on the notation. If there is no public identifier, is returned.
+
+
+ Gets the value of the system identifier on the notation declaration.
+ The system identifier on the notation. If there is no system identifier, is returned.
+
+
+ Specifies the method used to serialize the output.
+
+
+ Use the XSLT rules to choose between the and output methods at runtime.
+
+
+ Serialize according to the HTML rules specified by XSLT.
+
+
+ Serialize text blocks only.
+
+
+ Serialize according to the XML 1.0 rules.
+
+
+ Provides all the context information required by the to parse an XML fragment.
+
+
+ Initializes a new instance of the class with the specified , , base URI, , , and document type values.
+ The to use to atomize strings. If this is , the name table used to construct the is used instead. For more information about atomized strings, see .
+ The to use for looking up namespace information, or .
+ The name of the document type declaration.
+ The public identifier.
+ The system identifier.
+ The internal DTD subset. The DTD subset is used for entity resolution, not for document validation.
+ The base URI for the XML fragment (the location from which the fragment was loaded).
+ The scope.
+ An value indicating the scope.
+
+ is not the same used to construct .
+
+
+ Initializes a new instance of the class with the specified , , base URI, , , encoding, and document type values.
+ The to use to atomize strings. If this is , the name table used to construct the is used instead. For more information about atomized strings, see .
+ The to use for looking up namespace information, or .
+ The name of the document type declaration.
+ The public identifier.
+ The system identifier.
+ The internal DTD subset. The DTD is used for entity resolution, not for document validation.
+ The base URI for the XML fragment (the location from which the fragment was loaded).
+ The scope.
+ An value indicating the scope.
+ An object indicating the encoding setting.
+
+ is not the same used to construct .
+
+
+ Initializes a new instance of the class with the specified , , , and values.
+ The to use to atomize strings. If this is , the name table used to construct the is used instead. For more information about atomized strings, see .
+ The to use for looking up namespace information, or .
+ The scope.
+ An value indicating the scope.
+
+ is not the same used to construct .
+
+
+ Initializes a new instance of the class with the specified , , , , and encoding.
+ The to use to atomize strings. If this is , the name table used to construct the is used instead. For more information on atomized strings, see .
+ The to use for looking up namespace information, or .
+ The scope.
+ An value indicating the scope.
+ An object indicating the encoding setting.
+
+ is not the same used to construct .
+
+
+ Gets or sets the base URI.
+ The base URI to use to resolve the DTD file.
+
+
+ Gets or sets the name of the document type declaration.
+ The name of the document type declaration.
+
+
+ Gets or sets the encoding type.
+ An object indicating the encoding type.
+
+
+ Gets or sets the internal DTD subset.
+ The internal DTD subset. For example, this property returns everything between the square brackets <!DOCTYPE doc [...]>.
+
+
+ Gets or sets the .
+ The .
+
+
+ Gets the used to atomize strings. For more information on atomized strings, see .
+ The .
+
+
+ Gets or sets the public identifier.
+ The public identifier.
+
+
+ Gets or sets the system identifier.
+ The system identifier.
+
+
+ Gets or sets the current scope.
+ The current scope. If there is no in scope, is returned.
+
+
+ Gets or sets the current scope.
+ An value indicating the scope.
+
+
+ Represents a processing instruction, which XML defines to keep processor-specific information in the text of the document.
+
+
+ Initializes a new instance of the class.
+ The target of the processing instruction; see the property.
+ The content of the instruction; see the property.
+ The parent XML document.
+
+
+ Creates a duplicate of this node.
+
+ true
to recursively clone the subtree under the specified node; false
to clone only the node itself.
+ The duplicate node.
+
+
+ Saves all the children of the node to the specified . Because ProcessingInstruction nodes do not have children, this method has no effect.
+ The XmlWriter
to which you want to save.
+
+
+ Saves the node to the specified .
+ The XmlWriter
to which you want to save.
+
+
+ Gets or sets the content of the processing instruction, excluding the target.
+ The content of the processing instruction, excluding the target.
+
+
+ Gets or sets the concatenated values of the node and all its children.
+ The concatenated values of the node and all its children.
+
+
+ Gets the local name of the node.
+ For processing instruction nodes, this property returns the target of the processing instruction.
+
+
+ Gets the qualified name of the node.
+ For processing instruction nodes, this property returns the target of the processing instruction.
+
+
+ Gets the type of the current node.
+ For XmlProcessingInstruction
nodes, this value is XmlNodeType.ProcessingInstruction.
+
+
+ Gets the target of the processing instruction.
+ The target of the processing instruction.
+
+
+ Gets or sets the value of the node.
+ The entire content of the processing instruction, excluding the target.
+
+
+ Represents an XML qualified name.
+
+
+ Provides an empty .
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified name.
+ The local name to use as the name of the object.
+
+
+ Initializes a new instance of the class with the specified name and namespace.
+ The local name to use as the name of the object.
+ The namespace for the object.
+
+
+ Determines whether the specified object is equal to the current object.
+ The to compare.
+
+ if the two are the same instance object; otherwise, .
+
+
+ Returns the hash code for the .
+ A hash code for this object.
+
+
+ Compares two objects.
+ An to compare.
+ An to compare.
+
+ if the two objects have the same name and namespace values; otherwise, .
+
+
+ Compares two objects.
+ An to compare.
+ An to compare.
+
+ if the name and namespace values for the two objects differ; otherwise, .
+
+
+ Returns the string value of the .
+ The string value of the in the format of . If the object does not have a namespace defined, this method returns just the local name.
+
+
+ Returns the string value of the .
+ The name of the object.
+ The namespace of the object.
+ The string value of the in the format of . If the object does not have a namespace defined, this method returns just the local name.
+
+
+ Gets a value indicating whether the is empty.
+
+ if name and namespace are empty strings; otherwise, .
+
+
+ Gets a string representation of the qualified name of the .
+ A string representation of the qualified name or String.Empty if a name is not defined for the object.
+
+
+ Gets a string representation of the namespace of the .
+ A string representation of the namespace or String.Empty if a namespace is not defined for the object.
+
+
+ Represents a reader that provides fast, noncached, forward-only access to XML data.
+
+
+ Initializes a new instance of the class.
+
+
+ When overridden in a derived class, changes the to .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Creates a new instance using the specified stream with default settings.
+ The stream that contains the XML data.
+
+ The scans the first bytes of the stream looking for a byte order mark or other sign of encoding. When encoding is determined, the encoding is used to continue reading the stream, and processing continues parsing the input as a stream of (Unicode) characters.
+ The value is .
+ The does not have sufficient permissions to access the location of the XML data.
+ An object that is used to read the XML data in the stream.
+
+
+ Creates a new instance with the specified stream and settings.
+ The stream that contains the XML data.
+
+ The scans the first bytes of the stream looking for a byte order mark or other sign of encoding. When encoding is determined, the encoding is used to continue reading the stream, and processing continues parsing the input as a stream of (Unicode) characters.
+ The settings for the new instance. This value can be .
+ The value is .
+ An object that is used to read the XML data in the stream.
+
+
+ Creates a new instance using the specified stream, base URI, and settings.
+ The stream that contains the XML data.
+
+ The scans the first bytes of the stream looking for a byte order mark or other sign of encoding. When encoding is determined, the encoding is used to continue reading the stream, and processing continues parsing the input as a stream of (Unicode) characters.
+ The settings for the new instance. This value can be .
+ The base URI for the entity or document being read. This value can be .
+
+ Security Note The base URI is used to resolve the relative URI of the XML document. Do not use a base URI from an untrusted source.
+ The value is .
+ An object that is used to read the XML data in the stream.
+
+
+ Creates a new instance using the specified stream, settings, and context information for parsing.
+ The stream that contains the XML data.
+
+ The scans the first bytes of the stream looking for a byte order mark or other sign of encoding. When encoding is determined, the encoding is used to continue reading the stream, and processing continues parsing the input as a stream of (Unicode) characters.
+ The settings for the new instance. This value can be .
+ The context information required to parse the XML fragment. The context information can include the to use, encoding, namespace scope, the current xml:lang and xml:space scope, base URI, and document type definition.
+
+ This value can be .
+ The value is .
+ An object that is used to read the XML data in the stream.
+
+
+ Creates a new instance by using the specified text reader.
+ The text reader from which to read the XML data. A text reader returns a stream of Unicode characters, so the encoding specified in the XML declaration is not used by the XML reader to decode the data stream.
+ The value is .
+ An object that is used to read the XML data in the stream.
+
+
+ Creates a new instance by using the specified text reader and settings.
+ The text reader from which to read the XML data. A text reader returns a stream of Unicode characters, so the encoding specified in the XML declaration isn't used by the XML reader to decode the data stream.
+ The settings for the new . This value can be .
+ The value is .
+ An object that is used to read the XML data in the stream.
+
+
+ Creates a new instance by using the specified text reader, settings, and base URI.
+ The text reader from which to read the XML data. A text reader returns a stream of Unicode characters, so the encoding specified in the XML declaration isn't used by the to decode the data stream.
+ The settings for the new instance. This value can be .
+ The base URI for the entity or document being read. This value can be .
+
+ Security Note The base URI is used to resolve the relative URI of the XML document. Do not use a base URI from an untrusted source.
+ The value is .
+ An object that is used to read the XML data in the stream.
+
+
+ Creates a new instance by using the specified text reader, settings, and context information for parsing.
+ The text reader from which to read the XML data. A text reader returns a stream of Unicode characters, so the encoding specified in the XML declaration isn't used by the XML reader to decode the data stream.
+ The settings for the new instance. This value can be .
+ The context information required to parse the XML fragment. The context information can include the to use, encoding, namespace scope, the current xml:lang and xml:space scope, base URI, and document type definition.
+
+ This value can be .
+ The value is .
+ The and properties both contain values. (Only one of these properties can be set and used.)
+ An object that is used to read the XML data in the stream.
+
+
+ Creates a new instance with specified URI.
+ The URI for the file that contains the XML data. The class is used to convert the path to a canonical data representation.
+ The value is .
+ The does not have sufficient permissions to access the location of the XML data.
+ The file identified by the URI does not exist.
+ The URI format is not correct.
+
+Note: In .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead.
+ An object that is used to read the XML data in the stream.
+
+
+ Creates a new instance by using the specified URI and settings.
+ The URI for the file containing the XML data. The object on the object is used to convert the path to a canonical data representation. If is , a new object is used.
+ The settings for the new instance. This value can be .
+ The value is .
+ The file specified by the URI cannot be found.
+ The URI format is not correct.
+
+Note: In .NET for Windows Store apps or the Portable Class Library, catch the base class exception, , instead.
+ An object that is used to read the XML data in the stream.
+
+
+ Creates a new instance by using the specified URI, settings, and context information for parsing.
+ The URI for the file containing the XML data. The object on the object is used to convert the path to a canonical data representation. If is , a new object is used.
+ The settings for the new instance. This value can be .
+ The context information required to parse the XML fragment. The context information can include the to use, encoding, namespace scope, the current xml:lang and xml:space scope, base URI, and document type definition.
+
+ This value can be .
+ The value is .
+ The does not have sufficient permissions to access the location of the XML data.
+ The and properties both contain values. (Only one of these properties can be set and used).
+ The file specified by the URI cannot be found.
+ The URI format is not correct.
+ An object that is used to read the XML data in the stream.
+
+
+ Creates a new instance by using the specified XML reader and settings.
+ The object that you want to use as the underlying XML reader.
+ The settings for the new instance.
+
+ The conformance level of the object must either match the conformance level of the underlying reader, or it must be set to .
+ The value is .
+ If the object specifies a conformance level that is not consistent with conformance level of the underlying reader.
+
+ -or-
+
+ The underlying is in an or state.
+ An object that is wrapped around the specified object.
+
+
+ Releases all resources used by the current instance of the class.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Releases the unmanaged resources used by the and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ When overridden in a derived class, gets the value of the attribute with the specified index.
+ The index of the attribute. The index is zero-based. (The first attribute has index 0.)
+
+ is out of range. It must be non-negative and less than the size of the attribute collection.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The value of the specified attribute. This method does not move the reader.
+
+
+ When overridden in a derived class, gets the value of the attribute with the specified .
+ The qualified name of the attribute.
+
+ is .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The value of the specified attribute. If the attribute is not found or the value is , is returned.
+
+
+ When overridden in a derived class, gets the value of the attribute with the specified and .
+ The local name of the attribute.
+ The namespace URI of the attribute.
+
+ is .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The value of the specified attribute. If the attribute is not found or the value is , is returned. This method does not move the reader.
+
+
+ Asynchronously gets the value of the current node.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress".
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ The value of the current node.
+
+
+ Returns a value indicating whether the string argument is a valid XML name.
+ The name to validate.
+ The value is .
+
+ if the name is valid; otherwise, .
+
+
+ Returns a value indicating whether or not the string argument is a valid XML name token.
+ The name token to validate.
+ The value is .
+
+ if it is a valid name token; otherwise .
+
+
+ Calls and tests if the current content node is a start tag or empty element tag.
+ Incorrect XML is encountered in the input stream.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if finds a start tag or empty element tag; if a node type other than was found.
+
+
+ Calls and tests if the current content node is a start tag or empty element tag and if the property of the element found matches the given argument.
+ The string matched against the property of the element found.
+ Incorrect XML is encountered in the input stream.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if the resulting node is an element and the property matches the specified string. if a node type other than was found or if the element property does not match the specified string.
+
+
+ Calls and tests if the current content node is a start tag or empty element tag and if the and properties of the element found match the given strings.
+ The string to match against the property of the element found.
+ The string to match against the property of the element found.
+ Incorrect XML is encountered in the input stream.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if the resulting node is an element. if a node type other than was found or if the and properties of the element do not match the specified strings.
+
+
+ When overridden in a derived class, resolves a namespace prefix in the current element's scope.
+ The prefix whose namespace URI you want to resolve. To match the default namespace, pass an empty string.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The namespace URI to which the prefix maps or if no matching prefix is found.
+
+
+ When overridden in a derived class, moves to the attribute with the specified index.
+ The index of the attribute.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The parameter has a negative value.
+
+
+ When overridden in a derived class, moves to the attribute with the specified .
+ The qualified name of the attribute.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The parameter is an empty string.
+
+ if the attribute is found; otherwise, . If , the reader's position does not change.
+
+
+ When overridden in a derived class, moves to the attribute with the specified and .
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ Both parameter values are .
+
+ if the attribute is found; otherwise, . If , the reader's position does not change.
+
+
+ Checks whether the current node is a content (non-white space text, , , , , or ) node. If the node is not a content node, the reader skips ahead to the next content node or end of file. It skips over nodes of the following type: , , , , or .
+ Incorrect XML encountered in the input stream.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The of the current node found by the method or if the reader has reached the end of the input stream.
+
+
+ Asynchronously checks whether the current node is a content node. If the node is not a content node, the reader skips ahead to the next content node or end of file.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ The of the current node found by the method or if the reader has reached the end of the input stream.
+
+
+ When overridden in a derived class, moves to the element that contains the current attribute node.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if the reader is positioned on an attribute (the reader moves to the element that owns the attribute); if the reader is not positioned on an attribute (the position of the reader does not change).
+
+
+ When overridden in a derived class, moves to the first attribute.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if an attribute exists (the reader moves to the first attribute); otherwise, (the position of the reader does not change).
+
+
+ When overridden in a derived class, moves to the next attribute.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if there is a next attribute; if there are no more attributes.
+
+
+ When overridden in a derived class, reads the next node from the stream.
+ An error occurred while parsing the XML.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if the next node was read successfully; otherwise, .
+
+
+ Asynchronously reads the next node from the stream.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+
+ if the next node was read successfully; if there are no more nodes to read.
+
+
+ When overridden in a derived class, parses the attribute value into one or more , , or nodes.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if there are nodes to return.
+
+ if the reader is not positioned on an attribute node when the initial call is made or if all the attribute values have been read.
+
+ An empty attribute, such as, misc="", returns with a single node with a value of .
+
+
+ Reads the content as an object of the type specified.
+ The type of the value to be returned.
+
+ Note With the release of the .NET Framework 3.5, the value of the parameter can now be the type.
+ An object that is used to resolve any namespace prefixes related to type conversion. For example, this can be used when converting an object to an xs:string.
+
+ This value can be .
+ The content is not in the correct format for the target type.
+ The attempted cast is not valid.
+ The value is .
+ The current node is not a supported node type. See the table below for details.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ Read .
+ The concatenated text content or attribute value converted to the requested type.
+
+
+ Asynchronously reads the content as an object of the type specified.
+ The type of the value to be returned.
+ An object that is used to resolve any namespace prefixes related to type conversion.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ The concatenated text content or attribute value converted to the requested type.
+
+
+ Reads the content and returns the Base64 decoded binary bytes.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+
+ is not supported on the current node.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The implementation does not support this method.
+ The number of bytes written to the buffer.
+
+
+ Asynchronously reads the content and returns the Base64 decoded binary bytes.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ The number of bytes written to the buffer.
+
+
+ Reads the content and returns the decoded binary bytes.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+
+ is not supported on the current node.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The implementation does not support this method.
+ The number of bytes written to the buffer.
+
+
+ Asynchronously reads the content and returns the decoded binary bytes.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ The number of bytes written to the buffer.
+
+
+ Reads the text content at the current position as a .
+ The attempted cast is not valid.
+ The string format is not valid.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The text content as a object.
+
+
+ Reads the text content at the current position as a object.
+ The attempted cast is not valid.
+ The string format is not valid.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The text content as a object.
+
+
+ Reads the text content at the current position as a object.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The text content as a object.
+
+
+ Reads the text content at the current position as a object.
+ The attempted cast is not valid.
+ The string format is not valid.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The text content at the current position as a object.
+
+
+ Reads the text content at the current position as a double-precision floating-point number.
+ The attempted cast is not valid.
+ The string format is not valid.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The text content as a double-precision floating-point number.
+
+
+ Reads the text content at the current position as a single-precision floating point number.
+ The attempted cast is not valid.
+ The string format is not valid.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The text content at the current position as a single-precision floating point number.
+
+
+ Reads the text content at the current position as a 32-bit signed integer.
+ The attempted cast is not valid.
+ The string format is not valid.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The text content as a 32-bit signed integer.
+
+
+ Reads the text content at the current position as a 64-bit signed integer.
+ The attempted cast is not valid.
+ The string format is not valid.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The text content as a 64-bit signed integer.
+
+
+ Reads the text content at the current position as an .
+ The attempted cast is not valid.
+ The string format is not valid.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The text content as the most appropriate common language runtime (CLR) object.
+
+
+ Asynchronously reads the text content at the current position as an .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ The text content as the most appropriate common language runtime (CLR) object.
+
+
+ Reads the text content at the current position as a object.
+ The attempted cast is not valid.
+ The string format is not valid.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The text content as a object.
+
+
+ Asynchronously reads the text content at the current position as a object.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ The text content as a object.
+
+
+ Reads the element content as the requested type.
+ The type of the value to be returned.
+
+ Note With the release of the .NET Framework 3.5, the value of the parameter can now be the type.
+ An object that is used to resolve any namespace prefixes related to type conversion.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to the requested type.
+ The method is called with arguments.
+ Read .
+ The element content converted to the requested typed object.
+
+
+ Checks that the specified local name and namespace URI matches that of the current element, then reads the element content as the requested type.
+ The type of the value to be returned.
+
+ Note With the release of the .NET Framework 3.5, the value of the parameter can now be the type.
+ An object that is used to resolve any namespace prefixes related to type conversion.
+ The local name of the element.
+ The namespace URI of the element.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to the requested type.
+ The method is called with arguments.
+ The specified local name and namespace URI do not match that of the current element being read.
+ Read .
+ The element content converted to the requested typed object.
+
+
+ Asynchronously reads the element content as the requested type.
+ The type of the value to be returned.
+ An object that is used to resolve any namespace prefixes related to type conversion.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ The element content converted to the requested typed object.
+
+
+ Reads the element and decodes the content.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+ The current node is not an element node.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The implementation does not support this method.
+ The element contains mixed-content.
+ The content cannot be converted to the requested type.
+ The number of bytes written to the buffer.
+
+
+ Asynchronously reads the element and decodes the content.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ The number of bytes written to the buffer.
+
+
+ Reads the element and decodes the content.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+ The current node is not an element node.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The implementation does not support this method.
+ The element contains mixed-content.
+ The content cannot be converted to the requested type.
+ The number of bytes written to the buffer.
+
+
+ Asynchronously reads the element and decodes the content.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ The number of bytes written to the buffer.
+
+
+ Reads the current element and returns the contents as a object.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to a object.
+ The method is called with arguments.
+ The element content as a object.
+
+
+ Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a object.
+ The local name of the element.
+ The namespace URI of the element.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to the requested type.
+ The method is called with arguments.
+ The specified local name and namespace URI do not match that of the current element being read.
+ The element content as a object.
+
+
+ Reads the current element and returns the contents as a object.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to a object.
+ The method is called with arguments.
+ The element content as a object.
+
+
+ Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a object.
+ The local name of the element.
+ The namespace URI of the element.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to the requested type.
+ The method is called with arguments.
+ The specified local name and namespace URI do not match that of the current element being read.
+ The element contents as a object.
+
+
+ Reads the current element and returns the contents as a object.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to a .
+ The method is called with arguments.
+ The element content as a object.
+
+
+ Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a object.
+ The local name of the element.
+ The namespace URI of the element.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to a .
+ The method is called with arguments.
+ The specified local name and namespace URI do not match that of the current element being read.
+ The element content as a object.
+
+
+ Reads the current element and returns the contents as a double-precision floating-point number.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to a double-precision floating-point number.
+ The method is called with arguments.
+ The element content as a double-precision floating-point number.
+
+
+ Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a double-precision floating-point number.
+ The local name of the element.
+ The namespace URI of the element.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to the requested type.
+ The method is called with arguments.
+ The specified local name and namespace URI do not match that of the current element being read.
+ The element content as a double-precision floating-point number.
+
+
+ Reads the current element and returns the contents as single-precision floating-point number.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to a single-precision floating-point number.
+ The method is called with arguments.
+ The element content as a single-precision floating point number.
+
+
+ Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a single-precision floating-point number.
+ The local name of the element.
+ The namespace URI of the element.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to a single-precision floating-point number.
+ The method is called with arguments.
+ The specified local name and namespace URI do not match that of the current element being read.
+ The element content as a single-precision floating point number.
+
+
+ Reads the current element and returns the contents as a 32-bit signed integer.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to a 32-bit signed integer.
+ The element content as a 32-bit signed integer.
+
+
+ Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a 32-bit signed integer.
+ The local name of the element.
+ The namespace URI of the element.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to a 32-bit signed integer.
+ The method is called with arguments.
+ The specified local name and namespace URI do not match that of the current element being read.
+ The element content as a 32-bit signed integer.
+
+
+ Reads the current element and returns the contents as a 64-bit signed integer.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to a 64-bit signed integer.
+ The method is called with arguments.
+ The element content as a 64-bit signed integer.
+
+
+ Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a 64-bit signed integer.
+ The local name of the element.
+ The namespace URI of the element.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to a 64-bit signed integer.
+ The method is called with arguments.
+ The specified local name and namespace URI do not match that of the current element being read.
+ The element content as a 64-bit signed integer.
+
+
+ Reads the current element and returns the contents as an .
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to the requested type
+ The method is called with arguments.
+ A boxed common language runtime (CLR) object of the most appropriate type. The property determines the appropriate CLR type. If the content is typed as a list type, this method returns an array of boxed objects of the appropriate type.
+
+
+ Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as an .
+ The local name of the element.
+ The namespace URI of the element.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to the requested type.
+ The method is called with arguments.
+ The specified local name and namespace URI do not match that of the current element being read.
+ A boxed common language runtime (CLR) object of the most appropriate type. The property determines the appropriate CLR type. If the content is typed as a list type, this method returns an array of boxed objects of the appropriate type.
+
+
+ Asynchronously reads the current element and returns the contents as an .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ A boxed common language runtime (CLR) object of the most appropriate type. The property determines the appropriate CLR type. If the content is typed as a list type, this method returns an array of boxed objects of the appropriate type.
+
+
+ Reads the current element and returns the contents as a object.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to a object.
+ The method is called with arguments.
+ The element content as a object.
+
+
+ Checks that the specified local name and namespace URI matches that of the current element, then reads the current element and returns the contents as a object.
+ The local name of the element.
+ The namespace URI of the element.
+ The is not positioned on an element.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current element contains child elements.
+
+ -or-
+
+ The element content cannot be converted to a object.
+ The method is called with arguments.
+ The specified local name and namespace URI do not match that of the current element being read.
+ The element content as a object.
+
+
+ Asynchronously reads the current element and returns the contents as a object.
+ An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ The element content as a object.
+
+
+ Reads a text-only element. However, we recommend that you use the method instead, because it provides a more straightforward way to handle this operation.
+ The next content node is not a start tag; or the element found does not contain a simple text value.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The text contained in the element that was read. An empty string if the element is empty.
+
+
+ Checks that the property of the element found matches the given string before reading a text-only element. However, we recommend that you use the method instead, because it provides a more straightforward way to handle this operation.
+ The name to check.
+ If the next content node is not a start tag; if the element does not match the given argument; or if the element found does not contain a simple text value.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The text contained in the element that was read. An empty string if the element is empty.
+
+
+ Checks that the and properties of the element found matches the given strings before reading a text-only element. However, we recommend that you use the method instead, because it provides a more straightforward way to handle this operation.
+ The local name to check.
+ The namespace URI to check.
+ If the next content node is not a start tag; if the element or do not match the given arguments; or if the element found does not contain a simple text value.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The text contained in the element that was read. An empty string if the element is empty.
+
+
+ Checks that the current content node is an end tag and advances the reader to the next node.
+ The current node is not an end tag or if incorrect XML is encountered in the input stream.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ When overridden in a derived class, reads all the content, including markup, as a string.
+ The XML was not well-formed, or an error occurred while parsing the XML.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ All the XML content, including markup, in the current node. If the current node has no children, an empty string is returned.
+
+ If the current node is neither an element nor attribute, an empty string is returned.
+
+
+ Asynchronously reads all the content, including markup, as a string.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ All the XML content, including markup, in the current node. If the current node has no children, an empty string is returned.
+
+
+ When overridden in a derived class, reads the content, including markup, representing this node and all its children.
+ The XML was not well-formed, or an error occurred while parsing the XML.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ If the reader is positioned on an element or an attribute node, this method returns all the XML content, including markup, of the current node and all its children; otherwise, it returns an empty string.
+
+
+ Asynchronously reads the content, including markup, representing this node and all its children.
+ An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ If the reader is positioned on an element or an attribute node, this method returns all the XML content, including markup, of the current node and all its children; otherwise, it returns an empty string.
+
+
+ Checks that the current node is an element and advances the reader to the next node.
+ Incorrect XML was encountered in the input stream.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Checks that the current content node is an element with the given and advances the reader to the next node.
+ The qualified name of the element.
+ Incorrect XML was encountered in the input stream.
+
+ -or-
+
+ The of the element does not match the given .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Checks that the current content node is an element with the given and and advances the reader to the next node.
+ The local name of the element.
+ The namespace URI of the element.
+ Incorrect XML was encountered in the input stream.
+
+ -or-
+
+ The and properties of the element found do not match the given arguments.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ When overridden in a derived class, reads the contents of an element or text node as a string. However, we recommend that you use the method instead, because it provides a more straightforward way to handle this operation.
+ An error occurred while parsing the XML.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The contents of the element or an empty string.
+
+
+ Returns a new instance that can be used to read the current node, and all its descendants.
+ The XML reader isn't positioned on an element when this method is called.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ A new XML reader instance set to . Calling the method positions the new reader on the node that was current before the call to the method.
+
+
+ Advances the to the next descendant element with the specified qualified name.
+ The qualified name of the element you wish to move to.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The parameter is an empty string.
+
+ if a matching descendant element is found; otherwise . If a matching descendant element is not found, the is positioned on the end tag ( is ) of the element.
+
+ If the is not positioned on an element when was called, this method returns and the position of the is not changed.
+
+
+ Advances the to the next descendant element with the specified local name and namespace URI.
+ The local name of the element you wish to move to.
+ The namespace URI of the element you wish to move to.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ Both parameter values are .
+
+ if a matching descendant element is found; otherwise . If a matching descendant element is not found, the is positioned on the end tag ( is ) of the element.
+
+ If the is not positioned on an element when was called, this method returns and the position of the is not changed.
+
+
+ Reads until an element with the specified qualified name is found.
+ The qualified name of the element.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The parameter is an empty string.
+
+ if a matching element is found; otherwise and the is in an end of file state.
+
+
+ Reads until an element with the specified local name and namespace URI is found.
+ The local name of the element.
+ The namespace URI of the element.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ Both parameter values are .
+
+ if a matching element is found; otherwise and the is in an end of file state.
+
+
+ Advances the to the next sibling element with the specified qualified name.
+ The qualified name of the sibling element you wish to move to.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The parameter is an empty string.
+
+ if a matching sibling element is found; otherwise . If a matching sibling element is not found, the is positioned on the end tag ( is ) of the parent element.
+
+
+ Advances the to the next sibling element with the specified local name and namespace URI.
+ The local name of the sibling element you wish to move to.
+ The namespace URI of the sibling element you wish to move to.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ Both parameter values are .
+
+ if a matching sibling element is found; otherwise, . If a matching sibling element is not found, the is positioned on the end tag ( is ) of the parent element.
+
+
+ Reads large streams of text embedded in an XML document.
+ The array of characters that serves as the buffer to which the text contents are written. This value cannot be .
+ The offset within the buffer where the can start to copy the results.
+ The maximum number of characters to copy into the buffer. The actual number of characters copied is returned from this method.
+ The current node does not have a value ( is ).
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The value is .
+ The index into the buffer, or index + count is larger than the allocated buffer size.
+ The implementation does not support this method.
+ The XML data is not well-formed.
+ The number of characters read into the buffer. The value zero is returned when there is no more text content.
+
+
+ Asynchronously reads large streams of text embedded in an XML document.
+ The array of characters that serves as the buffer to which the text contents are written. This value cannot be .
+ The offset within the buffer where the can start to copy the results.
+ The maximum number of characters to copy into the buffer. The actual number of characters copied is returned from this method.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ The number of characters read into the buffer. The value zero is returned when there is no more text content.
+
+
+ When overridden in a derived class, resolves the entity reference for nodes.
+ The reader is not positioned on an node; this implementation of the reader cannot resolve entities ( returns ).
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Skips the children of the current node.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously skips the children of the current node.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlReaderSettings.Async to true if you want to use Async Methods."
+ The current node.
+
+
+ When overridden in a derived class, gets the number of attributes on the current node.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The number of attributes on the current node.
+
+
+ When overridden in a derived class, gets the base URI of the current node.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The base URI of the current node.
+
+
+ Gets a value indicating whether the implements the binary content read methods.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if the binary content read methods are implemented; otherwise .
+
+
+ Gets a value indicating whether the implements the method.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if the implements the method; otherwise .
+
+
+ Gets a value indicating whether this reader can parse and resolve entities.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if the reader can parse and resolve entities; otherwise, .
+
+
+ When overridden in a derived class, gets the depth of the current node in the XML document.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The depth of the current node in the XML document.
+
+
+ When overridden in a derived class, gets a value indicating whether the reader is positioned at the end of the stream.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if the reader is positioned at the end of the stream; otherwise, .
+
+
+ Gets a value indicating whether the current node has any attributes.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if the current node has attributes; otherwise, .
+
+
+ When overridden in a derived class, gets a value indicating whether the current node can have a .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if the node on which the reader is currently positioned can have a ; otherwise, . If , the node has a value of .
+
+
+ When overridden in a derived class, gets a value indicating whether the current node is an attribute that was generated from the default value defined in the DTD or schema.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if the current node is an attribute whose value was generated from the default value defined in the DTD or schema; if the attribute value was explicitly set.
+
+
+ When overridden in a derived class, gets a value indicating whether the current node is an empty element (for example, <MyElement/>).
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ if the current node is an element ( equals ) that ends with />; otherwise, .
+
+
+ When overridden in a derived class, gets the value of the attribute with the specified index.
+ The index of the attribute.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The value of the specified attribute.
+
+
+ When overridden in a derived class, gets the value of the attribute with the specified .
+ The qualified name of the attribute.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The value of the specified attribute. If the attribute is not found, is returned.
+
+
+ When overridden in a derived class, gets the value of the attribute with the specified and .
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The value of the specified attribute. If the attribute is not found, is returned.
+
+
+ When overridden in a derived class, gets the local name of the current node.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The name of the current node with the prefix removed. For example, is for the element <bk:book>.
+
+ For node types that do not have a name (like , , and so on), this property returns .
+
+
+ When overridden in a derived class, gets the qualified name of the current node.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The qualified name of the current node. For example, is for the element <bk:book>.
+
+ The name returned is dependent on the of the node. The following node types return the listed values. All other node types return an empty string.
+
+ Node type Name- The name of the attribute.
- The document type name.
- The tag name.
- The name of the entity referenced.
- The target of the processing instruction.
- The literal string .
+
+
+ When overridden in a derived class, gets the namespace URI (as defined in the W3C Namespace specification) of the node on which the reader is positioned.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The namespace URI of the current node; otherwise an empty string.
+
+
+ When overridden in a derived class, gets the associated with this implementation.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The enabling you to get the atomized version of a string within the node.
+
+
+ When overridden in a derived class, gets the type of the current node.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ One of the enumeration values that specify the type of the current node.
+
+
+ When overridden in a derived class, gets the namespace prefix associated with the current node.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The namespace prefix associated with the current node.
+
+
+ When overridden in a derived class, gets the quotation mark character used to enclose the value of an attribute node.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The quotation mark character (" or ') used to enclose the value of an attribute node.
+
+
+ When overridden in a derived class, gets the state of the reader.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ One of the enumeration values that specifies the state of the reader.
+
+
+ Gets the schema information that has been assigned to the current node as a result of schema validation.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ An object containing the schema information for the current node. Schema information can be set on elements, attributes, or on text nodes with a non-null (typed values).
+
+ If the current node is not one of the above node types, or if the instance does not report schema information, this property returns .
+
+ If this property is called from an or an object, this property always returns . These implementations do not expose schema information through the property.
+
+
+ Gets the object used to create this instance.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The object used to create this reader instance. If this reader was not created using the method, this property returns .
+
+
+ When overridden in a derived class, gets the text value of the current node.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The value returned depends on the of the node. The following table lists node types that have a value to return. All other node types return .
+
+ Node type Value- The value of the attribute.
- The content of the CDATA section.
- The content of the comment.
- The internal subset.
- The entire content, excluding the target.
- The white space between markup in a mixed content model.
- The content of the text node.
- The white space between markup.
- The content of the declaration.
+
+
+ Gets The Common Language Runtime (CLR) type for the current node.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The CLR type that corresponds to the typed value of the node. The default is .
+
+
+ When overridden in a derived class, gets the current scope.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current scope.
+
+
+ When overridden in a derived class, gets the current scope.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ One of the values. If no scope exists, this property defaults to .
+
+
+ Specifies a set of features to support on the object created by the method.
+
+
+ Occurs when the reader encounters validation errors.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a copy of the instance.
+ The cloned object.
+
+
+ Resets the members of the settings class to their default values.
+
+
+ Gets or sets whether asynchronous methods can be used on a particular instance.
+
+ if asynchronous methods can be used; otherwise, .
+
+
+ Gets or sets a value indicating whether to do character checking.
+
+ to do character checking; otherwise . The default is .
+
+
+ Gets or sets a value indicating whether the underlying stream or should be closed when the reader is closed.
+
+ to close the underlying stream or when the reader is closed; otherwise . The default is .
+
+
+ Gets or sets the level of conformance which the will comply.
+ One of the enumeration values that specifies the level of conformance that the XML reader will enforce. The default is .
+
+
+ Gets or sets a value that determines the processing of DTDs.
+ One of the enumeration values that determines the processing of DTDs. The default is .
+
+
+ Gets or sets a value indicating whether to ignore comments.
+
+ to ignore comments; otherwise . The default is .
+
+
+ Gets or sets a value indicating whether to ignore processing instructions.
+
+ to ignore processing instructions; otherwise . The default is .
+
+
+ Gets or sets a value indicating whether to ignore insignificant white space.
+
+ to ignore white space; otherwise . The default is .
+
+
+ Gets or sets line number offset of the object.
+ The line number offset. The default is 0.
+
+
+ Gets or sets line position offset of the object.
+ The line position offset. The default is 0.
+
+
+ Gets or sets a value indicating the maximum allowable number of characters in a document that result from expanding entities.
+ The maximum allowable number of characters from expanded entities. The default is 0.
+
+
+ Gets or sets a value indicating the maximum allowable number of characters in an XML document. A zero (0) value means no limits on the size of the XML document. A non-zero value specifies the maximum size, in characters.
+ The maximum allowable number of characters in an XML document. The default is 0.
+
+
+ Gets or sets the used for atomized string comparisons.
+ The that stores all the atomized strings used by all instances created using this object.
+
+ The default is . The created instance will use a new empty if this value is .
+
+
+ Gets or sets a value indicating whether to prohibit document type definition (DTD) processing. This property is obsolete. Use instead.
+
+ to prohibit DTD processing; otherwise . The default is .
+
+
+ Gets or sets the to use when performing schema validation.
+ The to use when performing schema validation. The default is an empty object.
+
+
+ Gets or sets a value indicating the schema validation settings. This setting applies to objects that validate schemas ( property set to ).
+ A bitwise combination of enumeration values that specify validation options. and are enabled by default. , , and are disabled by default.
+
+
+ Gets or sets a value indicating whether the will perform validation or type assignment when reading.
+ One of the values that indicates whether XmlReader will perform validation or type assignment when reading. The default is .
+
+
+ Sets the used to access external documents.
+ An used to access external documents. If set to , an is thrown when the tries to access an external resource. The default is a new with no credentials. Starting with the .NET Framework 4.5.2, this setting has a default value of .
+
+
+ Resolves external XML resources named by a Uniform Resource Identifier (URI).
+
+
+ Initializes a new instance of the class.
+
+
+ When overridden in a derived class, maps a URI to an object that contains the actual resource.
+ The URI returned from .
+ Currently not used.
+ The type of object to return. The current version only returns System.IO.Stream objects.
+
+ is not a type.
+ The specified URI is not an absolute URI.
+
+ is .
+ There is a runtime error (for example, an interrupted server connection).
+ A stream object or if a type other than stream is specified.
+
+
+ Asynchronously maps a URI to an object that contains the actual resource.
+ The URI returned from .
+ Currently not used.
+ The type of object to return. The current version only returns objects.
+ A stream object or if a type other than stream is specified.
+
+
+ When overridden in a derived class, resolves the absolute URI from the base and relative URIs.
+ The base URI used to resolve the relative URI.
+ The URI to resolve. The URI can be absolute or relative. If absolute, this value effectively replaces the value. If relative, it combines with the to make an absolute URI.
+
+ is .
+ The absolute URI or if the relative URI cannot be resolved.
+
+
+ Enables the resolver to return types other than .
+ The URI.
+ The type to return.
+
+ if the is supported; otherwise, .
+
+
+ When overridden in a derived class, sets the credentials used to authenticate web requests.
+ The credentials to be used to authenticate web requests. If this property is not set, the value defaults to ; that is, the has no user credentials.
+
+
+
+ Gets an XML resolver that forbids entity resolution.
+ An XML resolver that forbids entity resolution.
+
+
+ Helps to secure another implementation of by wrapping the object and restricting the resources that the underlying has access to.
+
+
+ Initializes a new instance of the class with the and URL provided.
+ The XML resolver that is wrapped by the .
+ The URL used to create the that will be applied to the underlying . The calls on the created before calling on the underlying .
+
+
+ Maps a URI to an object that contains the actual resource. This method temporarily sets the created in the constructor by calling before calling on the underlying to open the resource.
+ The URI that is returned from .
+ Currently not used.
+ The type of object to return. The current version only returns objects.
+
+ is neither nor a type.
+
+-or-
+
+.NET 7 and later versions: In all cases.
+ The specified URI is not an absolute URI.
+
+ is .
+ There is a run-time error (for example, an interrupted server connection).
+ The stream returned by calling on the underlying . If a type other than is specified, the method returns .
+
+
+ Asynchronously maps a URI to an object that contains the actual resource.
+ The URI returned from .
+ Currently not used.
+ The type of object to return. The current version only returns objects.
+ The stream returned by calling on the underlying . If a type other than is specified, the method returns .
+
+
+ Resolves the absolute URI from the base and relative URIs by calling on the underlying .
+ The base URI used to resolve the relative URI.
+ The URI to resolve. The URI can be absolute or relative. If absolute, this value effectively replaces the value. If relative, it combines with the to make an absolute URI.
+
+ is .
+ The absolute URI or if the relative URI cannot be resolved (returned by calling on the underlying ).
+
+
+ Sets credentials used to authenticate web requests.
+ The credentials to be used to authenticate web requests. The sets the given credentials on the underlying . If this property is not set, the value defaults to ; that is, the has no user credentials.
+
+
+ Represents white space between markup in a mixed content node or white space within an xml:space= 'preserve' scope. This is also referred to as significant white space.
+
+
+ Initializes a new instance of the class.
+ The white space characters of the node.
+ The object.
+
+
+ Creates a duplicate of this node.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself. For significant white space nodes, the cloned node always includes the data value, regardless of the parameter setting.
+ The cloned node.
+
+
+ Saves all the children of the node to the specified .
+ The to which you want to save.
+
+
+ Saves the node to the specified .
+ The to which you want to save.
+
+
+ Gets the local name of the node.
+ For nodes, this property returns .
+
+
+ Gets the qualified name of the node.
+ For nodes, this property returns .
+
+
+ Gets the type of the current node.
+ For nodes, this value is XmlNodeType.SignificantWhitespace.
+
+
+ Gets the parent of the current node.
+ The parent node of the current node.
+
+
+ Gets the text node that immediately precedes this node.
+ Returns .
+
+
+ Gets or sets the value of the node.
+ Setting to invalid white space characters.
+ The white space characters found in the node.
+
+
+ Specifies the current scope.
+
+
+ The scope equals .
+
+
+ No scope.
+
+
+ The scope equals .
+
+
+ Represents the text content of an element or attribute.
+
+
+ Initializes a new instance of the class.
+ The content of the node; see the property.
+ The parent XML document.
+
+
+ Creates a duplicate of this node.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself.
+ The cloned node.
+
+
+ Splits the node into two nodes at the specified offset, keeping both in the tree as siblings.
+ The offset at which to split the node.
+ The new node.
+
+
+ Saves all the children of the node to the specified . nodes do not have children, so this method has no effect.
+ The to which you want to save.
+
+
+ Saves the node to the specified .
+ The to which you want to save.
+
+
+ Gets the local name of the node.
+ For text nodes, this property returns .
+
+
+ Gets the qualified name of the node.
+ For text nodes, this property returns .
+
+
+ Gets the type of the current node.
+ For text nodes, this value is XmlNodeType.Text.
+
+
+ Gets the parent of this node (for nodes that can have parents).
+ The that is the parent of the current node. If a node has just been created and not yet added to the tree, or if it has been removed from the tree, the parent is . For all other nodes, the value returned depends on the of the node. The following table describes the possible return values for the property.
+
+
+ Gets the text node that immediately precedes this node.
+ Returns .
+
+
+ Gets or sets the value of the node.
+ The content of the text node.
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to XML data.
+
+ Starting with the .NET Framework 2.0, we recommend that you use the class instead.
+
+
+ Initializes a new instance of the .
+
+
+ Initializes a new instance of the class with the specified stream.
+ The stream containing the XML data to read.
+
+ is .
+
+
+ Initializes a new instance of the class with the specified stream and .
+ The stream containing the XML data to read.
+ The to use.
+ The or value is .
+
+
+ Initializes a new instance of the class with the specified stream, , and .
+ The stream containing the XML fragment to parse.
+ The of the XML fragment. This also determines what the fragment can contain. (See table below.)
+ The in which the is to be parsed. This includes the to use, encoding, namespace scope, the current xml:lang, and the xml:space scope.
+
+ is not an Element, Attribute, or Document .
+
+ is .
+
+
+ Initializes a new instance of the class with the specified .
+ The containing the XML data to read.
+
+
+ Initializes a new instance of the class with the specified and .
+ The containing the XML data to read.
+ The to use.
+ The value is .
+
+
+ Initializes a new instance of the class with the specified file.
+ The URL for the file containing the XML data. The is set to this value.
+ The specified file cannot be found.
+ Part of the filename or directory cannot be found.
+
+ is an empty string.
+ The remote filename cannot be resolved.
+
+ -or-
+
+ An error occurred while processing the request.
+
+ is not a valid URI.
+
+
+ Initializes a new instance of the class with the specified URL and stream.
+ The URL to use for resolving external resources. The is set to this value.
+ The stream containing the XML data to read.
+
+ is .
+
+
+ Initializes a new instance of the class with the specified URL, stream and .
+ The URL to use for resolving external resources. The is set to this value. If is , is set to .
+ The stream containing the XML data to read.
+ The to use.
+ The or value is .
+
+
+ Initializes a new instance of the class with the specified URL and .
+ The URL to use for resolving external resources. The is set to this value.
+ The containing the XML data to read.
+
+
+ Initializes a new instance of the class with the specified URL, and .
+ The URL to use for resolving external resources. The is set to this value. If is , is set to .
+ The containing the XML data to read.
+ The to use.
+ The value is .
+
+
+ Initializes a new instance of the class with the specified file and .
+ The URL for the file containing the XML data to read.
+ The to use.
+ The value is .
+ The specified file cannot be found.
+ Part of the filename or directory cannot be found.
+
+ is an empty string.
+ The remote filename cannot be resolved.
+
+ -or-
+
+ An error occurred while processing the request.
+
+ is not a valid URI.
+
+
+ Initializes a new instance of the class with the specified string, , and .
+ The string containing the XML fragment to parse.
+ The of the XML fragment. This also determines what the fragment string can contain. (See table below.)
+ The in which the is to be parsed. This includes the to use, encoding, namespace scope, the current xml:lang, and the xml:space scope.
+
+ is not an , , or .
+
+ is .
+
+
+ Initializes a new instance of the class with the specified .
+ The to use.
+
+
+ Changes the to .
+
+
+ Gets the value of the attribute with the specified index.
+ The index of the attribute. The index is zero-based. (The first attribute has index 0.)
+ The parameter is less than 0 or greater than or equal to .
+ The value of the specified attribute.
+
+
+ Gets the value of the attribute with the specified name.
+ The qualified name of the attribute.
+ The value of the specified attribute. If the attribute is not found, is returned.
+
+
+ Gets the value of the attribute with the specified local name and namespace URI.
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ The value of the specified attribute. If the attribute is not found, is returned. This method does not move the reader.
+
+
+ Gets a collection that contains all namespaces currently in-scope.
+ An value that specifies the type of namespace nodes to return.
+ An object that contains all the current in-scope namespaces. If the reader is not positioned on an element, an empty dictionary (no namespaces) is returned.
+
+
+ Gets the remainder of the buffered XML.
+ A containing the remainder of the buffered XML.
+
+
+ Gets a value indicating whether the class can return line information.
+
+ if the class can return line information; otherwise, .
+
+
+ Resolves a namespace prefix in the current element's scope.
+ The prefix whose namespace URI you want to resolve. To match the default namespace, pass an empty string. This string does not have to be atomized.
+ The property is set to and the value is .
+ The namespace URI to which the prefix maps or if no matching prefix is found.
+
+
+ Moves to the attribute with the specified index.
+ The index of the attribute.
+ The parameter is less than 0 or greater than or equal to .
+
+
+ Moves to the attribute with the specified name.
+ The qualified name of the attribute.
+
+ if the attribute is found; otherwise, . If , the reader's position does not change.
+
+
+ Moves to the attribute with the specified local name and namespace URI.
+ The local name of the attribute.
+ The namespace URI of the attribute.
+
+ if the attribute is found; otherwise, . If , the reader's position does not change.
+
+
+ Moves to the element that contains the current attribute node.
+
+ if the reader is positioned on an attribute (the reader moves to the element that owns the attribute); if the reader is not positioned on an attribute (the position of the reader does not change).
+
+
+ Moves to the first attribute.
+
+ if an attribute exists (the reader moves to the first attribute); otherwise, (the position of the reader does not change).
+
+
+ Moves to the next attribute.
+
+ if there is a next attribute; if there are no more attributes.
+
+
+ Reads the next node from the stream.
+ An error occurred while parsing the XML.
+
+ if the next node was read successfully; if there are no more nodes to read.
+
+
+ Parses the attribute value into one or more , , or nodes.
+
+ if there are nodes to return.
+
+ if the reader is not positioned on an attribute node when the initial call is made or if all the attribute values have been read.
+
+ An empty attribute, such as, misc="", returns with a single node with a value of .
+
+
+ Decodes Base64 and returns the decoded binary bytes.
+ The array of characters that serves as the buffer to which the text contents are written.
+ The zero-based index into the array specifying where the method can begin to write to the buffer.
+ The number of bytes to write into the buffer.
+ The Base64 sequence is not valid.
+ The value of is .
+
+ < 0, or < 0, or > .Length- .
+ The number of bytes written to the buffer.
+
+
+ Decodes and returns the decoded binary bytes.
+ The byte array that serves as the buffer to which the decoded binary bytes are written.
+ The zero-based index into the array specifying where the method can begin to write to the buffer.
+ The number of bytes to write into the buffer.
+ The sequence is not valid.
+ The value of is .
+
+ < 0, or < 0, or > .Length- .
+ The number of bytes written to your buffer.
+
+
+ Reads the text contents of an element into a character buffer. This method is designed to read large streams of embedded text by calling it successively.
+ The array of characters that serves as the buffer to which the text contents are written.
+ The position within where the method can begin writing text contents.
+ The number of characters to write into .
+
+ is greater than the space specified in the (buffer size - ).
+ The value is .
+
+
+ or .
+ The number of characters read. This can be if the reader is not positioned on an element or if there is no more text content to return in the current context.
+
+
+ Reads the content and returns the decoded binary bytes.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+
+ is not supported in the current node.
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The number of bytes written to the buffer.
+
+
+ Reads the content and returns the decoded binary bytes.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+
+ is not supported on the current node.
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The implementation does not support this method.
+ The number of bytes written to the buffer.
+
+
+ Reads the element and decodes the Base64 content.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+ The current node is not an element node.
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The implementation does not support this method.
+ The element contains mixed-content.
+ The content cannot be converted to the requested type.
+ The number of bytes written to the buffer.
+
+
+ Reads the element and decodes the content.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+ The current node is not an element node.
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The implementation does not support this method.
+ The element contains mixed-content.
+ The content cannot be converted to the requested type.
+ The number of bytes written to the buffer.
+
+
+ Reads the contents of an element or a text node as a string.
+ An error occurred while parsing the XML.
+ An invalid operation was attempted.
+ The contents of the element or text node. This can be an empty string if the reader is positioned on something other than an element or text node, or if there is no more text content to return in the current context.
+
+ The text node can be either an element or an attribute text node.
+
+
+ Resets the state of the reader to ReadState.Initial.
+ Calling if the reader was constructed using an .
+ Documents in a single stream do not share the same encoding.
+
+
+ Resolves the entity reference for nodes.
+
+
+ Skips the children of the current node.
+
+
+ For a description of this member, see .
+ An value that specifies the type of namespace nodes to return.
+ An that contains the current in-scope namespaces.
+
+
+ For a description of this member, see .
+ The prefix whose namespace URI you wish to find.
+ The namespace URI that is mapped to the prefix; if the prefix is not mapped to a namespace URI.
+
+
+ For a description of this member, see .
+ The namespace URI whose prefix you wish to find.
+ The prefix that is mapped to the namespace URI; if the namespace URI is not mapped to a prefix.
+
+
+ Gets the number of attributes on the current node.
+ The number of attributes on the current node.
+
+
+ Gets the base URI of the current node.
+ The base URI of the current node.
+
+
+ Gets a value indicating whether the implements the binary content read methods.
+
+ if the binary content read methods are implemented; otherwise . The class always returns .
+
+
+ Gets a value indicating whether the implements the method.
+
+ if the implements the method; otherwise . The class always returns .
+
+
+ Gets a value indicating whether this reader can parse and resolve entities.
+
+ if the reader can parse and resolve entities; otherwise, . The class always returns .
+
+
+ Gets the depth of the current node in the XML document.
+ The depth of the current node in the XML document.
+
+
+ Gets or sets the enumeration.
+ The enumeration.
+
+
+ Gets the encoding of the document.
+ The encoding value. If no encoding attribute exists, and there is no byte-order mark, this defaults to UTF-8.
+
+
+ Gets or sets a value that specifies how the reader handles entities.
+ One of the values. If no is specified, it defaults to .
+
+
+ Gets a value indicating whether the reader is positioned at the end of the stream.
+
+ if the reader is positioned at the end of the stream; otherwise, .
+
+
+ Gets a value indicating whether the current node can have a other than .
+
+ if the node on which the reader is currently positioned can have a ; otherwise, .
+
+
+ Gets a value indicating whether the current node is an attribute that was generated from the default value defined in the DTD or schema.
+ This property always returns . ( does not expand default attributes.)
+
+
+ Gets a value indicating whether the current node is an empty element (for example, <MyElement/>).
+
+ if the current node is an element ( equals ) that ends with />; otherwise, .
+
+
+ Gets the current line number.
+ The current line number.
+
+
+ Gets the current line position.
+ The current line position.
+
+
+ Gets the local name of the current node.
+ The name of the current node with the prefix removed. For example, is for the element <bk:book>.
+
+ For node types that do not have a name (like , , and so on), this property returns .
+
+
+ Gets the qualified name of the current node.
+ The qualified name of the current node. For example, is for the element <bk:book>.
+
+ The name returned is dependent on the of the node. The following node types return the listed values. All other node types return an empty string.
+
+ Node Type Name- The name of the attribute.
- The document type name.
- The tag name.
- The name of the entity referenced.
- The target of the processing instruction.
- The literal string .
+
+
+ Gets or sets a value indicating whether to do namespace support.
+ Setting this property after a read operation has occurred ( is not ).
+
+ to do namespace support; otherwise, . The default is .
+
+
+ Gets the namespace URI (as defined in the W3C Namespace specification) of the node on which the reader is positioned.
+ The namespace URI of the current node; otherwise an empty string.
+
+
+ Gets the associated with this implementation.
+ The enabling you to get the atomized version of a string within the node.
+
+
+ Gets the type of the current node.
+ One of the values representing the type of the current node.
+
+
+ Gets or sets a value indicating whether to normalize white space and attribute values.
+ Setting this property when the reader is closed ( is ).
+
+ to normalize; otherwise, . The default is .
+
+
+ Gets the namespace prefix associated with the current node.
+ The namespace prefix associated with the current node.
+
+
+ Gets or sets a value indicating whether to allow DTD processing. This property is obsolete. Use instead.
+
+ to disallow DTD processing; otherwise . The default is .
+
+
+ Gets the quotation mark character used to enclose the value of an attribute node.
+ The quotation mark character (" or ') used to enclose the value of an attribute node.
+
+
+ Gets the state of the reader.
+ One of the values.
+
+
+ Gets the text value of the current node.
+ The value returned depends on the of the node. The following table lists node types that have a value to return. All other node types return .
+
+ Node Type Value- The value of the attribute.
- The content of the CDATA section.
- The content of the comment.
- The internal subset.
- The entire content, excluding the target.
- The white space within an = 'preserve' scope.
- The content of the text node.
- The white space between markup.
- The content of the declaration.
+
+
+ Gets or sets a value that specifies how white space is handled.
+ Invalid value specified.
+ Setting this property when the reader is closed ( is ).
+ One of the values. The default is (returns and nodes).
+
+
+ Gets the current scope.
+ The current scope.
+
+
+ Sets the used for resolving DTD references.
+ The to use. If set to , external resources are not resolved.
+
+ In version 1.1 of the .NET Framework, the caller must be fully trusted in order to specify an .
+
+
+ Gets the current scope.
+ One of the values. If no scope exists, this property defaults to .
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way of generating streams or files containing XML data that conforms to the W3C Extensible Markup Language (XML) 1.0 and the Namespaces in XML recommendations.
+
+ Starting with the .NET Framework 2.0, we recommend that you use the class instead.
+
+
+ Creates an instance of the class using the specified stream and encoding.
+ The stream to which you want to write.
+ The encoding to generate. If encoding is it writes out the stream as UTF-8 and omits the encoding attribute from the .
+ The encoding is not supported or the stream cannot be written to.
+
+ is .
+
+
+ Creates an instance of the class using the specified .
+ The to write to. It is assumed that the is already set to the correct encoding.
+
+
+ Creates an instance of the class using the specified file.
+ The filename to write to. If the file exists, it truncates it and overwrites it with the new content.
+ The encoding to generate. If encoding is it writes the file out as UTF-8, and omits the encoding attribute from the .
+ The encoding is not supported; the filename is empty, contains only white space, or contains one or more invalid characters.
+ Access is denied.
+ The filename is .
+ The directory to write to is not found.
+ The filename includes an incorrect or invalid syntax for file name, directory name, or volume label syntax.
+ The caller does not have the required permission.
+
+
+ Closes this stream and the underlying stream.
+
+
+ Flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+
+
+ Returns the closest prefix defined in the current namespace scope for the namespace URI.
+ Namespace URI whose prefix you want to find.
+
+ is either or .
+ The matching prefix. Or if no matching namespace URI is found in the current scope.
+
+
+ Encodes the specified binary bytes as base64 and writes out the resulting text.
+ Byte array to encode.
+ The position within the buffer indicating the start of the bytes to write.
+ The number of bytes to write.
+
+ is .
+ The buffer length minus is less than .
+
+ or is less than zero.
+ The is .
+
+
+ Encodes the specified binary bytes as binhex and writes out the resulting text.
+ Byte array to encode.
+ The position in the buffer indicating the start of the bytes to write.
+ The number of bytes to write.
+
+ is .
+ The buffer length minus is less than .
+
+ or is less than zero.
+ The is Closed.
+
+
+ Writes out a <![CDATA[...]]> block containing the specified text.
+ Text to place inside the CDATA block.
+ The text would result in a non-well formed XML document.
+ The is .
+
+
+ Forces the generation of a character entity for the specified Unicode character value.
+ Unicode character for which to generate a character entity.
+ The character is in the surrogate pair character range, - ; or the text would result in a non-well formed XML document.
+ The is .
+
+
+ Writes text one buffer at a time.
+ Character array containing the text to write.
+ The position in the buffer indicating the start of the text to write.
+ The number of characters to write.
+
+ is .
+
+ or is less than zero.
+
+ -or-
+
+ The buffer length minus is less than ; the call results in surrogate pair characters being split or an invalid surrogate pair being written.
+ The is Closed.
+
+
+ Writes out a comment <!--...--> containing the specified text.
+ Text to place inside the comment.
+ The text would result in a non-well formed XML document.
+ The is .
+
+
+ Writes the DOCTYPE declaration with the specified name and optional attributes.
+ The name of the DOCTYPE. This must be non-empty.
+ If non-null it also writes PUBLIC "pubid" "sysid" where and are replaced with the value of the given arguments.
+ If is null and is non-null it writes SYSTEM "sysid" where is replaced with the value of this argument.
+ If non-null it writes [subset] where subset is replaced with the value of this argument.
+ This method was called outside the prolog (after the root element).
+
+ is or
+
+ -or-
+
+ the value for would result in invalid XML.
+
+
+ Closes the previous call.
+
+
+ Closes any open elements or attributes and puts the writer back in the Start state.
+ The XML document is invalid.
+
+
+ Closes one element and pops the corresponding namespace scope.
+
+
+ Writes out an entity reference as .
+ Name of the entity reference.
+ The text would result in a non-well formed XML document or is either or .
+
+
+ Closes one element and pops the corresponding namespace scope.
+
+
+ Writes out the specified name, ensuring it is a valid name according to the W3C XML 1.0 recommendation.
+ Name to write.
+
+ is not a valid XML name; or is either or .
+
+
+ Writes out the specified name, ensuring it is a valid according to the W3C XML 1.0 recommendation.
+ Name to write.
+
+ is not a valid ; or is either or .
+
+
+ Writes out a processing instruction with a space between the name and text as follows: <?name text?>.
+ Name of the processing instruction.
+ Text to include in the processing instruction.
+ The text would result in a non-well formed XML document.
+
+ is either or .
+
+ This method is being used to create an XML declaration after has already been called.
+
+
+ Writes out the namespace-qualified name. This method looks up the prefix that is in scope for the given namespace.
+ The local name to write.
+ The namespace URI to associate with the name.
+
+ is either or .
+
+ is not a valid name according to the W3C Namespaces spec.
+
+
+ Writes raw markup manually from a character buffer.
+ Character array containing the text to write.
+ The position within the buffer indicating the start of the text to write.
+ The number of characters to write.
+
+ is .
+
+ or is less than zero.
+
+ -or-
+
+ The buffer length minus is less than .
+
+
+ Writes raw markup manually from a string.
+ String containing the text to write.
+
+
+ Writes the start of an attribute.
+
+ prefix of the attribute.
+
+ of the attribute.
+
+ of the attribute.
+
+ is either or .
+
+
+ Writes the XML declaration with the version "1.0".
+ This is not the first write method called after the constructor.
+
+
+ Writes the XML declaration with the version "1.0" and the standalone attribute.
+ If , it writes "standalone=yes"; if , it writes "standalone=no".
+ This is not the first write method called after the constructor.
+
+
+ Writes the specified start tag and associates it with the given namespace and prefix.
+ The namespace prefix of the element.
+ The local name of the element.
+ The namespace URI to associate with the element. If this namespace is already in scope and has an associated prefix then the writer automatically writes that prefix also.
+ The writer is closed.
+
+
+ Writes the given text content.
+ Text to write.
+ The text string contains an invalid surrogate pair.
+
+
+ Generates and writes the surrogate character entity for the surrogate character pair.
+ The low surrogate. This must be a value between and .
+ The high surrogate. This must be a value between and .
+ An invalid surrogate character pair was passed.
+
+
+ Writes out the given white space.
+ The string of white space characters.
+ The string contains non-white space characters.
+
+
+ Gets the underlying stream object.
+ The stream to which the is writing or if the was constructed using a that does not inherit from the class.
+
+
+ Indicates how the output is formatted.
+ One of the values. The default is (no special formatting).
+
+
+ Gets or sets how many IndentChars to write for each level in the hierarchy when is set to .
+ Setting this property to a negative value.
+ Number of for each level. The default is 2.
+
+
+ Gets or sets which character to use for indenting when is set to .
+ The character to use for indenting. The default is space.
+
+
+ Gets or sets a value indicating whether to do namespace support.
+ You can only change this property when in the state.
+
+ to support namespaces; otherwise, .
+
+ The default is .
+
+
+ Gets or sets which character to use to quote attribute values.
+ Setting this property to something other than either a single or double quote.
+ The character to use to quote attribute values. This must be a single quote (') or a double quote ("). The default is a double quote.
+
+
+ Gets the state of the writer.
+ One of the values.
+
+
+ Gets the current scope.
+ The current or if there is no in the current scope.
+
+
+ Gets an representing the current scope.
+ An representing the current scope.
+
+ Value Meaning- None This is the default if no scope exists.
- Default The current scope is ="default".
- Preserve The current scope is ="preserve".
+
+
+ Represents the XML type for the string. This allows the string to be read as a particular XML type, for example a CDATA section type.
+
+
+ CDATA type.
+
+
+ ENTITIES type.
+
+
+ ENTITY type.
+
+
+ ENUMERATION type.
+
+
+ ID type.
+
+
+ IDREF type.
+
+
+ IDREFS type.
+
+
+ NCName type.
+
+
+ NMTOKEN type.
+
+
+ NMTOKENS type.
+
+
+ No type.
+
+
+ NOTATION type.
+
+
+ QName type.
+
+
+ Resolves external XML resources named by a Uniform Resource Identifier (URI).
+
+
+ Initializes a new instance of the class.
+
+
+ Maps a URI to an object that contains the actual resource.
+ The URI returned from .
+ Currently not used.
+ The type of object to return. The current implementation only returns objects.
+
+ is neither nor a type.
+ The specified URI is not an absolute URI.
+
+ is .
+ There is a runtime error (for example, an interrupted server connection).
+ A stream object or if a type other than stream is specified.
+
+
+ Asynchronously maps a URI to an object that contains the actual resource.
+ The URI returned from .
+ Currently not used.
+ The type of object to return. The current implementation only returns objects.
+ A stream object or if a type other than stream is specified.
+
+
+ Resolves the absolute URI from the base and relative URIs.
+ The base URI used to resolve the relative URI.
+ The URI to resolve. The URI can be absolute or relative. If absolute, this value effectively replaces the value. If relative, it combines with the to make an absolute URI.
+
+ is or is .
+ The absolute URI, or if the relative URI cannot be resolved.
+
+
+ Gets or sets the cache policy for the underlying object.
+ The cache policy for the underlying web request.
+
+
+ Sets credentials used to authenticate web requests.
+ The credentials to be used to authenticate web requests. If this property is not set, the value defaults to ; that is, the has no user credentials.
+
+
+ Gets or sets the network proxy for the underlying object.
+ The to use to access the Internet resource.
+
+
+ Represents a reader that provides document type definition (DTD), XML-Data Reduced (XDR) schema, and XML Schema definition language (XSD) validation.
+
+ This class is obsolete. Starting with the .NET Framework 2.0, we recommend that you use the class and the method to create a validating XML reader.
+
+
+ Sets an event handler for receiving information about document type definition (DTD), XML-Data Reduced (XDR) schema, and XML Schema definition language (XSD) schema validation errors.
+
+
+ Initializes a new instance of the class with the specified values.
+ The stream containing the XML fragment to parse.
+ The of the XML fragment. This determines what the fragment can contain (see table below).
+ The in which the XML fragment is to be parsed. This includes the to use, encoding, namespace scope, current , and scope.
+
+ is not one of the node types listed in the table below.
+
+
+ Initializes a new instance of the class with the specified values.
+ The string containing the XML fragment to parse.
+ The of the XML fragment. This also determines what the fragment string can contain (see table below).
+ The in which the XML fragment is to be parsed. This includes the to use, encoding, namespace scope, current xml:lang, and xml:space scope.
+
+ is not one of the node types listed in the table below.
+
+
+ Initializes a new instance of the class that validates the content returned from the given .
+ The to read from while validating. The current implementation supports only .
+ The reader specified is not an .
+
+
+ Changes the to Closed.
+
+
+ Gets the value of the attribute with the specified index.
+ The index of the attribute. The index is zero-based. (The first attribute has index 0.)
+ The parameter is less than 0 or greater than or equal to .
+ The value of the specified attribute.
+
+
+ Gets the value of the attribute with the specified name.
+ The qualified name of the attribute.
+ The value of the specified attribute. If the attribute is not found, is returned.
+
+
+ Gets the value of the attribute with the specified local name and namespace Uniform Resource Identifier (URI).
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ The value of the specified attribute. If the attribute is not found, is returned. This method does not move the reader.
+
+
+ Gets a value indicating whether the class can return line information.
+
+ if the class can return line information; otherwise, .
+
+
+ Resolves a namespace prefix in the current element's scope.
+ The prefix whose namespace Uniform Resource Identifier (URI) you want to resolve. To match the default namespace, pass an empty string.
+ The namespace URI to which the prefix maps or if no matching prefix is found.
+
+
+ Moves to the attribute with the specified index.
+ The index of the attribute.
+ The parameter is less than 0 or greater than or equal to .
+
+
+ Moves to the attribute with the specified name.
+ The qualified name of the attribute.
+
+ if the attribute is found; otherwise, . If , the position of the reader does not change.
+
+
+ Moves to the attribute with the specified local name and namespace Uniform Resource Identifier (URI).
+ The local name of the attribute.
+ The namespace URI of the attribute.
+
+ if the attribute is found; otherwise, . If , the position of the reader does not change.
+
+
+ Moves to the element that contains the current attribute node.
+
+ if the reader is positioned on an attribute (the reader moves to the element that owns the attribute); if the reader is not positioned on an attribute (the position of the reader does not change).
+
+
+ Moves to the first attribute.
+
+ if an attribute exists (the reader moves to the first attribute); otherwise, (the position of the reader does not change).
+
+
+ Moves to the next attribute.
+
+ if there is a next attribute; if there are no more attributes.
+
+
+ Reads the next node from the stream.
+
+ if the next node was read successfully; if there are no more nodes to read.
+
+
+ Parses the attribute value into one or more , , or nodes.
+
+ if there are nodes to return.
+
+ if the reader is not positioned on an attribute node when the initial call is made or if all the attribute values have been read.
+
+ An empty attribute, such as, misc="", returns with a single node with a value of String.Empty.
+
+
+ Reads the content and returns the Base64 decoded binary bytes.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+
+ is not supported on the current node.
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The number of bytes written to the buffer.
+
+
+ Reads the content and returns the BinHex decoded binary bytes.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+
+ is not supported on the current node.
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The implementation does not support this method.
+ The number of bytes written to the buffer.
+
+
+ Reads the element and decodes the Base64 content.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+ The current node is not an element node.
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The implementation does not support this method.
+ The element contains mixed-content.
+ The content cannot be converted to the requested type.
+ The number of bytes written to the buffer.
+
+
+ Reads the element and decodes the BinHex content.
+ The buffer into which to copy the resulting text. This value cannot be .
+ The offset into the buffer where to start copying the result.
+ The maximum number of bytes to copy into the buffer. The actual number of bytes copied is returned from this method.
+ The value is .
+ The current node is not an element node.
+ The index into the buffer or index + count is larger than the allocated buffer size.
+ The implementation does not support this method.
+ The element contains mixed-content.
+ The content cannot be converted to the requested type.
+ The number of bytes written to the buffer.
+
+
+ Reads the contents of an element or text node as a string.
+ The contents of the element or text node. This can be an empty string if the reader is positioned on something other than an element or text node, or if there is no more text content to return in the current context.
+
+
+ Gets the common language runtime type for the specified XML Schema definition language (XSD) type.
+ The common language runtime type for the specified XML Schema type.
+
+
+ Resolves the entity reference for nodes.
+ The reader is not positioned on an node.
+
+
+ For a description of this member, see .
+ An object that identifies the scope of the reader.
+ An object that identifies the namespaces in scope.
+
+
+ For a description of this member, see .
+ The namespace prefix.
+ A string value that contains the namespace Uri that is associated with the prefix.
+
+
+ For a description of this member, see .
+ The namespace that is associated with the prefix.
+ A string value that contains the namespace prefix that is associated with the .
+
+
+ Gets the number of attributes on the current node.
+ The number of attributes on the current node. This number includes default attributes.
+
+
+ Gets the base URI of the current node.
+ The base URI of the current node.
+
+
+ Gets a value indicating whether the implements the binary content read methods.
+
+ if the binary content read methods are implemented; otherwise . The class returns .
+
+
+ Gets a value indicating whether this reader can parse and resolve entities.
+
+ if the reader can parse and resolve entities; otherwise, . always returns .
+
+
+ Gets the depth of the current node in the XML document.
+ The depth of the current node in the XML document.
+
+
+ Gets the encoding attribute for the document.
+ The encoding value. If no encoding attribute exists, and there is not byte-order mark, this defaults to UTF-8.
+
+
+ Gets or sets a value that specifies how the reader handles entities.
+ Invalid value was specified.
+ One of the values. If no is specified, it defaults to EntityHandling.ExpandEntities.
+
+
+ Gets a value indicating whether the reader is positioned at the end of the stream.
+
+ if the reader is positioned at the end of the stream; otherwise, .
+
+
+ Gets a value indicating whether the current node can have a other than String.Empty.
+
+ if the node on which the reader is currently positioned can have a ; otherwise, .
+
+
+ Gets a value indicating whether the current node is an attribute that was generated from the default value defined in the document type definition (DTD) or schema.
+
+ if the current node is an attribute whose value was generated from the default value defined in the DTD or schema; if the attribute value was explicitly set.
+
+
+ Gets a value indicating whether the current node is an empty element (for example, <MyElement/>).
+
+ if the current node is an element ( equals ) that ends with />; otherwise, .
+
+
+ Gets the current line number.
+ The current line number. The starting value for this property is 1.
+
+
+ Gets the current line position.
+ The current line position. The starting value for this property is 1.
+
+
+ Gets the local name of the current node.
+ The name of the current node with the prefix removed. For example, is for the element <bk:book>.
+
+ For node types that do not have a name (like , , and so on), this property returns String.Empty.
+
+
+ Gets the qualified name of the current node.
+ The qualified name of the current node. For example, is for the element <bk:book>.
+
+ The name returned is dependent on the of the node. The following node types return the listed values. All other node types return an empty string.
+
+ Node Type Name- The name of the attribute.
- The document type name.
- The tag name.
- The name of the entity referenced.
- The target of the processing instruction.
- The literal string .
+
+
+ Gets or sets a value indicating whether to do namespace support.
+
+ to do namespace support; otherwise, . The default is .
+
+
+ Gets the namespace Uniform Resource Identifier (URI) (as defined in the World Wide Web Consortium (W3C) Namespace specification) of the node on which the reader is positioned.
+ The namespace URI of the current node; otherwise an empty string.
+
+
+ Gets the associated with this implementation.
+
+ that enables you to get the atomized version of a string within the node.
+
+
+ Gets the type of the current node.
+ One of the values representing the type of the current node.
+
+
+ Gets the namespace prefix associated with the current node.
+ The namespace prefix associated with the current node.
+
+
+ Gets the quotation mark character used to enclose the value of an attribute node.
+ The quotation mark character (" or ') used to enclose the value of an attribute node.
+
+
+ Gets the used to construct this .
+ The specified in the constructor.
+
+
+ Gets the state of the reader.
+ One of the values.
+
+
+ Gets a to use for validation.
+ The to use for validation.
+
+
+ Gets a schema type object.
+
+ , , or depending whether the node value is a built in XML Schema definition language (XSD) type or a user defined simpleType or complexType; if the current node has no schema type.
+
+
+ Gets or sets a value indicating the type of validation to perform.
+ Setting the property after a Read has been called.
+ One of the values. If this property is not set, it defaults to ValidationType.Auto.
+
+
+ Gets the text value of the current node.
+ The value returned depends on the of the node. The following table lists node types that have a value to return. All other node types return String.Empty.
+
+ Node Type Value- The value of the attribute.
- The content of the CDATA section.
- The content of the comment.
- The internal subset.
- The entire content, excluding the target.
- The white space between markup in a mixed content model.
- The content of the text node.
- The white space between markup.
- The content of the declaration.
+
+
+ Gets the current scope.
+ The current scope.
+
+
+ Sets the used for resolving external document type definition (DTD) and schema location references. The is also used to handle any import or include elements found in XML Schema definition language (XSD) schemas.
+ The to use. If set to , external resources are not resolved.
+
+ In version 1.1 of the .NET Framework, the caller must be fully trusted to specify an .
+
+
+ Gets the current scope.
+ One of the values. If no scope exists, this property defaults to .
+
+
+ Represents white space in element content.
+
+
+ Initializes a new instance of the class.
+ The white space characters of the node.
+ The object.
+
+
+ Creates a duplicate of this node.
+
+ to recursively clone the subtree under the specified node; to clone only the node itself. For white space nodes, the cloned node always includes the data value, regardless of the parameter setting.
+ The cloned node.
+
+
+ Saves all the children of the node to the specified .
+ The to which you want to save.
+
+
+ Saves the node to the specified .
+ The to which you want to save.
+
+
+ Gets the local name of the node.
+ For nodes, this property returns .
+
+
+ Gets the qualified name of the node.
+ For nodes, this property returns .
+
+
+ Gets the type of the node.
+ For nodes, the value is .
+
+
+ Gets the parent of the current node.
+ The parent node of the current node.
+
+
+ Gets the text node that immediately precedes this node.
+ Returns .
+
+
+ Gets or sets the value of the node.
+ Setting to invalid white space characters.
+ The white space characters found in the node.
+
+
+ Represents a writer that provides a fast, non-cached, forward-only way to generate streams or files that contain XML data.
+
+
+ Initializes a new instance of the class.
+
+
+ When overridden in a derived class, closes this stream and the underlying stream.
+ A call is made to write more output after has been called or the result of this call is an invalid XML document.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Creates a new instance using the specified stream.
+ The stream to which you want to write. The writes XML 1.0 text syntax and appends it to the specified stream.
+ The value is .
+ An object.
+
+
+ Creates a new instance using the stream and object.
+ The stream to which you want to write. The writes XML 1.0 text syntax and appends it to the specified stream.
+ The object used to configure the new instance. If this is , a with default settings is used.
+
+ If the is being used with the method, you should use the property to obtain an object with the correct settings. This ensures that the created object has the correct output settings.
+ The value is .
+ An object.
+
+
+ Creates a new instance using the specified .
+ The to which you want to write. The writes XML 1.0 text syntax and appends it to the specified .
+ The value is .
+ An object.
+
+
+ Creates a new instance using the and objects.
+ The to which you want to write. The writes XML 1.0 text syntax and appends it to the specified .
+ The object used to configure the new instance. If this is , a with default settings is used.
+
+ If the is being used with the method, you should use the property to obtain an object with the correct settings. This ensures that the created object has the correct output settings.
+ The value is .
+ An object.
+
+
+ Creates a new instance using the specified filename.
+ The file to which you want to write. The creates a file at the specified path and writes to it in XML 1.0 text syntax. The must be a file system path.
+ The value is .
+ An object.
+
+
+ Creates a new instance using the filename and object.
+ The file to which you want to write. The creates a file at the specified path and writes to it in XML 1.0 text syntax. The must be a file system path.
+ The object used to configure the new instance. If this is , a with default settings is used.
+
+ If the is being used with the method, you should use the property to obtain an object with the correct settings. This ensures that the created object has the correct output settings.
+ The value is .
+ An object.
+
+
+ Creates a new instance using the specified .
+ The to which to write to. Content written by the is appended to the .
+ The value is .
+ An object.
+
+
+ Creates a new instance using the and objects.
+ The to which to write to. Content written by the is appended to the .
+ The object used to configure the new instance. If this is , a with default settings is used.
+
+ If the is being used with the method, you should use the property to obtain an object with the correct settings. This ensures that the created object has the correct output settings.
+ The value is .
+ An object.
+
+
+ Creates a new instance using the specified object.
+ The object that you want to use as the underlying writer.
+ The value is .
+ An object that is wrapped around the specified object.
+
+
+ Creates a new instance using the specified and objects.
+ The object that you want to use as the underlying writer.
+ The object used to configure the new instance. If this is , a with default settings is used.
+
+ If the is being used with the method, you should use the property to obtain an object with the correct settings. This ensures that the created object has the correct output settings.
+ The value is .
+ An object that is wrapped around the specified object.
+
+
+ Releases all resources used by the current instance of the class.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Releases the unmanaged resources used by the and optionally releases the managed resources.
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.
+ A task that represents the asynchronous dispose operation.
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting managed resources asynchronously.
+ A task that represents the asynchronous dispose operation.
+
+
+ When overridden in a derived class, flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously flushes whatever is in the buffer to the underlying streams and also flushes the underlying stream.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, returns the closest prefix defined in the current namespace scope for the namespace URI.
+ The namespace URI whose prefix you want to find.
+
+ is either or .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The matching prefix or if no matching namespace URI is found in the current scope.
+
+
+ When overridden in a derived class, writes out all the attributes found at the current position in the .
+ The from which to copy the attributes.
+
+ to copy the default attributes from the ; otherwise, .
+
+ is .
+ The reader is not positioned on an , or node.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes out all the attributes found at the current position in the .
+ The from which to copy the attributes.
+
+ to copy the default attributes from the ; otherwise, .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, writes out the attribute with the specified local name and value.
+ The local name of the attribute.
+ The value of the attribute.
+ The state of writer is not or writer is closed.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The or attribute value is invalid.
+
+
+ When overridden in a derived class, writes an attribute with the specified local name, namespace URI, and value.
+ The local name of the attribute.
+ The namespace URI to associate with the attribute.
+ The value of the attribute.
+ The state of writer is not or writer is closed.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The or attribute value is invalid.
+
+
+ When overridden in a derived class, writes out the attribute with the specified prefix, local name, namespace URI, and value.
+ The namespace prefix of the attribute.
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ The value of the attribute.
+ The state of writer is not or writer is closed.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The or attribute value is invalid.
+ The or is .
+
+
+ Asynchronously writes out the attribute with the specified prefix, local name, namespace URI, and value.
+ The namespace prefix of the attribute.
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ The value of the attribute.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, encodes the specified binary bytes as Base64 and writes out the resulting text.
+ Byte array to encode.
+ The position in the buffer indicating the start of the bytes to write.
+ The number of bytes to write.
+
+ is .
+
+ or is less than zero.
+
+ -or-
+
+ The buffer length minus is less than .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously encodes the specified binary bytes as Base64 and writes out the resulting text.
+ Byte array to encode.
+ The position in the buffer indicating the start of the bytes to write.
+ The number of bytes to write.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, encodes the specified binary bytes as and writes out the resulting text.
+ Byte array to encode.
+ The position in the buffer indicating the start of the bytes to write.
+ The number of bytes to write.
+
+ is .
+ The writer is closed or in error state.
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+ or is less than zero.
+
+ -or-
+
+ The buffer length minus is less than .
+
+
+ Asynchronously encodes the specified binary bytes as and writes out the resulting text.
+ Byte array to encode.
+ The position in the buffer indicating the start of the bytes to write.
+ The number of bytes to write.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, writes out a <![CDATA[...]]> block containing the specified text.
+ The text to place inside the CDATA block.
+ The text would result in a non-well formed XML document.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes out a <![CDATA[...]]> block containing the specified text.
+ The text to place inside the CDATA block.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, forces the generation of a character entity for the specified Unicode character value.
+ The Unicode character for which to generate a character entity.
+ The character is in the surrogate pair character range, - .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously forces the generation of a character entity for the specified Unicode character value.
+ The Unicode character for which to generate a character entity.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, writes text one buffer at a time.
+ Character array containing the text to write.
+ The position in the buffer indicating the start of the text to write.
+ The number of characters to write.
+
+ is .
+
+ or is less than zero.
+
+ -or-
+
+ The buffer length minus is less than ; the call results in surrogate pair characters being split or an invalid surrogate pair being written.
+ The parameter value is not valid.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes text one buffer at a time.
+ Character array containing the text to write.
+ The position in the buffer indicating the start of the text to write.
+ The number of characters to write.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, writes out a comment <!--...--> containing the specified text.
+ Text to place inside the comment.
+ The text would result in a non-well-formed XML document.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes out a comment <!--...--> containing the specified text.
+ Text to place inside the comment.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, writes the DOCTYPE declaration with the specified name and optional attributes.
+ The name of the DOCTYPE. This must be non-empty.
+ If non-null it also writes PUBLIC "pubid" "sysid" where and are replaced with the value of the given arguments.
+ If is and is non-null it writes SYSTEM "sysid" where is replaced with the value of this argument.
+ If non-null it writes [subset] where subset is replaced with the value of this argument.
+ This method was called outside the prolog (after the root element).
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The value for would result in invalid XML.
+
+
+ Asynchronously writes the DOCTYPE declaration with the specified name and optional attributes.
+ The name of the DOCTYPE. This must be non-empty.
+ If non-null it also writes PUBLIC "pubid" "sysid" where and are replaced with the value of the given arguments.
+ If is and is non-null it writes SYSTEM "sysid" where is replaced with the value of this argument.
+ If non-null it writes [subset] where subset is replaced with the value of this argument.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ Writes an element with the specified local name and value.
+ The local name of the element.
+ The value of the element.
+ The value is or an empty string.
+
+ -or-
+
+ The parameter values are not valid.
+ There is a character in the buffer that is a valid XML character but is not valid for the output encoding. For example, if the output encoding is ASCII, you should only use characters from the range of 0 to 127 for element and attribute names. The invalid character might be in the argument of this method or in an argument of previous methods that were writing to the buffer. Such characters are escaped by character entity references when possible (for example, in text nodes or attribute values). However, the character entity reference is not allowed in element and attribute names, comments, processing instructions, or CDATA sections.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Writes an element with the specified local name, namespace URI, and value.
+ The local name of the element.
+ The namespace URI to associate with the element.
+ The value of the element.
+ The value is or an empty string.
+
+ -or-
+
+ The parameter values are not valid.
+ There is a character in the buffer that is a valid XML character but is not valid for the output encoding. For example, if the output encoding is ASCII, you should only use characters from the range of 0 to 127 for element and attribute names. The invalid character might be in the argument of this method or in an argument of previous methods that were writing to the buffer. Such characters are escaped by character entity references when possible (for example, in text nodes or attribute values). However, the character entity reference is not allowed in element and attribute names, comments, processing instructions, or CDATA sections.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Writes an element with the specified prefix, local name, namespace URI, and value.
+ The prefix of the element.
+ The local name of the element.
+ The namespace URI of the element.
+ The value of the element.
+ The value is or an empty string.
+
+ -or-
+
+ The parameter values are not valid.
+ There is a character in the buffer that is a valid XML character but is not valid for the output encoding. For example, if the output encoding is ASCII, you should only use characters from the range of 0 to 127 for element and attribute names. The invalid character might be in the argument of this method or in an argument of previous methods that were writing to the buffer. Such characters are escaped by character entity references when possible (for example, in text nodes or attribute values). However, the character entity reference is not allowed in element and attribute names, comments, processing instructions, or CDATA sections.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes an element with the specified prefix, local name, namespace URI, and value.
+ The prefix of the element.
+ The local name of the element.
+ The namespace URI of the element.
+ The value of the element.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, closes the previous call.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously closes the previous call.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, closes any open elements or attributes and puts the writer back in the Start state.
+ The XML document is invalid.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously closes any open elements or attributes and puts the writer back in the Start state.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, closes one element and pops the corresponding namespace scope.
+ This results in an invalid XML document.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously closes one element and pops the corresponding namespace scope.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, writes out an entity reference as .
+ The name of the entity reference.
+
+ is either or .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes out an entity reference as .
+ The name of the entity reference.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, closes one element and pops the corresponding namespace scope.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously closes one element and pops the corresponding namespace scope.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, writes out the specified name, ensuring it is a valid name according to the W3C XML 1.0 recommendation (https://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).
+ The name to write.
+
+ is not a valid XML name; or is either or .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes out the specified name, ensuring it is a valid name according to the W3C XML 1.0 recommendation (https://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).
+ The name to write.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, writes out the specified name, ensuring it is a valid NmToken according to the W3C XML 1.0 recommendation (https://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).
+ The name to write.
+
+ is not a valid NmToken; or is either or .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes out the specified name, ensuring it is a valid NmToken according to the W3C XML 1.0 recommendation (https://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).
+ The name to write.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, copies everything from the reader to the writer and moves the reader to the start of the next sibling.
+ The to read from.
+
+ to copy the default attributes from the ; otherwise, .
+
+ is .
+
+ contains invalid characters.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Copies everything from the object to the writer. The position of the remains unchanged.
+ The to copy from.
+
+ to copy the default attributes; otherwise, .
+
+ is .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously copies everything from the reader to the writer and moves the reader to the start of the next sibling.
+ The to read from.
+
+ to copy the default attributes from the ; otherwise, .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ Asynchronously copies everything from the object to the writer. The position of the remains unchanged.
+ The to copy from.
+
+ to copy the default attributes; otherwise, .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, writes out a processing instruction with a space between the name and text as follows: <?name text?>.
+ The name of the processing instruction.
+ The text to include in the processing instruction.
+ The text would result in a non-well formed XML document.
+
+ is either or .
+
+ This method is being used to create an XML declaration after has already been called.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes out a processing instruction with a space between the name and text as follows: <?name text?>.
+ The name of the processing instruction.
+ The text to include in the processing instruction.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, writes out the namespace-qualified name. This method looks up the prefix that is in scope for the given namespace.
+ The local name to write.
+ The namespace URI for the name.
+
+ is either or .
+
+ is not a valid name.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes out the namespace-qualified name. This method looks up the prefix that is in scope for the given namespace.
+ The local name to write.
+ The namespace URI for the name.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, writes raw markup manually from a character buffer.
+ Character array containing the text to write.
+ The position within the buffer indicating the start of the text to write.
+ The number of characters to write.
+
+ is .
+
+ or is less than zero.
+
+ -or-
+
+ The buffer length minus is less than .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ When overridden in a derived class, writes raw markup manually from a string.
+ String containing the text to write.
+
+ is either or .
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes raw markup manually from a character buffer.
+ Character array containing the text to write.
+ The position within the buffer indicating the start of the text to write.
+ The number of characters to write.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ Asynchronously writes raw markup manually from a string.
+ String containing the text to write.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ Writes the start of an attribute with the specified local name.
+ The local name of the attribute.
+ The writer is closed.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ There is a character in the buffer that is a valid XML character but is not valid for the output encoding. For example, if the output encoding is ASCII, you should only use characters from the range of 0 to 127 for element and attribute names. The invalid character might be in the argument of this method or in an argument of previous methods that were writing to the buffer. Such characters are escaped by character entity references when possible (for example, in text nodes or attribute values). However, the character entity reference is not allowed in element and attribute names, comments, processing instructions, or CDATA sections.
+
+
+ Writes the start of an attribute with the specified local name and namespace URI.
+ The local name of the attribute.
+ The namespace URI of the attribute.
+ There is a character in the buffer that is a valid XML character but is not valid for the output encoding. For example, if the output encoding is ASCII, you should only use characters from the range of 0 to 127 for element and attribute names. The invalid character might be in the argument of this method or in an argument of previous methods that were writing to the buffer. Such characters are escaped by character entity references when possible (for example, in text nodes or attribute values). However, the character entity reference is not allowed in element and attribute names, comments, processing instructions, or CDATA sections.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ When overridden in a derived class, writes the start of an attribute with the specified prefix, local name, and namespace URI.
+ The namespace prefix of the attribute.
+ The local name of the attribute.
+ The namespace URI for the attribute.
+ There is a character in the buffer that is a valid XML character but is not valid for the output encoding. For example, if the output encoding is ASCII, you should only use characters from the range of 0 to 127 for element and attribute names. The invalid character might be in the argument of this method or in an argument of previous methods that were writing to the buffer. Such characters are escaped by character entity references when possible (for example, in text nodes or attribute values). However, the character entity reference is not allowed in element and attribute names, comments, processing instructions, or CDATA sections.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes the start of an attribute with the specified prefix, local name, and namespace URI.
+ The namespace prefix of the attribute.
+ The local name of the attribute.
+ The namespace URI for the attribute.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, writes the XML declaration with the version "1.0".
+ This is not the first write method called after the constructor.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ When overridden in a derived class, writes the XML declaration with the version "1.0" and the standalone attribute.
+ If , it writes "standalone=yes"; if , it writes "standalone=no".
+ This is not the first write method called after the constructor.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes the XML declaration with the version "1.0".
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ Asynchronously writes the XML declaration with the version "1.0" and the standalone attribute.
+ If , it writes "standalone=yes"; if , it writes "standalone=no".
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, writes out a start tag with the specified local name.
+ The local name of the element.
+ The writer is closed.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ There is a character in the buffer that is a valid XML character but is not valid for the output encoding. For example, if the output encoding is ASCII, you should only use characters from the range of 0 to 127 for element and attribute names. The invalid character might be in the argument of this method or in an argument of previous methods that were writing to the buffer. Such characters are escaped by character entity references when possible (for example, in text nodes or attribute values). However, the character entity reference is not allowed in element and attribute names, comments, processing instructions, or CDATA sections.
+
+
+ When overridden in a derived class, writes the specified start tag and associates it with the given namespace.
+ The local name of the element.
+ The namespace URI to associate with the element. If this namespace is already in scope and has an associated prefix, the writer automatically writes that prefix also.
+ The writer is closed.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ There is a character in the buffer that is a valid XML character but is not valid for the output encoding. For example, if the output encoding is ASCII, you should only use characters from the range of 0 to 127 for element and attribute names. The invalid character might be in the argument of this method or in an argument of previous methods that were writing to the buffer. Such characters are escaped by character entity references when possible (for example, in text nodes or attribute values). However, the character entity reference is not allowed in element and attribute names, comments, processing instructions, or CDATA sections.
+
+
+ When overridden in a derived class, writes the specified start tag and associates it with the given namespace and prefix.
+ The namespace prefix of the element.
+ The local name of the element.
+ The namespace URI to associate with the element.
+ The writer is closed.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ There is a character in the buffer that is a valid XML character but is not valid for the output encoding. For example, if the output encoding is ASCII, you should only use characters from the range of 0 to 127 for element and attribute names. The invalid character might be in the argument of this method or in an argument of previous methods that were writing to the buffer. Such characters are escaped by character entity references when possible (for example, in text nodes or attribute values). However, the character entity reference is not allowed in element and attribute names, comments, processing instructions, or CDATA sections.
+
+
+ Asynchronously writes the specified start tag and associates it with the given namespace and prefix.
+ The namespace prefix of the element.
+ The local name of the element.
+ The namespace URI to associate with the element.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, writes the given text content.
+ The text to write.
+ The text string contains an invalid surrogate pair.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes the given text content.
+ The text to write.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ When overridden in a derived class, generates and writes the surrogate character entity for the surrogate character pair.
+ The low surrogate. This must be a value between 0xDC00 and 0xDFFF.
+ The high surrogate. This must be a value between 0xD800 and 0xDBFF.
+ An invalid surrogate character pair was passed.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously generates and writes the surrogate character entity for the surrogate character pair.
+ The low surrogate. This must be a value between 0xDC00 and 0xDFFF.
+ The high surrogate. This must be a value between 0xD800 and 0xDBFF.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ Writes a value.
+ The value to write.
+ An invalid value was specified.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Writes a value.
+ The value to write.
+ An invalid value was specified.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Writes a value.
+ The value to write.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Writes a value.
+ The value to write.
+ An invalid value was specified.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Writes a value.
+ The value to write.
+ An invalid value was specified.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Writes a value.
+ The value to write.
+ An invalid value was specified.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Writes a value.
+ The value to write.
+ An invalid value was specified.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Writes the object value.
+ The object value to write.
+
+ Note With the release of the .NET Framework 3.5, this method accepts as a parameter.
+ An invalid value was specified.
+ The is .
+ The writer is closed or in error state.
+
+-or-
+
+An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Writes a single-precision floating-point number.
+ The single-precision floating-point number to write.
+ An invalid value was specified.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Writes a value.
+ The value to write.
+ An invalid value was specified.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ When overridden in a derived class, writes out the given white space.
+ The string of white space characters.
+ The string contains non-white space characters.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+
+ Asynchronously writes out the given white space.
+ The string of white space characters.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+
+-or-
+
+An asynchronous method was called without setting the flag to . In this case, is thrown with the message "Set XmlWriterSettings.Async to true if you want to use Async Methods."
+ The task that represents the asynchronous operation.
+
+
+ Gets the object used to create this instance.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The object used to create this writer instance. If this writer was not created using the method, this property returns .
+
+
+ When overridden in a derived class, gets the state of the writer.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ One of the values.
+
+
+ When overridden in a derived class, gets the current scope.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ The current scope.
+
+
+ When overridden in a derived class, gets an representing the current scope.
+ An method was called before a previous asynchronous operation finished. In this case, is thrown with the message "An asynchronous operation is already in progress."
+ An representing the current scope.
+
+ Value Meaning- This is the default if no scope exists.
- The current scope is ="default".
- The current scope is ="preserve".
+
+
+ Specifies a set of features to support on the object created by the method.
+
+
+ Initializes a new instance of the class.
+
+
+ Creates a copy of the instance.
+ The cloned object.
+
+
+ Resets the members of the settings class to their default values.
+
+
+ Gets or sets a value that indicates whether asynchronous methods can be used on a particular instance.
+
+ if asynchronous methods can be used; otherwise, .
+
+
+ Gets or sets a value that indicates whether the XML writer should check to ensure that all characters in the document conform to the "2.2 Characters" section of the W3C XML 1.0 Recommendation.
+
+ to do character checking; otherwise, . The default is .
+
+
+ Gets or sets a value indicating whether the should also close the underlying stream or when the method is called.
+
+ to also close the underlying stream or ; otherwise, . The default is .
+
+
+ Gets or sets the level of conformance that the XML writer checks the XML output for.
+ One of the enumeration values that specifies the level of conformance (document, fragment, or automatic detection). The default is .
+
+
+ Gets or sets a value that indicates whether the does not escape URI attributes.
+
+ if the does not escape URI attributes; otherwise, . The default is .
+
+
+ Gets or sets the type of text encoding to use.
+ The text encoding to use. The default is .
+
+
+ Gets or sets a value indicating whether to indent elements.
+
+ to write individual elements on new lines and indent; otherwise, . The default is .
+
+
+ Gets or sets the character string to use when indenting. This setting is used when the property is set to .
+ The value assigned to the is .
+ The character string to use when indenting. This can be set to any string value. However, to ensure valid XML, you should specify only valid white space characters, such as space characters, tabs, carriage returns, or line feeds. The default is two spaces.
+
+
+ Gets or sets a value that indicates whether the should remove duplicate namespace declarations when writing XML content. The default behavior is for the writer to output all namespace declarations that are present in the writer's namespace resolver.
+ The enumeration used to specify whether to remove duplicate namespace declarations in the .
+
+
+ Gets or sets the character string to use for line breaks.
+ The value assigned to the is .
+ The character string to use for line breaks. This can be set to any string value. However, to ensure valid XML, you should specify only valid white space characters, such as space characters, tabs, carriage returns, or line feeds. The default is \r\n (carriage return, new line) for non-Unix platforms, and \n (new line) for Unix platforms.
+
+
+ Gets or sets a value indicating whether to normalize line breaks in the output.
+ One of the values. The default is .
+
+
+ Gets or sets a value indicating whether to write attributes on a new line.
+
+ to write attributes on individual lines; otherwise, . The default is .
+
+
+ Gets or sets a value indicating whether to omit an XML declaration.
+
+ to omit the XML declaration; otherwise, . The default is , an XML declaration is written.
+
+
+ Gets the method used to serialize the output.
+ One of the values. The default is .
+
+
+ Gets or sets a value that indicates whether the will add closing tags to all unclosed element tags when the method is called.
+
+ if all unclosed element tags will be closed out; otherwise, . The default value is .
+
+
+ Provides an accessor to the class.
+
+
+ Returns a new object.
+ An object.
+
+
+ Specifies the sort order for uppercase and lowercase letters.
+
+
+ Lowercase letters are sorted before uppercase letters.
+
+
+ Ignore the case.
+
+
+ Uppercase letters are sorted before lowercase letters.
+
+
+ Specifies the data type used to determine sort order.
+
+
+ Values are sorted numerically.
+
+
+ Values are sorted alphabetically.
+
+
+ Specifies the sort order.
+
+
+ Nodes are sorted in ascending order. For example, if the numbers 1,2,3, and 4 are sorted in ascending order, they appear as 1,2,3,4.
+
+
+ Nodes are sorted in descending order. For example, if the numbers 1,2,3, and 4 are sorted in descending order, they appear as, 4,3,2,1.
+
+
+ Provides a typed class that represents a compiled XPath expression.
+
+
+ When overridden in a derived class, sorts the nodes selected by the XPath expression according to the specified object.
+ An object representing the sort key. This can be the value of the node or an object with a compiled XPath expression.
+ An object that provides the specific data type comparisons for comparing two objects for equivalence.
+ The or sort key includes a prefix and either an is not provided, or the prefix cannot be found in the supplied .
+
+
+ When overridden in a derived class, sorts the nodes selected by the XPath expression according to the supplied parameters.
+ An object representing the sort key. This can be the value of the node or an object with a compiled XPath expression.
+ An value indicating the sort order.
+ An value indicating how to sort uppercase and lowercase letters.
+ The language to use for comparison. Uses the class that can be passed to the method for the language types, for example, "us-en" for U.S. English. If an empty string is specified, the system environment is used to determine the .
+ An value indicating the sort order for the data type.
+ The or sort key includes a prefix and either an is not provided, or the prefix cannot be found in the supplied .
+
+
+ When overridden in a derived class, returns a clone of this .
+ A new object.
+
+
+ Compiles the XPath expression specified and returns an object representing the XPath expression.
+ An XPath expression.
+ The XPath expression parameter is not a valid XPath expression.
+ The XPath expression is not valid.
+ An object.
+
+
+ Compiles the specified XPath expression, with the object specified for namespace resolution, and returns an object that represents the XPath expression.
+ An XPath expression.
+ An object that implements the interface for namespace resolution.
+ The XPath expression parameter is not a valid XPath expression.
+ The XPath expression is not valid.
+ An object.
+
+
+ When overridden in a derived class, specifies the object to use for namespace resolution.
+ An object that implements the interface to use for namespace resolution.
+ The object parameter is not derived from .
+
+
+ When overridden in a derived class, specifies the object to use for namespace resolution.
+ An object to use for namespace resolution.
+ The object parameter is not derived from the class.
+
+
+ When overridden in a derived class, gets a representation of the .
+ A representation of the .
+
+
+ When overridden in a derived class, gets the result type of the XPath expression.
+ An value representing the result type of the XPath expression.
+
+
+ Represents an item in the XQuery 1.0 and XPath 2.0 Data Model.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns the item's value as the specified type.
+ The type to return the item value as.
+ The item's value is not in the correct format for the target type.
+ The attempted cast is not valid.
+ The attempted cast resulted in an overflow.
+ The value of the item as the type requested.
+
+
+ When overridden in a derived class, returns the item's value as the type specified using the object specified to resolve namespace prefixes.
+ The type to return the item's value as.
+ The object used to resolve namespace prefixes.
+ The item's value is not in the correct format for the target type.
+ The attempted cast is not valid.
+ The attempted cast resulted in an overflow.
+ The value of the item as the type requested.
+
+
+ When overridden in a derived class, gets a value indicating whether the item represents an XPath node or an atomic value.
+
+ if the item represents an XPath node; if the item represents an atomic value.
+
+
+ When overridden in a derived class, gets the current item as a boxed object of the most appropriate .NET Framework 2.0 type according to its schema type.
+ The current item as a boxed object of the most appropriate .NET Framework type.
+
+
+ When overridden in a derived class, gets the value of the item.
+ The value of the item.
+
+
+ When overridden in a derived class, gets the item's value as a .
+ The item's value is not in the correct format for the type.
+ The attempted cast to is not valid.
+ The item's value as a .
+
+
+ When overridden in a derived class, gets the item's value as a .
+ The item's value is not in the correct format for the type.
+ The attempted cast to is not valid.
+ The item's value as a .
+
+
+ When overridden in a derived class, gets the item's value as a .
+ The item's value is not in the correct format for the type.
+ The attempted cast to is not valid.
+ The attempted cast resulted in an overflow.
+ The item's value as a .
+
+
+ When overridden in a derived class, gets the item's value as an .
+ The item's value is not in the correct format for the type.
+ The attempted cast to is not valid.
+ The attempted cast resulted in an overflow.
+ The item's value as an .
+
+
+ When overridden in a derived class, gets the item's value as an .
+ The item's value is not in the correct format for the type.
+ The attempted cast to is not valid.
+ The attempted cast resulted in an overflow.
+ The item's value as an .
+
+
+ When overridden in a derived class, gets the .NET Framework 2.0 type of the item.
+ The .NET Framework type of the item. The default value is .
+
+
+ When overridden in a derived class, gets the for the item.
+ The for the item.
+
+
+ Defines the namespace scope.
+
+
+ Returns all namespaces defined in the scope of the current node. This includes the xmlns:xml namespace which is always declared implicitly. The order of the namespaces returned is not defined.
+
+
+ Returns all namespaces defined in the scope of the current node, excluding the xmlns:xml namespace. The xmlns:xml namespace is always declared implicitly. The order of the namespaces returned is not defined.
+
+
+ Returns all namespaces that are defined locally at the current node.
+
+
+ Provides a cursor model for navigating and editing XML data.
+
+
+ Initializes a new instance of the class.
+
+
+ Returns an object used to create one or more new child nodes at the end of the list of child nodes of the current node.
+ The current node the is positioned on is not the root node or an element node.
+ The does not support editing.
+ An object used to create new child nodes at the end of the list of child nodes of the current node.
+
+
+ Creates a new child node at the end of the list of child nodes of the current node using the XML data string specified.
+ The XML data string for the new child node.
+ The XML data string parameter is .
+ The current node the is positioned on is not the root node or an element node.
+ The does not support editing.
+ The XML data string parameter is not well-formed.
+
+
+ Creates a new child node at the end of the list of child nodes of the current node using the XML contents of the object specified.
+ An object positioned on the XML data for the new child node.
+ The object is in an error state or closed.
+ The object parameter is .
+ The current node the is positioned on is not the root node or an element node.
+ The does not support editing.
+ The XML contents of the object parameter is not well-formed.
+
+
+ Creates a new child node at the end of the list of child nodes of the current node using the nodes in the specified.
+ An object positioned on the node to add as the new child node.
+ The object parameter is .
+ The current node the is positioned on is not the root node or an element node.
+ The does not support editing.
+
+
+ Creates a new child element node at the end of the list of child nodes of the current node using the namespace prefix, local name and namespace URI specified with the value specified.
+ The namespace prefix of the new child element node (if any).
+ The local name of the new child element node (if any).
+ The namespace URI of the new child element node (if any). and are equivalent.
+ The value of the new child element node. If or are passed, an empty element is created.
+ The current node the is positioned on is not the root node or an element node.
+ The does not support editing.
+
+
+ Verifies that the XML data in the conforms to the XML Schema definition language (XSD) schema provided.
+ The containing the schemas used to validate the XML data contained in the .
+ The that receives information about schema validation warnings and errors.
+ A schema validation error occurred, and no was specified to handle validation errors.
+ The is positioned on a node that is not an element, attribute, or the root node or there is not type information to perform validation.
+ The method was called with an parameter when the was not positioned on the root node of the XML data.
+
+ if no schema validation errors occurred; otherwise, .
+
+
+ When overridden in a derived class, creates a new positioned at the same node as this .
+ A new positioned at the same node as this .
+
+
+ Compares the position of the current with the position of the specified.
+ The to compare against.
+ An value representing the comparative position of the two objects.
+
+
+ Compiles a string representing an XPath expression and returns an object.
+ A string representing an XPath expression.
+ The parameter contains an XPath expression that is not valid.
+ The XPath expression is not valid.
+ An object representing the XPath expression.
+
+
+ Creates an attribute node on the current element node using the namespace prefix, local name and namespace URI specified with the value specified.
+ The namespace prefix of the new attribute node (if any).
+ The local name of the new attribute node which cannot or .
+ The namespace URI for the new attribute node (if any).
+ The value of the new attribute node. If or are passed, an empty attribute node is created.
+ The is not positioned on an element node.
+ The does not support editing.
+
+
+ Returns an object used to create new attributes on the current element.
+ The is not positioned on an element node.
+ The does not support editing.
+ An object used to create new attributes on the current element.
+
+
+ Returns a copy of the .
+ An copy of this .
+
+
+ Deletes a range of sibling nodes from the current node to the node specified.
+ An positioned on the last sibling node in the range to delete.
+ The specified is .
+ The does not support editing.
+ The last node to delete specified is not a valid sibling node of the current node.
+
+
+ Deletes the current node and its child nodes.
+ The is positioned on a node that cannot be deleted such as the root node or a namespace node.
+ The does not support editing.
+
+
+ Evaluates the specified XPath expression and returns the typed result.
+ A string representing an XPath expression that can be evaluated.
+ The return type of the XPath expression is a node set.
+ The XPath expression is not valid.
+ The result of the expression (Boolean, number, string, or node set). This maps to , , , or objects respectively.
+
+
+ Evaluates the specified XPath expression and returns the typed result, using the object specified to resolve namespace prefixes in the XPath expression.
+ A string representing an XPath expression that can be evaluated.
+ The object used to resolve namespace prefixes in the XPath expression.
+ The return type of the XPath expression is a node set.
+ The XPath expression is not valid.
+ The result of the expression (Boolean, number, string, or node set). This maps to , , , or objects respectively.
+
+
+ Evaluates the and returns the typed result.
+ An that can be evaluated.
+ The return type of the XPath expression is a node set.
+ The XPath expression is not valid.
+ The result of the expression (Boolean, number, string, or node set). This maps to , , , or objects respectively.
+
+
+ Uses the supplied context to evaluate the , and returns the typed result.
+ An that can be evaluated.
+ An that points to the selected node set that the evaluation is to be performed on.
+ The return type of the XPath expression is a node set.
+ The XPath expression is not valid.
+ The result of the expression (Boolean, number, string, or node set). This maps to , , , or objects respectively.
+
+
+ Gets the value of the attribute with the specified local name and namespace URI.
+ The local name of the attribute. is case-sensitive.
+ The namespace URI of the attribute.
+ A that contains the value of the specified attribute; if a matching attribute is not found, or if the is not positioned on an element node.
+
+
+ Returns the value of the namespace node corresponding to the specified local name.
+ The local name of the namespace node.
+ A that contains the value of the namespace node; if a matching namespace node is not found, or if the is not positioned on an element node.
+
+
+ Returns the in-scope namespaces of the current node.
+ An value specifying the namespaces to return.
+ An collection of namespace names keyed by prefix.
+
+
+ Returns an object used to create a new sibling node after the currently selected node.
+ The position of the does not allow a new sibling node to be inserted after the current node.
+ The does not support editing.
+ An object used to create a new sibling node after the currently selected node.
+
+
+ Creates a new sibling node after the currently selected node using the XML string specified.
+ The XML data string for the new sibling node.
+ The XML string parameter is .
+ The position of the does not allow a new sibling node to be inserted after the current node.
+ The does not support editing.
+ The XML string parameter is not well-formed.
+
+
+ Creates a new sibling node after the currently selected node using the XML contents of the object specified.
+ An object positioned on the XML data for the new sibling node.
+ The object is in an error state or closed.
+ The object parameter is .
+ The position of the does not allow a new sibling node to be inserted after the current node.
+ The does not support editing.
+ The XML contents of the object parameter is not well-formed.
+
+
+ Creates a new sibling node after the currently selected node using the nodes in the object specified.
+ An object positioned on the node to add as the new sibling node.
+ The object parameter is .
+ The position of the does not allow a new sibling node to be inserted after the current node.
+ The does not support editing.
+
+
+ Returns an object used to create a new sibling node before the currently selected node.
+ The position of the does not allow a new sibling node to be inserted before the current node.
+ The does not support editing.
+ An object used to create a new sibling node before the currently selected node.
+
+
+ Creates a new sibling node before the currently selected node using the XML string specified.
+ The XML data string for the new sibling node.
+ The XML string parameter is .
+ The position of the does not allow a new sibling node to be inserted before the current node.
+ The does not support editing.
+ The XML string parameter is not well-formed.
+
+
+ Creates a new sibling node before the currently selected node using the XML contents of the object specified.
+ An object positioned on the XML data for the new sibling node.
+ The object is in an error state or closed.
+ The object parameter is .
+ The position of the does not allow a new sibling node to be inserted before the current node.
+ The does not support editing.
+ The XML contents of the object parameter is not well-formed.
+
+
+ Creates a new sibling node before the currently selected node using the nodes in the specified.
+ An object positioned on the node to add as the new sibling node.
+ The object parameter is .
+ The position of the does not allow a new sibling node to be inserted before the current node.
+ The does not support editing.
+
+
+ Creates a new sibling element after the current node using the namespace prefix, local name and namespace URI specified, with the value specified.
+ The namespace prefix of the new child element (if any).
+ The local name of the new child element (if any).
+ The namespace URI of the new child element (if any). and are equivalent.
+ The value of the new child element. If or are passed, an empty element is created.
+ The position of the does not allow a new sibling node to be inserted after the current node.
+ The does not support editing.
+
+
+ Creates a new sibling element before the current node using the namespace prefix, local name, and namespace URI specified, with the value specified.
+ The namespace prefix of the new child element (if any).
+ The local name of the new child element (if any).
+ The namespace URI of the new child element (if any). and are equivalent.
+ The value of the new child element. If or are passed, an empty element is created.
+ The position of the does not allow a new sibling node to be inserted before the current node.
+ The does not support editing.
+
+
+ Determines whether the specified is a descendant of the current .
+ The to compare to this .
+
+ if the specified is a descendant of the current ; otherwise, .
+
+
+ When overridden in a derived class, determines whether the current is at the same position as the specified .
+ The to compare to this .
+
+ if the two objects have the same position; otherwise, .
+
+
+ Gets the namespace URI for the specified prefix.
+ The prefix whose namespace URI you want to resolve. To match the default namespace, pass .
+ A that contains the namespace URI assigned to the namespace prefix specified; if no namespace URI is assigned to the prefix specified. The returned is atomized.
+
+
+ Gets the prefix declared for the specified namespace URI.
+ The namespace URI to resolve for the prefix.
+ A that contains the namespace prefix assigned to the namespace URI specified; otherwise, if no prefix is assigned to the namespace URI specified. The returned is atomized.
+
+
+ Determines whether the current node matches the specified XPath expression.
+ The XPath expression.
+ The XPath expression cannot be evaluated.
+ The XPath expression is not valid.
+
+ if the current node matches the specified XPath expression; otherwise, .
+
+
+ Determines whether the current node matches the specified .
+ An object containing the compiled XPath expression.
+ The XPath expression cannot be evaluated.
+ The XPath expression is not valid.
+
+ if the current node matches the ; otherwise, .
+
+
+ When overridden in a derived class, moves the to the same position as the specified .
+ The positioned on the node that you want to move to.
+
+ if the is successful moving to the same position as the specified ; otherwise, . If , the position of the is unchanged.
+
+
+ Moves the to the attribute with the matching local name and namespace URI.
+ The local name of the attribute.
+ The namespace URI of the attribute; for an empty namespace.
+
+ if the is successful moving to the attribute; otherwise, . If , the position of the is unchanged.
+
+
+ Moves the to the child node with the local name and namespace URI specified.
+ The local name of the child node to move to.
+ The namespace URI of the child node to move to.
+
+ if the is successful moving to the child node; otherwise, . If , the position of the is unchanged.
+
+
+ Moves the to the child node of the specified.
+ The of the child node to move to.
+
+ if the is successful moving to the child node; otherwise, . If , the position of the is unchanged.
+
+
+ Moves the to the first sibling node of the current node.
+
+ if the is successful moving to the first sibling node of the current node; if there is no first sibling, or if the is currently positioned on an attribute node. If the is already positioned on the first sibling, will return and will not move its position.
+
+ If returns because there is no first sibling, or if is currently positioned on an attribute, the position of the is unchanged.
+
+
+ When overridden in a derived class, moves the to the first attribute of the current node.
+
+ if the is successful moving to the first attribute of the current node; otherwise, . If , the position of the is unchanged.
+
+
+ When overridden in a derived class, moves the to the first child node of the current node.
+
+ if the is successful moving to the first child node of the current node; otherwise, . If , the position of the is unchanged.
+
+
+ Moves the to first namespace node of the current node.
+
+ if the is successful moving to the first namespace node; otherwise, . If , the position of the is unchanged.
+
+
+ When overridden in a derived class, moves the to the first namespace node that matches the specified.
+ An value describing the namespace scope.
+
+ if the is successful moving to the first namespace node; otherwise, . If , the position of the is unchanged.
+
+
+ Moves the to the element with the local name and namespace URI specified in document order.
+ The local name of the element.
+ The namespace URI of the element.
+
+ if the moved successfully; otherwise, .
+
+
+ Moves the to the element with the local name and namespace URI specified, to the boundary specified, in document order.
+ The local name of the element.
+ The namespace URI of the element.
+ The object positioned on the element boundary which the current will not move past while searching for the following element.
+
+ if the moved successfully; otherwise, .
+
+
+ Moves the to the following element of the specified in document order.
+ The of the element. The cannot be or .
+
+ if the moved successfully; otherwise, .
+
+
+ Moves the to the following element of the specified, to the boundary specified, in document order.
+ The of the element. The cannot be or .
+ The object positioned on the element boundary which the current will not move past while searching for the following element.
+
+ if the moved successfully; otherwise, .
+
+
+ When overridden in a derived class, moves to the node that has an attribute of type ID whose value matches the specified .
+ A representing the ID value of the node to which you want to move.
+
+ if the is successful moving; otherwise, . If , the position of the navigator is unchanged.
+
+
+ Moves the to the namespace node with the specified namespace prefix.
+ The namespace prefix of the namespace node.
+
+ if the is successful moving to the specified namespace; if a matching namespace node was not found, or if the is not positioned on an element node. If , the position of the is unchanged.
+
+
+ When overridden in a derived class, moves the to the next sibling node of the current node.
+
+ if the is successful moving to the next sibling node; otherwise, if there are no more siblings or if the is currently positioned on an attribute node. If , the position of the is unchanged.
+
+
+ Moves the to the next sibling node with the local name and namespace URI specified.
+ The local name of the next sibling node to move to.
+ The namespace URI of the next sibling node to move to.
+
+ if the is successful moving to the next sibling node; if there are no more siblings, or if the is currently positioned on an attribute node. If , the position of the is unchanged.
+
+
+ Moves the to the next sibling node of the current node that matches the specified.
+ The of the sibling node to move to.
+
+ if the is successful moving to the next sibling node; otherwise, if there are no more siblings or if the is currently positioned on an attribute node. If , the position of the is unchanged.
+
+
+ When overridden in a derived class, moves the to the next attribute.
+
+ if the is successful moving to the next attribute; if there are no more attributes. If , the position of the is unchanged.
+
+
+ Moves the to the next namespace node.
+
+ if the is successful moving to the next namespace node; otherwise, . If , the position of the is unchanged.
+
+
+ When overridden in a derived class, moves the to the next namespace node matching the specified.
+ An value describing the namespace scope.
+
+ if the is successful moving to the next namespace node; otherwise, . If , the position of the is unchanged.
+
+
+ When overridden in a derived class, moves the to the parent node of the current node.
+
+ if the is successful moving to the parent node of the current node; otherwise, . If , the position of the is unchanged.
+
+
+ When overridden in a derived class, moves the to the previous sibling node of the current node.
+
+ if the is successful moving to the previous sibling node; otherwise, if there is no previous sibling node or if the is currently positioned on an attribute node. If , the position of the is unchanged.
+
+
+ Moves the to the root node that the current node belongs to.
+
+
+ Returns an object used to create a new child node at the beginning of the list of child nodes of the current node.
+ The current node the is positioned on does not allow a new child node to be prepended.
+ The does not support editing.
+ An object used to create a new child node at the beginning of the list of child nodes of the current node.
+
+
+ Creates a new child node at the beginning of the list of child nodes of the current node using the XML string specified.
+ The XML data string for the new child node.
+ The XML string parameter is .
+ The current node the is positioned on does not allow a new child node to be prepended.
+ The does not support editing.
+ The XML string parameter is not well-formed.
+
+
+ Creates a new child node at the beginning of the list of child nodes of the current node using the XML contents of the object specified.
+ An object positioned on the XML data for the new child node.
+ The object is in an error state or closed.
+ The object parameter is .
+ The current node the is positioned on does not allow a new child node to be prepended.
+ The does not support editing.
+ The XML contents of the object parameter is not well-formed.
+
+
+ Creates a new child node at the beginning of the list of child nodes of the current node using the nodes in the object specified.
+ An object positioned on the node to add as the new child node.
+ The object parameter is .
+ The current node the is positioned on does not allow a new child node to be prepended.
+ The does not support editing.
+
+
+ Creates a new child element at the beginning of the list of child nodes of the current node using the namespace prefix, local name, and namespace URI specified with the value specified.
+ The namespace prefix of the new child element (if any).
+ The local name of the new child element (if any).
+ The namespace URI of the new child element (if any). and are equivalent.
+ The value of the new child element. If or are passed, an empty element is created.
+ The current node the is positioned on does not allow a new child node to be prepended.
+ The does not support editing.
+
+
+ Returns an object that contains the current node and its child nodes.
+ The is not positioned on an element node or the root node.
+ An object that contains the current node and its child nodes.
+
+
+ Replaces a range of sibling nodes from the current node to the node specified.
+ An positioned on the last sibling node in the range to replace.
+ The specified is .
+ The does not support editing.
+ The last node to replace specified is not a valid sibling node of the current node.
+ An object used to specify the replacement range.
+
+
+ Replaces the current node with the content of the string specified.
+ The XML data string for the new node.
+ The XML string parameter is .
+ The is not positioned on an element, text, processing instruction, or comment node.
+ The does not support editing.
+ The XML string parameter is not well-formed.
+
+
+ Replaces the current node with the contents of the object specified.
+ An object positioned on the XML data for the new node.
+ The object is in an error state or closed.
+ The object parameter is .
+ The is not positioned on an element, text, processing instruction, or comment node.
+ The does not support editing.
+ The XML contents of the object parameter is not well-formed.
+
+
+ Replaces the current node with the contents of the object specified.
+ An object positioned on the new node.
+ The object parameter is .
+ The is not positioned on an element, text, processing instruction, or comment node.
+ The does not support editing.
+ The XML contents of the object parameter is not well-formed.
+
+
+ Selects a node set, using the specified XPath expression.
+ A representing an XPath expression.
+ The XPath expression contains an error or its return type is not a node set.
+ The XPath expression is not valid.
+ An pointing to the selected node set.
+
+
+ Selects a node set using the specified XPath expression with the object specified to resolve namespace prefixes.
+ A representing an XPath expression.
+ The object used to resolve namespace prefixes.
+ The XPath expression contains an error or its return type is not a node set.
+ The XPath expression is not valid.
+ An that points to the selected node set.
+
+
+ Selects a node set using the specified .
+ An object containing the compiled XPath query.
+ The XPath expression contains an error or its return type is not a node set.
+ The XPath expression is not valid.
+ An that points to the selected node set.
+
+
+ Selects all the ancestor nodes of the current node that have the specified local name and namespace URI.
+ The local name of the ancestor nodes.
+ The namespace URI of the ancestor nodes.
+ To include the context node in the selection, ; otherwise, .
+
+ cannot be passed as a parameter.
+ An that contains the selected nodes. The returned nodes are in reverse document order.
+
+
+ Selects all the ancestor nodes of the current node that have a matching .
+ The of the ancestor nodes.
+ To include the context node in the selection, ; otherwise, .
+ An that contains the selected nodes. The returned nodes are in reverse document order.
+
+
+ Selects all the child nodes of the current node that have the local name and namespace URI specified.
+ The local name of the child nodes.
+ The namespace URI of the child nodes.
+
+ cannot be passed as a parameter.
+ An that contains the selected nodes.
+
+
+ Selects all the child nodes of the current node that have the matching .
+ The of the child nodes.
+ An that contains the selected nodes.
+
+
+ Selects all the descendant nodes of the current node with the local name and namespace URI specified.
+ The local name of the descendant nodes.
+ The namespace URI of the descendant nodes.
+
+ to include the context node in the selection; otherwise, .
+
+ cannot be passed as a parameter.
+ An that contains the selected nodes.
+
+
+ Selects all the descendant nodes of the current node that have a matching .
+ The of the descendant nodes.
+
+ to include the context node in the selection; otherwise, .
+ An that contains the selected nodes.
+
+
+ Selects a single node in the using the specified XPath query.
+ A representing an XPath expression.
+ An error was encountered in the XPath query or the return type of the XPath expression is not a node.
+ The XPath query is not valid.
+ An object that contains the first matching node for the XPath query specified; otherwise, if there are no query results.
+
+
+ Selects a single node in the object using the specified XPath query with the object specified to resolve namespace prefixes.
+ A representing an XPath expression.
+ The object used to resolve namespace prefixes in the XPath query.
+ An error was encountered in the XPath query or the return type of the XPath expression is not a node.
+ The XPath query is not valid.
+ An object that contains the first matching node for the XPath query specified; otherwise if there are no query results.
+
+
+ Selects a single node in the using the specified object.
+ An object containing the compiled XPath query.
+ An error was encountered in the XPath query or the return type of the XPath expression is not a node.
+ The XPath query is not valid.
+ An object that contains the first matching node for the XPath query specified; otherwise if there are no query results.
+
+
+ Sets the typed value of the current node.
+ The new typed value of the node.
+ The does not support the type of the object specified.
+ The value specified cannot be .
+ The is not positioned on an element or attribute node.
+ The does not support editing.
+
+
+ Sets the value of the current node.
+ The new value of the node.
+ The value parameter is .
+ The is positioned on the root node, a namespace node, or the specified value is invalid.
+ The does not support editing.
+
+
+ Creates a new copy of the object.
+ A new copy of the object.
+
+
+ Gets the text value of the current node.
+ A that contains the text value of the current node.
+
+
+ Gets the current node's value as the specified, using the object specified to resolve namespace prefixes.
+ The to return the current node's value as.
+ The object used to resolve namespace prefixes.
+ The current node's value is not in the correct format for the target type.
+ The attempted cast is not valid.
+ The value of the current node as the requested.
+
+
+ Streams the current node and its child nodes to the object specified.
+ The object to stream to.
+
+
+ When overridden in a derived class, gets the base URI for the current node.
+ The location from which the node was loaded, or if there is no value.
+
+
+ Gets a value that indicates whether the can edit the underlying XML data.
+
+ if the can edit the underlying XML data; otherwise, .
+
+
+ Gets a value that indicates whether the current node has any attributes.
+
+ if the current node has attributes; returns if the current node has no attributes, or if the is not positioned on an element node.
+
+
+ Gets a value that indicates whether the current node has any child nodes.
+
+ if the current node has any child nodes; otherwise, .
+
+
+ Gets or sets the markup representing the child nodes of the current node.
+ The property cannot be set.
+ A that contains the markup of the child nodes of the current node.
+
+
+ When overridden in a derived class, gets a value that indicates whether the current node is an empty element without an end element tag.
+
+ if the current node is an empty element; otherwise, .
+
+
+ Gets a value that indicates if the current node represents an XPath node.
+ Always returns .
+
+
+ When overridden in a derived class, gets the of the current node without any namespace prefix.
+ A that contains the local name of the current node, or if the current node does not have a name (for example, text or comment nodes).
+
+
+ When overridden in a derived class, gets the qualified name of the current node.
+ A that contains the qualified of the current node, or if the current node does not have a name (for example, text or comment nodes).
+
+
+ When overridden in a derived class, gets the namespace URI of the current node.
+ A that contains the namespace URI of the current node, or if the current node has no namespace URI.
+
+
+ When overridden in a derived class, gets the of the .
+ An object enabling you to get the atomized version of a within the XML document.
+
+
+ Gets an used for equality comparison of objects.
+ An used for equality comparison of objects.
+
+
+ When overridden in a derived class, gets the of the current node.
+ One of the values representing the current node.
+
+
+ Gets or sets the markup representing the opening and closing tags of the current node and its child nodes.
+ A that contains the markup representing the opening and closing tags of the current node and its child nodes.
+
+
+ When overridden in a derived class, gets the namespace prefix associated with the current node.
+ A that contains the namespace prefix associated with the current node.
+
+
+ Gets the schema information that has been assigned to the current node as a result of schema validation.
+ An object that contains the schema information for the current node.
+
+
+ Gets the current node as a boxed object of the most appropriate .NET type.
+ The current node as a boxed object of the most appropriate .NET type.
+
+
+ Used by implementations which provide a "virtualized" XML view over a store, to provide access to underlying objects.
+ The default is .
+
+
+ Gets the current node's value as a .
+ The current node's string value cannot be converted to a .
+ The attempted cast to is not valid.
+ The current node's value as a .
+
+
+ Gets the current node's value as a .
+ The current node's string value cannot be converted to a .
+ The attempted cast to is not valid.
+ The current node's value as a .
+
+
+ Gets the current node's value as a .
+ The current node's string value cannot be converted to a .
+ The attempted cast to is not valid.
+ The current node's value as a .
+
+
+ Gets the current node's value as an .
+ The current node's string value cannot be converted to a .
+ The attempted cast to is not valid.
+ The current node's value as an .
+
+
+ Gets the current node's value as an .
+ The current node's string value cannot be converted to a .
+ The attempted cast to is not valid.
+ The current node's value as an .
+
+
+ Gets the .NET of the current node.
+ The .NET of the current node. The default value is .
+
+
+ Gets the xml:lang scope for the current node.
+ A that contains the value of the xml:lang scope, or if the current node has no xml:lang scope value to return.
+
+
+ Gets the information for the current node.
+ An object; default is .
+
+
+ Provides an iterator over a selected set of nodes.
+
+
+ Initializes a new instance of the class.
+
+
+ When overridden in a derived class, returns a clone of this object.
+ A new object clone of this object.
+
+
+ Returns an object to iterate through the selected node set.
+ An object to iterate through the selected node set.
+
+
+ When overridden in a derived class, moves the object returned by the property to the next node in the selected node set.
+
+ if the object moved to the next node; if there are no more selected nodes.
+
+
+ Creates a new object that is a copy of the current instance.
+ A new object that is a copy of this instance.
+
+
+ Gets the index of the last node in the selected set of nodes.
+ The index of the last node in the selected set of nodes, or 0 if there are no selected nodes.
+
+
+ When overridden in a derived class, gets the object for this , positioned on the current context node.
+ An object positioned on the context node from which the node set was selected. The method must be called to move the to the first node in the selected set.
+
+
+ When overridden in a derived class, gets the index of the current position in the selected set of nodes.
+ The index of the current position.
+
+
+ Defines the XPath node types that can be returned from the class.
+
+
+ Any of the node types.
+
+
+ An attribute, such as id='123'.
+
+
+ A comment, such as <!-- my comment -->.
+
+
+ An element, such as <element>.
+
+
+ A namespace, such as xmlns="namespace".
+
+
+ A processing instruction, such as <?pi test?>. This does not include XML declarations, which are not visible to the class.
+
+
+ The root node of the XML document or node tree.
+
+
+ A node with white space characters and xml:space set to preserve.
+
+
+ The text content of a node. Equivalent to the Document Object Model (DOM) Text and CDATA node types. Contains at least one character.
+
+
+ A node with only white space characters and no significant white space. White space characters are #x20, #x9, #xD, or #xA.
+
+
+ Specifies the return type of the XPath expression.
+
+
+ Any of the XPath node types.
+
+
+ A or value.
+
+
+ The expression does not evaluate to the correct XPath type.
+
+
+ A tree fragment.
+
+
+ A node collection.
+
+
+ A numeric value.
+
+
+ A value.
+
+
+ Provides an interface to a given function defined in the Extensible Stylesheet Language for Transformations (XSLT) style sheet during runtime execution.
+
+
+ Provides the method to invoke the function with the given arguments in the given context.
+ The XSLT context for the function call.
+ The arguments of the function call. Each argument is an element in the array.
+ The context node for the function call.
+ An representing the return value of the function.
+
+
+ Gets the supplied XML Path Language (XPath) types for the function's argument list. This information can be used to discover the signature of the function which allows you to differentiate between overloaded functions.
+ An array of representing the types for the function's argument list.
+
+
+ Gets the maximum number of arguments for the function. This enables the user to differentiate between overloaded functions.
+ The maximum number of arguments for the function.
+
+
+ Gets the minimum number of arguments for the function. This enables the user to differentiate between overloaded functions.
+ The minimum number of arguments for the function.
+
+
+ Gets the representing the XPath type returned by the function.
+ An representing the XPath type returned by the function.
+
+
+ Provides an interface to a given variable that is defined in the style sheet during runtime execution.
+
+
+ Evaluates the variable at runtime and returns an object that represents the value of the variable.
+ An representing the execution context of the variable.
+ An representing the value of the variable. Possible return types include number, string, Boolean, document fragment, or node set.
+
+
+ Gets a value indicating whether the variable is local.
+
+ if the variable is a local variable in the current context; otherwise, .
+
+
+ Gets a value indicating whether the variable is an Extensible Stylesheet Language Transformations (XSLT) parameter. This can be a parameter to a style sheet or a template.
+
+ if the variable is an XSLT parameter; otherwise, .
+
+
+ Gets the representing the XML Path Language (XPath) type of the variable.
+ The representing the XPath type of the variable.
+
+
+ Transforms XML data using an XSLT style sheet.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified debug setting.
+
+ to generate debug information; otherwise . Setting this to enables you to debug the style sheet with the Microsoft Visual Studio Debugger.
+
+
+ Loads a method from a style sheet compiled using the utility.
+ A object representing the compiler-generated execute method of the compiled style sheet.
+ A byte array of serialized data structures in the staticData field of the compiled style sheet as generated by the method.
+ An array of types stored in the compiler-generated ebTypes field of the compiled style sheet.
+
+
+ Loads and compiles the style sheet located at the specified URI.
+ The URI of the style sheet.
+ The value is .
+ The style sheet contains an error.
+ The style sheet cannot be found.
+ The value includes a filename or directory that cannot be found.
+ The value cannot be resolved.
+
+ -or-
+
+ An error occurred while processing the request.
+
+ is not a valid URI.
+ There was a parsing error loading the style sheet.
+
+
+ Loads and compiles the XSLT style sheet specified by the URI. The resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.
+ The URI of the style sheet.
+ The to apply to the style sheet. If this is , the setting is applied.
+ The used to resolve the style sheet URI and any style sheets referenced in XSLT import and include elements.
+ The or value is .
+ The style sheet contains an error.
+ The style sheet cannot be found.
+ The value includes a filename or directory that cannot be found.
+ The value cannot be resolved.
+
+ -or-
+
+ An error occurred while processing the request.
+
+ is not a valid URI.
+ There was a parsing error loading the style sheet.
+
+
+ Loads the compiled style sheet that was created using the XSLT Compiler (xsltc.exe).
+ The name of the class that contains the compiled style sheet.
+
+ This is usually the name of the style sheet. Unless otherwise specified, the xsltc.exe tool uses the name of the style sheet for the class and assembly names.
+
+
+ Compiles the style sheet contained in the .
+ An containing the style sheet.
+ The value is .
+ The style sheet contains an error.
+
+
+ Compiles the XSLT style sheet contained in the . The resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.
+ The containing the style sheet.
+ The to apply to the style sheet. If this is , the setting is applied.
+ The used to resolve any style sheets referenced in XSLT import and include elements. If this is , external resources are not resolved.
+ The value is .
+ The style sheet contains an error.
+
+
+ Compiles the style sheet contained in the object.
+ An object implementing the interface. In the Microsoft .NET Framework, this can be either an (typically an ), or an containing the style sheet.
+ The value is .
+ The style sheet contains an error.
+
+
+ Compiles the XSLT style sheet contained in the . The resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.
+ An object implementing the interface. In the Microsoft .NET Framework, this can be either an (typically an ), or an containing the style sheet.
+ The to apply to the style sheet. If this is , the setting is applied.
+ The used to resolve any style sheets referenced in XSLT import and include elements. If this is , external resources are not resolved.
+ The value is .
+ The style sheet contains an error.
+
+
+ Executes the transform using the input document specified by the URI and outputs the results to a file.
+ The URI of the input document.
+ The URI of the output file.
+ The or value is .
+ There was an error executing the XSLT transform.
+ The input document cannot be found.
+ The or value includes a filename or directory cannot be found.
+ The or value cannot be resolved.
+
+ -or-
+
+ An error occurred while processing the request.
+
+ or is not a valid URI.
+ There was a parsing error loading the input document.
+
+
+ Executes the transform using the input document specified by the URI and outputs the results to an .
+ The URI of the input document.
+ The to which you want to output.
+
+ If the style sheet contains an xsl:output element, you should create the using the object returned from the property. This ensures that the has the correct output settings.
+ The or value is .
+ There was an error executing the XSLT transform.
+ The value includes a filename or directory cannot be found.
+ The value cannot be resolved.
+
+ -or-
+
+ An error occurred while processing the request.
+
+ is not a valid URI.
+ There was a parsing error loading the input document.
+
+
+ Executes the transform using the input document specified by the URI and outputs the results to stream. The provides additional run-time arguments.
+ The URI of the input document.
+ An containing the namespace-qualified arguments used as input to the transform. This value can be .
+ The stream to which you want to output.
+ The or value is .
+ There was an error executing the XSLT transform.
+ The value includes a filename or directory cannot be found.
+ The value cannot be resolved.
+
+ -or-
+
+ An error occurred while processing the request.
+
+ is not a valid URI.
+ There was a parsing error loading the input document.
+
+
+ Executes the transform using the input document specified by the URI and outputs the results to a .
+ The URI of the input document.
+ An containing the namespace-qualified arguments used as input to the transform. This value can be .
+ The to which you want to output.
+ The or value is .
+ There was an error executing the XSLT transform.
+ The value includes a filename or directory cannot be found.
+ The value cannot be resolved.
+
+ -or-
+
+ An error occurred while processing the request.
+
+ is not a valid URI.
+ There was a parsing error loading the input document.
+
+
+ Executes the transform using the input document specified by the URI and outputs the results to an . The provides additional run-time arguments.
+ The URI of the input document.
+ An containing the namespace-qualified arguments used as input to the transform. This value can be .
+ The to which you want to output.
+
+ If the style sheet contains an xsl:output element, you should create the using the object returned from the property. This ensures that the has the correct output settings.
+ The or value is .
+ There was an error executing the XSLT transform.
+ The value includes a filename or directory cannot be found.
+ The value cannot be resolved.
+
+ -or-
+
+ An error occurred while processing the request.
+
+ is not a valid URI.
+ There was a parsing error loading the input document.
+
+
+ Executes the transform using the input document specified by the object and outputs the results to an .
+ The containing the input document.
+ The to which you want to output.
+
+ If the style sheet contains an xsl:output element, you should create the using the object returned from the property. This ensures that the has the correct output settings.
+ The or value is .
+ There was an error executing the XSLT transform.
+
+
+ Executes the transform using the input document specified by the object and outputs the results to a stream. The provides additional run-time arguments.
+ An containing the input document.
+ An containing the namespace-qualified arguments used as input to the transform. This value can be .
+ The stream to which you want to output.
+ The or value is .
+ There was an error executing the XSLT transform.
+
+
+ Executes the transform using the input document specified by the object and outputs the results to a . The provides additional run-time arguments.
+ An containing the input document.
+ An containing the namespace-qualified arguments used as input to the transform. This value can be .
+ The to which you want to output.
+ The or value is .
+ There was an error executing the XSLT transform.
+
+
+ Executes the transform using the input document specified by the object and outputs the results to an . The provides additional run-time arguments.
+ An containing the input document.
+ An containing the namespace-qualified arguments used as input to the transform. This value can be .
+ The to which you want to output.
+
+ If the style sheet contains an xsl:output element, you should create the using the object returned from the property. This ensures that the has the correct output settings.
+ The or value is .
+ There was an error executing the XSLT transform.
+
+
+ Executes the transform using the input document specified by the object and outputs the results to an . The provides additional run-time arguments and the XmlResolver resolves the XSLT document() function.
+ An containing the input document.
+ An containing the namespace-qualified arguments used as input to the transform. This value can be .
+ The to which you want to output.
+
+ If the style sheet contains an xsl:output element, you should create the using the object returned from the property. This ensures that the has the correct output settings.
+ The used to resolve the XSLT document() function. If this is , the document() function is not resolved.
+ The or value is .
+ There was an error executing the XSLT transform.
+
+
+ Executes the transform using the input document specified by the object and outputs the results to an .
+ An object implementing the interface. In the Microsoft .NET Framework, this can be either an (typically an ), or an containing the data to be transformed.
+ The to which you want to output.
+
+ If the style sheet contains an xsl:output element, you should create the using the object returned from the property. This ensures that the has the correct output settings.
+ The or value is .
+ There was an error executing the XSLT transform.
+
+
+ Executes the transform using the input document specified by the object and outputs the results to a stream. The provides additional runtime arguments.
+ An object implementing the interface. In the Microsoft .NET Framework, this can be either an (typically an ), or an containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transform. This value can be .
+ The stream to which you want to output.
+ The or value is .
+ There was an error executing the XSLT transform.
+
+
+ Executes the transform using the input document specified by the object and outputs the results to an . The provides additional run-time arguments.
+ An object implementing the interface. In the Microsoft .NET Framework, this can be either an (typically an ), or an containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transform. This value can be .
+ The to which you want to output.
+ The or value is .
+ There was an error executing the XSLT transform.
+
+
+ Executes the transform using the input document specified by the object and outputs the results to an . The provides additional run-time arguments.
+ An object implementing the interface. In the Microsoft .NET Framework, this can be either an (typically an ), or an containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transform. This value can be .
+ The to which you want to output.
+
+ If the style sheet contains an xsl:output element, you should create the using the object returned from the property. This ensures that the has the correct output settings.
+ The or value is .
+ There was an error executing the XSLT transform.
+
+
+ Executes the transform by using the input document that is specified by the object and outputs the results to an . The provides additional run-time arguments and the resolves the XSLT function.
+ The document to transform that is specified by the object.
+ Argument list as .
+ The to which you want to output.
+
+ If the style sheet contains an element, you should create the by using the object that is returned from the property. This ensures that the has the correct output settings.
+ The used to resolve the XSLT function. If this is , the function is not resolved.
+
+
+ Gets an object that contains the output information derived from the xsl:output element of the style sheet.
+ A read-only object that contains the output information derived from the xsl:output element of the style sheet. This value can be .
+
+
+ Contains a variable number of arguments which are either XSLT parameters or extension objects.
+
+
+ Occurs when a message is specified in the style sheet by the xsl:message element.
+
+
+ Implements a new instance of the .
+
+
+ Adds a new object to the and associates it with the namespace URI.
+ The namespace URI to associate with the object. To use the default namespace, specify an empty string.
+ The object to add to the list.
+ The is either or http://www.w3.org/1999/XSL/Transform
+
+ The already has an extension object associated with it.
+ The caller does not have sufficient permissions to call this method.
+
+
+ Adds a parameter to the and associates it with the namespace qualified name.
+ The name to associate with the parameter.
+ The namespace URI to associate with the parameter. To use the default namespace, specify an empty string.
+ The parameter value or object to add to the list.
+ The is either or http://www.w3.org/1999/XSL/Transform.
+
+ The is not a valid name according to the W3C XML specification.
+
+ The already has a parameter associated with it.
+
+
+ Removes all parameters and extension objects from the .
+
+
+ Gets the object associated with the given namespace.
+ The namespace URI of the object.
+ The namespace URI object or if one was not found.
+
+
+ Gets the parameter associated with the namespace qualified name.
+ The name of the parameter. does not check to ensure the name passed is a valid local name; however, the name cannot be .
+ The namespace URI associated with the parameter.
+ The parameter object or if one was not found.
+
+
+ Removes the object with the namespace URI from the .
+ The namespace URI associated with the object to remove.
+ The object with the namespace URI or if one was not found.
+
+
+ Removes the parameter from the .
+ The name of the parameter to remove. does not check to ensure the name passed is a valid local name; however, the name cannot be .
+ The namespace URI of the parameter to remove.
+ The parameter object or if one was not found.
+
+
+ The exception that is thrown by the Load method when an error is found in the XSLT style sheet.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class.
+ The that threw the .
+ The location path of the style sheet.
+ The line number indicating where the error occurred in the style sheet.
+ The line position indicating where the error occurred in the style sheet.
+
+
+ Initializes a new instance of the class using the information in the and objects.
+ The object containing all the properties of an .
+ The object containing the context information.
+
+
+ Initializes a new instance of the class with a specified error message.
+ The message that describes the error.
+
+
+ Initializes a new instance of the class specified error message and a reference to the inner exception that is the cause of this exception.
+ The message that describes the error.
+ The exception that is the cause of the current exception, or if no inner exception is specified.
+
+
+ Streams all the properties into the class for the given .
+ The object.
+ The object.
+
+
+ Encapsulates the current execution context of the Extensible Stylesheet Language for Transformations (XSLT) processor allowing XML Path Language (XPath) to resolve functions, parameters, and namespaces within XPath expressions.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class with the specified .
+ The to use.
+
+
+ When overridden in a derived class, compares the base Uniform Resource Identifiers (URIs) of two documents based upon the order the documents were loaded by the XSLT processor (that is, the class).
+ The base URI of the first document to compare.
+ The base URI of the second document to compare.
+ An integer value describing the relative order of the two base URIs: -1 if occurs before ; 0 if the two base URIs are identical; and 1 if occurs after .
+
+
+ When overridden in a derived class, evaluates whether to preserve white space nodes or strip them for the given context.
+ The white space node that is to be preserved or stripped in the current context.
+
+ if the white space is to be preserved; if the white space is to be stripped.
+
+
+ When overridden in a derived class, resolves a function reference and returns an representing the function. The is used at execution time to get the return value of the function.
+ The prefix of the function as it appears in the XPath expression.
+ The name of the function.
+ An array of argument types for the function being resolved. This allows you to select between methods with the same name (for example, overloaded methods).
+ An representing the function.
+
+
+ When overridden in a derived class, resolves a variable reference and returns an representing the variable.
+ The prefix of the variable as it appears in the XPath expression.
+ The name of the variable.
+ An representing the variable at runtime.
+
+
+ When overridden in a derived class, gets a value indicating whether to include white space nodes in the output.
+
+ to check white space nodes in the source document for inclusion in the output; to not evaluate white space nodes. The default is .
+
+
+ The exception that is thrown when an error occurs while processing an XSLT transformation.
+
+
+ Initializes a new instance of the class.
+
+
+ Initializes a new instance of the class using the information in the and objects.
+ The object containing all the properties of an .
+ The object.
+
+
+ Initializes a new instance of the class with a specified error message.
+ The message that describes the error.
+
+
+ Initializes a new instance of the class.
+ The description of the error condition.
+ The which threw the , if any. This value can be .
+
+
+ Streams all the properties into the class for the given .
+ The object.
+ The object.
+
+
+ Gets the line number indicating where the error occurred in the style sheet.
+ The line number indicating where the error occurred in the style sheet.
+
+
+ Gets the line position indicating where the error occurred in the style sheet.
+ The line position indicating where the error occurred in the style sheet.
+
+
+ Gets the formatted error message describing the current exception.
+ The formatted error message describing the current exception.
+
+
+ Gets the location path of the style sheet.
+ The location path of the style sheet.
+
+
+ Provides data for the event.
+
+
+ Initializes a new instance of the class.
+
+
+ Gets the contents of the xsl:message element.
+ The contents of the xsl:message element.
+
+
+ Represents the method that will handle the event.
+ The source of the event.
+ The containing the event data.
+
+
+ Transforms XML data using an Extensible Stylesheet Language for Transformations (XSLT) style sheet.
+
+
+ Initializes a new instance of the class.
+
+
+ Loads the XSLT style sheet specified by a URL.
+ The URL that specifies the XSLT style sheet to load.
+ The loaded resource is not a valid style sheet.
+ The style sheet contains embedded script, and the caller does not have permission.
+
+
+ Loads the XSLT style sheet specified by a URL.
+ The URL that specifies the XSLT style sheet to load.
+ The to use to load the style sheet and any style sheet(s) referenced in xsl:import and xsl:include elements.
+
+ If this is , a default with no user credentials is used to open the style sheet. The default is not used to resolve any external resources in the style sheet, so xsl:import and xsl:include elements are not resolved.
+
+ The is not cached after the method completes.
+ The loaded resource is not a valid style sheet.
+ The style sheet contains embedded script, and the caller does not have permission.
+
+
+ Loads the XSLT style sheet contained in the .
+ An object that contains the XSLT style sheet.
+ The current node does not conform to a valid style sheet.
+ The style sheet contains embedded scripts, and the caller does not have permission.
+
+
+ Loads the XSLT style sheet contained in the .
+ An object that contains the XSLT style sheet.
+ The used to load any style sheets referenced in xsl:import and xsl:include elements. If this is , external resources are not resolved.
+
+ The is not cached after the method completes.
+ The current node does not conform to a valid style sheet.
+ The style sheet contains embedded scripts, and the caller does not have permission.
+
+
+ Loads the XSLT style sheet contained in the .
+ An object implementing the interface. In the .NET Framework, this can be either an (typically an ), or an containing the XSLT style sheet.
+ The loaded resource is not a valid style sheet.
+ The style sheet contains embedded scripts, and the caller does not have permission.
+
+
+ Loads the XSLT style sheet contained in the .
+ An object implementing the interface. In the .NET Framework, this can be either an (typically an ), or an containing the XSLT style sheet.
+ The used to load any style sheets referenced in xsl:import and xsl:include elements. If this is , external resources are not resolved.
+
+ The is not cached after the method completes.
+ The loaded resource is not a valid style sheet.
+ The style sheet contains embedded scripts, and the caller does not have permission.
+
+
+ Loads the XSLT style sheet contained in the .
+ An object that contains the XSLT style sheet.
+ The current node does not conform to a valid style sheet.
+ The style sheet contains embedded scripts, and the caller does not have permission.
+
+
+ Loads the XSLT style sheet contained in the .
+ An object that contains the XSLT style sheet.
+ The used to load any style sheets referenced in xsl:import and xsl:include elements. If this is , external resources are not resolved.
+
+ The is not cached after the method completes.
+ The current node does not conform to a valid style sheet.
+ The style sheet contains embedded scripts, and the caller does not have permission.
+
+
+ Transforms the XML data in the input file and outputs the result to an output file.
+ The URL of the source document to be transformed.
+ The URL of the output file.
+
+
+ Transforms the XML data in the input file and outputs the result to an output file.
+ The URL of the source document to be transformed.
+ The URL of the output file.
+ The used to resolve the XSLT document() function. If this is , the document() function is not resolved.
+
+ The is not cached after the method completes.
+
+
+ Transforms the XML data in the using the specified and outputs the result to an .
+ An object implementing the interface. In the .NET Framework, this can be either an (typically an ), or an containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ An containing the results of the transformation.
+
+
+ Transforms the XML data in the using the specified and outputs the result to a .
+ An object implementing the interface. In the .NET Framework, this can be either an (typically an ), or an containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ The stream to which you want to output.
+ There was an error processing the XSLT transformation.
+
+ Note: This is a change in behavior from earlier versions. An is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
+
+
+ Transforms the XML data in the using the specified and outputs the result to a .
+ An object implementing the interface. In the .NET Framework, this can be either an (typically an ), or an containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ The stream to which you want to output.
+ The used to resolve the XSLT document() function. If this is , the document() function is not resolved.
+
+ The is not cached after the method completes.
+ There was an error processing the XSLT transformation.
+
+ Note: This is a change in behavior from earlier versions. An is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
+
+
+ Transforms the XML data in the using the specified and outputs the result to a .
+ An object implementing the interface. In the .NET Framework, this can be either an (typically an ), or an containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ The to which you want to output.
+ There was an error processing the XSLT transformation.
+
+ Note: This is a change in behavior from earlier versions. An is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
+
+
+ Transforms the XML data in the using the specified and outputs the result to a .
+ An object implementing the interface. In the .NET Framework, this can be either an (typically an ), or an containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ The to which you want to output.
+ The used to resolve the XSLT document() function. If this is , the document() function is not resolved.
+
+ The is not cached after the method completes.
+ There was an error processing the XSLT transformation.
+
+ Note: This is a change in behavior from earlier versions. An is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
+
+
+ Transforms the XML data in the using the specified and outputs the result to an .
+ An object implementing the interface. In the .NET Framework, this can be either an (typically an ), or an containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ The used to resolve the XSLT document() function. If this is , the document() function is not resolved.
+
+ The is not cached after the method completes.
+ An containing the results of the transformation.
+
+
+ Transforms the XML data in the using the specified and outputs the result to an .
+ An object implementing the interface. In the .NET Framework, this can be either an (typically an ), or an containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ The to which you want to output.
+ There was an error processing the XSLT transformation.
+
+ Note: This is a change in behavior from earlier versions. An is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
+
+
+ Transforms the XML data in the using the specified and outputs the result to an .
+ An object implementing the interface. In the .NET Framework, this can be either an (typically an ), or an containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ The to which you want to output.
+ The used to resolve the XSLT document() function. If this is , the document() function is not resolved.
+
+ The is not cached after the method completes.
+ There was an error processing the XSLT transformation.
+
+ Note: This is a change in behavior from earlier versions. An is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
+
+
+ Transforms the XML data in the using the specified and outputs the result to an .
+ An containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ There was an error processing the XSLT transformation.
+
+ Note: This is a change in behavior from earlier versions. An is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
+ An containing the results of the transformation.
+
+
+ Transforms the XML data in the using the specified and outputs the result to a .
+ An containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ The stream to which you want to output.
+ There was an error processing the XSLT transformation.
+
+ Note: This is a change in behavior from earlier versions. An is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
+
+
+ Transforms the XML data in the using the specified and outputs the result to a .
+ An containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ The stream to which you want to output.
+ The used to resolve the XSLT document() function. If this is , the document() function is not resolved.
+
+ The is not cached after the method completes.
+ There was an error processing the XSLT transformation.
+
+ Note: This is a change in behavior from earlier versions. An is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
+
+
+ Transforms the XML data in the using the specified and outputs the result to a .
+ An containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ The to which you want to output.
+ There was an error processing the XSLT transformation.
+
+ Note: This is a change in behavior from earlier versions. An is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
+
+
+ Transforms the XML data in the using the specified and outputs the result to a .
+ An containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ The to which you want to output.
+ The used to resolve the XSLT document() function. If this is , the document() function is not resolved.
+
+ The is not cached after the method completes.
+ There was an error processing the XSLT transformation.
+
+ Note: This is a change in behavior from earlier versions. An is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
+
+
+ Transforms the XML data in the using the specified and outputs the result to an .
+ An containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ The used to resolve the XSLT document() function. If this is , the document() function is not resolved.
+
+ The is not cached after the method completes.
+ There was an error processing the XSLT transformation.
+
+ Note: This is a change in behavior from earlier versions. An is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
+ An containing the results of the transformation.
+
+
+ Transforms the XML data in the using the specified args and outputs the result to an .
+ An containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ The to which you want to output.
+ There was an error processing the XSLT transformation.
+
+ Note: This is a change in behavior from earlier versions. An is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
+
+
+ Transforms the XML data in the using the specified args and outputs the result to an .
+ An containing the data to be transformed.
+ An containing the namespace-qualified arguments used as input to the transformation.
+ The to which you want to output.
+ The used to resolve the XSLT document() function. If this is , the document() function is not resolved.
+
+ The is not cached after the method completes.
+ There was an error processing the XSLT transformation.
+
+ Note: This is a change in behavior from earlier versions. An is thrown if you are using Microsoft .NET Framework version 1.1 or earlier.
+
+
+ Sets the used to resolve external resources when the method is called.
+ The to use during transformation. If set to , the XSLT document() function is not resolved.
+
+
+ Specifies the XSLT features to support during execution of the XSLT style sheet.
+
+
+ Initializes a new instance of the class with default settings.
+
+
+ Initializes a new instance of the class with the specified settings.
+
+ to enable support for the XSLT document() function; otherwise, .
+
+ to enable support for embedded scripts blocks; otherwise, .
+
+
+ Gets an object with default settings. Support for the XSLT document() function and embedded script blocks is disabled.
+ An object with the and properties set to .
+
+
+ Gets or sets a value indicating whether to enable support for the XSLT document() function.
+
+ to support the XSLT document() function; otherwise, . The default is .
+
+
+ Gets or sets a value indicating whether to enable support for embedded script blocks.
+
+ to support script blocks in XSLT style sheets; otherwise, . The default is .
+
+
+ Gets an object that enables support for the XSLT document() function and embedded script blocks.
+ An object with the and properties set to .
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.Serialization.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.Serialization.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f22800c28dfa171323c230b376b3863c29cfe6c4
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.Serialization.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.XPath.XDocument.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.XPath.XDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c666e9e9fad9622f550fb223085a9f2bd391e898
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.XPath.XDocument.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.XPath.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.XPath.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b5749abc8f912ed5e6efc814320ee2bed93847c8
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.XPath.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.XmlDocument.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.XmlDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d0186adf9ffb6c683bfdc954a435b5cd6094a38c
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/System.Xml.XmlDocument.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/WindowsBase.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/WindowsBase.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0e1faa77c160e3338868efd17af7bfccfe159d5e
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/WindowsBase.dll differ
diff --git a/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/netstandard.dll b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/netstandard.dll
new file mode 100644
index 0000000000000000000000000000000000000000..01268817b5b8e1ae3450d66719fd510f5ea0555b
Binary files /dev/null and b/dotnet/packs/Microsoft.NETCore.App.Ref/8.0.8/ref/net8.0/netstandard.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/data/FrameworkList.xml b/dotnet/packs/NETStandard.Library.Ref/2.1.0/data/FrameworkList.xml
new file mode 100644
index 0000000000000000000000000000000000000000..de2bcee2753a84cfce7bdf3c8adf9275c6aa4799
--- /dev/null
+++ b/dotnet/packs/NETStandard.Library.Ref/2.1.0/data/FrameworkList.xml
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/data/PackageOverrides.txt b/dotnet/packs/NETStandard.Library.Ref/2.1.0/data/PackageOverrides.txt
new file mode 100644
index 0000000000000000000000000000000000000000..05520ead522182298aa3ae3062b5b7ca5090c5f2
--- /dev/null
+++ b/dotnet/packs/NETStandard.Library.Ref/2.1.0/data/PackageOverrides.txt
@@ -0,0 +1,95 @@
+Microsoft.Win32.Primitives|4.3.0
+System.AppContext|4.3.0
+System.Collections|4.3.0
+System.Collections.Concurrent|4.3.0
+System.Collections.Immutable|1.4.0
+System.Collections.NonGeneric|4.3.0
+System.Collections.Specialized|4.3.0
+System.ComponentModel|4.3.0
+System.ComponentModel.EventBasedAsync|4.3.0
+System.ComponentModel.Primitives|4.3.0
+System.ComponentModel.TypeConverter|4.3.0
+System.Console|4.3.0
+System.Data.Common|4.3.0
+System.Diagnostics.Contracts|4.3.0
+System.Diagnostics.Debug|4.3.0
+System.Diagnostics.FileVersionInfo|4.3.0
+System.Diagnostics.Process|4.3.0
+System.Diagnostics.StackTrace|4.3.0
+System.Diagnostics.TextWriterTraceListener|4.3.0
+System.Diagnostics.Tools|4.3.0
+System.Diagnostics.TraceSource|4.3.0
+System.Diagnostics.Tracing|4.3.0
+System.Dynamic.Runtime|4.3.0
+System.Globalization|4.3.0
+System.Globalization.Calendars|4.3.0
+System.Globalization.Extensions|4.3.0
+System.IO|4.3.0
+System.IO.Compression|4.3.0
+System.IO.Compression.ZipFile|4.3.0
+System.IO.FileSystem|4.3.0
+System.IO.FileSystem.DriveInfo|4.3.0
+System.IO.FileSystem.Primitives|4.3.0
+System.IO.FileSystem.Watcher|4.3.0
+System.IO.IsolatedStorage|4.3.0
+System.IO.MemoryMappedFiles|4.3.0
+System.IO.Pipes|4.3.0
+System.IO.UnmanagedMemoryStream|4.3.0
+System.Linq|4.3.0
+System.Linq.Expressions|4.3.0
+System.Linq.Queryable|4.3.0
+System.Net.Http|4.3.0
+System.Net.NameResolution|4.3.0
+System.Net.Primitives|4.3.0
+System.Net.Requests|4.3.0
+System.Net.Security|4.3.0
+System.Net.Sockets|4.3.0
+System.Net.WebHeaderCollection|4.3.0
+System.ObjectModel|4.3.0
+System.Private.DataContractSerialization|4.3.0
+System.Reflection|4.3.0
+System.Reflection.Emit|4.3.0
+System.Reflection.Emit.ILGeneration|4.3.0
+System.Reflection.Emit.Lightweight|4.3.0
+System.Reflection.Extensions|4.3.0
+System.Reflection.Primitives|4.3.0
+System.Reflection.TypeExtensions|4.3.0
+System.Resources.ResourceManager|4.3.0
+System.Runtime|4.3.0
+System.Runtime.Extensions|4.3.0
+System.Runtime.Handles|4.3.0
+System.Runtime.InteropServices|4.3.0
+System.Runtime.InteropServices.RuntimeInformation|4.3.0
+System.Runtime.Loader|4.3.0
+System.Runtime.Numerics|4.3.0
+System.Runtime.Serialization.Formatters|4.3.0
+System.Runtime.Serialization.Json|4.3.0
+System.Runtime.Serialization.Primitives|4.3.0
+System.Security.AccessControl|4.4.0
+System.Security.Claims|4.3.0
+System.Security.Cryptography.Algorithms|4.3.0
+System.Security.Cryptography.Csp|4.3.0
+System.Security.Cryptography.Encoding|4.3.0
+System.Security.Cryptography.Primitives|4.3.0
+System.Security.Cryptography.X509Certificates|4.3.0
+System.Security.Cryptography.Xml|4.4.0
+System.Security.Principal|4.3.0
+System.Security.Principal.Windows|4.4.0
+System.Text.Encoding|4.3.0
+System.Text.Encoding.Extensions|4.3.0
+System.Text.RegularExpressions|4.3.0
+System.Threading|4.3.0
+System.Threading.Overlapped|4.3.0
+System.Threading.Tasks|4.3.0
+System.Threading.Tasks.Extensions|4.3.0
+System.Threading.Tasks.Parallel|4.3.0
+System.Threading.Thread|4.3.0
+System.Threading.ThreadPool|4.3.0
+System.Threading.Timer|4.3.0
+System.ValueTuple|4.3.0
+System.Xml.ReaderWriter|4.3.0
+System.Xml.XDocument|4.3.0
+System.Xml.XmlDocument|4.3.0
+System.Xml.XmlSerializer|4.3.0
+System.Xml.XPath|4.3.0
+System.Xml.XPath.XDocument|4.3.0
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.AppContext.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.AppContext.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e51afb846b4839849d8e3036f638532808a5c2a8
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.AppContext.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Buffers.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Buffers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..638650693a4c11f415fe43ecb1b7a01b987d6058
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Buffers.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Collections.Concurrent.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Collections.Concurrent.dll
new file mode 100644
index 0000000000000000000000000000000000000000..98d194025c82a8a990f5066f169824e1899bdd3c
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Collections.Concurrent.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Collections.NonGeneric.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Collections.NonGeneric.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c80288722aeb9a0cec324622ec5ba7ec06d64e84
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Collections.NonGeneric.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Collections.Specialized.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Collections.Specialized.dll
new file mode 100644
index 0000000000000000000000000000000000000000..27652f67c84b8662a661a45f824b8e445b08240d
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Collections.Specialized.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Collections.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Collections.dll
new file mode 100644
index 0000000000000000000000000000000000000000..29c26dd30f62289d05b106f19a1103b491d72505
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Collections.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ComponentModel.EventBasedAsync.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ComponentModel.EventBasedAsync.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cf4bf9b44ed276e1f9c362c0badafb89f9071141
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ComponentModel.EventBasedAsync.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ComponentModel.Primitives.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ComponentModel.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ea975650b8e1c2cbd08c540621a80025b992b032
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ComponentModel.Primitives.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ComponentModel.TypeConverter.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ComponentModel.TypeConverter.dll
new file mode 100644
index 0000000000000000000000000000000000000000..15c6e814e06392ceaaad847bb8d18b468ae5c27e
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ComponentModel.TypeConverter.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ComponentModel.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ComponentModel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f89c3864e2cd3630113bbac40c01213b6a6c1f2e
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ComponentModel.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Console.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Console.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9e964e492c5ee63225705d57ab1c959081390d91
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Console.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Data.Common.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Data.Common.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c0d59486f20367baed60c899c117b851c18da7ef
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Data.Common.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Data.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Data.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bb24a61cc959856032a6357e61b9ee0439b010b5
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Data.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.Contracts.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.Contracts.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4f5966551e51987b3246c0a2ffd00659d5679d85
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.Contracts.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.FileVersionInfo.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.FileVersionInfo.dll
new file mode 100644
index 0000000000000000000000000000000000000000..245991b45ebcbbae7c656dfb37b58110edafaec3
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.FileVersionInfo.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.TextWriterTraceListener.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.TextWriterTraceListener.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c06f11a8d27ef29cf34eda941d945a16ceb42a2a
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.TextWriterTraceListener.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.TraceSource.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.TraceSource.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7e9b70a3f6ebd5ddee9abd7217c76f91e1e4847c
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.TraceSource.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.Tracing.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.Tracing.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0ca4de451cae253a79ed17cc8f72e038c3c21685
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Diagnostics.Tracing.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Dynamic.Runtime.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Dynamic.Runtime.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4241f0ead6c581de62ccad68f83d105b4cd1e81e
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Dynamic.Runtime.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Globalization.Calendars.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Globalization.Calendars.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9b5bfed08c20bea73c38f52a75f08a1d66fe3648
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Globalization.Calendars.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Globalization.Extensions.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Globalization.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..830e2eeca7e7fd68a3ebb9685e13b22e55967471
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Globalization.Extensions.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Globalization.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Globalization.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2d9421ca6a19a8d1269ae6746fb74b99245b7457
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Globalization.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.Compression.FileSystem.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.Compression.FileSystem.dll
new file mode 100644
index 0000000000000000000000000000000000000000..87924025c794b0f81ff054e63ae62a70f17196e9
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.Compression.FileSystem.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.Compression.ZipFile.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.Compression.ZipFile.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ebafd18049fd2cd32c5e7b9e88499225440a92cf
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.Compression.ZipFile.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.Compression.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.Compression.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b696f5ef40e98aa7138cb40f31ddc98ecb846230
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.Compression.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.FileSystem.DriveInfo.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.FileSystem.DriveInfo.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ae00656ca9e5c44b230f2719d5ee4241368443cd
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.FileSystem.DriveInfo.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.FileSystem.Primitives.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.FileSystem.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c9fb9e8f58323785ef291d102d08097d54fc1d85
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.FileSystem.Primitives.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.FileSystem.Watcher.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.FileSystem.Watcher.dll
new file mode 100644
index 0000000000000000000000000000000000000000..96de3592fba8f4c3a6b2ed2bb0d489e43ac682b9
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.FileSystem.Watcher.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.FileSystem.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.FileSystem.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2ba851cd71ceb6d3309c1558397e7e48590856bb
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.FileSystem.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.IsolatedStorage.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.IsolatedStorage.dll
new file mode 100644
index 0000000000000000000000000000000000000000..480985bc38160181941ff4b389245dd9325a77dc
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.IsolatedStorage.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.MemoryMappedFiles.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.MemoryMappedFiles.dll
new file mode 100644
index 0000000000000000000000000000000000000000..446c3050e8a0eb1919ba8068aa7d815432ad04a8
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.MemoryMappedFiles.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.Pipes.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.Pipes.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f3068b0ccabd583854807ffa9a95df98c934bef7
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.Pipes.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.UnmanagedMemoryStream.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.UnmanagedMemoryStream.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a38e60303ec5502762a91f148b58614724119ff4
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.UnmanagedMemoryStream.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2c004834e0d27291e7e5d12e386c9026c15df1c7
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.IO.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Linq.Expressions.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Linq.Expressions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f35ec3d2a2d3fe9c280b540a07540e6f885a1a53
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Linq.Expressions.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Linq.Parallel.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Linq.Parallel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..33cd684f886b648a9274235aad3675dc0e2bbee5
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Linq.Parallel.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Linq.Queryable.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Linq.Queryable.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e52764be5e011a929e152017caf0b2ba7446a212
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Linq.Queryable.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.Http.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.Http.dll
new file mode 100644
index 0000000000000000000000000000000000000000..344526ddae3145d9d0a7ef55ef2a751c98490d15
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.Http.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.NameResolution.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.NameResolution.dll
new file mode 100644
index 0000000000000000000000000000000000000000..10c8cd54ec8902dcd53a1562ef64f59a86ed2a46
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.NameResolution.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.NetworkInformation.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.NetworkInformation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0c7ee5ab1c13303b5cba18c8dcf224bdb2eaa8a2
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.NetworkInformation.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.Requests.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.Requests.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ca767b793b2d695dbd9c1d54236d4f19f84698e3
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.Requests.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.Security.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.Security.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d8d5150843431972410799efa4b5ee3ce609b2ef
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.Security.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.Sockets.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.Sockets.dll
new file mode 100644
index 0000000000000000000000000000000000000000..96ba85688a8b62cc40e68e233466f2cb5f771ffc
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.Sockets.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.WebHeaderCollection.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.WebHeaderCollection.dll
new file mode 100644
index 0000000000000000000000000000000000000000..48ba7b7397ba5e2dabff30904386c242708d3c16
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.WebHeaderCollection.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.WebSockets.Client.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.WebSockets.Client.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d038c5ec4d4e901d8cc543b48fcf9caceeafc60a
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.WebSockets.Client.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.WebSockets.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.WebSockets.dll
new file mode 100644
index 0000000000000000000000000000000000000000..722c843c09ea82b8e302f0318699a0b70e9bde1d
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.WebSockets.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a281b4f91e483227299c45e231e59b6f6240f55f
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Net.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ObjectModel.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ObjectModel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9877c6ead0dcd3e96b56613c8f97ccf1ba244943
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ObjectModel.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Emit.ILGeneration.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Emit.ILGeneration.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2a616e69ca1120d4912b102d7a42d5b550173b61
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Emit.ILGeneration.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Emit.Lightweight.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Emit.Lightweight.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8916169dcb205010ba1975b88780cf208821864c
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Emit.Lightweight.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Emit.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Emit.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f5f5794dd17afdb40b917b0928f70a82660b9669
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Emit.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Extensions.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..31fb6929f7da483539f78ad2af4ce51563e8f3e5
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Extensions.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Primitives.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e852acea9005257c2b0a2a83a46e184fc3e0bbfc
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.Primitives.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.dll
new file mode 100644
index 0000000000000000000000000000000000000000..875aea8f6103114a080724cb072ae5cb763054d1
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Reflection.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Resources.Reader.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Resources.Reader.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c5acfabe638d425a980033494566949f47f2741f
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Resources.Reader.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Resources.ResourceManager.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Resources.ResourceManager.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e2bd73307046c954ae5b13d0afd63b50a1f859b7
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Resources.ResourceManager.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Resources.Writer.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Resources.Writer.dll
new file mode 100644
index 0000000000000000000000000000000000000000..39027bf86d6c05df14b632e403344597088559da
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Resources.Writer.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.CompilerServices.VisualC.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.CompilerServices.VisualC.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6dc0754c757542df3a9b16dc2183b04d0fd1ebd8
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.CompilerServices.VisualC.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Extensions.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..679f2ad6b873b507066ad754d39921a56895ac72
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Extensions.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Handles.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Handles.dll
new file mode 100644
index 0000000000000000000000000000000000000000..91821459796d2cb617284c9a33d3bfa8fd6e7355
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Handles.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.InteropServices.RuntimeInformation.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4e5d741a2aa2c3a60ff1bc19565da128c420b949
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.InteropServices.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.InteropServices.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a431dd14adce9f2ef543fe4b6853949289013dcb
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.InteropServices.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Numerics.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Numerics.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d1f94cb3c9b33e3ffd8674d8553122a4df9d7357
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Numerics.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Serialization.Json.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Serialization.Json.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2690e459281c28074e2923bd2be6f48d956d60d0
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Serialization.Json.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Serialization.Xml.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Serialization.Xml.dll
new file mode 100644
index 0000000000000000000000000000000000000000..65a691608450de567e456b6ee9988ffd761f572e
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Serialization.Xml.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Serialization.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Serialization.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ad8500847264711c18f2ba770183e149d758cc21
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.Serialization.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2a3d3d1a1aa702c306a3d4195e09a7165b0251b0
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Runtime.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Claims.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Claims.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cb4583eb8833b94ff31f4fab917f42644335e821
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Claims.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Cryptography.Csp.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Cryptography.Csp.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ab76754c82e0fab90739bef87d499c368266a318
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Cryptography.Csp.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Cryptography.Encoding.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Cryptography.Encoding.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6c9016ef48770dcc62d54d62f551a79d04405d22
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Cryptography.Encoding.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Cryptography.Primitives.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Cryptography.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..27776b5c0d2a21e9f210b160a54638829f4fa4c4
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Cryptography.Primitives.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Cryptography.X509Certificates.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Cryptography.X509Certificates.dll
new file mode 100644
index 0000000000000000000000000000000000000000..18f4b70c6dacf657adcb07b526c91a0efdfd7828
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Cryptography.X509Certificates.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Principal.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Principal.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d14156c162f18da3a06c8b2a60a35934274c2da7
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.Principal.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.SecureString.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.SecureString.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6d96b475083e01d224d51bc09cb29af455fc93e2
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Security.SecureString.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ServiceModel.Web.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ServiceModel.Web.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7917ef26de524047548694e108208c58060d7c2f
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ServiceModel.Web.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Text.Encoding.Extensions.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Text.Encoding.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e1504e0fdf79b94bbc2d09499c3c60c8c22b5de1
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Text.Encoding.Extensions.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Text.Encoding.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Text.Encoding.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f8f72fdb6d74e8f8eab4200f5b85e547f8b4e9b9
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Text.Encoding.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Text.RegularExpressions.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Text.RegularExpressions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..92286d10429a10725e557b2b1ccc53a64076b6b5
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Text.RegularExpressions.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Overlapped.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Overlapped.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b89452a7b6c8ce294ba758f05021fef5611ba176
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Overlapped.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Tasks.Extensions.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a4ee16da60b1054aa1dea7de7bd74c1171f0d628
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Tasks.Extensions.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Tasks.Parallel.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Tasks.Parallel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..25a7172c488441b3a45308b8c905cb9d79e673d8
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Tasks.Parallel.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Tasks.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..84cf0a7beb46512bd55360a9baf248d90fc4ef8a
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Tasks.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.ThreadPool.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.ThreadPool.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1e7a192adb8dda2fb8ce993fc76cdbce3dedd013
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.ThreadPool.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Timer.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Timer.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0988c161bc5c7bc95a78168d155939cfaa80b9ea
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.Timer.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b4d405df5c76d1c13b909d1fed2f527a1c374b88
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Threading.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Transactions.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Transactions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a4f351fa193b088acaec25d14e5fc14cfb9bd516
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Transactions.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ValueTuple.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ValueTuple.dll
new file mode 100644
index 0000000000000000000000000000000000000000..af40e7a22c828dffd39ad767ffe92814ec156648
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.ValueTuple.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Web.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Web.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4926f000b04962ffa1b9b5204ddb019f8df3a845
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Web.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Windows.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Windows.dll
new file mode 100644
index 0000000000000000000000000000000000000000..eea54ec6291771d047931e7fc6613d201e935236
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Windows.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.Linq.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.Linq.dll
new file mode 100644
index 0000000000000000000000000000000000000000..19e6242835ce1784a241b8044316fc9b82b2f7c3
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.Linq.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.ReaderWriter.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.ReaderWriter.dll
new file mode 100644
index 0000000000000000000000000000000000000000..197c584c49ef3ed58f455b32f1295f1cc24a970b
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.ReaderWriter.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.Serialization.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.Serialization.dll
new file mode 100644
index 0000000000000000000000000000000000000000..820f8473ad9e84de7879f02b50349f42347efa67
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.Serialization.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XDocument.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..27c5011bcf7dc74d261b99b9714b59d2a375d9f1
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XDocument.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XPath.XDocument.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XPath.XDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6089107b520d081811b9aa45a6cec545c08a41b0
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XPath.XDocument.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XPath.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XPath.dll
new file mode 100644
index 0000000000000000000000000000000000000000..09c436f90d432b198ce6f2d78751912ad182f941
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XPath.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XmlDocument.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XmlDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4ef057733072c3f0a2d90bf351bdeb77d72fa83b
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XmlDocument.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XmlSerializer.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XmlSerializer.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ae69e4af844a3fb684b7cd5b822a94f275783801
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.Xml.XmlSerializer.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.dll
new file mode 100644
index 0000000000000000000000000000000000000000..412af43dcea07fb0e5ca77c3cca11d3c2810125c
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/System.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/mscorlib.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/mscorlib.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fb2defeef4b28f66c0c5d31a146a9b5073a74fbc
Binary files /dev/null and b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/mscorlib.dll differ
diff --git a/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/netstandard.dll b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/netstandard.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7c411df5241311a0c640816edca93af5523b0d7c
--- /dev/null
+++ b/dotnet/packs/NETStandard.Library.Ref/2.1.0/ref/netstandard2.1/netstandard.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:79a49049c360a3ff282e747c311fcd567834efde564a96689872564164756e84
+size 1556344
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.android/34.0.43/WorkloadManifest.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.android/34.0.43/WorkloadManifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..845e722eca48cd4ad185863cb3e437f0aa8447f1
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.android/34.0.43/WorkloadManifest.json
@@ -0,0 +1,75 @@
+{
+ "version": "34.0.43",
+ "workloads": {
+ "android": {
+ "description": ".NET SDK Workload for building Android applications.",
+ "packs": [
+ "Microsoft.Android.Sdk.net8",
+ "Microsoft.Android.Sdk.net7",
+ "Microsoft.Android.Ref.34",
+ "Microsoft.Android.Runtime.34.android-arm",
+ "Microsoft.Android.Runtime.34.android-arm64",
+ "Microsoft.Android.Runtime.34.android-x86",
+ "Microsoft.Android.Runtime.34.android-x64",
+ "Microsoft.Android.Templates"
+ ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ],
+ "extends" : [
+ "microsoft-net-runtime-android-net7",
+ "microsoft-net-runtime-android-aot-net7",
+ "microsoft-net-runtime-android",
+ "microsoft-net-runtime-android-aot"
+ ]
+ }
+ },
+ "packs": {
+ "Microsoft.Android.Sdk.net8": {
+ "kind": "sdk",
+ "version": "34.0.43",
+ "alias-to": {
+ "osx-x64": "Microsoft.Android.Sdk.Darwin",
+ "osx-arm64": "Microsoft.Android.Sdk.Darwin",
+ "win-x86": "Microsoft.Android.Sdk.Windows",
+ "win-x64": "Microsoft.Android.Sdk.Windows",
+ "win-arm64": "Microsoft.Android.Sdk.Windows",
+ "linux-x64": "Microsoft.Android.Sdk.Linux"
+ }
+ },
+ "Microsoft.Android.Sdk.net7": {
+ "kind": "sdk",
+ "version": "33.0.95",
+ "alias-to": {
+ "osx-x64": "Microsoft.Android.Sdk.Darwin",
+ "osx-arm64": "Microsoft.Android.Sdk.Darwin",
+ "win-x86": "Microsoft.Android.Sdk.Windows",
+ "win-x64": "Microsoft.Android.Sdk.Windows",
+ "win-arm64": "Microsoft.Android.Sdk.Windows",
+ "linux-x64": "Microsoft.Android.Sdk.Linux"
+ }
+ },
+ "Microsoft.Android.Ref.34": {
+ "kind": "framework",
+ "version": "34.0.43"
+ },
+ "Microsoft.Android.Runtime.34.android-arm": {
+ "kind": "framework",
+ "version": "34.0.43"
+ },
+ "Microsoft.Android.Runtime.34.android-arm64": {
+ "kind": "framework",
+ "version": "34.0.43"
+ },
+ "Microsoft.Android.Runtime.34.android-x86": {
+ "kind": "framework",
+ "version": "34.0.43"
+ },
+ "Microsoft.Android.Runtime.34.android-x64": {
+ "kind": "framework",
+ "version": "34.0.43"
+ },
+ "Microsoft.Android.Templates": {
+ "kind": "template",
+ "version": "34.0.43"
+ }
+ }
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.android/34.0.43/WorkloadManifest.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.android/34.0.43/WorkloadManifest.targets
new file mode 100644
index 0000000000000000000000000000000000000000..029e4364f32e13c595a7ce527307a67a79c7530a
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.android/34.0.43/WorkloadManifest.targets
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.aspire/8.0.0-preview.1.23557.2/WorkloadManifest.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.aspire/8.0.0-preview.1.23557.2/WorkloadManifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..cb071510cfe7fcb0270493e0d3f4b521d26f0d69
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.aspire/8.0.0-preview.1.23557.2/WorkloadManifest.json
@@ -0,0 +1,50 @@
+{
+ "version": "8.0.0-preview.1.23557.2",
+ "workloads": {
+ "aspire": {
+ "description": ".NET Aspire SDK (Preview)",
+ "packs": [
+ "Aspire.Hosting.Sdk",
+ "Aspire.ProjectTemplates",
+ "Aspire.Hosting.Orchestration",
+ "Aspire.Hosting"
+ ],
+ // DCP only support these hosts
+ "platforms": [
+ "win-x64",
+ "win-arm64",
+ "linux-x64",
+ "linux-arm64",
+ "osx-x64",
+ "osx-arm64"
+ ]
+ }
+ },
+ "packs": {
+ "Aspire.Hosting.Sdk": {
+ "kind": "sdk",
+ "version": "8.0.0-preview.1.23557.2"
+ },
+ "Aspire.ProjectTemplates": {
+ "kind": "template",
+ "version": "8.0.0-preview.1.23557.2"
+ },
+ "Aspire.Hosting.Orchestration": {
+ "kind": "sdk",
+ "version": "8.0.0-preview.1.23557.2",
+ "alias-to": {
+ "win-x86": "Aspire.Hosting.Orchestration.win-x86",
+ "win-x64": "Aspire.Hosting.Orchestration.win-x64",
+ "win-arm64": "Aspire.Hosting.Orchestration.win-arm64",
+ "linux-x64": "Aspire.Hosting.Orchestration.linux-x64",
+ "linux-arm64": "Aspire.Hosting.Orchestration.linux-arm64",
+ "osx-x64": "Aspire.Hosting.Orchestration.osx-x64",
+ "osx-arm64": "Aspire.Hosting.Orchestration.osx-arm64"
+ }
+ },
+ "Aspire.Hosting": {
+ "kind": "library",
+ "version": "8.0.0-preview.1.23557.2"
+ }
+ }
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.aspire/8.0.0-preview.1.23557.2/WorkloadManifest.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.aspire/8.0.0-preview.1.23557.2/WorkloadManifest.targets
new file mode 100644
index 0000000000000000000000000000000000000000..f758298911d9d102977fb0aab1ec28160f49b4ee
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.aspire/8.0.0-preview.1.23557.2/WorkloadManifest.targets
@@ -0,0 +1,8 @@
+
+
+
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.ios/17.0.8478/WorkloadManifest.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.ios/17.0.8478/WorkloadManifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..9d8d61229230ed9a96cf70af4a0ffb947e04d036
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.ios/17.0.8478/WorkloadManifest.json
@@ -0,0 +1,80 @@
+{
+ "version": "17.0.8478",
+ "workloads": {
+ "ios": {
+ "description": ".NET SDK Workload for building iOS applications.",
+ "packs": [
+ "Microsoft.iOS.Sdk.net8",
+ "Microsoft.iOS.Sdk.net7",
+ "Microsoft.iOS.Windows.Sdk.Aliased.net8",
+ "Microsoft.iOS.Windows.Sdk.Aliased.net7",
+ "Microsoft.iOS.Ref",
+ "Microsoft.iOS.Runtime.ios-arm64",
+ "Microsoft.iOS.Runtime.iossimulator-x64",
+ "Microsoft.iOS.Runtime.iossimulator-arm64",
+ "Microsoft.iOS.Templates.net8"
+ ],
+ "extends": [
+ "microsoft-net-runtime-ios",
+ "microsoft-net-runtime-ios-net7",
+ ]
+ },
+ },
+ "packs": {
+ "Microsoft.iOS.Sdk.net8": {
+ "kind": "sdk",
+ "version": "17.0.8478",
+ "alias-to": {
+ "any": "Microsoft.iOS.Sdk"
+ }
+ },
+ "Microsoft.iOS.Sdk.net7": {
+ "kind": "sdk",
+ "version": "16.4.7125",
+ "alias-to": {
+ "any": "Microsoft.iOS.Sdk"
+ }
+ },
+ "Microsoft.iOS.Windows.Sdk.Aliased.net8": {
+ "kind": "sdk",
+ "version": "17.0.8478",
+ "alias-to": {
+ "win-x64": "Microsoft.iOS.Windows.Sdk",
+ "win-x86": "Microsoft.iOS.Windows.Sdk",
+ "win-arm64": "Microsoft.iOS.Windows.Sdk",
+ }
+ },
+ "Microsoft.iOS.Windows.Sdk.Aliased.net7": {
+ "kind": "sdk",
+ "version": "16.4.7125",
+ "alias-to": {
+ "win-x64": "Microsoft.iOS.Windows.Sdk",
+ "win-x86": "Microsoft.iOS.Windows.Sdk",
+ "win-arm64": "Microsoft.iOS.Windows.Sdk",
+ }
+ },
+ "Microsoft.iOS.Ref": {
+ "kind": "framework",
+ "version": "17.0.8478"
+ },
+ "Microsoft.iOS.Runtime.ios-arm64": {
+ "kind": "framework",
+ "version": "17.0.8478"
+ },
+ "Microsoft.iOS.Runtime.iossimulator-x64": {
+ "kind": "framework",
+ "version": "17.0.8478"
+ },
+ "Microsoft.iOS.Runtime.iossimulator-arm64": {
+ "kind": "framework",
+ "version": "17.0.8478"
+ },
+ "Microsoft.iOS.Templates.net8": {
+ "kind": "template",
+ "version": "17.0.8478",
+ "alias-to": {
+ "any": "Microsoft.iOS.Templates",
+ }
+ }
+ }
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.ios/17.0.8478/WorkloadManifest.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.ios/17.0.8478/WorkloadManifest.targets
new file mode 100644
index 0000000000000000000000000000000000000000..80e0616ed00215dbf525d604f2e729bd5c71e806
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.ios/17.0.8478/WorkloadManifest.targets
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.maccatalyst/17.0.8478/WorkloadManifest.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.maccatalyst/17.0.8478/WorkloadManifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..a5ae8ed0052f166a9440a93a008e0e049f2b4e9e
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.maccatalyst/17.0.8478/WorkloadManifest.json
@@ -0,0 +1,55 @@
+{
+ "version": "17.0.8478",
+ "workloads": {
+ "maccatalyst": {
+ "description": ".NET SDK Workload for building MacCatalyst applications.",
+ "packs": [
+ "Microsoft.MacCatalyst.Sdk.net8",
+ "Microsoft.MacCatalyst.Sdk.net7",
+ "Microsoft.MacCatalyst.Ref",
+ "Microsoft.MacCatalyst.Runtime.maccatalyst-x64",
+ "Microsoft.MacCatalyst.Runtime.maccatalyst-arm64",
+ "Microsoft.MacCatalyst.Templates.net8"
+ ],
+ "extends": [
+ "microsoft-net-runtime-maccatalyst",
+ "microsoft-net-runtime-maccatalyst-net7",
+ ]
+ },
+ },
+ "packs": {
+ "Microsoft.MacCatalyst.Sdk.net8": {
+ "kind": "sdk",
+ "version": "17.0.8478",
+ "alias-to": {
+ "any": "Microsoft.MacCatalyst.Sdk"
+ }
+ },
+ "Microsoft.MacCatalyst.Sdk.net7": {
+ "kind": "sdk",
+ "version": "16.4.7125",
+ "alias-to": {
+ "any": "Microsoft.MacCatalyst.Sdk"
+ }
+ },
+ "Microsoft.MacCatalyst.Ref": {
+ "kind": "framework",
+ "version": "17.0.8478"
+ },
+ "Microsoft.MacCatalyst.Runtime.maccatalyst-x64": {
+ "kind": "framework",
+ "version": "17.0.8478"
+ },
+ "Microsoft.MacCatalyst.Runtime.maccatalyst-arm64": {
+ "kind": "framework",
+ "version": "17.0.8478"
+ },
+ "Microsoft.MacCatalyst.Templates.net8": {
+ "kind": "template",
+ "version": "17.0.8478",
+ "alias-to": {
+ "any": "Microsoft.MacCatalyst.Templates",
+ }
+ }
+ }
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.maccatalyst/17.0.8478/WorkloadManifest.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.maccatalyst/17.0.8478/WorkloadManifest.targets
new file mode 100644
index 0000000000000000000000000000000000000000..2c3d40be96771072eefe5884e584289d1147c7f8
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.maccatalyst/17.0.8478/WorkloadManifest.targets
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.macos/14.0.8478/WorkloadManifest.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.macos/14.0.8478/WorkloadManifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..a0c4bf770ce218098bacffd673ba81e44a605836
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.macos/14.0.8478/WorkloadManifest.json
@@ -0,0 +1,55 @@
+{
+ "version": "14.0.8478",
+ "workloads": {
+ "macos": {
+ "description": ".NET SDK Workload for building macOS applications.",
+ "packs": [
+ "Microsoft.macOS.Sdk.net8",
+ "Microsoft.macOS.Sdk.net7",
+ "Microsoft.macOS.Ref",
+ "Microsoft.macOS.Runtime.osx-x64",
+ "Microsoft.macOS.Runtime.osx-arm64",
+ "Microsoft.macOS.Templates.net8"
+ ],
+ "extends": [
+ "microsoft-net-runtime-mono-tooling",
+ "microsoft-net-runtime-mono-tooling-net7",
+ ]
+ },
+ },
+ "packs": {
+ "Microsoft.macOS.Sdk.net8": {
+ "kind": "sdk",
+ "version": "14.0.8478",
+ "alias-to": {
+ "any": "Microsoft.macOS.Sdk"
+ }
+ },
+ "Microsoft.macOS.Sdk.net7": {
+ "kind": "sdk",
+ "version": "13.3.7125",
+ "alias-to": {
+ "any": "Microsoft.macOS.Sdk"
+ }
+ },
+ "Microsoft.macOS.Ref": {
+ "kind": "framework",
+ "version": "14.0.8478"
+ },
+ "Microsoft.macOS.Runtime.osx-x64": {
+ "kind": "framework",
+ "version": "14.0.8478"
+ },
+ "Microsoft.macOS.Runtime.osx-arm64": {
+ "kind": "framework",
+ "version": "14.0.8478"
+ },
+ "Microsoft.macOS.Templates.net8": {
+ "kind": "template",
+ "version": "14.0.8478",
+ "alias-to": {
+ "any": "Microsoft.macOS.Templates",
+ }
+ }
+ }
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.macos/14.0.8478/WorkloadManifest.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.macos/14.0.8478/WorkloadManifest.targets
new file mode 100644
index 0000000000000000000000000000000000000000..6f72655f507635cb11858df577465960f57ac65d
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.macos/14.0.8478/WorkloadManifest.targets
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.maui/8.0.3/WorkloadManifest.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.maui/8.0.3/WorkloadManifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..c413b531efaadc472e33ba56fb27331be95916b6
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.maui/8.0.3/WorkloadManifest.json
@@ -0,0 +1,166 @@
+{
+ "version": "8.0.3",
+ "workloads": {
+ "maui": {
+ "description": ".NET MAUI SDK for all platforms",
+ "extends": [
+ "maui-mobile",
+ "maui-desktop"
+ ]
+ },
+ "maui-mobile": {
+ "description": ".NET MAUI SDK for Mobile",
+ "extends": [
+ "maui-android",
+ "maui-ios",
+ "maui-tizen"
+ ]
+ },
+ "maui-desktop": {
+ "description": ".NET MAUI SDK for Desktop",
+ "extends": [
+ "maui-maccatalyst",
+ "maui-windows"
+ ]
+ },
+ "maui-core": {
+ "abstract": true,
+ "description": ".NET MAUI SDK Core Packages",
+ "packs": [
+ "Microsoft.Maui.Sdk.net8",
+ "Microsoft.Maui.Sdk.net7",
+ "Microsoft.Maui.Graphics",
+ "Microsoft.Maui.Resizetizer",
+ "Microsoft.Maui.Resizetizer.Sdk",
+ "Microsoft.Maui.Templates.net8",
+ "Microsoft.Maui.Templates.net7",
+ "Microsoft.Maui.Core",
+ "Microsoft.Maui.Controls",
+ "Microsoft.Maui.Controls.Build.Tasks",
+ "Microsoft.Maui.Controls.Core",
+ "Microsoft.Maui.Controls.Xaml",
+ "Microsoft.Maui.Controls.Compatibility",
+ "Microsoft.Maui.Essentials"
+ ]
+ },
+ "maui-blazor": {
+ "abstract": true,
+ "description": ".NET MAUI SDK Blazor Packages",
+ "extends": [ "maui-core" ],
+ "packs": [
+ "Microsoft.AspNetCore.Components.WebView.Maui"
+ ]
+ },
+ "maui-android": {
+ "description": ".NET MAUI SDK for Android",
+ "extends": [
+ "maui-blazor",
+ "android"
+ ]
+ },
+ "maui-maccatalyst": {
+ "description": ".NET MAUI SDK for Mac Catalyst",
+ "extends": [
+ "maui-blazor",
+ "maccatalyst"
+ ]
+ },
+ "maui-ios": {
+ "description": ".NET MAUI SDK for iOS",
+ "extends": [
+ "maui-blazor",
+ "ios"
+ ]
+ },
+ "maui-windows": {
+ "description": ".NET MAUI SDK for Windows",
+ "extends": [ "maui-blazor" ],
+ "packs": [
+ "Microsoft.Maui.Graphics.Windows"
+ ]
+ },
+ "maui-tizen": {
+ "description": ".NET MAUI SDK for Tizen",
+ "extends": [
+ "maui-blazor"
+ ]
+ }
+ },
+ "packs": {
+ "Microsoft.AspNetCore.Components.WebView.Maui": {
+ "kind": "library",
+ "version": "8.0.3"
+ },
+ "Microsoft.Maui.Core": {
+ "kind": "library",
+ "version": "8.0.3"
+ },
+ "Microsoft.Maui.Controls": {
+ "kind": "library",
+ "version": "8.0.3"
+ },
+ "Microsoft.Maui.Controls.Build.Tasks": {
+ "kind": "library",
+ "version": "8.0.3"
+ },
+ "Microsoft.Maui.Controls.Core": {
+ "kind": "library",
+ "version": "8.0.3"
+ },
+ "Microsoft.Maui.Controls.Xaml": {
+ "kind": "library",
+ "version": "8.0.3"
+ },
+ "Microsoft.Maui.Controls.Compatibility": {
+ "kind": "library",
+ "version": "8.0.3"
+ },
+ "Microsoft.Maui.Essentials": {
+ "kind": "library",
+ "version": "8.0.3"
+ },
+ "Microsoft.Maui.Graphics": {
+ "kind": "library",
+ "version": "8.0.3"
+ },
+ "Microsoft.Maui.Graphics.Windows": {
+ "kind": "library",
+ "version": "8.0.3",
+ "alias-to": {
+ "win-x86": "Microsoft.Maui.Graphics.Win2D.WinUI.Desktop",
+ "win-x64": "Microsoft.Maui.Graphics.Win2D.WinUI.Desktop",
+ "win-arm64": "Microsoft.Maui.Graphics.Win2D.WinUI.Desktop"
+ }
+ },
+ "Microsoft.Maui.Resizetizer": {
+ "kind": "library",
+ "version": "8.0.3"
+ },
+ "Microsoft.Maui.Sdk.net8": {
+ "kind": "sdk",
+ "version": "8.0.3",
+ "alias-to": {
+ "any": "Microsoft.Maui.Sdk"
+ }
+ },
+ "Microsoft.Maui.Sdk.net7": {
+ "kind": "sdk",
+ "version": "7.0.101",
+ "alias-to": {
+ "any": "Microsoft.Maui.Sdk"
+ }
+ },
+ "Microsoft.Maui.Resizetizer.Sdk": {
+ "kind": "sdk",
+ "version": "7.0.101"
+ },
+ "Microsoft.Maui.Templates.net8": {
+ "kind": "template",
+ "version": "8.0.3"
+ },
+ "Microsoft.Maui.Templates.net7": {
+ "kind": "template",
+ "version": "7.0.101"
+ }
+ }
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.maui/8.0.3/WorkloadManifest.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.maui/8.0.3/WorkloadManifest.targets
new file mode 100644
index 0000000000000000000000000000000000000000..43d7a6c61f2499e137d67137ceed6ab64664b452
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.maui/8.0.3/WorkloadManifest.targets
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.tvos/17.0.8478/WorkloadManifest.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.tvos/17.0.8478/WorkloadManifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..d3c2f57416c104df55baefc67478cedb01335291
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.tvos/17.0.8478/WorkloadManifest.json
@@ -0,0 +1,60 @@
+{
+ "version": "17.0.8478",
+ "workloads": {
+ "tvos": {
+ "description": ".NET SDK Workload for building tvOS applications.",
+ "packs": [
+ "Microsoft.tvOS.Sdk.net8",
+ "Microsoft.tvOS.Sdk.net7",
+ "Microsoft.tvOS.Ref",
+ "Microsoft.tvOS.Runtime.tvos-arm64",
+ "Microsoft.tvOS.Runtime.tvossimulator-x64",
+ "Microsoft.tvOS.Runtime.tvossimulator-arm64",
+ "Microsoft.tvOS.Templates.net8"
+ ],
+ "extends": [
+ "microsoft-net-runtime-tvos",
+ "microsoft-net-runtime-tvos-net7",
+ ]
+ },
+ },
+ "packs": {
+ "Microsoft.tvOS.Sdk.net8": {
+ "kind": "sdk",
+ "version": "17.0.8478",
+ "alias-to": {
+ "any": "Microsoft.tvOS.Sdk"
+ }
+ },
+ "Microsoft.tvOS.Sdk.net7": {
+ "kind": "sdk",
+ "version": "16.4.7125",
+ "alias-to": {
+ "any": "Microsoft.tvOS.Sdk"
+ }
+ },
+ "Microsoft.tvOS.Ref": {
+ "kind": "framework",
+ "version": "17.0.8478"
+ },
+ "Microsoft.tvOS.Runtime.tvos-arm64": {
+ "kind": "framework",
+ "version": "17.0.8478"
+ },
+ "Microsoft.tvOS.Runtime.tvossimulator-x64": {
+ "kind": "framework",
+ "version": "17.0.8478"
+ },
+ "Microsoft.tvOS.Runtime.tvossimulator-arm64": {
+ "kind": "framework",
+ "version": "17.0.8478"
+ },
+ "Microsoft.tvOS.Templates.net8": {
+ "kind": "template",
+ "version": "17.0.8478",
+ "alias-to": {
+ "any": "Microsoft.tvOS.Templates",
+ }
+ }
+ }
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.tvos/17.0.8478/WorkloadManifest.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.tvos/17.0.8478/WorkloadManifest.targets
new file mode 100644
index 0000000000000000000000000000000000000000..1374a44b5086de111d5632aad844c40fb58f43ea
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.sdk.tvos/17.0.8478/WorkloadManifest.targets
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.current/8.0.8/WorkloadManifest.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.current/8.0.8/WorkloadManifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..e14e167f9c0a045b93517759c75972e2d69cc0ab
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.current/8.0.8/WorkloadManifest.json
@@ -0,0 +1,64 @@
+{
+ "version": "8.0.8",
+ "workloads": {
+ "microsoft-net-sdk-emscripten": {
+ "abstract": true,
+ "description": "Emscripten SDK compiler tooling for net8.0",
+ "packs": [
+ "Microsoft.NET.Runtime.Emscripten.Node.net8",
+ "Microsoft.NET.Runtime.Emscripten.Python.net8",
+ "Microsoft.NET.Runtime.Emscripten.Cache.net8",
+ "Microsoft.NET.Runtime.Emscripten.Sdk.net8"
+ ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64" ]
+ }
+ },
+ "packs": {
+ "Microsoft.NET.Runtime.Emscripten.Node.net8" : {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Node.win-x64",
+ "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Node.win-arm64",
+ "linux-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Node.linux-x64",
+ "linux-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Node.linux-arm64",
+ "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Node.osx-x64",
+ "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Node.osx-arm64"
+ }
+ },
+ "Microsoft.NET.Runtime.Emscripten.Python.net8" : {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Python.win-x64",
+ "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Python.win-arm64",
+ "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Python.osx-x64",
+ "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Python.osx-arm64"
+ }
+ },
+ "Microsoft.NET.Runtime.Emscripten.Cache.net8" : {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.win-x64",
+ "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.win-arm64",
+ "linux-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.linux-x64",
+ "linux-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.linux-arm64",
+ "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.osx-x64",
+ "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Cache.osx-arm64"
+ }
+ },
+ "Microsoft.NET.Runtime.Emscripten.Sdk.net8" : {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.win-x64",
+ "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.win-arm64",
+ "linux-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.linux-x64",
+ "linux-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.linux-arm64",
+ "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.osx-x64",
+ "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.34.Sdk.osx-arm64"
+ }
+ }
+ }
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.current/8.0.8/WorkloadManifest.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.current/8.0.8/WorkloadManifest.targets
new file mode 100644
index 0000000000000000000000000000000000000000..fca6eb3ea27653c85b7101bf14f60ca260391b4c
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.current/8.0.8/WorkloadManifest.targets
@@ -0,0 +1,28 @@
+
+
+ true
+
+
+
+ <_NativeBuildNeeded Condition="'$(RunAOTCompilation)' == 'true'">true
+ WebAssembly workloads (required for AOT) are only supported for projects targeting net6.0+
+
+
+
+ true
+ $(WasmNativeWorkload)
+
+
+
+ false
+ false
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.net6/8.0.8/WorkloadManifest.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.net6/8.0.8/WorkloadManifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..1a4f5981549bc652d4a804c6495ceace99acf9af
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.net6/8.0.8/WorkloadManifest.json
@@ -0,0 +1,49 @@
+{
+ "version": "8.0.8",
+ "workloads": {
+ "microsoft-net-sdk-emscripten-net6": {
+ "abstract": true,
+ "description": "Emscripten SDK compiler tooling",
+ "packs": [
+ "Microsoft.NET.Runtime.Emscripten.Node.net6",
+ "Microsoft.NET.Runtime.Emscripten.Python.net6",
+ "Microsoft.NET.Runtime.Emscripten.Sdk.net6"
+ ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ]
+ }
+ },
+ "packs": {
+ "Microsoft.NET.Runtime.Emscripten.Node.net6" : {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.win-x64",
+ "win-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.win-x64",
+ "linux-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.linux-x64",
+ "osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.osx-x64",
+ "osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Node.osx-x64"
+ }
+ },
+ "Microsoft.NET.Runtime.Emscripten.Python.net6" : {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Python.win-x64",
+ "win-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Python.win-x64",
+ "osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Python.osx-x64",
+ "osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Python.osx-x64"
+ }
+ },
+ "Microsoft.NET.Runtime.Emscripten.Sdk.net6" : {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "win-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.win-x64",
+ "win-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.win-x64",
+ "linux-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.linux-x64",
+ "osx-x64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.osx-x64",
+ "osx-arm64": "Microsoft.NET.Runtime.Emscripten.2.0.23.Sdk.osx-x64"
+ }
+ }
+ }
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.net6/8.0.8/WorkloadManifest.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.net6/8.0.8/WorkloadManifest.targets
new file mode 100644
index 0000000000000000000000000000000000000000..5eb59e6828234041754be967ede1f529961cef4e
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.net6/8.0.8/WorkloadManifest.targets
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.net7/8.0.8/WorkloadManifest.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.net7/8.0.8/WorkloadManifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..c674c9223e8a1e67799184f97bd8f093c3cc81a4
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.net7/8.0.8/WorkloadManifest.json
@@ -0,0 +1,61 @@
+{
+ "version": "8.0.8",
+ "workloads": {
+ "microsoft-net-sdk-emscripten-net7": {
+ "abstract": true,
+ "description": "Emscripten SDK compiler tooling",
+ "packs": [
+ "Microsoft.NET.Runtime.Emscripten.Node.net7",
+ "Microsoft.NET.Runtime.Emscripten.Python.net7",
+ "Microsoft.NET.Runtime.Emscripten.Cache.net7",
+ "Microsoft.NET.Runtime.Emscripten.Sdk.net7"
+ ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ]
+ }
+ },
+ "packs": {
+ "Microsoft.NET.Runtime.Emscripten.Node.net7" : {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Node.win-x64",
+ "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Node.win-x64",
+ "linux-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Node.linux-x64",
+ "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Node.osx-x64",
+ "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Node.osx-x64"
+ }
+ },
+ "Microsoft.NET.Runtime.Emscripten.Python.net7" : {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Python.win-x64",
+ "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Python.win-x64",
+ "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Python.osx-x64",
+ "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Python.osx-x64"
+ }
+ },
+ "Microsoft.NET.Runtime.Emscripten.Cache.net7" : {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Cache.win-x64",
+ "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Cache.win-x64",
+ "linux-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Cache.linux-x64",
+ "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Cache.osx-x64",
+ "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Cache.osx-x64"
+ }
+ },
+ "Microsoft.NET.Runtime.Emscripten.Sdk.net7" : {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "win-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Sdk.win-x64",
+ "win-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Sdk.win-x64",
+ "linux-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Sdk.linux-x64",
+ "osx-x64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Sdk.osx-x64",
+ "osx-arm64": "Microsoft.NET.Runtime.Emscripten.3.1.12.Sdk.osx-x64"
+ }
+ }
+ }
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.net7/8.0.8/WorkloadManifest.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.net7/8.0.8/WorkloadManifest.targets
new file mode 100644
index 0000000000000000000000000000000000000000..c093ee65effdab4d348ba629ca3431dbf3c1e519
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.emscripten.net7/8.0.8/WorkloadManifest.targets
@@ -0,0 +1,28 @@
+
+
+ true
+
+
+
+ <_NativeBuildNeeded Condition="'$(RunAOTCompilation)' == 'true'">true
+ WebAssembly workloads (required for AOT) are only supported for projects targeting net6.0+
+
+
+
+ true
+ $(WasmNativeWorkload)
+
+
+
+ false
+ false
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/WorkloadManifest.Wasi.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/WorkloadManifest.Wasi.targets
new file mode 100644
index 0000000000000000000000000000000000000000..f6197d5e269b4b53b9c579bd419f0569ca048568
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/WorkloadManifest.Wasi.targets
@@ -0,0 +1,10 @@
+
+
+
+ true
+
+
+
+ $(WasiNativeWorkloadAvailable)
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/WorkloadManifest.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/WorkloadManifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..b90f3ef5aa61b3384d6a7287f9fd997d1f82e112
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/WorkloadManifest.json
@@ -0,0 +1,469 @@
+{
+ "version": "8.0.8",
+ "depends-on": {
+ "Microsoft.NET.Workload.Emscripten.Current": "8.0.8"
+ },
+ "workloads": {
+ "wasm-tools": {
+ "description": ".NET WebAssembly build tools for net8.0",
+ "packs": [
+ "Microsoft.NET.Runtime.WebAssembly.Sdk.net8",
+ "Microsoft.NETCore.App.Runtime.Mono.net8.browser-wasm",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.browser-wasm"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling", "microsoft-net-sdk-emscripten" ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64"]
+ },
+ "wasm-experimental": {
+ "description": ".NET WebAssembly experimental tooling for net8.0",
+ "packs": [
+ "Microsoft.NET.Runtime.WebAssembly.Templates.net8",
+ "Microsoft.NETCore.App.Runtime.Mono.multithread.net8.browser-wasm",
+ ],
+ "extends": [ "wasm-tools" ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64" ]
+ },
+ "wasi-experimental": {
+ "description": ".NET WASI experimental for net8.0",
+ "packs": [
+ "Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.net8",
+ "Microsoft.NETCore.App.Runtime.Mono.net8.wasi-wasm",
+ "Microsoft.NET.Runtime.WebAssembly.Templates.net8"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling" ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64" ]
+ },
+ "mobile-librarybuilder": {
+ "description": "Mobile SDK for building a self-contained .NET native library",
+ "packs": [
+ "Microsoft.NET.Runtime.LibraryBuilder.Sdk.net8"
+ ],
+ "extends": [ "microsoft-net-runtime-android-aot", "microsoft-net-runtime-ios", "microsoft-net-runtime-maccatalyst", "microsoft-net-runtime-tvos" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-x64", "osx-arm64" ]
+ },
+ "microsoft-net-runtime-android": {
+ "abstract": true,
+ "description": "Android Mono Runtime",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net8.android-arm",
+ "Microsoft.NETCore.App.Runtime.Mono.net8.android-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net8.android-x64",
+ "Microsoft.NETCore.App.Runtime.Mono.net8.android-x86"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling" ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ]
+ },
+ "microsoft-net-runtime-android-aot": {
+ "abstract": true,
+ "description": "Android Mono AOT Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-x86",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-x64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-arm",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-arm64"
+ ],
+ "extends": [ "microsoft-net-runtime-android" ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ]
+ },
+ "microsoft-net-runtime-ios": {
+ "abstract": true,
+ "description": "iOS Mono Runtime and AOT Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.ios-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.iossimulator-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.iossimulator-x64"
+ ],
+ "extends": [ "runtimes-ios" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "runtimes-ios": {
+ "abstract": true,
+ "description": "iOS Mono Runtime Packs",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net8.ios-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net8.iossimulator-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net8.iossimulator-x64"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "microsoft-net-runtime-maccatalyst": {
+ "abstract": true,
+ "description": "MacCatalyst Mono Runtime and AOT Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.maccatalyst-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.maccatalyst-x64"
+ ],
+ "extends": [ "runtimes-maccatalyst" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "runtimes-maccatalyst": {
+ "abstract": true,
+ "description": "MacCatalyst Mono Runtime Packs",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net8.maccatalyst-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net8.maccatalyst-x64"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "microsoft-net-runtime-macos": {
+ "abstract": true,
+ "description": "MacOS CoreCLR and Mono Runtime Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net8.osx-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net8.osx-x64",
+ "Microsoft.NETCore.App.Runtime.osx-arm64",
+ "Microsoft.NETCore.App.Runtime.osx-x64"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling" ],
+ "platforms": [ "osx-arm64", "osx-x64" ]
+ },
+ "microsoft-net-runtime-tvos": {
+ "abstract": true,
+ "description": "tvOS Mono Runtime and AOT Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.tvos-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.tvossimulator-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.tvossimulator-x64"
+ ],
+ "extends": [ "runtimes-tvos" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "runtimes-tvos": {
+ "abstract": true,
+ "description": "tvOS Mono Runtime Packs",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net8.tvos-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net8.tvossimulator-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net8.tvossimulator-x64"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "runtimes-windows": {
+ "abstract": true,
+ "description": "Windows Runtime Packs",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.win-x64",
+ "Microsoft.NETCore.App.Runtime.win-x86",
+ "Microsoft.NETCore.App.Runtime.win-arm64"
+ ]
+ },
+ "microsoft-net-runtime-mono-tooling": {
+ "abstract": true,
+ "description": "Shared native build tooling for Mono runtime",
+ "packs": [
+ "Microsoft.NET.Runtime.MonoAOTCompiler.Task.net8",
+ "Microsoft.NET.Runtime.MonoTargets.Sdk.net8"
+ ]
+ }
+ },
+ "packs": {
+ "Microsoft.NET.Runtime.MonoAOTCompiler.Task.net8": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NET.Runtime.MonoAOTCompiler.Task"
+ }
+ },
+ "Microsoft.NET.Runtime.MonoTargets.Sdk.net8": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NET.Runtime.MonoTargets.Sdk"
+ }
+ },
+ "Microsoft.NET.Runtime.LibraryBuilder.Sdk.net8": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NET.Runtime.LibraryBuilder.Sdk"
+ }
+ },
+ "Microsoft.NET.Runtime.WebAssembly.Sdk.net8": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NET.Runtime.WebAssembly.Sdk"
+ }
+ },
+ "Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.net8": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk"
+ }
+ },
+ "Microsoft.NET.Runtime.WebAssembly.Templates.net8": {
+ "kind": "template",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NET.Runtime.WebAssembly.Templates"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.android-arm": {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.android-arm64": {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.android-x64": {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.android-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.android-x86": {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.android-x86"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-x86": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86",
+ "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-x86",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-x86"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-x64": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64",
+ "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-x64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-arm": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm",
+ "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-arm",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-arm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.android-arm64": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64",
+ "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-arm64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.maccatalyst-arm64": {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.maccatalyst-x64": {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.osx-arm64": {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.osx-x64": {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.osx-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.osx-arm64": {
+ "kind": "framework",
+ "version": "8.0.8"
+ },
+ "Microsoft.NETCore.App.Runtime.osx-x64": {
+ "kind": "framework",
+ "version": "8.0.8"
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.ios-arm64" : {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.ios-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.iossimulator-arm64" : {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.iossimulator-x64" : {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.tvos-arm64": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvos-arm64",
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.tvos-arm64" : {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.tvos-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.tvossimulator-arm64" : {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.tvossimulator-x64" : {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.maccatalyst-arm64": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.maccatalyst-arm64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.maccatalyst-x64": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.maccatalyst-x64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.tvossimulator-arm64": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvossimulator-arm64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.tvossimulator-x64": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvossimulator-x64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.ios-arm64": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.ios-arm64",
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.iossimulator-arm64": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.iossimulator-arm64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.iossimulator-x64": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.iossimulator-x64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net8.browser-wasm": {
+ "kind": "Sdk",
+ "version": "8.0.8",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.browser-wasm",
+ "linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.browser-wasm",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.browser-wasm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.browser-wasm" : {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.browser-wasm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.multithread.net8.browser-wasm" : {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net8.wasi-wasm" : {
+ "kind": "framework",
+ "version": "8.0.8",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.wasi-wasm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.win-x64" : {
+ "kind": "framework",
+ "version": "8.0.8"
+ },
+ "Microsoft.NETCore.App.Runtime.win-x86" : {
+ "kind": "framework",
+ "version": "8.0.8"
+ },
+ "Microsoft.NETCore.App.Runtime.win-arm64" : {
+ "kind": "framework",
+ "version": "8.0.8"
+ }
+ }
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/WorkloadManifest.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/WorkloadManifest.targets
new file mode 100644
index 0000000000000000000000000000000000000000..f04399c17e171f2fd0aeb69d71710824c4060f16
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/WorkloadManifest.targets
@@ -0,0 +1,218 @@
+
+
+
+ <_RuntimePackInWorkloadVersionCurrent>8.0.8
+ <_RuntimePackInWorkloadVersion7>7.0.20
+ <_RuntimePackInWorkloadVersion6>6.0.33
+
+ true
+ true
+ true
+ true
+
+
+ $(WasmNativeWorkload8)
+
+
+
+
+
+ <_BrowserWorkloadNotSupportedForTFM Condition="$([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '6.0'))">true
+ <_BrowserWorkloadDisabled>$(_BrowserWorkloadNotSupportedForTFM)
+
+ <_UsingBlazorOrWasmSdk Condition="'$(UsingMicrosoftNETSdkBlazorWebAssembly)' == 'true' or '$(UsingMicrosoftNETSdkWebAssembly)' == 'true'">true
+
+
+
+
+
+
+
+
+
+ true
+ $(WasmNativeWorkload7)
+ $(WasmNativeWorkload8)
+ $(WasmNativeWorkload)
+ false
+ $(WasmNativeWorkloadAvailable)
+
+
+
+
+ <_WasmPropertiesDifferFromRuntimePackThusNativeBuildNeeded Condition="
+ '$(WasmEnableLegacyJsInterop)' == 'false' or
+ '$(WasmEnableSIMD)' == 'false' or
+ '$(WasmEnableExceptionHandling)' == 'false' or
+ '$(InvariantTimezone)' == 'true' or
+ ('$(_UsingBlazorOrWasmSdk)' != 'true' and '$(InvariantGlobalization)' == 'true') or
+ '$(WasmNativeStrip)' == 'false'">true
+
+
+
+ <_WasmNativeWorkloadNeeded Condition="
+ '$(_WasmPropertiesDifferFromRuntimePackThusNativeBuildNeeded)' == 'true' or
+ '$(RunAOTCompilation)' == 'true' or
+ '$(WasmBuildNative)' == 'true' or
+ '$(WasmGenerateAppBundle)' == 'true' or
+ '$(_UsingBlazorOrWasmSdk)' != 'true'" >true
+
+ false
+ true
+ $(WasmNativeWorkloadAvailable)
+
+
+
+
+ <_IsAndroidLibraryMode Condition="'$(RuntimeIdentifier)' == 'android-arm64' or '$(RuntimeIdentifier)' == 'android-arm' or '$(RuntimeIdentifier)' == 'android-x64' or '$(RuntimeIdentifier)' == 'android-x86'">true
+ <_IsAppleMobileLibraryMode Condition="'$(RuntimeIdentifier)' == 'ios-arm64' or '$(RuntimeIdentifier)' == 'iossimulator-arm64' or '$(RuntimeIdentifier)' == 'iossimulator-x64' or '$(RuntimeIdentifier)' == 'maccatalyst-arm64' or '$(RuntimeIdentifier)' == 'maccatalyst-x64' or '$(RuntimeIdentifier)' == 'tvos-arm64'">true
+ <_IsiOSLibraryMode Condition="'$(RuntimeIdentifier)' == 'ios-arm64' or '$(RuntimeIdentifier)' == 'iossimulator-arm64' or '$(RuntimeIdentifier)' == 'iossimulator-x64'">true
+ <_IsMacCatalystLibraryMode Condition="'$(RuntimeIdentifier)' == 'maccatalyst-arm64' or '$(RuntimeIdentifier)' == 'maccatalyst-x64'">true
+ <_IstvOSLibraryMode Condition="'$(RuntimeIdentifier)' == 'tvos-arm64'">true
+
+
+
+ true
+
+
+
+ false
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_MonoWorkloadTargetsMobile>true
+ <_MonoWorkloadRuntimePackPackageVersion>$(_RuntimePackInWorkloadVersionCurrent)
+ <_KnownWebAssemblySdkPackVersion>$(_RuntimePackInWorkloadVersionCurrent)
+
+
+
+
+ true
+ 1.0
+
+
+
+
+
+
+
+
+ %(RuntimePackRuntimeIdentifiers);wasi-wasm
+
+ $(_MonoWorkloadRuntimePackPackageVersion)
+
+ Microsoft.NETCore.App.Runtime.Mono.multithread.**RID**
+
+
+ $(_KnownWebAssemblySdkPackVersion)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/WorkloadTelemetry.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/WorkloadTelemetry.targets
new file mode 100644
index 0000000000000000000000000000000000000000..d94c7de33c3f60213626f96ae49699258c801fa1
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/WorkloadTelemetry.targets
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_WorkloadUsesBlazorWasm>$(UsingMicrosoftNETSdkBlazorWebAssembly)
+ <_WorkloadUsesWasmSDK>$(UsingMicrosoftNETSdkWebAssembly)
+ <_WorkloadUsesMonoAOT>$(RunAOTCompilation)
+ <_WorkloadUsesMonoAOT Condition="'$(_WorkloadUsesMonoAOT)' == '' and '$(PublishAot)' != 'true' and ('$(TargetPlatformIdentifier)' == 'maccatalyst' or '$(TargetPlatformIdentifier)' == 'ios' or '$(TargetPlatformIdentifier)' == 'tvos')">$(_RunAotCompiler)
+ <_WorkloadUsesNativeAOT>$(PublishAot)
+ <_WorkloadUsesInterpreter>$(MonoForceInterpreter)
+ <_WorkloadUsesInterpreter Condition="'$(_WorkloadUsesInterpreter)' == '' and '$(UseInterpreter)' == 'true'">true
+ <_WorkloadUsesInterpreter Condition="'$(_WorkloadUsesInterpreter)' == '' and '$(RunAOTCompilation)' != 'true' and ('$(_WorkloadUsesBlazorWasm)' == 'true' or '$(_WorkloadUsesWasmSDK)' == 'true')">true
+ <_WorkloadUsesLibraryMode Condition="'$(NativeLib)' != '' and ('$(_WorkloadUsesMonoAOT)' == 'true' or '$(_WorkloadUsesNativeAOT)' == 'true')">true
+ <_WorkloadUsesStripILAfterAOT Condition="'$(WasmStripILAfterAOT)' == 'true' or '$(AndroidStripILAfterAOT)' == 'true'">true
+
+
+
+ <_WorkloadUsesOther Condition="'$([System.IO.Path]::GetFileName("%(ReferencePath.Identity)").ToLowerInvariant())' == 'avalonia.dll'">true
+ <_WorkloadUsesOther Condition="'$([System.IO.Path]::GetFileName("%(ReferencePath.Identity)").ToLowerInvariant())' == 'uno.dll'">true
+ <_WorkloadUsesMobileSDKOnly Condition="'$(RuntimeIdentifier)' != 'browser-wasm' and '$(UseMaui)' != 'true' and '$(_WorkloadUsesOther)' != 'true'">true
+
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.cs.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.cs.json
new file mode 100644
index 0000000000000000000000000000000000000000..da1ee8979a0a7373f903e38ca25da24201ca18c1
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.cs.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools/description": "Nástroje pro sestavení .NET WebAssembly"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.de.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.de.json
new file mode 100644
index 0000000000000000000000000000000000000000..3d4467d7b055eb46e3e362aabe8cf071084962c4
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.de.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools/description": ".NET WebAssembly-Buildtools"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.en.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.en.json
new file mode 100644
index 0000000000000000000000000000000000000000..5bcb3f575d5dc4b2870c0a2c0c753705a5b20735
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.en.json
@@ -0,0 +1,5 @@
+{
+ "workloads/wasm-tools/description": ".NET WebAssembly build tools",
+ "workloads/wasm-tools-experimental/description": ".NET WebAssembly experimental tooling",
+ "workloads/runtimes-windows/description": "Windows Runtime Packs"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.es.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.es.json
new file mode 100644
index 0000000000000000000000000000000000000000..166e1db9fe8162838889235eeb609585d7f65bab
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.es.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools/description": "Herramientas de compilación de WebAssembly de .NET"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.fr.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..e660e45a264dbe3ba14062f8c2ca4e160731347f
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.fr.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools/description": "Outils de construction .NET WebAssembly"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.it.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.it.json
new file mode 100644
index 0000000000000000000000000000000000000000..6703c0025606b4f0b6e7580b128e9edced753b1d
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.it.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools/description": "Strumenti di compilazione WebAssembly .NET"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.ja.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.ja.json
new file mode 100644
index 0000000000000000000000000000000000000000..fd3fe984155ab5d3a44deb30db82e657c111e275
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.ja.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools/description": ".NET WebAssembly ビルド ツール"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.ko.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.ko.json
new file mode 100644
index 0000000000000000000000000000000000000000..c5261248ff6092d661bb5fe2f17109642eb62b82
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.ko.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools/description": ".NET WebAssembly 빌드 도구"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.pl.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.pl.json
new file mode 100644
index 0000000000000000000000000000000000000000..858653c73b527a2cd5822ad78e2dfa2936ba5c1d
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.pl.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools/description": "Narzędzia kompilacji zestawu WebAssembly platformy .NET"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.pt-BR.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.pt-BR.json
new file mode 100644
index 0000000000000000000000000000000000000000..a8dceaf324f2cb2aeaf418b58dc9e079cc268f5c
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.pt-BR.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools/description": "Ferramentas de build do .NET WebAssembly"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.ru.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.ru.json
new file mode 100644
index 0000000000000000000000000000000000000000..102e67acdc2c216d61166cb8372f29757b70497e
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.ru.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools/description": "Средства сборки WebAssembly .NET"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.tr.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.tr.json
new file mode 100644
index 0000000000000000000000000000000000000000..34d4e3b66de92e9fbf6aaeb4027f18465bc2df22
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.tr.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools/description": ".NET WebAssembly derleme araçları"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.zh-Hans.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.zh-Hans.json
new file mode 100644
index 0000000000000000000000000000000000000000..360e1e5a5d1f03d8e1384faf8e1fd9f4f08985f3
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.zh-Hans.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools/description": ".NET WebAssembly 生成工具"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.zh-Hant.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.zh-Hant.json
new file mode 100644
index 0000000000000000000000000000000000000000..c5d85ecc0f5c041fbedd30fde8ea8ddf3876b0dd
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.current/8.0.8/localize/WorkloadManifest.zh-Hant.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools/description": ".NET WebAssembly 組建工具"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/WorkloadManifest.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/WorkloadManifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..d199e158ceee904b37ae1023c93ce5db29a8b9ad
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/WorkloadManifest.json
@@ -0,0 +1,459 @@
+{
+ "version": "8.0.8",
+ "depends-on": {
+ "Microsoft.NET.Workload.Emscripten.net6": "8.0.8"
+ },
+ "workloads": {
+ "wasm-tools-net6": {
+ "description": ".NET WebAssembly build tools for net6.0",
+ "packs": [
+ "Microsoft.NET.Runtime.WebAssembly.Sdk.net6",
+ "Microsoft.NETCore.App.Runtime.Mono.net6.browser-wasm",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.browser-wasm"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling-net6", "microsoft-net-sdk-emscripten-net6" ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ]
+ },
+ "microsoft-net-runtime-android-net6": {
+ "abstract": true,
+ "description": "Android Mono Runtime",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm",
+ "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net6.android-x64",
+ "Microsoft.NETCore.App.Runtime.Mono.net6.android-x86"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling-net6" ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ]
+ },
+ "microsoft-net-runtime-android-aot-net6": {
+ "abstract": true,
+ "description": "Android Mono AOT Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x86",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm64"
+ ],
+ "extends": [ "microsoft-net-runtime-android-net6" ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ]
+ },
+ "microsoft-net-runtime-ios-net6": {
+ "abstract": true,
+ "description": "iOS Mono Runtime and AOT Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.ios-arm",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.ios-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.iossimulator-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.iossimulator-x64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.iossimulator-x86"
+ ],
+ "extends": [ "runtimes-ios-net6" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "runtimes-ios-net6": {
+ "abstract": true,
+ "description": "iOS Mono Runtime Packs",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net6.ios-arm",
+ "Microsoft.NETCore.App.Runtime.Mono.net6.ios-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net6.iossimulator-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net6.iossimulator-x64",
+ "Microsoft.NETCore.App.Runtime.Mono.net6.iossimulator-x86"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling-net6" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "microsoft-net-runtime-maccatalyst-net6": {
+ "abstract": true,
+ "description": "MacCatalyst Mono Runtime and AOT Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.maccatalyst-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.maccatalyst-x64"
+ ],
+ "extends": [ "runtimes-maccatalyst-net6" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "runtimes-maccatalyst-net6": {
+ "abstract": true,
+ "description": "MacCatalyst Mono Runtime Packs",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net6.maccatalyst-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net6.maccatalyst-x64"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling-net6" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "microsoft-net-runtime-macos-net6": {
+ "abstract": true,
+ "description": "MacOS CoreCLR and Mono Runtime Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net6.osx-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net6.osx-x64",
+ "Microsoft.NETCore.App.Runtime.net6.osx-arm64",
+ "Microsoft.NETCore.App.Runtime.net6.osx-x64"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling-net6" ],
+ "platforms": [ "osx-arm64", "osx-x64" ]
+ },
+ "microsoft-net-runtime-tvos-net6": {
+ "abstract": true,
+ "description": "tvOS Mono Runtime and AOT Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.tvos-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.tvossimulator-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.tvossimulator-x64"
+ ],
+ "extends": [ "runtimes-tvos-net6" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "runtimes-tvos-net6": {
+ "abstract": true,
+ "description": "tvOS Mono Runtime Packs",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net6.tvos-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net6.tvossimulator-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net6.tvossimulator-x64"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling-net6" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "runtimes-windows-net6": {
+ "abstract": true,
+ "description": "Windows Runtime Packs for net6.0",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.net6.win-x64",
+ "Microsoft.NETCore.App.Runtime.net6.win-x86",
+ "Microsoft.NETCore.App.Runtime.net6.win-arm",
+ "Microsoft.NETCore.App.Runtime.net6.win-arm64"
+ ]
+ },
+ "microsoft-net-runtime-mono-tooling-net6": {
+ "abstract": true,
+ "description": "Shared native build tooling for Mono runtime",
+ "packs": [
+ "Microsoft.NET.Runtime.MonoAOTCompiler.Task.net6",
+ "Microsoft.NET.Runtime.MonoTargets.Sdk.net6"
+ ]
+ }
+ },
+ "packs": {
+ "Microsoft.NET.Runtime.MonoAOTCompiler.Task.net6": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NET.Runtime.MonoAOTCompiler.Task"
+ }
+ },
+ "Microsoft.NET.Runtime.MonoTargets.Sdk.net6": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NET.Runtime.MonoTargets.Sdk"
+ }
+ },
+ "Microsoft.NET.Runtime.WebAssembly.Sdk.net6": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NET.Runtime.WebAssembly.Sdk"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm": {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.android-arm64": {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.android-x64": {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.android-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.android-x86": {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.android-x86"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x86": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-x64": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.android-arm64": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.maccatalyst-arm64": {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.maccatalyst-x64": {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.osx-arm64": {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.osx-x64": {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.osx-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.net6.osx-arm64": {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.net6.osx-x64": {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.osx-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.ios-arm" : {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.ios-arm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.ios-arm64" : {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.ios-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.iossimulator-arm64" : {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.iossimulator-x64" : {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.iossimulator-x86" : {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-x86"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.tvos-arm64": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.tvos-arm64" : {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.tvos-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.tvossimulator-arm64" : {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.tvossimulator-x64" : {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.maccatalyst-arm64": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.maccatalyst-x64": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.tvossimulator-arm64": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.tvossimulator-x64": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.ios-arm": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.ios-arm64": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.iossimulator-arm64": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.iossimulator-x64": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.iossimulator-x86": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x86",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x86"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net6.browser-wasm": {
+ "kind": "Sdk",
+ "version": "6.0.33",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.browser-wasm",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net6.browser-wasm" : {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.browser-wasm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.net6.win-x64" : {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.win-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.net6.win-x86" : {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.win-x86"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.net6.win-arm" : {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.win-arm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.net6.win-arm64" : {
+ "kind": "framework",
+ "version": "6.0.33",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.win-arm64"
+ }
+ }
+ }
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/WorkloadManifest.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/WorkloadManifest.targets
new file mode 100644
index 0000000000000000000000000000000000000000..12f408307622ab0e6c546891e8cdf45fc99ef7b5
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/WorkloadManifest.targets
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_MonoWorkloadTargetsMobile>true
+ <_MonoWorkloadRuntimePackPackageVersion>$(_RuntimePackInWorkloadVersion6)
+
+
+
+
+ $(_MonoWorkloadRuntimePackPackageVersion)
+
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.cs.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.cs.json
new file mode 100644
index 0000000000000000000000000000000000000000..63f42875d04eb80086c064854af08b4f78f83013
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.cs.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net6/description": "Nástroje pro sestavení .NET WebAssembly"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.de.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.de.json
new file mode 100644
index 0000000000000000000000000000000000000000..8e47a8ed518fe25d6b1b190b4044ae1e8565304d
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.de.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net6/description": ".NET WebAssembly-Buildtools"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.en.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.en.json
new file mode 100644
index 0000000000000000000000000000000000000000..81992467f1d9813f7c624e3515f1c639c3e46296
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.en.json
@@ -0,0 +1,4 @@
+{
+ "workloads/wasm-tools-net6/description": ".NET WebAssembly build tools for net6.0",
+ "workloads/runtimes-windows-net6/description": "Windows Runtime Packs for net6.0"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.es.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.es.json
new file mode 100644
index 0000000000000000000000000000000000000000..5244945464f4a31b9e4db1f0a5b4e925b00978e3
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.es.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net6/description": "Herramientas de compilación de WebAssembly de .NET"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.fr.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..7492e913330dd71a1afb3a75c513d3928afe01f9
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.fr.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net6/description": "Outils de construction .NET WebAssembly"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.it.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.it.json
new file mode 100644
index 0000000000000000000000000000000000000000..fbf5627f4c58028247db469821be8960aeab1ca7
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.it.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net6/description": "Strumenti di compilazione WebAssembly .NET"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.ja.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.ja.json
new file mode 100644
index 0000000000000000000000000000000000000000..e9e8b38a9ebb679b5088eb8068dad58e0644dcd6
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.ja.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net6/description": ".NET WebAssembly ビルド ツール"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.ko.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.ko.json
new file mode 100644
index 0000000000000000000000000000000000000000..788574ae8536d41e7428eae20a5afa5f3c9f85dd
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.ko.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net6/description": ".NET WebAssembly 빌드 도구"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.pl.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.pl.json
new file mode 100644
index 0000000000000000000000000000000000000000..90a04e1e219650f110bc92107dacdec869683bb5
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.pl.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net6/description": "Narzędzia kompilacji zestawu WebAssembly platformy .NET"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.pt-BR.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.pt-BR.json
new file mode 100644
index 0000000000000000000000000000000000000000..9869a7e82489bb4273e98e5bb1c1cd7e49c3368f
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.pt-BR.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net6/description": "Ferramentas de build do .NET WebAssembly"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.ru.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.ru.json
new file mode 100644
index 0000000000000000000000000000000000000000..dae1bab0be634c498f9b986f50a188941d65a77c
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.ru.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net6/description": "Средства сборки WebAssembly .NET"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.tr.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.tr.json
new file mode 100644
index 0000000000000000000000000000000000000000..ec5dbdf0f5ead4dcf4fb6db6b02ebd2a51c31f82
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.tr.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net6/description": ".NET WebAssembly derleme araçları"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.zh-Hans.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.zh-Hans.json
new file mode 100644
index 0000000000000000000000000000000000000000..849ab454aca627cede63da81f9b0f7873267fbce
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.zh-Hans.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net6/description": ".NET WebAssembly 生成工具"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.zh-Hant.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.zh-Hant.json
new file mode 100644
index 0000000000000000000000000000000000000000..da192170661373a6326330bf0aff99e3310e2f98
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net6/8.0.8/localize/WorkloadManifest.zh-Hant.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net6/description": ".NET WebAssembly 組建工具"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/WorkloadManifest.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/WorkloadManifest.json
new file mode 100644
index 0000000000000000000000000000000000000000..39775afc4a0f2c6f8434c8d177f4a380a5732b0b
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/WorkloadManifest.json
@@ -0,0 +1,490 @@
+{
+ "version": "8.0.8",
+ "depends-on": {
+ "Microsoft.NET.Workload.Emscripten.net7": "8.0.8"
+ },
+ "workloads": {
+ "wasm-tools-net7": {
+ "description": ".NET WebAssembly build tools for net7.0",
+ "packs": [
+ "Microsoft.NET.Runtime.WebAssembly.Sdk.net7",
+ "Microsoft.NETCore.App.Runtime.Mono.net7.browser-wasm",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.browser-wasm"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling-net7", "microsoft-net-sdk-emscripten-net7" ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ]
+ },
+ "wasm-experimental-net7": {
+ "description": ".NET WebAssembly experimental tooling for net7.0",
+ "packs": [
+ "Microsoft.NET.Runtime.WebAssembly.Templates.net7",
+ "Microsoft.NETCore.App.Runtime.Mono.multithread.net7.browser-wasm",
+ "Microsoft.NETCore.App.Runtime.Mono.perftrace.net7.browser-wasm"
+ ],
+ "extends": [ "wasm-tools-net7" ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ]
+ },
+ "microsoft-net-runtime-android-net7": {
+ "abstract": true,
+ "description": "Android Mono Runtime",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm",
+ "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net7.android-x64",
+ "Microsoft.NETCore.App.Runtime.Mono.net7.android-x86"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling-net7" ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ]
+ },
+ "microsoft-net-runtime-android-aot-net7": {
+ "abstract": true,
+ "description": "Android Mono AOT Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x86",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm64"
+ ],
+ "extends": [ "microsoft-net-runtime-android-net7" ],
+ "platforms": [ "win-x64", "win-arm64", "linux-x64", "osx-x64", "osx-arm64" ]
+ },
+ "microsoft-net-runtime-ios-net7": {
+ "abstract": true,
+ "description": "iOS Mono Runtime and AOT Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.ios-arm",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.ios-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.iossimulator-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.iossimulator-x64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.iossimulator-x86"
+ ],
+ "extends": [ "runtimes-ios-net7" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "runtimes-ios-net7": {
+ "abstract": true,
+ "description": "iOS Mono Runtime Packs",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net7.ios-arm",
+ "Microsoft.NETCore.App.Runtime.Mono.net7.ios-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net7.iossimulator-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net7.iossimulator-x64",
+ "Microsoft.NETCore.App.Runtime.Mono.net7.iossimulator-x86"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling-net7" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "microsoft-net-runtime-maccatalyst-net7": {
+ "abstract": true,
+ "description": "MacCatalyst Mono Runtime and AOT Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.maccatalyst-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.maccatalyst-x64"
+ ],
+ "extends": [ "runtimes-maccatalyst-net7" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "runtimes-maccatalyst-net7": {
+ "abstract": true,
+ "description": "MacCatalyst Mono Runtime Packs",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net7.maccatalyst-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net7.maccatalyst-x64"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling-net7" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "microsoft-net-runtime-macos-net7": {
+ "abstract": true,
+ "description": "MacOS CoreCLR and Mono Runtime Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net7.osx-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net7.osx-x64",
+ "Microsoft.NETCore.App.Runtime.osx-arm64",
+ "Microsoft.NETCore.App.Runtime.osx-x64"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling-net7" ],
+ "platforms": [ "osx-arm64", "osx-x64" ]
+ },
+ "microsoft-net-runtime-tvos-net7": {
+ "abstract": true,
+ "description": "tvOS Mono Runtime and AOT Workload",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.tvos-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.tvossimulator-arm64",
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.tvossimulator-x64"
+ ],
+ "extends": [ "runtimes-tvos-net7" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "runtimes-tvos-net7": {
+ "abstract": true,
+ "description": "tvOS Mono Runtime Packs",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.Mono.net7.tvos-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net7.tvossimulator-arm64",
+ "Microsoft.NETCore.App.Runtime.Mono.net7.tvossimulator-x64"
+ ],
+ "extends": [ "microsoft-net-runtime-mono-tooling-net7" ],
+ "platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
+ },
+ "runtimes-windows-net7": {
+ "abstract": true,
+ "description": "Windows Runtime Packs for net7.0",
+ "packs": [
+ "Microsoft.NETCore.App.Runtime.net7.win-x64",
+ "Microsoft.NETCore.App.Runtime.net7.win-x86",
+ "Microsoft.NETCore.App.Runtime.net7.win-arm",
+ "Microsoft.NETCore.App.Runtime.net7.win-arm64"
+ ]
+ },
+ "microsoft-net-runtime-mono-tooling-net7": {
+ "abstract": true,
+ "description": "Shared native build tooling for Mono runtime",
+ "packs": [
+ "Microsoft.NET.Runtime.MonoAOTCompiler.Task.net7",
+ "Microsoft.NET.Runtime.MonoTargets.Sdk.net7"
+ ]
+ }
+ },
+ "packs": {
+ "Microsoft.NET.Runtime.MonoAOTCompiler.Task.net7": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NET.Runtime.MonoAOTCompiler.Task"
+ }
+ },
+ "Microsoft.NET.Runtime.MonoTargets.Sdk.net7": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NET.Runtime.MonoTargets.Sdk"
+ }
+ },
+ "Microsoft.NET.Runtime.WebAssembly.Sdk.net7": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NET.Runtime.WebAssembly.Sdk"
+ }
+ },
+ "Microsoft.NET.Runtime.WebAssembly.Templates.net7": {
+ "kind": "template",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NET.Runtime.WebAssembly.Templates"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm": {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.android-arm64": {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.android-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.android-x64": {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.android-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.android-x86": {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.android-x86"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x86": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-x64": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.android-arm64": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.maccatalyst-arm64": {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.maccatalyst-x64": {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.osx-arm64": {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.osx-x64": {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.osx-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.net7.osx-arm64": {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.net7.osx-x64": {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.osx-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.ios-arm" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.ios-arm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.ios-arm64" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.ios-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.iossimulator-arm64" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.iossimulator-x64" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.iossimulator-x86" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-x86"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.tvos-arm64": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.tvos-arm64" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.tvos-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.tvossimulator-arm64" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.tvossimulator-x64" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.maccatalyst-arm64": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.maccatalyst-x64": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.tvossimulator-arm64": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.tvossimulator-x64": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.ios-arm": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.ios-arm64": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.iossimulator-arm64": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.iossimulator-x64": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.iossimulator-x86": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x86",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x86"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.AOT.Cross.net7.browser-wasm": {
+ "kind": "Sdk",
+ "version": "7.0.20",
+ "alias-to": {
+ "win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm",
+ "win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm",
+ "linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.browser-wasm",
+ "osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm",
+ "osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.net7.browser-wasm" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.browser-wasm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.multithread.net7.browser-wasm" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.Mono.perftrace.net7.browser-wasm" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.Mono.perftrace.browser-wasm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.net7.win-x64" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.win-x64"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.net7.win-x86" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.win-x86"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.net7.win-arm" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.win-arm"
+ }
+ },
+ "Microsoft.NETCore.App.Runtime.net7.win-arm64" : {
+ "kind": "framework",
+ "version": "7.0.20",
+ "alias-to": {
+ "any": "Microsoft.NETCore.App.Runtime.win-arm64"
+ }
+ }
+ }
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/WorkloadManifest.targets b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/WorkloadManifest.targets
new file mode 100644
index 0000000000000000000000000000000000000000..39288d158b11812fbf416b509918970533c6d880
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/WorkloadManifest.targets
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_MonoWorkloadTargetsMobile>true
+ <_MonoWorkloadRuntimePackPackageVersion>$(_RuntimePackInWorkloadVersion7)
+
+
+
+
+ $(_MonoWorkloadRuntimePackPackageVersion)
+
+ Microsoft.NETCore.App.Runtime.Mono.multithread.**RID**
+ Microsoft.NETCore.App.Runtime.Mono.perftrace.**RID**
+
+
+
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.cs.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.cs.json
new file mode 100644
index 0000000000000000000000000000000000000000..c79d39ad7f74a13159a90d214a1bd43b0a16e569
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.cs.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net7/description": "Nástroje pro sestavení .NET WebAssembly"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.de.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.de.json
new file mode 100644
index 0000000000000000000000000000000000000000..ce9fb2ca612e3121703d6bea2d526cbbea9b3d58
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.de.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net7/description": ".NET WebAssembly-Buildtools"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.en.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.en.json
new file mode 100644
index 0000000000000000000000000000000000000000..9818c50716303633a1e7a75bc16c018ca365adba
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.en.json
@@ -0,0 +1,5 @@
+{
+ "workloads/wasm-tools-net7/description": ".NET WebAssembly build tools for net7.0",
+ "workloads/wasm-experimental-net7/description": ".NET WebAssembly experimental tooling for net7.0",
+ "workloads/runtimes-windows-net7/description": "Windows Runtime Packs for net7.0"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.es.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.es.json
new file mode 100644
index 0000000000000000000000000000000000000000..cb2856693d2a35ef1688f2fcf17abcc1952f008f
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.es.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net7/description": "Herramientas de compilación de WebAssembly de .NET"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.fr.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.fr.json
new file mode 100644
index 0000000000000000000000000000000000000000..6b226ca498f5c31552f688fbc8a1e75b4aebbea3
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.fr.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net7/description": "Outils de construction .NET WebAssembly"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.it.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.it.json
new file mode 100644
index 0000000000000000000000000000000000000000..eda6b4444c74f6956b9981f8e02bdcad41f166d3
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.it.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net7/description": "Strumenti di compilazione WebAssembly .NET"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.ja.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.ja.json
new file mode 100644
index 0000000000000000000000000000000000000000..cb45a1e4ded3572ef29b050d091c9c67790b9ecb
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.ja.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net7/description": ".NET WebAssembly ビルド ツール"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.ko.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.ko.json
new file mode 100644
index 0000000000000000000000000000000000000000..afdaf968154504893b668cc60f86e7c9895872f0
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.ko.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net7/description": ".NET WebAssembly 빌드 도구"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.pl.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.pl.json
new file mode 100644
index 0000000000000000000000000000000000000000..0c5c20ef1331444f9497f18f041422dc84c14d7a
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.pl.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net7/description": "Narzędzia kompilacji zestawu WebAssembly platformy .NET"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.pt-BR.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.pt-BR.json
new file mode 100644
index 0000000000000000000000000000000000000000..c931dc6945af399030362d86f1ba3a7fd9240185
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.pt-BR.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net7/description": "Ferramentas de build do .NET WebAssembly"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.ru.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.ru.json
new file mode 100644
index 0000000000000000000000000000000000000000..102e67acdc2c216d61166cb8372f29757b70497e
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.ru.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools/description": "Средства сборки WebAssembly .NET"
+}
\ No newline at end of file
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.tr.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.tr.json
new file mode 100644
index 0000000000000000000000000000000000000000..137702dfdb81e4750e4cff2ebb4d8bde62e6d071
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.tr.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net7/description": ".NET WebAssembly derleme araçları"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.zh-Hans.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.zh-Hans.json
new file mode 100644
index 0000000000000000000000000000000000000000..0226641f61207d207d39142b0e1bae1f76249dfa
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.zh-Hans.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net7/description": ".NET WebAssembly 生成工具"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.zh-Hant.json b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.zh-Hant.json
new file mode 100644
index 0000000000000000000000000000000000000000..ca48dce5b02a9b92b2c7e3c0f9c83e55ad2b829f
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/microsoft.net.workload.mono.toolchain.net7/8.0.8/localize/WorkloadManifest.zh-Hant.json
@@ -0,0 +1,3 @@
+{
+ "workloads/wasm-tools-net7/description": ".NET WebAssembly 組建工具"
+}
diff --git a/dotnet/sdk-manifests/8.0.100/workloadsets/8.0.402-baseline.24467.1/baseline.workloadset.json b/dotnet/sdk-manifests/8.0.100/workloadsets/8.0.402-baseline.24467.1/baseline.workloadset.json
new file mode 100644
index 0000000000000000000000000000000000000000..73f1b4ab15b081aee3a70f181e776f5d63adf7c9
--- /dev/null
+++ b/dotnet/sdk-manifests/8.0.100/workloadsets/8.0.402-baseline.24467.1/baseline.workloadset.json
@@ -0,0 +1,15 @@
+{
+"Microsoft.NET.Sdk.Android": "34.0.43/8.0.100",
+"Microsoft.NET.Sdk.iOS": "17.0.8478/8.0.100",
+"Microsoft.NET.Sdk.MacCatalyst": "17.0.8478/8.0.100",
+"Microsoft.NET.Sdk.macOS": "14.0.8478/8.0.100",
+"Microsoft.NET.Sdk.Maui": "8.0.3/8.0.100",
+"Microsoft.NET.Sdk.tvOS": "17.0.8478/8.0.100",
+"Microsoft.NET.Workload.Mono.ToolChain.Current": "8.0.8/8.0.100",
+"Microsoft.NET.Workload.Emscripten.Current": "8.0.8/8.0.100",
+"Microsoft.NET.Workload.Emscripten.net6": "8.0.8/8.0.100",
+"Microsoft.NET.Workload.Emscripten.net7": "8.0.8/8.0.100",
+"Microsoft.NET.Workload.Mono.ToolChain.net6": "8.0.8/8.0.100",
+"Microsoft.NET.Workload.Mono.ToolChain.net7": "8.0.8/8.0.100",
+"Microsoft.NET.Sdk.Aspire": "8.0.0-preview.1.23557.2/8.0.100",
+}
diff --git a/dotnet/sdk/8.0.402/AppHostTemplate/apphost b/dotnet/sdk/8.0.402/AppHostTemplate/apphost
new file mode 100644
index 0000000000000000000000000000000000000000..dd5b5b4f6f07ce93b1711e3c91518485383409af
Binary files /dev/null and b/dotnet/sdk/8.0.402/AppHostTemplate/apphost differ
diff --git a/dotnet/sdk/8.0.402/Extensions/Microsoft.Diagnostics.NETCore.Client.dll b/dotnet/sdk/8.0.402/Extensions/Microsoft.Diagnostics.NETCore.Client.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e90d074648470b578f312e25d50643faa371abd6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/Microsoft.Diagnostics.NETCore.Client.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/Microsoft.TestPlatform.Extensions.BlameDataCollector.dll b/dotnet/sdk/8.0.402/Extensions/Microsoft.TestPlatform.Extensions.BlameDataCollector.dll
new file mode 100644
index 0000000000000000000000000000000000000000..891530366107a613724405e4d5afaa66f3bfd032
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/Microsoft.TestPlatform.Extensions.BlameDataCollector.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/Microsoft.TestPlatform.Extensions.EventLogCollector.dll b/dotnet/sdk/8.0.402/Extensions/Microsoft.TestPlatform.Extensions.EventLogCollector.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1ed969335b17f20e723041b256cb00586026e66b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/Microsoft.TestPlatform.Extensions.EventLogCollector.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/Microsoft.TestPlatform.TestHostRuntimeProvider.dll b/dotnet/sdk/8.0.402/Extensions/Microsoft.TestPlatform.TestHostRuntimeProvider.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c9f8cde4b8d97999373fec5bb55a80d8c1cd10f4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/Microsoft.TestPlatform.TestHostRuntimeProvider.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.dll b/dotnet/sdk/8.0.402/Extensions/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5de897ab5ae2517af92dd3418a408b0cadee1e36
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.dll b/dotnet/sdk/8.0.402/Extensions/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.dll
new file mode 100644
index 0000000000000000000000000000000000000000..78bb1a3252eefbd23af0aada010bfd5e086ef718
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4e0953f4a5f7278447bac31f3295df4525d5c641
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5d3484a55ec87c17e878e456342baeab239f1cf2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll b/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..947bc53a28464906f5cd895139b20482515148d5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0bb4f46c4ce0a46b2f229594111635d7b6adcec5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bfb8ca1f3f527c1b201a695967a49fe5f56e6989
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/cs/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/de/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/de/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..80c84ea094fe2705b2485740d47f7da72be63f44
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/de/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/de/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/de/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ec3a44edcc6577203a66ce5f74cff6e11aa69cfd
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/de/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/de/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll b/dotnet/sdk/8.0.402/Extensions/de/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d30bea660fe6983c00c82104a7d57549ca4da3cf
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/de/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/de/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/de/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..488a9c254be52d69db72fe449ecbf066c643eb00
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/de/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/de/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/de/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a24bac2c91117e669be8225cbf82a4e258665b23
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/de/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.arm64.exe b/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.arm64.exe
new file mode 100644
index 0000000000000000000000000000000000000000..76139319d51afcb5dfff02d9c5bd3befc400ebfb
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.arm64.exe differ
diff --git a/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.arm64.exe.config b/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.arm64.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..ab218814b42a7fe17baca1b74b20f053def4132a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.arm64.exe.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.exe b/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.exe
new file mode 100644
index 0000000000000000000000000000000000000000..e45fbea0b043b64879ceccc09a8d88db5fdf0567
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.exe differ
diff --git a/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.exe.config b/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..ab218814b42a7fe17baca1b74b20f053def4132a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.exe.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.x86.exe b/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.x86.exe
new file mode 100644
index 0000000000000000000000000000000000000000..3f8eb61df20440cdcd5785a74ee0fb50251e4428
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.x86.exe differ
diff --git a/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.x86.exe.config b/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.x86.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..ab218814b42a7fe17baca1b74b20f053def4132a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Extensions/dump/DumpMinitool.x86.exe.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Extensions/es/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/es/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6b0f49d1abc538602f5e5e5f1f42aba5ad94a7a1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/es/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/es/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/es/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6d320e1db4667a1f5ae3ac61393939a3999192a3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/es/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/es/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll b/dotnet/sdk/8.0.402/Extensions/es/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3703cb52f0599ed692caa7c80541dfdd5a87f5d8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/es/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/es/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/es/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0afc6d82223d12bd8c39670362696a8d89fa5195
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/es/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/es/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/es/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a2279ffc1265f96b49d573b438ac974d1095e23a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/es/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2e4ec30262d2e2a1136d98aa7279db6859030c60
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1923ddb48c4e143c9742cca08a15e850c9e29db0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll b/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..65b2d07808edef7afb6cdc6424414738fb40d25d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1ba76685c487ce3d124029868ecd1622d3d9f76b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2409a77e098b9356f16d9e2e8bc51d47267c6e81
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/fr/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/it/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/it/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..40843a203493156027990d272bd7524f580b5e9b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/it/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/it/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/it/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d35e33fa01f751cb57813ca0231986c21f53ee70
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/it/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/it/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll b/dotnet/sdk/8.0.402/Extensions/it/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5d06fabb876f7646c348485f2be512cbc431d653
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/it/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/it/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/it/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..024a39537e7e64c5d9b4994a1105ab5a0c81c35d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/it/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/it/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/it/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e1401366405e8ab5fe99a0362f49a4a2476ae410
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/it/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ab628930d985e21089fe1b1a0ed9864871c0577c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9070cb97e0a45da6639bad442d95c4e15f331bc7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll b/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..13a200e0f6b8103607b06b5e84b260b115533c5c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ee63a61fb9069f3079df3c9e8dff702ea58b8cef
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6c9f6ae38273a788fc845e99eacd01931801c2e9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ja/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a1289107be381609e20804deddca0c654e155a9e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7d92237ee4c1a65f8b4e146aa4efa14c6a9015ab
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll b/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..37f73ed104e16e7838ef277b9a152603619d2ccd
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..43ec8070886b0dfcbb825fa64e62d036cf5d4450
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..93f19078b0365ea8f6fd15f252b7a9be4d8ecc92
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ko/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c1a746ad651438f89dd8055da16d182e4ee677b3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..13cc2a6eb4fe0b2cbdec8089c6d165c893c8f54f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll b/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..02fa8d469ffdf0a87e77b96432d7ee5f55c7680a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a99ed0f60a25b6e3d04d9e854d9fd7e5330b54c4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..202bbff8cbdcbbc49b41eef4ff4c1fad20c00fd9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/pl/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e4f6ca99c752c7320fe749082b19fef8c92bf703
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cdb36c086f085ec85d94caeead3d907217c94a45
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll b/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2778d6adb3a44eba487aa8db53d231c168a021c8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..96994e3d172441b402cb5b495483dba6ff37ab51
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bfd6c1a14d74065a2dd330f8724d4fd6998ff6b6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/pt-BR/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1e9a7bb429fa54f8684849d0ffab8378431f8aa0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e9e045ef8524c975712c3934c94b7fadd2d2f5d0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll b/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..608b918b897acd85b32560e829b9d2cb095ecfb1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a717a40f5dbe3997f43b724e0d9937ef654e68a8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..234a5fb3b222d51284fcce0b6e8404683faf832b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/ru/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..be79e098aaa5abbeee556d0851f3e19fc951419c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..092e20323c6eae4f0c495eb2a9c8aa5e3d5bb0a8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll b/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9d9d6922b5e920287653071ae43225587f1cc79e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2ff0203e95d1f61090c7ac0a58ef89f3a1c3b24d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e73ab427e35ceb0bd25ade1b319aff25fc3c71f0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/tr/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cd59285b981cf12e5f83c69d5e97dac34cc51e56
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0c35bfeb71ea837e2c2d594cb88c2b2caa52efd2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll b/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..015361e1b8714431b295db04e3831297adce87ae
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a1ec2c06b97d75690a53a049f32831ed5c0240fa
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..76dcbd67063874713dc0876d2b408b402085cc41
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/zh-Hans/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..48b327666904d1aa5933514ad2f1f2576c73a83b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.TestPlatform.Extensions.BlameDataCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll b/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..944ddcc8eeb6c3453e15c227b3ddd8594689a46b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.TestPlatform.Extensions.EventLogCollector.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll b/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a2f82e5433badc8cc1136612d2c256a77aeb3cc5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.TestPlatform.TestHostRuntimeProvider.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..38d430a23d9ab552f66d7fb62a5f45c59afe3c4d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.VisualStudio.TestPlatform.Extensions.Html.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll b/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bad10e1a0f2a3c04ab46f43b04a6aa40ae72ae1b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Extensions/zh-Hant/Microsoft.VisualStudio.TestPlatform.Extensions.Trx.TestLogger.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/FSharp.Build.dll b/dotnet/sdk/8.0.402/FSharp/FSharp.Build.dll
new file mode 100644
index 0000000000000000000000000000000000000000..141d640e3959e02fe823c2e79dce5945745d0e30
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/FSharp.Build.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/FSharp.Compiler.Interactive.Settings.dll b/dotnet/sdk/8.0.402/FSharp/FSharp.Compiler.Interactive.Settings.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a2ac003806df7fcf68204a7cfa8e4ce0bcdeff2d
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/FSharp.Compiler.Interactive.Settings.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/FSharp.Compiler.Service.dll b/dotnet/sdk/8.0.402/FSharp/FSharp.Compiler.Service.dll
new file mode 100644
index 0000000000000000000000000000000000000000..46bb22b0d248a525d82d8ee8ee4fae92d84306d3
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/FSharp.Compiler.Service.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:afe34f02284e7f2857fea97123dd5bd468d57a2b3376e9fc467b55d721793590
+size 41082368
diff --git a/dotnet/sdk/8.0.402/FSharp/FSharp.Core.dll b/dotnet/sdk/8.0.402/FSharp/FSharp.Core.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b160c4522aac421d961ac7ca9b5c799c568c52f2
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/FSharp.Core.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:daf33b3c0a20097606d2f19d466190ab04d5ac50465cae873975d5a903ebceb2
+size 5726208
diff --git a/dotnet/sdk/8.0.402/FSharp/FSharp.Core.xml b/dotnet/sdk/8.0.402/FSharp/FSharp.Core.xml
new file mode 100644
index 0000000000000000000000000000000000000000..88ef2f23bf50bec2dd158f809dfa9920725184bc
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/FSharp.Core.xml
@@ -0,0 +1,29345 @@
+
+
+FSharp.Core
+
+
+
+ Specifies the types of members that are dynamically accessed.
+
+ This enumeration has a attribute that allows a
+ bitwise combination of its member values.
+
+
+
+ An abbreviation for the CLI type
+
+
+ See the module for further operations related to sequences.
+
+ See also F# Language Guide - Sequences.
+
+
+
+ An abbreviation for the CLI type
+
+
+ The type of immutable singly-linked lists.
+
+ See the module for further operations related to lists.
+
+ Use the constructors [] and :: (infix) to create values of this type, or
+ the notation [1; 2; 3]. Use the values in the List module to manipulate
+ values of this type, or pattern match against the values directly.
+
+ See also F# Language Guide - Lists.
+
+
+
+ Gets the tail of the list, which is a list containing all the elements of the list, excluding the first element
+
+
+ Gets the number of items contained in the list
+
+
+ Gets the element of the list at the given position.
+ Lists are represented as linked lists so this is an O(n) operation.
+ The index.
+
+ The value at the given index.
+
+
+ Gets a value indicating if the list contains no entries
+
+
+ Gets the first element of the list
+
+
+ Returns an empty list of a particular type
+
+
+ Gets a slice of the list, the elements of the list from the given start index to the given end index.
+
+ The start index.
+ The end index.
+
+ The sub list specified by the input indices.
+
+
+ Get the index for the element offset elements away from the end of the collection.
+
+ The rank of the index.
+ The offset from the end.
+
+ The corresponding index from the start.
+
+
+ Returns a list with head as its first element and tail as its subsequent elements
+
+ A new head value for the list.
+ The existing list.
+
+ The list with head appended to the front of tail.
+
+
+ The type of immutable singly-linked lists.
+
+ Use the constructors [] and :: (infix) to create values of this type, or
+ the notation [1;2;3]. Use the values in the List module to manipulate
+ values of this type, or pattern match against the values directly.
+
+
+
+
+
+ All the values in the map, including the duplicates.
+ The sequence will be ordered by the keys of the map.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample.Values // evaluates to seq ["a"; "b"]
+
+
+
+
+ The keys in the map.
+ The sequence will be ordered by the keys of the map.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample.Keys // evaluates to seq [1; 2]
+
+
+
+
+ Lookup an element in the map. Raise KeyNotFoundException if no binding
+ exists in the map.
+
+ The input key.
+ Thrown when the key is not found.
+
+ The value mapped to the key.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample.[1] // evaluates to "a"
+ sample.[3] // throws KeyNotFoundException
+
+
+
+
+ Returns true if there are no bindings in the map.
+
+
+
+ let emptyMap: Map<int, string> = Map.empty
+ emptyMap.IsEmpty // evaluates to true
+
+ let notEmptyMap = Map [ (1, "a"); (2, "b") ]
+ notEmptyMap.IsEmpty // evaluates to false
+
+
+
+
+ The number of bindings in the map.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample.Count // evaluates to 2
+
+
+
+
+ Lookup an element in the map, assigning to value if the element is in the domain
+ of the map and returning false if not.
+
+ The input key.
+ A reference to the output value.
+
+ true if the value is present, false if not.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample.TryGetValue 1 // evaluates to (true, "a")
+ sample.TryGetValue 3 // evaluates to (false, null)
+
+ let mutable x = ""
+ sample.TryGetValue (1, &x) // evaluates to true, x set to "a"
+
+ let mutable y = ""
+ sample.TryGetValue (3, &y) // evaluates to false, y unchanged
+
+
+
+
+ Lookup an element in the map, returning a Some value if the element is in the domain
+ of the map and None if not.
+
+ The input key.
+
+ The mapped value, or None if the key is not in the map.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample.TryFind 1 // evaluates to Some "a"
+ sample.TryFind 3 // evaluates to None
+
+
+
+
+ Removes an element from the domain of the map. No exception is raised if the element is not present.
+
+ The input key.
+
+ The resulting map.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample.Remove 1 // evaluates to map [(2, "b")]
+ sample.Remove 3 // equal to sample
+
+
+
+
+ Tests if an element is in the domain of the map.
+
+ The input key.
+
+ True if the map contains the given key.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample.ContainsKey 1 // evaluates to true
+ sample.ContainsKey 3 // evaluates to false
+
+
+
+
+ Returns a new map with the value stored under key changed according to f.
+
+ The input key.
+ The change function.
+
+ The resulting map.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ let f x =
+ match x with
+ | Some s -> Some (s + "z")
+ | None -> None
+
+ sample.Change (1, f) // evaluates to map [(1, "az"); (2, "b")]
+
+
+
+
+ Returns a new map with the binding added to the given map.
+ If a binding with the given key already exists in the input map, the existing binding is replaced by the new binding in the result map.
+ The key to add.
+ The value to add.
+
+ The resulting map.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample.Add (3, "c") // evaluates to map [(1, "a"); (2, "b"); (3, "c")]
+ sample.Add (2, "aa") // evaluates to map [(1, "a"); (2, "aa")]
+
+
+
+
+ Builds a map that contains the bindings of the given IEnumerable.
+
+ The input sequence of key/value pairs.
+
+ The resulting map.
+
+
+
+ Map [ (1, "a"); (2, "b") ] // evaluates to map [(1, "a"); (2, "b")]
+
+
+
+
+ Immutable maps based on binary trees, where keys are ordered by F# generic comparison. By default
+ comparison is the F# structural comparison function or uses implementations of the IComparable interface on key values.
+
+ See the module for further operations on maps.
+
+ All members of this class are thread-safe and may be used concurrently from multiple threads.
+
+
+ Returns a new set with the elements of the second set removed from the first.
+
+ The first input set.
+ The second input set.
+
+ A set containing elements of the first set that are not contained in the second set.
+
+
+
+ let set1 = Set.empty.Add(1).Add(2).Add(3)
+ let set2 = Set.empty.Add(2).Add(3).Add(4)
+ printfn $"The new set is: {set1 - set2}"
+
+ The sample evaluates to the following output: The new set is: set [1]
+
+
+
+ Compute the union of the two sets.
+
+ The first input set.
+ The second input set.
+
+ The union of the two input sets.
+
+
+
+ let set1 = Set.empty.Add(1).Add(2).Add(3)
+ let set2 = Set.empty.Add(2).Add(3).Add(4)
+ printfn $"Output is %A" {set1 + set2}"
+
+ The sample evaluates to the following output: The new set is: set [1; 2; 3; 4]
+
+
+
+ Returns the lowest element in the set according to the ordering being used for the set.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ printfn $"MinimumElement: {set.MinimumElement}"
+
+ The sample evaluates to the following output: MinimumElement: 1
+
+
+
+ Returns the highest element in the set according to the ordering being used for the set.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ printfn $"MaximumElement: {set.MaximumElement}"
+
+ The sample evaluates to the following output: MaximumElement: 3
+
+
+
+ A useful shortcut for Set.isEmpty. See the Set module for further operations on sets.
+
+
+
+ let set = Set.empty.Add(2).Add(3)
+ printfn $"Is the set empty? {set.IsEmpty}"
+
+ The sample evaluates to the following output: Is the set empty? false
+
+
+
+ The number of elements in the set
+
+
+
+ let set = Set.empty.Add(1).Add(1).Add(2)
+ printfn $"The set has {set.Count} elements"
+
+ The sample evaluates to the following output: The set has 3 elements
+
+
+
+ A useful shortcut for Set.remove. Note this operation produces a new set
+ and does not mutate the original set. The new set will share many storage
+ nodes with the original. See the Set module for further operations on sets.
+
+ The value to remove from the set.
+
+ The result set.
+
+
+
+ let set = Set.empty.Add(1).Add(1).Add(2)
+ printfn $"The new set is: {set}"
+
+ The sample evaluates to the following output: The new set is: set [2]
+
+
+
+ Evaluates to "true" if all elements of the second set are in the first.
+
+ The set to test against.
+
+ True if this set is a superset of otherSet.
+
+
+
+ let set1 = Set.empty.Add(1).Add(2).Add(3)
+ let set2 = Set.empty.Add(1).Add(2).Add(3).Add(4)
+ printfn $"Is {set1} a superset of {set2}? {Set.isSuperset set1 set2}"
+
+ The sample evaluates to the following output: Is set [1; 2; 3] a superset of set [1; 2; 3; 4]? false
+
+
+
+ Evaluates to "true" if all elements of the first set are in the second.
+
+ The set to test against.
+
+ True if this set is a subset of otherSet.
+
+
+
+ let set1 = Set.empty.Add(1).Add(2).Add(3)
+ let set2 = Set.empty.Add(1).Add(2).Add(3).Add(4)
+ printfn $"Is {set1} a subset of {set2}? {Set.isSubset set1 set2}"
+
+ The sample evaluates to the following output: Is set [1; 2; 3] a subset of set [1; 2; 3; 4]? true
+
+
+
+ Evaluates to "true" if all elements of the second set are in the first, and at least
+ one element of the first is not in the second.
+
+ The set to test against.
+
+ True if this set is a proper superset of otherSet.
+
+
+
+ let set1 = Set.empty.Add(1).Add(2).Add(3)
+ let set2 = Set.empty.Add(1).Add(2).Add(3).Add(4)
+ printfn $"Is {set1} a proper superset of {set2}? {Set.isProperSuperset set1 set2}"
+
+ The sample evaluates to the following output: Is set [1; 2; 3] a proper superset of set [1; 2; 3; 4]? false
+
+
+
+ Evaluates to "true" if all elements of the first set are in the second, and at least
+ one element of the second is not in the first.
+
+ The set to test against.
+
+ True if this set is a proper subset of otherSet.
+
+
+
+ let set1 = Set.empty.Add(1).Add(2).Add(3)
+ let set2 = Set.empty.Add(1).Add(2).Add(3).Add(4)
+ printfn $"Is {set1} a proper superset of {set2}? {Set.isProperSuperset set1 set2}"
+
+ The sample evaluates to the following output: Is set [1; 2; 3] a proper subset of set [1; 2; 3; 4]? true
+
+
+
+ A useful shortcut for Set.contains. See the Set module for further operations on sets.
+
+ The value to check.
+
+ True if the set contains value.
+
+
+
+ let set = Set.empty.Add(2).Add(3)
+ printfn $"Does the set contain 1? {set.Contains(1)}"
+
+ The sample evaluates to the following output: Does the set contain 1? false
+
+
+
+ A useful shortcut for Set.add. Note this operation produces a new set
+ and does not mutate the original set. The new set will share many storage
+ nodes with the original. See the Set module for further operations on sets.
+
+ The value to add to the set.
+
+ The result set.
+
+
+
+ let set = Set.empty.Add(1).Add(1).Add(2)
+ printfn $"The new set is: {set}"
+
+ The sample evaluates to the following output: The new set is: set [1; 2]
+
+
+
+ Create a set containing elements drawn from the given sequence.
+ The input sequence.
+
+ The result set.
+
+
+
+ let sequenceOfNumbers = seq { 1 .. 3 }
+ let numbersInSet = Set(sequenceOfNumbers)
+ printfn $"The set is {numbersInSet}"
+
+
+ Creates a new Set containing the elements of the given sequence. set [1; 2; 3]
+
+
+ Immutable sets based on binary trees, where elements are ordered by F# generic comparison. By default
+ comparison is the F# structural comparison function or uses implementations of the IComparable interface on element values.
+
+ See the module for further operations on sets.
+
+ All members of this class are thread-safe and may be used concurrently from multiple threads.
+
+
+ Fetches an element from a 2D array. You can also use the syntax array.[index1,index2].
+
+ The input array.
+ The index along the first dimension.
+ The index along the second dimension.
+
+ The value of the array at the given index.
+ Thrown when the indices are negative or exceed the bounds of the array.
+
+
+ Indexer syntax is generally preferred, e.g.
+
+ let array = array2D [ [ 1.0; 2.0 ]; [ 3.0; 4.0 ] ]
+
+ array[0,1]
+
+ Evaluates to 2.0.
+
+
+
+
+ let array = array2D [ [ 1.0; 2.0 ]; [ 3.0; 4.0 ] ]
+
+ Array2D.get array 0 1
+
+ Evaluates to 2.0.
+
+
+
+ Sets the value of an element in an array. You can also use the syntax array.[index1,index2] <- value.
+
+ The input array.
+ The index along the first dimension.
+ The index along the second dimension.
+ The value to set in the array.
+
+ Thrown when the indices are negative or exceed the bounds of the array.
+
+
+ Indexer syntax is generally preferred, e.g.
+
+ let array = Array2D.zeroCreate 2 2
+
+ array[0,1] <- 4.0
+
+
+
+
+
+ let array = Array2D.zeroCreate 2 2
+
+ Array2D.set array 0 1 4.0
+
+ After evaluation array is a 2x2 array with contents [[0.0; 4.0]; [0.0; 0.0]]
+
+
+
+ Builds a new array whose elements are the same as the input array but
+ where a non-zero-based input array generates a corresponding zero-based
+ output array.
+
+ The input array.
+
+ The zero-based output array.
+
+
+
+ let inputs = Array2D.createBased 1 1 2 3 1
+
+ inputs |> Array2D.rebase
+
+ Evaluates to a 2x2 zero-based array with contents [[1; 1]; [1; 1]]
+
+
+
+ Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the array. The integer indices passed to the
+ function indicates the element being transformed.
+
+ For non-zero-based arrays the basing on an input array will be propagated to the output
+ array.
+
+ A function that is applied to transform each element of the array. The two integers
+ provide the index of the element.
+ The input array.
+
+ An array whose elements have been transformed by the given mapping.
+
+
+
+ let inputs = array2D [ [ 3; 4 ]; [ 13; 14 ] ]
+
+ inputs |> Array2D.mapi (fun i j v -> i + j + v)
+
+ Evaluates to a 2x2 array with contents [[3; 5;]; [14; 16]]
+
+
+
+ Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the array.
+
+ For non-zero-based arrays the basing on an input array will be propagated to the output
+ array.
+
+ A function that is applied to transform each item of the input array.
+ The input array.
+
+ An array whose elements have been transformed by the given mapping.
+
+
+
+ let inputs = array2D [ [ 3; 4 ]; [ 13; 14 ] ]
+
+ inputs |> Array2D.map (fun v -> 2 * v)
+
+ Evaluates to a 2x2 array with contents [[6; 8;]; [26; 28]]
+
+
+
+ Returns the length of an array in the second dimension.
+
+ The input array.
+
+ The length of the array in the second dimension.
+
+
+
+ let array = array2D [ [ 3; 4; 5 ]; [ 13; 14; 15 ] ]
+
+ array |> Array2D.length2
+
+ Evaluates to 3.
+
+
+
+ Returns the length of an array in the first dimension.
+
+ The input array.
+
+ The length of the array in the first dimension.
+
+
+
+ let array = array2D [ [ 3; 4; 5 ]; [ 13; 14; 15 ] ]
+
+ array |> Array2D.length1
+
+ Evaluates to 2.
+
+
+
+ Applies the given function to each element of the array. The integer indices passed to the
+ function indicates the index of element.
+
+ A function to apply to each element of the array with the indices available as an argument.
+ The input array.
+
+
+
+ let inputs = array2D [ [ 3; 4 ]; [ 13; 14 ] ]
+
+ inputs |> Array2D.iteri (fun i j v -> printfn $"value at ({i},{j}) = {v}")
+
+ Evaluates to unit and prints
+
+ value at (0,0) = 3
+ value at (0,1) = 4
+ value at (1,0) = 13
+ value at (1,1) = 14
+
+ in the console.
+
+
+
+ Applies the given function to each element of the array.
+
+ A function to apply to each element of the array.
+ The input array.
+
+
+
+ let inputs = array2D [ [ 3; 4 ]; [ 13; 14 ] ]
+
+ inputs |> Array2D.iter (fun v -> printfn $"value = {v}")
+
+ Evaluates to unit and prints
+
+ value = 3
+ value = 4
+ value = 13
+ value = 14
+
+ in the console.
+
+
+
+ Creates a based array where the entries are initially Unchecked.defaultof<'T>.
+
+ The base for the first dimension of the array.
+ The base for the second dimension of the array.
+ The length of the first dimension of the array.
+ The length of the second dimension of the array.
+
+ The created array.
+ Thrown when base1, base2, length1, or length2 is negative.
+
+
+
+ Array2D.zeroCreateBased 1 1 2 3
+
+ Evaluates to a 2x3 1-based array with contents [[0; 0; 0]; [0; 0; 0]]
+
+
+
+
+ Creates a based array whose elements are all initially the given value.
+
+ The base for the first dimension of the array.
+ The base for the second dimension of the array.
+ The length of the first dimension of the array.
+ The length of the second dimension of the array.
+ The value to populate the new array.
+
+ The created array.
+ Thrown when base1, base2, length1, or length2 is negative.
+
+
+
+ Array2D.createBased 1 1 2 3 1
+
+ Evaluates to a 2x3 1-based array with contents [[1; 1; 1]; [1; 1; 1]]
+
+
+
+
+ Creates a based array given the dimensions and a generator function to compute the elements.
+
+ The base for the first dimension of the array.
+ The base for the second dimension of the array.
+ The length of the first dimension of the array.
+ The length of the second dimension of the array.
+ A function to produce elements of the array given the two indices.
+
+ The created array.
+ Thrown when base1, base2, length1, or length2 is negative.
+
+
+
+ Array2D.initBased 1 1 2 3 (fun i j -> i + j)
+
+ Evaluates to a 2x3 1-based array with contents [[2; 3; 4]; [3; 4; 5]]
+
+
+
+
+ Creates an array where the entries are initially Unchecked.defaultof<'T>.
+
+ The length of the first dimension of the array.
+ The length of the second dimension of the array.
+
+ The created array.
+ Thrown when length1 or length2 is negative.
+
+
+
+ Array2D.zeroCreate 2 3
+
+ Evaluates to a 2x3 array with contents [[0; 0; 0]; [0; 0; 0]]
+
+
+
+
+ Creates an array whose elements are all initially the given value.
+
+ The length of the first dimension of the array.
+ The length of the second dimension of the array.
+ The value to populate the new array.
+
+ The created array.
+ Thrown when length1 or length2 is negative.
+
+
+
+ Array2D.create 2 3 1
+
+ Evaluates to a 2x3 array with contents [[1; 1; 1]; [1; 1; 1]]
+
+
+
+
+ Creates an array given the dimensions and a generator function to compute the elements.
+
+ The length of the first dimension of the array.
+ The length of the second dimension of the array.
+ A function to produce elements of the array given the two indices.
+
+ The generated array.
+ Thrown when either of the lengths is negative.
+
+
+
+ Array2D.init 2 3 (fun i j -> i + j)
+
+ Evaluates to a 2x3 array with contents [[0; 1; 2]; [1; 2; 3]]
+
+
+
+
+ Reads a range of elements from the first array and write them into the second.
+
+ The source array.
+ The first-dimension index to begin copying from in the source array.
+ The second-dimension index to begin copying from in the source array.
+ The target array.
+ The first-dimension index to begin copying into in the target array.
+ The second-dimension index to begin copying into in the target array.
+ The number of elements to copy across the first dimension of the arrays.
+ The number of elements to copy across the second dimension of the arrays.
+ Thrown when any of the indices are negative or if either of
+ the counts are larger than the dimensions of the array allow.
+
+
+ Slicing syntax is generally preferred, e.g.
+
+ let source = array2D [ [ 3; 4 ]; [ 13; 14 ] ]
+ let target = array2D [ [ 2; 2; 2 ]; [ 12; 12; 12 ] ]
+ target[0..1,1..2] <- source
+
+
+
+
+
+ let source = array2D [ [ 3; 4 ]; [ 13; 14 ] ]
+ let target = array2D [ [ 2; 2; 2 ]; [ 12; 12; 12 ] ]
+
+ Array2D.blit source 0 0 target 0 1 2 2
+
+ After evaluation target contains [ [ 2; 3; 4 ]; [ 12; 13; 14 ] ].
+
+
+
+ Builds a new array whose elements are the same as the input array.
+
+ For non-zero-based arrays the basing on an input array will be propagated to the output
+ array.
+
+ The input array.
+
+ A copy of the input array.
+
+
+
+ open System
+
+ let array = Array2D.zeroCreate<int> 10 10
+
+ array |> Array2D.copy
+
+ Evaluates to a new copy of the 10x10 array.
+
+
+
+ Fetches the base-index for the second dimension of the array.
+
+ The input array.
+
+ The base-index of the second dimension of the array.
+
+ Create a 10x10 1-based array:
+
+ open System
+
+ let array = Array.CreateInstance(typeof<int>, [| 10; 10 |], [| 1; 1 |]) :?> int[,]
+
+ array |> Array2D.base2
+
+ Evaluates to 1.
+
+
+
+ Fetches the base-index for the first dimension of the array.
+
+ The input array.
+
+ The base-index of the first dimension of the array.
+
+ Create a 10x10 1-based array:
+
+ open System
+
+ let array = Array.CreateInstance(typeof<int>, [| 10; 10 |], [| 1; 1 |]) :?> int[,]
+
+ array |> Array2D.base1
+
+ Evaluates to 1.
+
+
+
+ Contains operations for working with 2-dimensional arrays.
+
+
+ See also F# Language Guide - Arrays.
+
+ F# and CLI multi-dimensional arrays are typically zero-based.
+ However, CLI multi-dimensional arrays used in conjunction with external
+ libraries (e.g. libraries associated with Visual Basic) be
+ non-zero based, using a potentially different base for each dimension.
+ The operations in this module will accept such arrays, and
+ the basing on an input array will be propagated to a matching output
+ array on the Array2D.map and Array2D.mapi operations.
+ Non-zero-based arrays can also be created using Array2D.zeroCreateBased,
+ Array2D.createBased and Array2D.initBased.
+
+
+
+ Get an implementation of equality semantics using the given functions.
+
+ A function to generate a hash code from a value.
+ A function to test equality of two values.
+
+ An object implementing using the given functions.
+
+ Create a dictionary which uses the given functions for equality and hashing:
+
+ open System.Collections.Generic
+
+ let modIdentity = HashIdentity.FromFunctions((fun i -> i%5), (fun i1 i2 -> i1%5 = i2%5))
+ let dict = new Dictionary<int,int>(HashIdentity.FromFunctions)
+
+ dict.[2] <- 6
+ dict.[7] <- 10
+
+ In this example, only one entry is added, as the keys 2 and 7 have the same hash and are equal according to the provided functions.
+
+
+
+ Get an implementation of equality semantics using reference equality and reference hashing.
+
+
+ An object implementing using
+ and .
+
+
+ Create a dictionary which uses reference equality and hashing on the key, giving each key reference identity:
+
+ open System.Collections.Generic
+
+ let dict = new Dictionary<int array,int>(HashIdentity.Structural)
+
+ let arr1 = [| 1;2;3 |]
+ let arr2 = [| 1;2;3 |]
+ dict.Add(arr1, 6)
+ dict.Add(arr2, 7)
+
+ In this example, two entries are added to the dictionary, as the arrays have different object reference identity.
+
+
+
+ Get an implementation of equality semantics semantics using limited structural equality and structural hashing.
+
+ The limit on the number of hashing operations used.
+
+ An object implementing .
+
+ Create a dictionary which uses limited structural equality and structural hashing on the key, allowing trees as efficient keys:
+
+ open System.Collections.Generic
+
+ type Tree = Tree of int * Tree list
+
+ let dict = new Dictionary<Tree,int>(HashIdentity.LimitedStructural 4)
+
+ let tree1 = Tree(0, [])
+ let tree2 = Tree(0, [tree1; tree1])
+ dict.Add(tree1, 6)
+ dict.Add(tree2, 7)
+
+
+
+
+ Get an implementation of equality semantics using non-structural equality and non-structural hashing.
+
+
+ An object implementing using
+ and .
+
+
+ Create a dictionary which uses non-structural equality and hashing on the key:
+
+ open System.Collections.Generic
+
+ let dict = new Dictionary<System.DateTime,int>(HashIdentity.NonStructural)
+
+ dict.Add(System.DateTime.Now, 1)
+
+
+
+
+ Get an implementation of equality semantics using structural equality and structural hashing.
+
+ An object implementing using and .
+
+ Create a dictionary which uses structural equality and structural hashing on the key, allowing an array as a key:
+
+ open System.Collections.Generic
+
+ let dict = new Dictionary<int array,int>(HashIdentity.Structural)
+
+ let arr1 = [| 1;2;3 |]
+ let arr2 = [| 1;2;3 |]
+
+ dict.[arr1] <- 6
+ dict.[arr2] >- 7
+
+ In this example, only one entry is added to the dictionary, as the arrays identical by structural equality.
+
+
+
+ Common notions of value identity implementing the
+ interface, for constructing objects and other collections
+
+
+ Get an implementation of comparison semantics using the given function.
+
+ A function to compare two values.
+
+ An object implementing using the supplied function.
+
+ Create and use a comparer using the given function:
+
+ let comparer = ComparisonIdentity.FromFunction(fun i1 i2 -> compare (i1%5) (i2%5))
+
+ comparer.Compare(7, 2)
+
+ Evaluates to 0because 7 and 2 compare as equal using to the provided function.
+
+
+
+ Get an implementation of comparison semantics using non-structural comparison.
+
+ An object implementing using .
+
+ Create and use a comparer using structural comparison:
+
+ let comparer = ComparisonIdentity.NonStructural<System.DateTime>
+
+ comparer.Compare(System.DateTime.Now, System.DateTime.Today)
+
+ Evaluates to 1.
+
+
+
+ Get an implementation of comparison semantics using structural comparison.
+
+ An object implementing using .
+
+ Create and use a comparer using structural comparison:
+
+ let compareTuples = ComparisonIdentity.Structural<int * int>
+
+ compareTuples.Compare((1, 4), (1, 5))
+
+ Evaluates to -1.
+
+
+
+ Common notions of value ordering implementing the
+ interface, for constructing sorted data structures and performing sorting operations.
+
+
+
+ Returns a random sample of elements from the given sequence with the specified randomizer function, each element can be selected only once.
+
+
+ The randomizer function, must return a float number from [0.0..1.0) range.
+ The number of elements to return.
+ The input sequence.
+
+ A sequence of randomly selected elements from the input sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+ Thrown when count is less than 0.
+ Thrown when count is greater than the length of the input sequence.
+ Thrown when the randomizer function returns a number outside the range [0.0..1.0).
+
+
+
+ let inputs = seq { 0; 1; 2; 3; 4 }
+
+ inputs |> Seq.randomSampleBy Random.Shared.NextDouble 3
+
+ Can evaluate to seq { 3; 1; 2 }.
+
+
+
+
+ Returns a random sample of elements from the given sequence with the specified Random instance, each element can be selected only once.
+
+
+ The Random instance.
+ The number of elements to return.
+ The input sequence.
+
+ A sequence of randomly selected elements from the input sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the random argument is null.
+ Thrown when the input sequence is empty.
+ Thrown when count is less than 0.
+ Thrown when count is greater than the length of the input sequence.
+
+
+
+ let inputs = seq { 0; 1; 2; 3; 4 }
+
+ inputs |> Seq.randomSampleWith Random.Shared 3
+
+ Can evaluate to seq { 3; 1; 2 }.
+
+
+
+
+ Returns a random sample of elements from the given sequence, each element can be selected only once.
+
+
+ The number of elements to return.
+ The input sequence.
+
+ A sequence of randomly selected elements from the input sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+ Thrown when count is less than 0.
+ Thrown when count is greater than the length of the input sequence.
+
+
+
+ let inputs = seq { 0; 1; 2; 3; 4 }
+
+ inputs |> Seq.randomSample 3
+
+ Can evaluate to seq { 3; 1; 2 }.
+
+
+
+
+ Returns a sequence of random elements from the given sequence with the specified randomizer function, each element can be selected multiple times.
+
+
+ The randomizer function, must return a float number from [0.0..1.0) range.
+ The number of elements to return.
+ The input sequence.
+
+ A sequence of randomly selected elements from the input sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+ Thrown when count is less than 0.
+ Thrown when the randomizer function returns a number outside the range [0.0..1.0).
+
+
+
+ let inputs = seq { 0; 1; 2; 3; 4 }
+
+ inputs |> Seq.randomChoicesBy Random.Shared.NextDouble 3
+
+ Can evaluate to seq { 3; 1; 3 }.
+
+
+
+
+ Returns a sequence of random elements from the given sequence with the specified Random instance, each element can be selected multiple times.
+
+
+ The Random instance.
+ The number of elements to return.
+ The input sequence.
+
+ A sequence of randomly selected elements from the input sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the random argument is null.
+ Thrown when the input sequence is empty.
+ Thrown when count is less than 0.
+
+
+
+ let inputs = seq { 0; 1; 2; 3; 4 }
+
+ inputs |> Seq.randomChoicesWith Random.Shared 3
+
+ Can evaluate to seq { 3; 1; 3 }.
+
+
+
+
+ Returns an sequence of random elements from the given sequence, each element can be selected multiple times.
+
+
+ The number of elements to return.
+ The input sequence.
+
+ A sequence of randomly selected elements from the input sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+ Thrown when count is less than 0.
+
+
+
+ let inputs = seq { 0; 1; 2; 3; 4 }
+
+ inputs |> Seq.randomChoices 3
+
+ Can evaluate to seq { 3; 1; 3 }.
+
+
+
+
+ Returns a random element from the given sequence with the specified randomizer function.
+
+
+ The randomizer function, must return a float number from [0.0..1.0) range.
+ The input sequence.
+
+ A randomly selected element from the input sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+ Thrown when the randomizer function returns a number outside the range [0.0..1.0).
+
+
+
+ let inputs = seq { 0; 1; 2; 3; 4 }
+ let randomizer = Random.Shared.NextDouble
+
+ inputs |> Seq.randomChoiceBy randomizer
+
+ Can evaluate to 3.
+
+
+
+
+ Returns a random element from the given sequence with the specified Random instance.
+
+
+ The Random instance.
+ The input sequence.
+
+ A randomly selected element from the input array.
+
+ Thrown when the input sequence is null.
+ Thrown when the random argument is null.
+ Thrown when the input sequence is empty.
+
+
+
+ let inputs = seq { 0; 1; 2; 3; 4 }
+
+ inputs |> Seq.randomChoiceWith Random.Shared
+
+ Can evaluate to 3.
+
+
+
+
+ Returns a random element from the given sequence.
+
+
+ The input sequence.
+
+ A randomly selected element from the input sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+
+
+
+ let inputs = seq { 0; 1; 2; 3; 4 }
+
+ inputs |> Seq.randomChoice
+
+ Can evaluate to 3.
+
+
+
+ Return a new sequence shuffled in a random order with the specified randomizer function.
+
+ The randomizer function, must return a float number from [0.0..1.0) range.
+ The input sequence.
+
+ The result sequence.
+ Thrown when the input sequence is null.
+ Thrown when the randomizer function returns a number outside the range [0.0..1.0).
+
+
+
+ let inputs = seq { 0; 1; 2; 3; 4 }
+
+ inputs |> Seq.randomShuffleBy Random.Shared.NextDouble
+
+ Can evaluate to seq { 0; 2; 4; 3; 1 }.
+
+
+
+ Return a new sequence shuffled in a random order with the specified Random instance.
+
+ The Random instance.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the random argument is null.
+
+
+
+ let inputs = seq { 0; 1; 2; 3; 4 }
+
+ inputs |> Seq.randomShuffleWith Random.Shared
+
+ Can evaluate to seq { 0; 2; 4; 3; 1 }.
+
+
+
+ Return a new sequence shuffled in a random order.
+
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = seq { 0; 1; 2; 3; 4 }
+
+ inputs |> Seq.randomShuffle
+
+ Can evaluate to seq { 0; 2; 4; 3; 1 }.
+
+
+
+ Return a new sequence with new items inserted before the given index.
+
+ The index where the items should be inserted.
+ The values to insert.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when index is below 0 or greater than source.Length.
+
+
+
+ seq { 0; 1; 2 } |> Seq.insertManyAt 1 [8; 9]
+
+ Evaluates to a sequence yielding the same results as seq { 0; 8; 9; 1; 2 }.
+
+
+
+ Return a new sequence with a new item inserted before the given index.
+
+ The index where the item should be inserted.
+ The value to insert.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when index is below 0 or greater than source.Length.
+
+
+
+ seq { 0; 1; 2 } |> Seq.insertAt 1 9
+
+ Evaluates to a sequence yielding the same results as seq { 0; 9; 1; 2 }.
+
+
+
+ Return a new sequence with the item at a given index set to the new value.
+
+ The index of the item to be replaced.
+ The new value.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when index is outside 0..source.Length - 1
+
+
+
+ seq { 0; 1; 2 } |> Seq.updateAt 1 9
+
+ Evaluates to a sequence yielding the same results as seq { 0; 9; 2 }.
+
+
+
+ Return a new sequence with the number of items starting at a given index removed.
+
+ The index of the item to be removed.
+ The number of items to remove.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when index is outside 0..source.Length - count
+
+
+
+ seq { 0; 1; 2; 3 } |> Seq.removeManyAt 1 2
+
+ Evaluates to a sequence yielding the same results as seq { 0; 3 }.
+
+
+
+ Return a new sequence with the item at a given index removed.
+
+ The index of the item to be removed.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when index is outside 0..source.Length - 1
+
+
+
+ seq { 0; 1; 2 } |> Seq.removeAt 1
+
+ Evaluates to a sequence yielding the same results as seq { 0; 2 }.
+
+
+
+ Combines the three sequences into a sequence of triples. The sequences need not have equal lengths:
+ when one sequence is exhausted any remaining elements in the other
+ sequences are ignored.
+
+ The first input sequence.
+ The second input sequence.
+ The third input sequence.
+
+ The result sequence.
+
+ Thrown when any of the input sequences is null.
+
+
+
+ let numbers = [1; 2]
+ let names = ["one"; "two"]
+ let roman = ["I"; "II"]
+
+ Seq.zip3 numbers names roman
+
+ Evaluates to a sequence yielding the same results as seq { (1, "one", "I"); (2, "two", "II") }.
+
+
+
+ Combines the two sequences into a sequence of pairs. The two sequences need not have equal lengths:
+ when one sequence is exhausted any remaining elements in the other
+ sequence are ignored.
+
+ The first input sequence.
+ The second input sequence.
+
+ The result sequence.
+
+ Thrown when either of the input sequences is null.
+
+
+
+ let numbers = [1; 2]
+ let names = ["one"; "two"]
+
+ Seq.zip numbers names
+
+ Evaluates to a sequence yielding the same results as seq { (1, "one"); (2, "two") }.
+
+
+
+ Returns a sequence yielding sliding windows containing elements drawn from the input
+ sequence. Each window is returned as a fresh array.
+
+ The number of elements in each window.
+ The input sequence.
+
+ The result sequence.
+ Thrown when the input sequence is null.
+ Thrown when windowSize is not positive.
+
+
+
+ let inputs = [1; 2; 3; 4; 5]
+
+ inputs |> Seq.windowed 3
+
+ Evaluates to a sequence of arrays yielding the results seq { [| 1; 2; 3 |]; [| 2; 3; 4 |]; [| 3; 4; 5 |] }
+
+
+
+ Returns a sequence that contains the elements generated by the given computation.
+ The given initial state argument is passed to the element generator.
+ For each IEnumerator elements in the stream are generated on-demand by applying the element
+ generator, until a None value is returned by the element generator. Each call to the element
+ generator returns a new residual state.
+
+ The stream will be recomputed each time an IEnumerator is requested and iterated for the Seq.
+
+ A function that takes in the current state and returns an option tuple of the next
+ element of the sequence and the next state value.
+ The initial state value.
+
+ The result sequence.
+
+
+
+ 1 |> Seq.unfold (fun state -> if state > 100 then None else Some (state, state * 2))
+
+ Evaluates to a sequence yielding the same results as seq { 1; 2; 4; 8; 16; 32; 64 }
+
+
+
+
+ 1I |> Seq.unfold (fun state -> Some (state, state * 2I))
+
+ Evaluates to an infinite sequence yielding the results seq { 1I; 2I; 4I; 8I; ... }
+
+
+
+ Returns a sequence that when enumerated returns at most N elements.
+
+ The maximum number of items to enumerate.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> Seq.truncate 2
+
+ Evaluates to a sequence yielding the same results as seq { "a"; "b" }
+
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> Seq.truncate 6
+
+ Evaluates to a sequence yielding the same results as seq { "a"; "b"; "c"; "d" }
+
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> Seq.truncate 0
+
+ Evaluates to the empty sequence.
+
+
+
+ Returns the transpose of the given sequence of sequences.
+
+ This function returns a sequence that digests the whole initial sequence as soon as
+ that sequence is iterated. As a result this function should not be used with
+ large or infinite sequences.
+
+ The input sequence.
+
+ The transposed sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs =
+ [ [ 10; 20; 30 ]
+ [ 11; 21; 31 ] ]
+
+ inputs |> Seq.transpose
+
+ Evaluates to a sequence of sequences yielding the same results as [ [10; 11]; [20; 21]; [30; 31] ].
+
+
+
+ Applies the given function to successive elements, returning the first
+ result where the function returns "Some(x)".
+
+ A function that transforms items from the input sequence into options.
+ The input sequence.
+
+ The chosen element or None.
+
+ Thrown when the input sequence is null.
+
+
+
+ let input = [1; 2; 3]
+
+ input |> Seq.tryPick (fun n -> if n % 2 = 0 then Some (string n) else None)
+
+ Evaluates to Some "2".
+
+
+
+
+ let input = [1; 2; 3]
+
+ input |> Seq.tryPick (fun n -> if n > 3 = 0 then Some (string n) else None)
+
+ Evaluates to None.
+
+
+
+ Returns the index of the last element in the sequence
+ that satisfies the given predicate. Return None if no such element exists.
+
+ This function digests the whole initial sequence as soon as it is called. As a
+ result this function should not be used with large or infinite sequences.
+
+ A function that evaluates to a Boolean when given an item in the sequence.
+ The input sequence.
+
+ The found index or None.
+
+ Thrown when the input sequence is null.
+
+ Try to find the index of the first even number from the back:
+
+ let inputs = [1; 2; 3; 4; 5]
+
+ inputs |> Seq.tryFindIndexBack (fun elm -> elm % 2 = 0)
+
+ Evaluates to Some 3
+
+
+ Try to find the index of the first even number from the back:
+
+ let inputs = [1; 3; 5; 7]
+
+ inputs |> Seq.tryFindIndexBack (fun elm -> elm % 2 = 0)
+
+ Evaluates to None
+
+
+
+ Tries to find the nth element in the sequence.
+ Returns None if index is negative or the input sequence does not contain enough elements.
+
+ The index of element to retrieve.
+ The input sequence.
+
+ The nth element of the sequence or None.
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = ["a"; "b"; "c"]
+
+ inputs |> Seq.tryItem 1
+
+ Evaluates to Some "b".
+
+
+
+
+ let inputs = ["a"; "b"; "c"]
+
+ inputs |> Seq.tryItem 4
+
+ Evaluates to None.
+
+
+
+ Returns the index of the first element in the sequence
+ that satisfies the given predicate. Return None if no such element exists.
+
+ A function that evaluates to a Boolean when given an item in the sequence.
+ The input sequence.
+
+ The found index or None.
+
+ Thrown when the input sequence is null.
+
+ Try to find the index of the first even number:
+
+ let inputs = [1; 2; 3; 4; 5]
+
+ inputs |> Seq.tryFindIndex (fun elm -> elm % 2 = 0)
+
+ Evaluates to Some 1
+
+
+ Try to find the index of the first even number:
+
+ let inputs = [1; 3; 5; 7]
+
+ inputs |> Seq.tryFindIndex (fun elm -> elm % 2 = 0)
+
+ Evaluates to None
+
+
+
+ Returns the last element for which the given function returns True.
+ Return None if no such element exists.
+
+ This function digests the whole initial sequence as soon as it is called. As a
+ result this function should not be used with large or infinite sequences.
+
+ A function that evaluates to a Boolean when given an item in the sequence.
+ The input sequence.
+
+ The found element or None.
+
+ Thrown when the input sequence is null.
+
+ Try to find the first even number from the back:
+
+ let inputs = [1; 2; 3; 4; 5]
+
+ inputs |> Seq.tryFindBack (fun elm -> elm % 2 = 0)
+
+ Evaluates to Some 4
+
+
+ Try to find the first even number from the back:
+
+ let inputs = [1; 5; 3]
+
+ inputs |> Seq.tryFindBack (fun elm -> elm % 2 = 0)
+
+ Evaluates to None
+
+
+
+ Returns the first element for which the given function returns True.
+ Return None if no such element exists.
+
+ A function that evaluates to a Boolean when given an item in the sequence.
+ The input sequence.
+
+ The found element or None.
+
+ Thrown when the input sequence is null.
+
+ Try to find the first even number:
+
+ let inputs = [1; 2; 3]
+
+ inputs |> Seq.tryFind (fun elm -> elm % 2 = 0)
+
+ Evaluates to Some 2
+
+
+ Try to find the first even number:
+
+ let inputs = [1; 5; 3]
+
+ inputs |> Seq.tryFind (fun elm -> elm % 2 = 0)
+
+ Evaluates to None
+
+
+
+ Builds a list from the given collection.
+
+ The input sequence.
+
+ The result list.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = seq { 1; 2; 5 }
+
+ inputs |> Seq.toList
+
+ Evaluates to [ 1; 2; 5 ].
+
+
+
+ Builds an array from the given collection.
+
+ The input sequence.
+
+ The result array.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = seq { 1; 2; 5 }
+
+ inputs |> Seq.toArray
+
+ Evaluates to [| 1; 2; 5 |].
+
+
+
+ Returns a sequence that, when iterated, yields elements of the underlying sequence while the
+ given predicate returns True, and then returns no further elements.
+
+ A function that evaluates to false when no more items should be returned.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = ["a"; "bb"; "ccc"; "d"]
+
+ inputs |> Seq.takeWhile (fun x -> x.Length < 3)
+
+ Evaluates to a sequence yielding the same results as seq { "a"; "bb" }
+
+
+
+ Returns the first N elements of the sequence.
+
+ Throws InvalidOperationException
+ if the count exceeds the number of elements in the sequence. Seq.truncate
+ returns as many items as the sequence contains instead of throwing an exception.
+
+ The number of items to take.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty and the count is greater than zero.
+ Thrown when count exceeds the number of elements
+ in the sequence.
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> Seq.take 2
+
+ Evaluates to a sequence yielding the same results as ["a"; "b"]
+
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> Seq.take 6
+
+ Throws InvalidOperationException.
+
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> Seq.take 0
+
+ Evaluates to a sequence yielding no results.
+
+
+
+ Returns a sequence that skips 1 element of the underlying sequence and then yields the
+ remaining elements of the sequence.
+
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+
+
+
+ let inputs = ["a"; "bb"; "ccc"]
+
+ inputs |> Seq.tail
+
+ Evaluates to a sequence yielding the same results as seq { "bb"; "ccc" }
+
+
+
+
+ Returns the sum of the results generated by applying the function to each element of the sequence.
+
+ The generated elements are summed using the + operator and Zero property associated with the generated type.
+
+ A function to transform items from the input sequence into the type that will be summed.
+ The input sequence.
+
+ The computed sum.
+
+
+
+ let input = [ "aa"; "bbb"; "cc" ]
+
+ input |> Seq.sumBy (fun s -> s.Length)
+
+ Evaluates to 7.
+
+
+
+ Returns the sum of the elements in the sequence.
+
+ The elements are summed using the + operator and Zero property associated with the generated type.
+
+ The input sequence.
+
+ The computed sum.
+
+
+
+ let input = [ 1; 5; 3; 2 ]
+
+ input |> Seq.sum
+
+ Evaluates to 11.
+
+
+
+ Applies a key-generating function to each element of a sequence and yield a sequence ordered
+ descending by keys. The keys are compared using generic comparison as implemented by .
+
+ This function returns a sequence that digests the whole initial sequence as soon as
+ that sequence is iterated. As a result this function should not be used with
+ large or infinite sequences. The function makes no assumption on the ordering of the original
+ sequence.
+
+ This is a stable sort, that is the original order of equal elements is preserved.
+
+ A function to transform items of the input sequence into comparable keys.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let input = ["a"; "bbb"; "cccc"; "dd"]
+
+ input |> Seq.sortByDescending (fun s -> s.Length)
+
+ Evaluates to a sequence yielding the same results as seq { "cccc"; "bbb"; "dd"; "a" }.
+
+
+
+ Yields a sequence ordered descending by keys.
+
+ This function returns a sequence that digests the whole initial sequence as soon as
+ that sequence is iterated. As a result this function should not be used with
+ large or infinite sequences. The function makes no assumption on the ordering of the original
+ sequence.
+
+ This is a stable sort, that is the original order of equal elements is preserved.
+
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let input = seq { 8; 4; 3; 1; 6; 1 }
+
+ input |> Seq.sortDescending
+
+ Evaluates to a sequence yielding the same results as seq { 8; 6; 4; 3; 1; 1 }.
+
+
+
+ Applies a key-generating function to each element of a sequence and yield a sequence ordered
+ by keys. The keys are compared using generic comparison as implemented by .
+
+ This function returns a sequence that digests the whole initial sequence as soon as
+ that sequence is iterated. As a result this function should not be used with
+ large or infinite sequences.
+
+ The function makes no assumption on the ordering of the original
+ sequence and uses a stable sort, that is the original order of equal elements is preserved.
+
+ A function to transform items of the input sequence into comparable keys.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let input = [ "a"; "bbb"; "cccc"; "dd" ]
+
+ input |> Seq.sortBy (fun s -> s.Length)
+
+ Evaluates to a sequence yielding the same results as seq { "a"; "dd"; "bbb"; "cccc" }.
+
+
+
+ Yields a sequence ordered using the given comparison function.
+
+ This function returns a sequence that digests the whole initial sequence as soon as
+ that sequence is iterated. As a result this function should not be used with
+ large or infinite sequences.
+
+ The function makes no assumption on the ordering of the original
+ sequence and uses a stable sort, that is the original order of equal elements is preserved.
+
+ The function to compare the collection elements.
+ The input sequence.
+
+ The result sequence.
+
+ Sort a sequence of pairs using a comparison function that compares string lengths then index numbers:
+
+ let compareEntries (n1: int, s1: string) (n2: int, s2: string) =
+ let c = compare s1.Length s2.Length
+ if c <> 0 then c else
+ compare n1 n2
+
+ let input = [ (0,"aa"); (1,"bbb"); (2,"cc"); (3,"dd") ]
+
+ input |> Seq.sortWith compareEntries
+
+ Evaluates to a sequence yielding the same results as seq { (0, "aa"); (2, "cc"); (3, "dd"); (1, "bbb") }.
+
+
+
+ Yields a sequence ordered by keys.
+
+ This function returns a sequence that digests the whole initial sequence as soon as
+ that sequence is iterated. As a result this function should not be used with
+ large or infinite sequences.
+
+ The function makes no assumption on the ordering of the original
+ sequence and uses a stable sort, that is the original order of equal elements is preserved.
+
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let input = seq { 8; 4; 3; 1; 6; 1 }
+
+ Seq.sort input
+
+ Evaluates to a sequence yielding the same results as seq { 1; 1 3; 4; 6; 8 }.
+
+
+
+ Returns a sequence that, when iterated, skips elements of the underlying sequence while the
+ given predicate returns True, and then yields the remaining elements of the sequence.
+
+ A function that evaluates an element of the sequence to a boolean value.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = seq { "a"; "bbb"; "cc"; "d" }
+
+ inputs |> Seq.skipWhile (fun x -> x.Length < 3)
+
+ Evaluates a sequence yielding the same results as seq { "bbb"; "cc"; "d" }
+
+
+
+ Returns a sequence that skips N elements of the underlying sequence and then yields the
+ remaining elements of the sequence.
+
+ The number of items to skip.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when count exceeds the number of elements
+ in the sequence.
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> Seq.skip 2
+
+ Evaluates a sequence yielding the same results as seq { "c"; "d" }
+
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> Seq.skip 5
+
+ Throws ArgumentException.
+
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> Seq.skip -1
+
+ Evaluates a sequence yielding the same results as seq { "a"; "b"; "c"; "d" }.
+
+
+
+ Returns a sequence yielding one item only.
+
+ The input item.
+
+ The result sequence of one item.
+
+
+
+ Seq.singleton 7
+
+ Evaluates to a sequence yielding the same results as seq { 7 }.
+
+
+
+ Like foldBack, but returns the sequence of intermediary and final results.
+
+ This function returns a sequence that digests the whole initial sequence as soon as that
+ sequence is iterated. As a result this function should not be used with large or infinite sequences.
+
+
+ A function that updates the state with each element from the sequence.
+ The input sequence.
+ The initial state.
+
+ The resulting sequence of computed states.
+
+ Thrown when the input sequence is null.
+
+ Apply a list charges from back to front, and collect the running balances as each is applied:
+
+ type Charge =
+ | In of int
+ | Out of int
+
+ let inputs = [ In 1; Out 2; In 3 ]
+
+ (inputs, 0) ||> Seq.scanBack (fun charge acc ->
+ match charge with
+ | In i -> acc + i
+ | Out o -> acc - o)
+
+ Evaluates to a sequence yielding the same results as seq { 2; 1; 3; 0 } by processing each input from back to front. Note 0 is the intial
+ state, 3 the next state, 1 the next state, and 2 the final state, and the states
+ are produced from back to front.
+
+
+
+ Like fold, but computes on-demand and returns the sequence of intermediary and final results.
+
+ A function that updates the state with each element from the sequence.
+ The initial state.
+ The input sequence.
+
+ The resulting sequence of computed states.
+
+ Thrown when the input sequence is null.
+
+ Apply a list charges and collect the running balances as each is applied:
+
+ type Charge =
+ | In of int
+ | Out of int
+
+ let inputs = seq { In 1; Out 2; In 3 }
+
+ (0, inputs) ||> Seq.scan (fun acc charge ->
+ match charge with
+ | In i -> acc + i
+ | Out o -> acc - o)
+
+ Evaluates to a sequence yielding the same results as seq { 0; 1; -1; 2 }. Note 0 is the intial
+ state, 1 the next state, -1 the next state, and 2 the final state.
+
+
+
+ Returns a new sequence with the elements in reverse order.
+
+ The input sequence.
+
+ The reversed sequence.
+
+ Thrown when the input sequence is null.
+
+ This function consumes the whole input sequence before yielding the first element of the reversed sequence.
+
+
+
+ let input = seq { 0; 1; 2 }
+
+ input |> Seq.rev
+
+ Evaluates to a sequence yielding the same results as seq { 2; 1; 0 }.
+
+
+
+ Applies a function to each element of the sequence, starting from the end, threading an accumulator argument
+ through the computation. If the input function is f and the elements are i0...iN
+ then computes f i0 (...(f iN-1 iN)).
+
+ A function that takes in the next-to-last element of the sequence and the
+ current accumulated result to produce the next accumulated result.
+ The input sequence.
+
+ The final result of the reductions.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+
+ This function consumes the whole input sequence before returning the result.
+
+
+
+ let inputs = [1; 3; 4; 2]
+
+ inputs |> Seq.reduceBack (fun a b -> a + b * 10)
+
+ Evaluates to 2431, by computing 1 + (3 + (4 + 2 * 10) * 10) * 10
+
+
+
+ Creates a sequence by replicating the given initial value.
+
+ The number of elements to replicate.
+ The value to replicate
+
+ The generated sequence.
+
+
+
+ Seq.replicate 3 "a"
+
+ Evaluates to a sequence yielding the same results as seq { "a"; "a"; "a" }.
+
+
+
+ Applies a function to each element of the sequence, threading an accumulator argument
+ through the computation. Begin by applying the function to the first two elements.
+ Then feed this result into the function along with the third element and so on.
+ Return the final result.
+
+ A function that takes in the current accumulated result and the next
+ element of the sequence to produce the next accumulated result.
+ The input sequence.
+
+ The final result of the reduction function.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+
+
+
+ let inputs = [1; 3; 4; 2]
+
+ inputs |> Seq.reduce (fun a b -> a * 10 + b)
+
+ Evaluates to 1342, by computing ((1 * 10 + 3) * 10 + 4) * 10 + 2
+
+
+
+ Builds a new sequence object that delegates to the given sequence object. This ensures
+ the original sequence cannot be rediscovered and mutated by a type cast. For example,
+ if given an array the returned sequence will return the elements of the array, but
+ you cannot cast the returned sequence object to an array.
+
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let input = [| 1; 2; 3 |]
+
+ input |> Seq.readonly
+
+ Evaluates to a sequence yielding the same results as seq { 1; 2; 3 }.
+
+
+
+
+ let input = [| 1; 2; 3 |]
+
+ let readonlyView = input |> Seq.readonly
+
+ (readonlyView :?> int array).[1] <- 4
+
+ Throws an InvalidCastException.
+
+
+
+ Applies the given function to successive elements, returning the first
+ x where the function returns "Some(x)".
+
+ A function to transform each item of the input sequence into an option of the output type.
+ The input sequence.
+
+ The selected element.
+
+ Thrown when the input sequence is null.
+ Thrown when every item of the sequence
+ evaluates to None when the given function is applied.
+
+
+
+ let input = [1; 2; 3]
+
+ input |> Seq.pick (fun n -> if n % 2 = 0 then Some (string n) else None)
+
+ Evaluates to "2".
+
+
+
+
+ let input = [1; 2; 3]
+
+ input |> Seq.pick (fun n -> if n > 3 = 0 then Some (string n) else None)
+
+ Throws KeyNotFoundException.
+
+
+
+
+ Returns a sequence with all elements permuted according to the
+ specified permutation.
+
+ This function consumes the whole input sequence before yielding the first element of the result sequence.
+
+ The function that maps input indices to output indices.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when indexMap does not produce a valid permutation.
+
+
+
+ let inputs = [1; 2; 3; 4]
+
+ inputs |> Seq.permute (fun x -> (x + 1) % 4)
+
+ Evaluates to a sequence yielding the same results as seq { 4; 1; 2; 3 }.
+
+
+
+ Returns a sequence of each element in the input sequence and its predecessor, with the
+ exception of the first element which is only returned as the predecessor of the second element.
+
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = seq { 1; 2; 3; 4 }
+
+ inputs |> Seq.pairwise
+
+ Evaluates to a sequence yielding the same results as seq { (1, 2); (2, 3); (3, 4) }.
+
+
+
+ Views the given list as a sequence.
+
+ The input list.
+
+ The result sequence.
+
+
+
+ let inputs = [ 1; 2; 5 ]
+
+ inputs |> Seq.ofList
+
+ Evaluates to a sequence yielding the same results as seq { 1; 2; 5 }.
+
+
+
+ Views the given array as a sequence.
+
+ The input array.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = [| 1; 2; 5 |]
+
+ inputs |> Seq.ofArray
+
+ Evaluates to a sequence yielding the same results as seq { 1; 2; 5 }.
+
+
+
+ Computes the nth element in the collection.
+
+ The index of element to retrieve.
+ The input sequence.
+
+ The nth element of the sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the index is negative or the input sequence does not contain enough elements.
+
+
+ Returns the lowest of all elements of the sequence, compared via Operators.min on the function result.
+
+ A function to transform items from the input sequence into comparable keys.
+ The input sequence.
+
+ The smallest element of the sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+
+
+
+ let inputs = [ "aaa"; "b"; "cccc" ]
+
+ inputs |> Seq.minBy (fun s -> s.Length)
+
+ Evaluates to "b"
+
+
+
+
+ let inputs = []
+
+ inputs |> Seq.minBy (fun (s: string) -> s.Length)
+
+ Throws System.ArgumentException.
+
+
+
+ Returns the lowest of all elements of the sequence, compared via Operators.min.
+
+ The input sequence.
+
+ The smallest element of the sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+
+
+
+ let inputs = [10; 12; 11]
+
+ inputs |> Seq.min
+
+ Evaluates to 10
+
+
+
+
+ let inputs = []
+
+ inputs |> Seq.min
+
+ Throws System.ArgumentException.
+
+
+
+ Returns the greatest of all elements of the sequence, compared via Operators.max on the function result.
+
+ A function to transform items from the input sequence into comparable keys.
+ The input sequence.
+
+ The largest element of the sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+
+
+
+ let inputs = ["aaa"; "b"; "cccc"]
+
+ inputs |> Seq.maxBy (fun s -> s.Length)
+
+ Evaluates to "cccc"
+
+
+
+
+ let inputs = [ ]
+
+ inputs |> Seq.maxBy (fun s -> s.Length)
+
+ Throws System.ArgumentException.
+
+
+
+ Returns the greatest of all elements of the sequence, compared via Operators.max
+
+ The input sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence is empty.
+
+ The largest element of the sequence.
+
+
+
+ let inputs = [ 10; 12; 11 ]
+
+ inputs |> Seq.max
+
+ Evaluates to 12
+
+
+
+
+ let inputs = [ ]
+
+ inputs |> Seq.max
+
+ Throws System.ArgumentException.
+
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to the corresponding pairs of elements from the two sequences. If one input sequence is shorter than
+ the other then the remaining elements of the longer sequence are ignored. The integer index passed to the
+ function indicates the index (from 0) of element being transformed.
+
+ A function to transform pairs of items from the input sequences that also supplies the current index.
+ The first input sequence.
+ The second input sequence.
+
+ The result sequence.
+
+ Thrown when either of the input sequences is null.
+
+
+
+ let inputs1 = ["a"; "bad"; "good"]
+ let inputs2 = [0; 2; 1]
+
+ (inputs1, inputs2) ||> Seq.mapi2 (fun i x y -> i, x[y])
+
+ Evaluates to a sequence yielding the same results as seq { (0, 'a'); (1, 'd'); (2, 'o') }
+
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to each of the elements of the collection. The integer index passed to the
+ function indicates the index (from 0) of element being transformed.
+
+ A function to transform items from the input sequence that also supplies the current index.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = [ 10; 10; 10 ]
+
+ inputs |> Seq.mapi (fun i x -> i + x)
+
+ Evaluates to a sequence yielding the same results as seq { 10; 11; 12 }
+
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to the corresponding triples of elements from the three sequences. If one input sequence if shorter than
+ the others then the remaining elements of the longer sequences are ignored.
+
+ The function to transform triples of elements from the input sequences.
+ The first input sequence.
+ The second input sequence.
+ The third input sequence.
+
+ The result sequence.
+
+ Thrown when any of the input sequences is null.
+
+
+
+ let inputs1 = [ "a"; "t"; "ti" ]
+ let inputs2 = [ "l"; "h"; "m" ]
+ let inputs3 = [ "l"; "e"; "e" ]
+
+ (inputs1, inputs2, inputs3) |||> Seq.map3 (fun x y z -> x + y + z)
+
+ Evaluates to a sequence yielding the same results as seq { "all"; "the"; "time" }
+
+
+
+
+ Combines map and foldBack. Builds a new collection whose elements are the results of applying the given function
+ to each of the elements of the collection. The function is also used to accumulate a final value.
+
+ This function digests the whole initial sequence as soon as it is called. As a result this function should
+ not be used with large or infinite sequences.
+
+ The function to transform elements from the input collection and accumulate the final value.
+ The input collection.
+ The initial state.
+
+ Thrown when the input collection is null.
+
+ The collection of transformed elements, and the final accumulated value.
+
+ Accumulate the charges from back to front, and double them as well
+
+ type Charge =
+ | In of int
+ | Out of int
+
+ let inputs = seq { In 1; Out 2; In 3 }
+
+ let newCharges, balance =
+ (inputs, 0) ||> Seq.mapFoldBack (fun charge acc ->
+ match charge with
+ | In i -> In (i*2), acc + i
+ | Out o -> Out (o*2), acc - o)
+
+ Evaluates newCharges to seq { In 2; Out 4; In 6 } and balance to 2.
+
+
+
+ Combines map and fold. Builds a new collection whose elements are the results of applying the given function
+ to each of the elements of the collection. The function is also used to accumulate a final value.
+
+ This function digests the whole initial sequence as soon as it is called. As a result this function should
+ not be used with large or infinite sequences.
+
+ The function to transform elements from the input collection and accumulate the final value.
+ The initial state.
+ The input collection.
+
+ Thrown when the input collection is null.
+
+ The collection of transformed elements, and the final accumulated value.
+
+
+ Accumulate the charges, and double them as well
+ type Charge =
+ | In of int
+ | Out of int
+
+ let inputs = seq { In 1; Out 2; In 3 }
+
+ let newCharges, balance =
+ (0, inputs) ||> Seq.mapFold (fun acc charge ->
+ match charge with
+ | In i -> In (i*2), acc + i
+ | Out o -> Out (o*2), acc - o)
+
+ Evaluates newCharges to seq { In 2; Out 4; In 6 } and balance to 2.
+
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to the corresponding pairs of elements from the two sequences. If one input sequence is shorter than
+ the other then the remaining elements of the longer sequence are ignored.
+
+ A function to transform pairs of items from the input sequences.
+ The first input sequence.
+ The second input sequence.
+
+ The result sequence.
+
+ Thrown when either of the input sequences is null.
+
+
+
+ let inputs1 = ["a"; "bad"; "good"]
+ let inputs2 = [0; 2; 1]
+
+ (inputs1, inputs2) ||> Seq.map2 (fun x y -> x.[y])
+
+ Evaluates to a sequence yielding the same results as seq { 'a'; 'd'; 'o' }
+
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to each of the elements of the collection. The given function will be applied
+ as elements are demanded using the MoveNext method on enumerators retrieved from the
+ object.
+
+ The returned sequence may be passed between threads safely. However,
+ individual IEnumerator values generated from the returned sequence should not be accessed concurrently.
+
+ A function to transform items from the input sequence.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = ["a"; "bbb"; "cc"]
+
+ inputs |> Seq.map (fun x -> x.Length)
+
+ Evaluates to a sequence yielding the same results as seq { 1; 3; 2 }
+
+
+
+ Returns the length of the sequence
+
+ The input sequence.
+
+ The length of the sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = ["a"; "b"; "c"]
+
+ inputs |> Seq.length
+
+ Evaluates to 3
+
+
+
+ Applies the given function to two collections simultaneously. If one sequence is shorter than
+ the other then the remaining elements of the longer sequence are ignored. The integer passed to the
+ function indicates the index of element.
+
+ A function to apply to each pair of elements from the input sequences along with their index.
+ The first input sequence.
+ The second input sequence.
+
+ Thrown when either of the input sequences is null.
+
+
+
+ let inputs1 = ["a"; "b"; "c"]
+ let inputs2 = ["banana"; "pear"; "apple"]
+
+ (inputs1, inputs2) ||> Seq.iteri2 (fun i s1 s2 -> printfn "Index {i}: {s1} - {s2}")
+
+ Evaluates to unit and prints
+
+ Index 0: a - banana
+ Index 1: b - pear
+ Index 2: c - apple
+
+ in the console.
+
+
+
+ Applies the given function to two collections simultaneously. If one sequence is shorter than
+ the other then the remaining elements of the longer sequence are ignored.
+
+ A function to apply to each pair of elements from the input sequences.
+ The first input sequence.
+ The second input sequence.
+
+ Thrown when either of the input sequences is null.
+
+
+
+ let inputs1 = ["a"; "b"; "c"]
+ let inputs2 = [1; 2; 3]
+
+ (inputs1, inputs2) ||> Seq.iter2 (printfn "%s: %i")
+
+ Evaluates to unit and prints
+
+ a: 1
+ b: 2
+ c: 3
+
+ in the console.
+
+
+
+ Applies the given function to each element of the collection. The integer passed to the
+ function indicates the index of element.
+
+ A function to apply to each element of the sequence that can also access the current index.
+ The input sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = ["a"; "b"; "c"]
+
+ inputs |> Seq.iteri (fun i v -> printfn "{i}: {v}")
+
+
+ Evaluates to unit and prints
+
+ 0: a
+ 1: b
+ 2: c
+
+ in the console.
+
+
+
+ Applies the given function to each element of the collection.
+
+ A function to apply to each element of the sequence.
+ The input sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ ["a"; "b"; "c"] |> Seq.iter (printfn "%s")
+
+ Evaluates to unit and prints
+
+ a
+ b
+ c
+
+ in the console.
+
+
+
+ Computes the element at the specified index in the collection.
+
+ The index of the element to retrieve.
+ The input sequence.
+
+ The element at the specified index of the sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the index is negative or the input sequence does not contain enough elements.
+
+
+
+ let inputs = ["a"; "b"; "c"]
+
+ inputs |> Seq.item 1
+
+ Evaluates to "b"
+
+
+
+
+ let inputs = ["a"; "b"; "c"]
+
+ inputs |> Seq.item 4
+
+ Throws ArgumentException
+
+
+
+ Generates a new sequence which, when iterated, will return successive
+ elements by calling the given function. The results of calling the function
+ will not be saved, that is the function will be reapplied as necessary to
+ regenerate the elements. The function is passed the index of the item being
+ generated.
+
+ The returned sequence may be passed between threads safely. However,
+ individual IEnumerator values generated from the returned sequence should not be accessed concurrently.
+ Iteration can continue up to Int32.MaxValue.
+
+ A function that generates an item in the sequence from a given index.
+
+ The result sequence.
+
+
+
+ (+) 5 |> Seq.initInfinite
+
+ Evaluates to a sequence yielding the same results as seq { 5; 6; 7; 8; ... }
+
+
+
+ Generates a new sequence which, when iterated, will return successive
+ elements by calling the given function, up to the given count. Each element is saved after its
+ initialization. The function is passed the index of the item being
+ generated.
+
+ The returned sequence may be passed between threads safely. However,
+ individual IEnumerator values generated from the returned sequence should not be accessed concurrently.
+
+ The maximum number of items to generate for the sequence.
+ A function that generates an item in the sequence from a given index.
+
+ The result sequence.
+
+ Thrown when count is negative.
+
+
+
+ Seq.init 4 (fun v -> v + 5)
+
+ Evaluates to a sequence yielding the same results as seq { 5; 6; 7; 8 }
+
+
+
+
+ Seq.init -5 (fun v -> v + 5)
+
+ Throws ArgumentException
+
+
+
+ Builds a new collection whose elements are the corresponding elements of the input collection
+ paired with the integer index (from 0) of each element.
+
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ ["a"; "b"; "c"] |> Seq.indexed
+
+ Evaluates to a sequence yielding the same results as seq { (0, "a"); (1, "b"); (2, "c") }
+
+
+
+ Returns true if the sequence contains no elements, false otherwise.
+
+ The input sequence.
+
+ True if the sequence is empty; false otherwise.
+
+ Thrown when the input sequence is null.
+
+
+
+ [] |> Seq.isEmpty
+
+ Evaluates to true
+
+
+
+
+ ["pear"; "banana"] |> Seq.isEmpty
+
+ Evaluates to false
+
+
+
+ Returns the only element of the sequence or None if sequence is empty or contains more than one element.
+
+ The input sequence.
+
+ The only element of the sequence or None.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = ["banana"]
+
+ inputs |> Seq.tryExactlyOne
+
+ Evaluates to Some banana
+
+
+
+
+ let inputs = ["pear"; "banana"]
+
+ inputs |> Seq.tryExactlyOne
+
+ Evaluates to None
+
+
+
+
+ [] |> Seq.tryExactlyOne
+
+ Evaluates to None
+
+
+
+ Returns the only element of the sequence.
+
+ The input sequence.
+
+ The only element of the sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input does not have precisely one element.
+
+
+
+ let inputs = ["banana"]
+
+ inputs |> Seq.exactlyOne
+
+ Evaluates to banana
+
+
+
+
+ let inputs = ["pear"; "banana"]
+
+ inputs |> Seq.exactlyOne
+
+ Throws ArgumentException
+
+
+
+
+ [] |> Seq.exactlyOne
+
+ Throws ArgumentException
+
+
+
+ Returns the last element of the sequence.
+ Return None if no such element exists.
+
+ The input sequence.
+
+ The last element of the sequence or None.
+
+ Thrown when the input sequence is null.
+
+
+
+ ["pear"; "banana"] |> Seq.tryLast
+
+ Evaluates to Some "banana"
+
+
+
+
+ [] |> Seq.tryLast
+
+ Evaluates to None
+
+
+
+ Returns the last element of the sequence.
+
+ The input sequence.
+
+ The last element of the sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input does not have any elements.
+
+
+
+ ["pear"; "banana"] |> Seq.last
+
+ Evaluates to banana
+
+
+
+
+ [] |> Seq.last
+
+ Throws ArgumentException
+
+
+
+ Returns the first element of the sequence, or None if the sequence is empty.
+
+ The input sequence.
+
+ The first element of the sequence or None.
+
+ Thrown when the input sequence is null.
+
+
+
+ ["banana"; "pear"] |> Seq.tryHead
+
+ Evaluates to Some "banana"
+
+
+
+
+ [] |> Seq.tryHead
+
+ Evaluates to None
+
+
+
+ Returns the first element of the sequence.
+
+ The input sequence.
+
+ The first element of the sequence.
+
+ Thrown when the input sequence is null.
+ Thrown when the input does not have any elements.
+
+
+
+ let inputs = ["banana"; "pear"]
+
+ inputs |> Seq.head
+
+ Evaluates to banana
+
+
+
+
+ [] |> Seq.head
+
+ Throws ArgumentException
+
+
+
+ Applies a key-generating function to each element of a sequence and yields a sequence of
+ unique keys. Each unique key contains a sequence of all elements that match
+ to this key.
+
+ This function returns a sequence that digests the whole initial sequence as soon as
+ that sequence is iterated. As a result this function should not be used with
+ large or infinite sequences. The function makes no assumption on the ordering of the original
+ sequence.
+
+ A function that transforms an element of the sequence into a comparable key.
+ The input sequence.
+
+ The result sequence.
+
+
+
+ let inputs = [1; 2; 3; 4; 5]
+
+ inputs |> Seq.groupBy (fun n -> n % 2)
+
+ Evaluates to a sequence yielding the same results as seq { (1, seq { 1; 3; 5 }); (0, seq { 2; 4 }) }
+
+
+
+ Tests the all pairs of elements drawn from the two sequences satisfy the
+ given predicate. If one sequence is shorter than
+ the other then the remaining elements of the longer sequence are ignored.
+
+ A function to test pairs of elements from the input sequences.
+ The first input sequence.
+ The second input sequence.
+
+ True if all pairs satisfy the predicate; false otherwise.
+
+ Thrown when either of the input sequences is null.
+
+
+
+ let inputs1 = [1; 2; 3; 4; 5; 6]
+ let inputs2 = [1; 2; 3; 4; 5]
+
+ (inputs1, inputs2) ||> Seq.forall2 (=)
+
+ Evaluates to true.
+
+
+
+
+ let items1 = [2017; 1; 1]
+ let items2 = [2019; 19; 8]
+
+ (items1, items2) ||> Seq.forall2 (=)
+
+ Evaluates to false.
+
+
+
+ Tests if all elements of the sequence satisfy the given predicate.
+
+ The predicate is applied to the elements of the input sequence. If any application
+ returns false then the overall result is false and no further elements are tested.
+ Otherwise, true is returned.
+
+ A function to test an element of the input sequence.
+ The input sequence.
+
+ True if every element of the sequence satisfies the predicate; false otherwise.
+
+ Thrown when the input sequence is null.
+
+
+
+ let isEven a = a % 2 = 0
+
+ [2; 42] |> Seq.forall isEven // evaluates to true
+
+ [1; 2] |> Seq.forall isEven // evaluates to false
+
+
+
+
+ Applies a function to corresponding elements of two collections, starting from the end of the shorter collection,
+ threading an accumulator argument through the computation. The two sequences need not have equal lengths.
+ If the input function is f and the elements are i0...iN and j0...jM, N < M
+ then computes f i0 j0 (... (f iN jN s)...).
+
+ The function to update the state given the input elements.
+ The first input sequence.
+ The second input sequence.
+ The initial state.
+
+ The final state value.
+
+ Thrown when the either of the input sequences is null.
+
+
+ This function consumes the whole of both inputs sequences before returning the result. As a
+ result this function should not be used with large or infinite sequences.
+
+
+
+
+ type Count =
+ { Positive: int
+ Negative: int
+ Text: string }
+
+ let inputs1 = [-1; -2; -3]
+ let inputs2 = [3; 2; 1; 0]
+ let initialState = {Positive = 0; Negative = 0; Text = ""}
+
+ (inputs1, inputs2, initialState) |||> Seq.foldBack2 (fun a b acc ->
+ let text = acc.Text + "(" + string a + "," + string b + ") "
+ if a + b >= 0 then
+ { acc with
+ Positive = acc.Positive + 1
+ Text = text }
+ else
+ { acc with
+ Negative = acc.Negative + 1
+ Text = text }
+ )
+
+ Evaluates to
+
+ { Positive = 2
+ Negative = 1
+ Text = " (-3,1) (-2,2) (-1,3)" }
+
+
+
+
+ Applies a function to each element of the collection, starting from the end, threading an accumulator argument
+ through the computation. If the input function is f and the elements are i0...iN
+ then computes f i0 (... (f iN s)...)
+
+ The function to update the state given the input elements.
+ The input sequence.
+ The initial state.
+
+ The state object after the folding function is applied to each element of the sequence.
+
+ Thrown when the input sequence is null.
+
+ This function consumes the whole input sequence before returning the result.
+
+
+
+ type Count =
+ { Positive: int
+ Negative: int
+ Text: string }
+
+ let sequence = [1; 0; -1; -2; 3]
+ let initialState = {Positive = 0; Negative = 0; Text = ""}
+
+ (sequence, initialState) ||> Seq.foldBack (fun a acc ->
+ let text = acc.Text + " " + string a
+ if a >= 0 then
+ { acc with
+ Positive = acc.Positive + 1
+ Text = text }
+ else
+ { acc with
+ Negative = acc.Negative + 1
+ Text = text })
+
+ Evaluates to
+
+ { Positive = 2
+ Negative = 3
+ Text = " 3 -2 -1 0 1" }
+
+
+
+
+ Applies a function to corresponding elements of two collections, threading an accumulator argument
+ through the computation.
+
+ The two sequences need not have equal lengths:
+ when one sequence is exhausted any remaining elements in the other sequence are ignored.
+ If the input function is f and the elements are i0...iN and j0...jN
+ then computes f (... (f s i0 j0)...) iN jN.
+
+ The function to update the state given the input elements.
+ The initial state.
+ The first input sequence.
+ The second input sequence.
+
+ The final state value.
+
+ Thrown when the either of the input sequences is null.
+
+
+
+ type CoinToss = Head | Tails
+
+ let data1 = [Tails; Head; Tails]
+ let data2 = [Tails; Head; Head]
+
+ (0, data1, data2) |||> Seq.fold2 (fun acc a b ->
+ match (a, b) with
+ | Head, Head -> acc + 1
+ | Tails, Tails -> acc + 1
+ | _ -> acc - 1)
+
+ Evaluates to 1
+
+
+
+ Applies a function to each element of the collection, threading an accumulator argument
+ through the computation. If the input function is f and the elements are i0...iN
+ then computes f (... (f s i0)...) iN
+
+ A function that updates the state with each element from the sequence.
+ The initial state.
+ The input sequence.
+
+ The state object after the folding function is applied to each element of the sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ type Charge =
+ | In of int
+ | Out of int
+
+ let inputs = [In 1; Out 2; In 3]
+
+ (0, inputs) ||> Seq.fold (fun acc charge ->
+ match charge with
+ | In i -> acc + i
+ | Out o -> acc - o)
+
+ Evaluates to 2
+
+
+
+ Returns the index of the last element for which the given function returns True.
+
+ This function digests the whole initial sequence as soon as it is called. As a
+ result this function should not be used with large or infinite sequences.
+
+ A function to test whether the index of a particular element should be returned.
+ The input sequence.
+
+ The index of the last element for which the predicate returns True.
+
+ Thrown if no element returns true when
+ evaluated by the predicate
+ Thrown when the input sequence is null
+
+
+
+ let input = [1; 2; 3; 4; 5]
+
+ input |> Seq.findIndex (fun elm -> elm % 2 = 0)
+
+ Evaluates to 3
+
+
+
+
+ let input = [1; 2; 3; 4; 5]
+
+ input |> Seq.findIndex (fun elm -> elm % 6 = 0)
+
+ Throws KeyNotFoundException
+
+
+
+ Returns the index of the first element for which the given function returns True.
+
+ A function to test whether the index of a particular element should be returned.
+ The input sequence.
+
+ The index of the first element for which the predicate returns True.
+
+ Thrown if no element returns true when
+ evaluated by the predicate
+ Thrown when the input sequence is null
+
+
+
+ let inputs = [1; 2; 3; 4; 5]
+
+ inputs |> Seq.findIndex (fun elm -> elm % 2 = 0)
+
+ Evaluates to 1
+
+
+
+
+ let inputs = [1; 2; 3; 4; 5]
+ inputs |> Seq.findIndex (fun elm -> elm % 6 = 0)
+
+ Throws KeyNotFoundException
+
+
+
+ Returns the last element for which the given function returns True.
+
+ This function digests the whole initial sequence as soon as it is called. As a
+ result this function should not be used with large or infinite sequences.
+
+ A function to test whether an item in the sequence should be returned.
+ The input sequence.
+
+ The last element for which the predicate returns True.
+
+ Thrown if no element returns true when
+ evaluated by the predicate
+ Thrown when the input sequence is null
+
+
+
+ let inputs = [2; 3; 4]
+
+ inputs |> Seq.findBack (fun elm -> elm % 2 = 0)
+
+ Evaluates to 4
+
+
+
+
+ let inputs = [2; 3; 4]
+
+ inputs |> Seq.findBack (fun elm -> elm % 6 = 0)
+
+ Throws KeyNotFoundException
+
+
+
+ Returns the first element for which the given function returns True.
+
+ A function to test whether an item in the sequence should be returned.
+ The input sequence.
+
+ The first element for which the predicate returns True.
+
+ Thrown if no element returns true when
+ evaluated by the predicate
+ Thrown when the input sequence is null
+
+
+
+ let inputs = [1; 2; 3]
+
+ inputs |> Seq.find (fun elm -> elm % 2 = 0)
+
+ Evaluates to 2
+
+
+
+
+ let inputs = [1; 2; 3]
+
+ inputs |> Seq.find (fun elm -> elm % 6 = 0)
+
+ Throws KeyNotFoundException
+
+
+
+ Returns a new collection containing only the elements of the collection
+ for which the given predicate returns "true".
+
+ The returned sequence may be passed between threads safely. However,
+ individual IEnumerator values generated from the returned sequence should not be accessed concurrently.
+
+ Remember sequence is lazy, effects are delayed until it is enumerated.
+
+ A synonym for Seq.filter.
+
+ A function to test whether each item in the input sequence should be included in the output.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ [1; 2; 3; 4] |> Seq.where (fun elm -> elm % 2 = 0)
+
+ Evaluates to a sequence yielding the same results as seq { 2; 4 }
+
+
+
+ Returns a new collection containing only the elements of the collection
+ for which the given predicate returns "true". This is a synonym for Seq.where.
+
+ The returned sequence may be passed between threads safely. However,
+ individual IEnumerator values generated from the returned sequence should not be accessed concurrently.
+
+ Remember sequence is lazy, effects are delayed until it is enumerated.
+
+ A function to test whether each item in the input sequence should be included in the output.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = [1; 2; 3; 4]
+
+ inputs |> Seq.filter (fun elm -> elm % 2 = 0)
+
+ Evaluates to a sequence yielding the same results as seq { 2; 4 }
+
+
+
+ Tests if any pair of corresponding elements of the input sequences satisfies the given predicate.
+
+ The predicate is applied to matching elements in the two sequences up to the lesser of the
+ two lengths of the collections. If any application returns true then the overall result is
+ true and no further elements are tested. Otherwise, false is returned. If one sequence is shorter than
+ the other then the remaining elements of the longer sequence are ignored.
+
+ A function to test each pair of items from the input sequences.
+ The first input sequence.
+ The second input sequence.
+
+ True if any result from the predicate is true; false otherwise.
+
+ Thrown when either of the two input sequences is null.
+
+
+
+ let inputs1 = [1; 2]
+ let inputs2 = [1; 2; 0]
+
+ (inputs1, inputs2) ||> Seq.exists2 (fun a b -> a > b)
+
+ Evaluates to false
+
+
+
+
+ let inputs1 = [1; 4]
+ let inputs2 = [1; 3; 5]
+
+ (inputs1, inputs2) ||> Seq.exists2 (fun a b -> a > b)
+
+ Evaluates to true
+
+
+
+ Tests if any element of the sequence satisfies the given predicate.
+
+ The predicate is applied to the elements of the input sequence. If any application
+ returns true then the overall result is true and no further elements are tested.
+ Otherwise, false is returned.
+
+ A function to test each item of the input sequence.
+ The input sequence.
+
+ True if any result from the predicate is true; false otherwise.
+
+ Thrown when the input sequence is null.
+
+
+
+ let input = [1; 2; 3; 4; 5]
+
+ input |> Seq.exists (fun elm -> elm % 4 = 0)
+
+ Evaluates to true
+
+
+
+
+ let input = [1; 2; 3; 4; 5]
+
+ input |> Seq.exists (fun elm -> elm % 6 = 0)
+
+ Evaluates to false
+
+
+
+ Returns a new sequence with the distinct elements of the second sequence which do not appear in the first sequence,
+ using generic hash and equality comparisons to compare values.
+
+ Note that this function returns a sequence that digests the whole of the first input sequence as soon as
+ the result sequence is iterated. As a result this function should not be used with
+ large or infinite sequences in the first parameter. The function makes no assumption on the ordering of the first input
+ sequence.
+
+ A sequence whose elements that also occur in the second sequence will cause those elements to be
+ removed from the returned sequence.
+ A sequence whose elements that are not also in first will be returned.
+
+ A sequence that contains the set difference of the elements of two sequences.
+
+ Thrown when either of the two input sequences is null.
+
+
+
+ let original = [1; 2; 3; 4; 5]
+ let itemsToExclude = [1; 3; 5]
+
+ original |> Seq.except itemsToExclude
+
+ Evaluates to a sequence yielding the same results as seq { 2; 4 }
+
+
+
+ Creates an empty sequence.
+
+ An empty sequence.
+
+
+
+ Seq.empty // Evaluates to seq { }
+
+
+
+
+ Splits the input sequence into at most count chunks.
+
+ This function returns a sequence that digests the whole initial sequence as soon as that
+ sequence is iterated. As a result this function should not be used with large or infinite sequences.
+
+ The maximum number of chunks.
+ The input sequence.
+
+ The sequence split into chunks.
+
+ Thrown when the input sequence is null.
+ Thrown when count is not positive.
+
+ This function consumes the whole input sequence before yielding the first element of the result sequence.
+
+
+
+ let inputs = [1; 2; 3; 4; 5]
+
+ inputs |> Seq.splitInto 3
+
+ Evaluates to a sequence yielding the same results as seq { [|1; 2|]; [|3; 4|]; [|5|] }
+
+
+
+
+ let inputs = [1; 2; 3; 4; 5]
+
+ inputs |> Seq.splitInto -1
+
+ Throws ArgumentException
+
+
+
+ Returns a sequence that contains no duplicate entries according to the
+ generic hash and equality comparisons on the keys returned by the given key-generating function.
+ If an element occurs multiple times in the sequence then the later occurrences are discarded.
+
+ A function transforming the sequence items into comparable keys.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = [{Bar = 1 };{Bar = 1}; {Bar = 2}; {Bar = 3}]
+
+ inputs |> Seq.distinctBy (fun foo -> foo.Bar)
+
+ Evaluates to a sequence yielding the same results as seq { { Bar = 1 }; { Bar = 2 }; { Bar = 3 } }
+
+
+
+ Returns a sequence that contains no duplicate entries according to generic hash and
+ equality comparisons on the entries.
+ If an element occurs multiple times in the sequence then the later occurrences are discarded.
+
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ [1; 1; 2; 3] |> Seq.distinct
+
+ Evaluates to a sequence yielding the same results as seq { 1; 2; 3 }
+
+
+
+ Returns a sequence that is built from the given delayed specification of a
+ sequence.
+
+ The input function is evaluated each time an IEnumerator for the sequence
+ is requested.
+
+ The generating function for the sequence.
+ The result sequence.
+
+
+
+ Seq.delay (fun () -> Seq.ofList [1; 2; 3])
+
+ Evaluates to a sequence yielding the same results as seq { 1; 2; 3 }, executing
+ the generator function every time is consumed.
+
+
+
+ Applies a key-generating function to each element of a sequence and returns a sequence yielding unique
+ keys and their number of occurrences in the original sequence.
+
+ Note that this function returns a sequence that digests the whole initial sequence as soon as
+ that sequence is iterated. As a result this function should not be used with
+ large or infinite sequences. The function makes no assumption on the ordering of the original
+ sequence.
+
+ A function transforming each item of the input sequence into a key to be
+ compared against the others.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ type Foo = { Bar: string }
+
+ let inputs = [{Bar = "a"}; {Bar = "b"}; {Bar = "a"}]
+
+ inputs |> Seq.countBy (fun foo -> foo.Bar)
+
+ Evaluates to a sequence yielding the same results as seq { ("a", 2); ("b", 1) }
+
+
+
+ Tests if the sequence contains the specified element.
+
+ The value to locate in the input sequence.
+ The input sequence.
+
+ True if the input sequence contains the specified element; false otherwise.
+
+ Thrown when the input sequence is null.
+
+
+
+ [1; 2] |> Seq.contains 2 // evaluates to true
+ [1; 2] |> Seq.contains 5 // evaluates to false
+
+
+
+
+ Combines the given enumeration-of-enumerations as a single concatenated
+ enumeration.
+
+ The returned sequence may be passed between threads safely. However,
+ individual IEnumerator values generated from the returned sequence should not be accessed concurrently.
+
+ The input enumeration-of-enumerations.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = [[1; 2]; [3]; [4; 5]]
+
+ inputs |> Seq.concat
+
+ Evaluates to a sequence yielding the same results as seq { 1; 2; 3; 4; 5 }
+
+
+
+ Compares two sequences using the given comparison function, element by element.
+
+ A function that takes an element from each sequence and returns an int.
+ If it evaluates to a non-zero value iteration is stopped and that value is returned.
+ The first input sequence.
+ The second input sequence.
+
+ Returns the first non-zero result from the comparison function. If the end of a sequence
+ is reached it returns a -1 if the first sequence is shorter and a 1 if the second sequence
+ is shorter.
+
+ Thrown when either of the input sequences
+ is null.
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [1; 10]
+ let input2 = [1; 10]
+
+ (input1, input2) ||> Seq.compareWith closerToNextDozen
+
+ Evaluates to 0
+
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [1; 5]
+ let input2 = [1; 8]
+
+ (input1, input2) ||> Seq.compareWith closerToNextDozen
+
+ Evaluates to -1
+
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [1; 11]
+ let input2 = [1; 13]
+
+ (input1, input2) ||> Seq.compareWith closerToNextDozen
+
+ Evaluates to 1
+
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [1; 2]
+ let input2 = [1]
+
+ (input1, input2) ||> Seq.compareWith closerToNextDozen
+
+ Evaluates to 1
+
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [1]
+ let input2 = [1; 2]
+
+ (input1, input2) ||> Seq.compareWith closerToNextDozen
+
+ Evaluates to -1
+
+
+
+ Applies the given function to each element of the sequence and concatenates all the
+ results.
+
+ Remember sequence is lazy, effects are delayed until it is enumerated.
+
+ A function to transform elements of the input sequence into the sequences
+ that will then be concatenated.
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ type Foo = { Bar: int seq }
+
+ let input = seq { {Bar = [1; 2]}; {Bar = [3; 4]} }
+
+ input |> Seq.collect (fun foo -> foo.Bar)
+
+ Evaluates to a sequence yielding the same results as seq { 1; 2; 3; 4 }
+
+
+
+
+ let input = [[1; 2]; [3; 4]]
+
+ input |> Seq.collect id
+
+ Evaluates to a sequence yielding the same results as seq { 1; 2; 3; 4 }
+
+
+
+ Divides the input sequence into chunks of size at most chunkSize.
+
+ The maximum size of each chunk.
+ The input sequence.
+
+ The sequence divided into chunks.
+
+ Thrown when the input sequence is null.
+ Thrown when chunkSize is not positive.
+
+
+
+ [1; 2; 3] |> Seq.chunkBySize 2
+
+ Evaluates to a sequence yielding the same results as seq { [|1; 2|]; [|3|] }
+
+
+
+
+ [1; 2; 3] |> Seq.chunkBySize -2
+
+ Throws ArgumentException
+
+
+
+ Applies the given function to each element of the sequence. Returns
+ a sequence comprised of the results "x" for each element where
+ the function returns Some(x).
+
+ The returned sequence may be passed between threads safely. However,
+ individual IEnumerator values generated from the returned sequence should not
+ be accessed concurrently.
+
+ A function to transform items of type T into options of type U.
+ The input sequence of type T.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ [Some 1; None; Some 2] |> Seq.choose id
+
+ Evaluates to a sequence yielding the same results as seq { 1; 2 }
+
+
+
+
+ [1; 2; 3] |> Seq.choose (fun n -> if n % 2 = 0 then Some n else None)
+
+ Evaluates to a sequence yielding the same results as seq { 2 }
+
+
+
+ Wraps a loosely-typed System.Collections sequence as a typed sequence.
+
+ The use of this function usually requires a type annotation.
+ An incorrect type annotation may result in runtime type
+ errors.
+ Individual IEnumerator values generated from the returned sequence should not be accessed concurrently.
+
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ [box 1; box 2; box 3] |> Seq.cast<int>
+
+ Evaluates to a sequence yielding the same results as seq { 1; 2; 3 }, explicitly typed as seq<int>.
+
+
+
+ Returns a sequence that corresponds to a cached version of the input sequence.
+
+
+ The result sequence will have the same elements as the input sequence. The result
+ can be enumerated multiple times. The input sequence will be enumerated at most
+ once and only as far as is necessary. Caching a sequence is typically useful when repeatedly
+ evaluating items in the original sequence is computationally expensive or if
+ iterating the sequence causes side-effects that the user does not want to be
+ repeated multiple times.
+
+ Enumeration of the result sequence is thread safe in the sense that multiple independent IEnumerator
+ values may be used simultaneously from different threads (accesses to
+ the internal lookaside table are thread safe). Each individual IEnumerator
+ is not typically thread safe and should not be accessed concurrently.
+
+ Once enumeration of the input sequence has started,
+ it's enumerator will be kept live by this object until the enumeration has completed.
+ At that point, the enumerator will be disposed.
+
+ The enumerator may be disposed and underlying cache storage released by
+ converting the returned sequence object to type IDisposable, and calling the Dispose method
+ on this object. The sequence object may then be re-enumerated and a fresh enumerator will
+ be used.
+
+ The input sequence.
+
+ The result sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let fibSeq =(0, 1) |> Seq.unfold (fun (a,b) -> Some(a + b, (b, a + b)))
+
+ let fibSeq3 = fibSeq |> Seq.take 3 |> Seq.cache
+ fibSeq3
+
+ Evaluates to a sequence yielding the same results as seq { 1; 2; 3 },
+ and it will not do the calculation again when called.
+
+
+
+ Returns the average of the results generated by applying the function to each element
+ of the sequence.
+
+ The elements are averaged using the + operator, DivideByInt method and Zero property
+ associated with the generated type.
+
+ A function applied to transform each element of the sequence.
+ The input sequence.
+
+ The average.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence has zero elements.
+
+
+
+ type Foo = { Bar: float }
+
+ let input = seq { {Bar = 2.0}; {Bar = 4.0} }
+
+ input |> Seq.averageBy (fun foo -> foo.Bar)
+
+ Evaluates to 3.0
+
+
+
+
+ type Foo = { Bar: float }
+
+ Seq.empty |> Seq.averageBy (fun (foo: Foo) -> foo.Bar)
+
+ Throws ArgumentException
+
+
+
+ Returns the average of the elements in the sequence.
+
+ The elements are averaged using the + operator, DivideByInt method and Zero property
+ associated with the element type.
+
+ The input sequence.
+
+ The average.
+
+ Thrown when the input sequence is null.
+ Thrown when the input sequence has zero elements.
+
+
+
+ [1.0; 2.0; 3.0] |> Seq.average
+
+ Evaluates to 2.0
+
+
+
+
+ [] |> Seq.average
+
+ Throws ArgumentException
+
+
+
+ Wraps the two given enumerations as a single concatenated
+ enumeration.
+
+ The returned sequence may be passed between threads safely. However,
+ individual IEnumerator values generated from the returned sequence should not be accessed
+ concurrently.
+
+ The first sequence.
+ The second sequence.
+
+ The result sequence.
+
+ Thrown when either of the two provided sequences is
+ null.
+
+
+
+ Seq.append [1; 2] [3; 4]
+
+ Evaluates to a sequence yielding the same results as seq { 1; 2; 3; 4 }
+
+
+
+ Returns a new sequence that contains all pairings of elements from the first and second sequences.
+
+ The first sequence.
+ The second sequence.
+
+ The result sequence.
+
+ Thrown when either of the input sequences is null.
+
+
+
+ ([1; 2], [3; 4]) ||> Seq.allPairs
+
+ Evaluates to a sequence yielding the same results as
+
+ seq { (1, 3); (1, 4); (2, 3); (2, 4) }
+
+
+
+
+ Contains operations for working with values of type .
+
+
+ Returns a random sample of elements from the given list using the specified randomizer function, each element can be selected only once.
+
+ The randomizer function, must return a float number from [0.0..1.0) range.
+ The number of elements to return.
+ The input list.
+
+ A list of randomly selected elements from the input list.
+
+ Thrown when the input list is empty.
+ Thrown when count is less than 0.
+ Thrown when count is greater than the length of the input list.
+ Thrown when the randomizer function returns a value outside the range [0, 1).
+
+
+
+ let inputs = [ 0; 1; 2; 3; 4 ]
+
+ inputs |> List.randomSampleBy Random.Shared.NextDouble 3
+
+ Can evaluate to [ 3; 1; 2 ].
+
+
+
+ Returns a random sample of elements from the given list with the specified Random instance, each element can be selected only once.
+
+ The Random instance.
+ The number of elements to return.
+ The input list.
+
+ A list of randomly selected elements from the input list.
+
+ Thrown when the random argument is null.
+ Thrown when the input list is empty.
+ Thrown when count is less than 0.
+ Thrown when count is greater than the length of the input list.
+
+
+
+ let inputs = [ 0; 1; 2; 3; 4 ]
+
+ inputs |> List.randomSampleWith Random.Shared 3
+
+ Can evaluate to [ 3; 1; 2 ].
+
+
+
+ Returns a random sample of elements from the given list, each element can be selected only once.
+
+ The number of elements to return.
+ The input list.
+
+ A list of randomly selected elements from the input list.
+
+ Thrown when the input list is empty.
+ Thrown when count is less than 0.
+ Thrown when count is greater than the length of the input list.
+
+
+
+ let inputs = [ 0; 1; 2; 3; 4 ]
+
+ inputs |> List.randomSample 3
+
+ Can evaluate to [ 3; 1; 2 ].
+
+
+
+ Returns a list of random elements from the given list using the specified randomizer function.
+
+ The randomizer function, must return a float number from [0.0..1.0) range.
+ The number of elements to return.
+ The input list.
+
+ A list of randomly selected elements from the input list.
+
+ Thrown when the input list is empty.
+ Thrown when count is less than 0.
+ Thrown when the randomizer function returns a value outside the range [0, 1).
+
+
+
+ let inputs = [ 0; 1; 2; 3; 4 ]
+
+ inputs |> List.randomChoicesBy Random.Shared.NextDouble 3
+
+ Can evaluate to [ 3; 1; 3 ].
+
+
+
+ Returns a list of random elements from the given list with the specified Random instance, each element can be selected multiple times.
+
+ The Random instance.
+ The number of elements to return.
+ The input list.
+
+ A list of randomly selected elements from the input list.
+
+ Thrown when the random argument is null.
+ Thrown when the input list is empty.
+ Thrown when count is less than 0.
+
+
+
+ let inputs = [ 0; 1; 2; 3; 4 ]
+
+ inputs |> Array.randomChoicesWith Random.Shared 3
+
+ Can evaluate to [ 3; 1; 3 ].
+
+
+
+ Returns a list of random elements from the given list.
+
+ The number of elements to return.
+ The input list.
+
+ A list of randomly selected elements from the input list.
+
+ Thrown when the input list is empty.
+ Thrown when count is less than 0.
+
+
+
+ let inputs = [ 0; 1; 2; 3; 4 ]
+
+ inputs |> List.randomChoices 3
+
+ Can evaluate to [ 3; 1; 3 ].
+
+
+
+ Returns a random element from the given list using the specified randomizer function.
+
+ The randomizer function, must return a float number from [0.0..1.0) range.
+ The input list.
+
+ A randomly selected element from the input list.
+
+ Thrown when the input list is empty.
+ Thrown when the randomizer function returns a value outside the range [0, 1).
+
+
+
+ let inputs = [ 0; 1; 2; 3; 4 ]
+
+ inputs |> List.randomChoiceBy Random.Shared.NextDouble
+
+ Can evaluate to 3.
+
+
+
+ Returns a random element from the given list with the specified Random instance, each element can be selected multiple times.
+
+ The Random instance.
+ The input list.
+
+ A randomly selected element from the input list.
+
+ Thrown when the random argument is null.
+ Thrown when the input list is empty.
+
+
+
+ let inputs = [ 0; 1; 2; 3; 4 ]
+
+ inputs |> List.randomChoiceWith Random.Shared
+
+ Can evaluate to 3.
+
+
+
+ Returns a random element from the given list.
+
+ The input list.
+
+ A randomly selected element from the input list.
+
+ Thrown when the input list is empty.
+
+
+
+ let inputs = [ 0; 1; 2; 3; 4 ]
+
+ inputs |> List.randomChoice
+
+ Can evaluate to 3.
+
+
+
+ Return a new list shuffled in a random order using the specified randomizer function.
+
+ The randomizer function, must return a float number from [0.0..1.0) range.
+ The input list.
+
+ The result list.
+
+ Thrown when the randomizer function returns a value outside the range [0, 1).
+
+
+
+ let inputs = [ 0; 1; 2; 3; 4 ]
+
+ inputs |> List.randomShuffleBy Random.Shared.NextDouble
+
+ Can evaluate to [ 0; 2; 4; 3; 1 ].
+
+
+
+ Return a new list shuffled in a random order with the specified Random instance.
+
+ The Random instance.
+ The input list.
+
+ The result list.
+
+ Thrown when the random argument is null.
+
+
+
+ let inputs = [ 0; 1; 2; 3; 4 ]
+
+ inputs |> List.randomShuffleWith Random.Shared
+
+ Can evaluate to [ 0; 2; 4; 3; 1 ].
+
+
+
+ Return a new list shuffled in a random order.
+
+ The input list.
+
+ The result list.
+
+
+
+ let inputs = [ 0; 1; 2; 3; 4 ]
+
+ inputs |> List.randomShuffle
+ Can evaluate to [ 0; 2; 4; 3; 1 ].
+
+
+
+
+ Return a new list with new items inserted before the given index.
+
+ The index where the items should be inserted.
+ The values to insert.
+ The input list.
+
+ The result list.
+
+ Thrown when index is below 0 or greater than source.Length.
+
+
+
+ let inputs = [ 0; 1; 2 ]
+
+ inputs |> List.insertManyAt 1 [ 8; 9 ]
+ Evaluates to [ 0; 8; 9; 1; 2 ].
+
+
+
+
+ Return a new list with a new item inserted before the given index.
+
+ The index where the item should be inserted.
+ The value to insert.
+ The input list.
+
+ The result list.
+
+ Thrown when index is below 0 or greater than source.Length.
+
+
+
+ let inputs = [ 0; 1; 2 ]
+
+ inputs |> List.insertAt 1 9
+
+ Evaluates to [ 0; 9; 1; 2 ].
+
+
+
+ Return a new list with the item at a given index set to the new value.
+
+ The index of the item to be replaced.
+ The new value.
+ The input list.
+
+ The result list.
+
+ Thrown when index is outside 0..source.Length - 1
+
+
+
+ let inputs = [ 0; 1; 2 ]
+
+ inputs |> List.updateAt 1 9
+
+ Evaluates to [ 0; 9; 2 ].
+
+
+
+ Return a new list with the number of items starting at a given index removed.
+
+ The index of the item to be removed.
+ The number of items to remove.
+ The input list.
+
+ The result list.
+
+ Thrown when index is outside 0..source.Length - count
+
+
+
+ let inputs = [ 0; 1; 2; 3 ]
+
+ inputs |> List.removeManyAt 1 2
+
+ Evaluates to [ 0; 3 ].
+
+
+
+ Return a new list with the item at a given index removed.
+
+ The index of the item to be removed.
+ The input list.
+
+ The result list.
+
+ Thrown when index is outside 0..source.Length - 1
+
+
+
+ let inputs = [ 0; 1; 2 ]
+
+ inputs |> List.removeAt 1
+
+ let inputs = [ 0; 2 ]
+
+
+
+ Combines the three lists into a list of triples. The lists must have equal lengths.
+
+ The first input list.
+ The second input list.
+ The third input list.
+
+ A single list containing triples of matching elements from the input lists.
+
+
+
+ let numbers = [1; 2]
+ let names = ["one"; "two"]
+ let roman = ["I"; "II"]
+
+ List.zip3 numbers names roman
+
+ Evaluates to [(1, "one", "I"); (2, "two", "II")].
+
+
+
+ Combines the two lists into a list of pairs. The two lists must have equal lengths.
+
+ The first input list.
+ The second input list.
+
+ A single list containing pairs of matching elements from the input lists.
+
+
+
+ let numbers = [1; 2]
+ let names = ["one"; "two"]
+
+ List.zip numbers names
+
+ Evaluates to [(1, "one"); (2, "two")].
+
+
+
+ Returns a list of sliding windows containing elements drawn from the input
+ list. Each window is returned as a fresh list.
+
+ The number of elements in each window.
+ The input list.
+
+ The result list.
+
+ Thrown when windowSize is not positive.
+
+
+
+ let inputs = [1; 2; 3; 4; 5]
+
+ inputs |> List.windowed 3
+
+ Evaluates to [[1; 2; 3]; [2; 3; 4]; [3; 4; 5]]
+
+
+
+ Returns a new list containing only the elements of the list
+ for which the given predicate returns "true"
+
+ The function to test the input elements.
+ The input list.
+
+ A list containing only the elements that satisfy the predicate.
+
+ This is identical to List.filter.
+
+ Select only the even numbers:
+
+ let inputs = [1; 2; 3; 4]
+
+ inputs |> List.where (fun elm -> elm % 2 = 0)
+
+ Evaluates to [2; 4]
+
+
+
+ Splits a list of triples into three lists.
+
+ The input list.
+
+ Three lists of split elements.
+
+
+
+ let inputs = [(1, "one", "I"); (2, "two", "II")]
+
+ let numbers, names, roman = inputs |> List.unzip3
+
+ Evaluates numbers to [1; 2], names to ["one"; "two"] and roman to ["I"; "II"].
+
+
+
+ Splits a list of pairs into two lists.
+
+ The input list.
+
+ Two lists of split elements.
+
+
+
+ let inputs = [(1, "one"); (2, "two")]
+
+ let numbers, names = inputs |> List.unzip
+
+ Evaluates numbers to [1; 2] and names to ["one"; "two"].
+
+
+
+ Returns a list that contains the elements generated by the given computation.
+ The generator is repeatedly called to build the list until it returns None.
+ The given initial state argument is passed to the element generator.
+
+ A function that takes in the current state and returns an option tuple of the next
+ element of the list and the next state value.
+ The initial state value.
+
+ The result list.
+
+
+
+ 1 |> List.unfold (fun state -> if state > 100 then None else Some (state, state * 2))
+
+ Evaluates to [1; 2; 4; 8; 16; 32; 64]
+
+
+
+ Returns the index of the last element in the list
+ that satisfies the given predicate.
+ Return None if no such element exists.
+
+ The function to test the input elements.
+ The input list.
+
+ The index of the last element for which the predicate returns true, or None if
+ every element evaluates to false.
+
+ Try to find the index of the first even number from the back:
+
+ let inputs = [1; 2; 3; 4; 5]
+
+ inputs |> List.tryFindIndexBack (fun elm -> elm % 2 = 0)
+
+ Evaluates to Some 3
+
+
+ Try to find the index of the first even number from the back:
+
+ let inputs = [1; 3; 5; 7]
+
+ inputs |> List.tryFindIndexBack (fun elm -> elm % 2 = 0)
+
+ Evaluates to None
+
+
+
+ Tries to find the nth element in the list.
+ Returns None if index is negative or the list does not contain enough elements.
+
+ The index to retrieve.
+ The input list.
+
+ The value at the given index or None.
+
+
+
+ let inputs = ["a"; "b"; "c"]
+
+ inputs |> List.tryItem 1
+
+ Evaluates to Some "b".
+
+
+
+
+ let inputs = ["a"; "b"; "c"]
+
+ inputs |> List.tryItem 4
+
+ Evaluates to None.
+
+
+
+ Returns the index of the first element in the list
+ that satisfies the given predicate.
+ Return None if no such element exists.
+
+ The function to test the input elements.
+ The input list.
+
+ The index of the first element for which the predicate returns true, or None if
+ every element evaluates to false.
+
+ Try to find the index of the first even number:
+
+ let inputs = [1; 2; 3; 4; 5]
+
+ inputs |> List.tryFindIndex (fun elm -> elm % 2 = 0)
+
+ Evaluates to Some 1
+
+
+ Try to find the index of the first even number:
+
+ let inputs = [1; 3; 5; 7]
+
+ inputs |> List.tryFindIndex (fun elm -> elm % 2 = 0)
+
+ Evaluates to None
+
+
+
+ Returns the last element for which the given function returns True.
+ Return None if no such element exists.
+
+ The function to test the input elements.
+ The input list.
+
+ The last element for which the predicate returns true, or None if
+ every element evaluates to false.
+
+ Try to find the first even number from the back:
+
+ let inputs = [1; 2; 3; 4; 5]
+
+ inputs |> List.tryFindBack (fun elm -> elm % 2 = 0)
+
+ Evaluates to Some 4
+
+
+ Try to find the first even number from the back:
+
+ let inputs = [1; 5; 3]
+
+ inputs |> List.tryFindBack (fun elm -> elm % 2 = 0)
+
+ Evaluates to None
+
+
+
+ Returns the first element for which the given function returns True.
+ Return None if no such element exists.
+
+ The function to test the input elements.
+ The input list.
+
+ The first element for which the predicate returns true, or None if
+ every element evaluates to false.
+
+ Try to find the first even number:
+
+ let inputs = [1; 2; 3]
+
+ inputs |> List.tryFind (fun elm -> elm % 2 = 0)
+
+ Evaluates to Some 2
+
+
+ Try to find the first even number:
+
+ let inputs = [1; 5; 3]
+
+ inputs |> List.tryFind (fun elm -> elm % 2 = 0)
+
+ Evaluates to None
+
+
+
+ Applies the given function to successive elements, returning Some(x) the first
+ result where function returns Some(x) for some x. If no such element
+ exists then return None.
+
+ The function to generate options from the elements.
+ The input list.
+
+ The first resulting value or None.
+
+
+
+ let input = [1; 2; 3]
+
+ input |> List.tryPick (fun n -> if n % 2 = 0 then Some (string n) else None)
+
+ Evaluates to Some "2".
+
+
+
+
+ let input = [1; 2; 3]
+
+ input |> List.tryPick (fun n -> if n > 3 then Some (string n) else None)
+
+ Evaluates to None.
+
+
+
+
+ Returns at most N elements in a new list.
+
+ The maximum number of items to return.
+ The input list.
+
+ The result list.
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> List.truncate 2
+
+ Evaluates to ["a"; "b"]
+
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> List.truncate 6
+
+ Evaluates to ["a"; "b"; "c"; "d"]
+
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> List.truncate 0
+
+ Evaluates to the empty list.
+
+
+
+ Returns the transpose of the given sequence of lists.
+
+ The input sequence of list.
+
+ The transposed list.
+
+ Thrown when the input sequence is null.
+ Thrown when the input lists differ in length.
+
+
+
+ let inputs =
+ [ [ 10; 20; 30 ]
+ [ 11; 21; 31 ] ]
+
+ inputs |> List.transpose
+
+ Evaluates to [ [10; 11]; [20; 21]; [30; 31] ].
+
+
+
+ Returns the first element of the list, or
+ None if the list is empty.
+
+ The input list.
+
+ The first element of the list or None.
+
+
+
+ let inputs = [ "banana"; "pear" ]
+
+ inputs |> List.tryHead
+
+ Evaluates to Some "banana"
+
+
+
+
+ let inputs : int list = []
+
+ inputs |> List.tryHead
+
+ Evaluates to None
+
+
+
+ Views the given list as a sequence.
+
+ The input list.
+
+ The sequence of elements in the list.
+
+
+
+ let inputs = [ 1; 2; 5 ]
+
+ inputs |> List.toSeq
+
+ Evaluates to seq { 1; 2; 5 }.
+
+
+
+ Builds an array from the given list.
+
+ The input list.
+
+ The array containing the elements of the list.
+
+
+
+ let inputs = [ 1; 2; 5 ]
+
+ inputs |> List.toArray
+
+ Evaluates to [| 1; 2; 5 |].
+
+
+
+ Returns a list that contains all elements of the original list while the
+ given predicate returns True, and then returns no further elements.
+
+ A function that evaluates to false when no more items should be returned.
+ The input list.
+
+ The result list.
+
+
+
+ let inputs = ["a"; "bb"; "ccc"; "d"]
+
+ inputs |> List.takeWhile (fun x -> x.Length < 3)
+
+ Evaluates to ["a"; "bb"]
+
+
+
+ Returns the first N elements of the list.
+ Throws InvalidOperationException
+ if the count exceeds the number of elements in the list. List.truncate
+ returns as many items as the list contains instead of throwing an exception.
+
+ The number of items to take.
+ The input list.
+
+ The result list.
+
+ Thrown when the input list is empty.
+ Thrown when count exceeds the number of elements
+ in the list.
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> List.take 2
+
+ Evaluates to ["a"; "b"]
+
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> List.take 6
+
+ Throws InvalidOperationException.
+
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> List.take 0
+
+ Evaluates to the empty list.
+
+
+
+ Returns the list after removing the first element.
+
+ The input list.
+
+ Thrown when the list is empty.
+
+ The list after removing the first element.
+
+
+
+ let inputs = ["a"; "bb"; "ccc"]
+
+ inputs |> List.tail
+
+ Evaluates to ["bb"; "ccc"]
+
+
+
+
+ Returns the sum of the results generated by applying the function to each element of the list.
+
+ The function to transform the list elements into the type to be summed.
+ The input list.
+
+ The resulting sum.
+
+
+
+ let input = [ "aa"; "bbb"; "cc" ]
+
+ input |> List.sumBy (fun s -> s.Length)
+
+ Evaluates to 7.
+
+
+
+ Returns the sum of the elements in the list.
+
+ The input list.
+
+ The resulting sum.
+
+
+
+ let input = [ 1; 5; 3; 2 ]
+
+ input |> List.sum
+
+ Evaluates to 11.
+
+
+
+ Sorts the given list in descending order using .
+
+ This is a stable sort, i.e. the original order of equal elements is preserved.
+ The input list.
+
+ The sorted list.
+
+
+
+ let input = [8; 4; 3; 1; 6; 1]
+
+ input |> List.sortDescending
+
+ Evaluates to [8; 6; 4; 3; 1; 1].
+
+
+
+ Sorts the given list in descending order using keys given by the given projection. Keys are compared using .
+
+ This is a stable sort, i.e. the original order of equal elements is preserved.
+ The function to transform the list elements into the type to be compared.
+ The input list.
+
+ The sorted list.
+
+
+
+ let input = ["a"; "bbb"; "cccc"; "dd"]
+
+ input |> List.sortByDescending (fun s -> s.Length)
+
+ Evaluates to ["cccc"; "bbb"; "dd"; "a"].
+
+
+
+ Splits a list into two lists, at the given index.
+
+ The index at which the list is split.
+ The input list.
+
+ The two split lists.
+
+ Thrown when split index exceeds the number of elements
+ in the list.
+
+
+
+ let input = [8; 4; 3; 1; 6; 1]
+
+ let front, back = input |> List.splitAt 3
+
+ Evaluates front to [8; 4; 3] and back to [1; 6; 1].
+
+
+
+ Sorts the given list using .
+
+ This is a stable sort, i.e. the original order of equal elements is preserved.
+ The input list.
+
+ The sorted list.
+
+
+
+ let input = [8; 4; 3; 1; 6; 1]
+
+ List.sort input
+
+ Evaluates to [1; 1 3; 4; 6; 8].
+
+
+
+ Sorts the given list using keys given by the given projection. Keys are compared using .
+
+ This is a stable sort, i.e. the original order of equal elements is preserved.
+ The function to transform the list elements into the type to be compared.
+ The input list.
+
+ The sorted list.
+
+
+
+ let input = [ "a"; "bbb"; "cccc"; "dd" ]
+
+ input |> List.sortBy (fun s -> s.Length)
+
+ Evaluates to ["a"; "dd"; "bbb"; "cccc"].
+
+
+
+ Sorts the given list using the given comparison function.
+
+ This is a stable sort, i.e. the original order of equal elements is preserved.
+ The function to compare the list elements.
+ The input list.
+
+ The sorted list.
+
+ Sort a list of pairs using a comparison function that compares string lengths then index numbers:
+
+ let compareEntries (n1: int, s1: string) (n2: int, s2: string) =
+ let c = compare s1.Length s2.Length
+ if c <> 0 then c else
+ compare n1 n2
+
+ let input = [ (0,"aa"); (1,"bbb"); (2,"cc"); (3,"dd") ]
+
+ input |> List.sortWith compareEntries
+
+ Evaluates to [(0, "aa"); (2, "cc"); (3, "dd"); (1, "bbb")].
+
+
+
+ Bypasses elements in a list while the given predicate returns True, and then returns
+ the remaining elements of the list.
+
+ A function that evaluates an element of the list to a boolean value.
+ The input list.
+
+ The result list.
+
+
+
+ let inputs = ["a"; "bbb"; "cc"; "d"]
+
+ inputs |> List.skipWhile (fun x -> x.Length < 3)
+
+ Evaluates to ["bbb"; "cc"; "d"]
+
+
+
+
+ Returns the list after removing the first N elements.
+
+ The number of elements to skip. If the number is 0 or negative the input list is returned.
+ The input list.
+
+ The list after removing the first N elements.
+
+ Thrown when count exceeds the number of
+ elements in the list.
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> List.skip 2
+
+ Evaluates to ["c"; "d"]
+
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> List.skip 5
+
+ Throws ArgumentException.
+
+
+
+
+ let inputs = ["a"; "b"; "c"; "d"]
+
+ inputs |> List.skip -1
+
+ Evaluates to ["a"; "b"; "c"; "d"].
+
+
+
+ Returns a list that contains one item only.
+
+ The input item.
+
+ The result list of one item.
+
+
+
+ List.singleton 7
+
+ Evaluates to [ 7 ].
+
+
+
+ Like foldBack, but returns both the intermediary and final results
+
+ The function to update the state given the input elements.
+ The input list.
+ The initial state.
+
+ The list of states.
+
+ Apply a list charges from back to front, and collect the running balances as each is applied:
+
+ type Charge =
+ | In of int
+ | Out of int
+
+ let inputs = [ In 1; Out 2; In 3 ]
+
+ (inputs, 0) ||> List.scanBack (fun charge acc ->
+ match charge with
+ | In i -> acc + i
+ | Out o -> acc - o)
+
+ Evaluates to [2; 1; 3; 0] by processing each input from back to front. Note 0 is the initial
+ state, 3 the next state, 1 the next state, and 2 the final state, and the states
+ are produced from back to front.
+ Note acc is a commonly used abbreviation for "accumulator".
+
+
+
+ Applies a function to each element of the collection, threading an accumulator argument
+ through the computation. Take the second argument, and apply the function to it
+ and the first element of the list. Then feed this result into the function along
+ with the second element and so on. Returns the list of intermediate results and the final result.
+
+ The function to update the state given the input elements.
+ The initial state.
+ The input list.
+
+ The list of states.
+
+ Apply a list charges and collect the running balances as each is applied:
+
+ type Charge =
+ | In of int
+ | Out of int
+
+ let inputs = [In 1; Out 2; In 3]
+
+ (0, inputs) ||> List.scan (fun acc charge ->
+ match charge with
+ | In i -> acc + i
+ | Out o -> acc - o)
+
+ Evaluates to [0; 1; -1; 2]. Note 0 is the initial
+ state, 1 the next state, -1 the next state, and 2 the final state.
+ Note acc is a commonly used abbreviation for "accumulator".
+
+
+
+ Returns a new list with the elements in reverse order.
+
+ The input list.
+
+ The reversed list.
+
+
+
+ let inputs = [ 0; 1; 2 ]
+
+ inputs |> List.rev
+
+ Evaluates to [ 2; 1; 0 ].
+
+
+
+ Creates a list by replicating the given initial value.
+
+ The number of elements to replicate.
+ The value to replicate
+
+ The generated list.
+
+
+
+ List.replicate 3 "a"
+
+ Evaluates to [ "a"; "a"; "a" ].
+
+
+
+ Applies a function to each element of the collection, starting from the end, threading an accumulator argument
+ through the computation. If the input function is f and the elements are i0...iN then computes
+ f i0 (...(f iN-1 iN)).
+
+ A function that takes in the next-to-last element of the list and the
+ current accumulated result to produce the next accumulated result.
+ The input list.
+
+ Thrown when the list is empty.
+
+ The final result of the reductions.
+
+
+
+ let inputs = [1; 3; 4; 2]
+
+ inputs |> List.reduceBack (fun a b -> a + b * 10)
+
+ Evaluates to 2431, by computing 1 + (3 + (4 + 2 * 10) * 10) * 10
+
+
+
+ Apply a function to each element of the collection, threading an accumulator argument
+ through the computation. Apply the function to the first two elements of the list.
+ Then feed this result into the function along with the third element and so on.
+ Return the final result. If the input function is f and the elements are i0...iN then computes
+ f (... (f i0 i1) i2 ...) iN.
+
+ Raises if list is empty
+
+ The function to reduce two list elements to a single element.
+ The input list.
+
+ Thrown when the list is empty.
+
+ The final reduced value.
+
+
+
+ let inputs = [1; 3; 4; 2]
+
+ inputs |> List.reduce (fun a b -> a * 10 + b)
+
+ Evaluates to 1342, by computing ((1 * 10 + 3) * 10 + 4) * 10 + 2
+
+
+
+ Returns a list with all elements permuted according to the
+ specified permutation.
+
+ The function to map input indices to output indices.
+ The input list.
+
+ The permuted list.
+
+ Thrown when indexMap does not produce a valid permutation.
+
+
+
+ let inputs = [1; 2; 3; 4]
+
+ inputs |> List.permute (fun x -> (x + 1) % 4)
+
+ Evaluates to [4; 1; 2; 3].
+
+
+
+ Applies the given function to successive elements, returning the first
+ result where function returns Some(x) for some x. If no such
+ element exists then raise
+
+ The function to generate options from the elements.
+ The input list.
+
+ Thrown when the list is empty.
+
+ The first resulting value.
+
+
+
+ let input = [1; 2; 3]
+
+ input |> List.pick (fun n -> if n % 2 = 0 then Some (string n) else None)
+
+ Evaluates to "2".
+
+
+
+
+ let input = [1; 2; 3]
+
+ input |> List.pick (fun n -> if n > 3 then Some (string n) else None)
+
+ Throws KeyNotFoundException.
+
+
+
+
+ Splits the collection into two collections, containing the
+ elements for which the given predicate returns True and False
+ respectively. Element order is preserved in both of the created lists.
+
+ The function to test the input elements.
+ The input list.
+
+ A list containing the elements for which the predicate evaluated to true and a list
+ containing the elements for which the predicate evaluated to false.
+
+
+
+ let inputs = [1; 2; 3; 4]
+
+ let evens, odds = inputs |> List.partition (fun x -> x % 2 = 0)
+
+ Evaluates evens to [2; 4] and odds to [1; 3].
+
+
+
+ Returns a list of each element in the input list and its predecessor, with the
+ exception of the first element which is only returned as the predecessor of the second element.
+
+ The input list.
+
+ The result list.
+
+
+
+ let inputs = [1; 2; 3; 4]
+
+ inputs |> List.pairwise
+
+ Evaluates to [(1, 2); (2, 3); (3, 4)].
+
+
+
+ Builds a new list from the given enumerable object.
+
+ The input sequence.
+
+ The list of elements from the sequence.
+
+
+
+ let inputs = seq { 1; 2; 5 }
+
+ inputs |> List.ofSeq
+
+ Evaluates to [ 1; 2; 5 ].
+
+
+
+ Builds a list from the given array.
+
+ The input array.
+
+ The list of elements from the array.
+
+
+
+ let inputs = [| 1; 2; 5 |]
+
+ inputs |> List.ofArray
+
+ Evaluates to [ 1; 2; 5 ].
+
+
+
+ Indexes into the list. The first element has index 0.
+
+ The input list.
+ The index to retrieve.
+
+ The value at the given index.
+
+ Thrown when the index is negative or the input list does not contain enough elements.
+
+
+ Returns the lowest of all elements of the list, compared via Operators.min on the function result
+
+ Raises if list is empty.
+ The function to transform list elements into the type to be compared.
+ The input list.
+
+ Thrown when the list is empty.
+
+ The minimum value.
+
+
+
+ let inputs = ["aaa"; "b"; "cccc"]
+
+ inputs |> List.minBy (fun s -> s.Length)
+
+ Evaluates to "b"
+
+
+
+
+ let inputs = []
+
+ inputs |> List.minBy (fun (s: string) -> s.Length)
+
+ Throws System.ArgumentException.
+
+
+
+ Returns the lowest of all elements of the list, compared via Operators.min.
+
+ Raises if list is empty
+ The input list.
+
+ Thrown when the list is empty.
+
+ The minimum value.
+
+
+
+ let inputs = [10; 12; 11]
+
+ inputs |> List.min
+
+ Evaluates to 10
+
+
+
+
+ let inputs = []
+
+ inputs |> List.min
+
+ Throws System.ArgumentException.
+
+
+
+ Returns the greatest of all elements of the list, compared via Operators.max on the function result.
+
+ Raises if list is empty.
+ The function to transform the list elements into the type to be compared.
+ The input list.
+
+ Thrown when the list is empty.
+
+ The maximum element.
+
+
+
+ let inputs = ["aaa"; "b"; "cccc"]
+
+ inputs |> List.maxBy (fun s -> s.Length)
+
+ Evaluates to "cccc"
+
+
+
+
+ let inputs = []
+
+ inputs |> List.maxBy (fun (s: string) -> s.Length)
+
+ Throws System.ArgumentException.
+
+
+
+ Return the greatest of all elements of the list, compared via Operators.max.
+
+ Raises if list is empty
+ The input list.
+
+ Thrown when the list is empty.
+
+ The maximum element.
+
+
+
+ let inputs = [ 10; 12; 11 ]
+
+ inputs |> List.max
+
+ Evaluates to 12
+
+
+
+
+ let inputs = [ ]
+
+ inputs |> List.max
+
+ Throws System.ArgumentException.
+
+
+
+ Like mapi, but mapping corresponding elements from two lists of equal length.
+
+ The function to transform pairs of elements from the two lists and their index.
+ The first input list.
+ The second input list.
+
+ The list of transformed elements.
+
+
+
+ let inputs1 = ["a"; "bad"; "good"]
+ let inputs2 = [0; 2; 1]
+
+ (inputs1, inputs2) ||> List.mapi2 (fun i x y -> i, x[y])
+
+ Evaluates to [(0, 'a'); (1, 'd'); (2, 'o')]
+
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to each of the elements of the collection. The integer index passed to the
+ function indicates the index (from 0) of the element being transformed.
+
+ The function to transform elements and their indices.
+ The input list.
+
+ The list of transformed elements.
+
+
+
+ let inputs = [ 10; 10; 10 ]
+
+ inputs |> List.mapi (fun i x -> i + x)
+
+ Evaluates to [ 10; 11; 12 ]
+
+
+
+ Combines map and foldBack. Builds a new list whose elements are the results of applying the given function
+ to each of the elements of the input list. The function is also used to accumulate a final value.
+
+ The function to transform elements from the input list and accumulate the final value.
+ The input list.
+ The initial state.
+
+ The list of transformed elements, and the final accumulated value.
+
+ Accumulate the charges from back to front, and double them as well
+
+ type Charge =
+ | In of int
+ | Out of int
+
+ let charges = [ In 1; Out 2; In 3 ]
+
+ let newCharges, balance =
+ (charges, 0) ||> List.mapFoldBack (fun charge acc ->
+ match charge with
+ | In i -> In (i*2), acc + i
+ | Out o -> Out (o*2), acc - o)
+
+ Evaluates newCharges to [In 2; Out 4; In 6] and balance to 2.
+ Note acc is a commonly used abbreviation for "accumulator".
+
+
+
+ Combines map and fold. Builds a new list whose elements are the results of applying the given function
+ to each of the elements of the input list. The function is also used to accumulate a final value.
+
+ The function to transform elements from the input list and accumulate the final value.
+ The initial state.
+ The input list.
+
+ The list of transformed elements, and the final accumulated value.
+
+ Accumulate the charges, and double them as well
+
+ type Charge =
+ | In of int
+ | Out of int
+
+ let inputs = [ In 1; Out 2; In 3 ]
+
+ let newCharges, balance =
+ (0, inputs) ||> List.mapFold (fun acc charge ->
+ match charge with
+ | In i -> In (i*2), acc + i
+ | Out o -> Out (o*2), acc - o)
+
+ Evaluates newCharges to [In 2; Out 4; In 6] and balance to 2.
+ Note acc is a commonly used abbreviation for "accumulator".
+
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to the corresponding elements of the three collections simultaneously.
+
+ The function to transform triples of elements from the input lists.
+ The first input list.
+ The second input list.
+ The third input list.
+
+ The list of transformed elements.
+
+
+
+ let inputs1 = [ "a"; "t"; "ti" ]
+ let inputs2 = [ "l"; "h"; "m" ]
+ let inputs3 = [ "l"; "e"; "e" ]
+
+ (inputs1, inputs2, inputs3) |||> List.map3 (fun x y z -> x + y + z)
+
+ Evaluates to [ "all"; "the"; "time" ]
+
+
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to the corresponding elements of the two collections pairwise.
+
+ The function to transform pairs of elements from the input lists.
+ The first input list.
+ The second input list.
+
+ The list of transformed elements.
+
+
+
+ let inputs1 = ["a"; "bad"; "good"]
+ let inputs2 = [0; 2; 1]
+
+ (inputs1, inputs2) ||> List.map2 (fun x y -> x.[y])
+
+ Evaluates to seq ['a'; 'd'; 'o']
+
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to each of the elements of the collection.
+
+ The function to transform elements from the input list.
+ The input list.
+
+ The list of transformed elements.
+
+
+
+ let inputs = [ "a"; "bbb"; "cc" ]
+
+ inputs |> List.map (fun x -> x.Length)
+
+ Evaluates to [ 1; 3; 2 ]
+
+
+
+ Returns the last element of the list.
+ Return None if no such element exists.
+
+ The input list.
+
+ The last element of the list or None.
+
+
+
+ [ "pear"; "banana" ] |> List.tryLast
+
+ Evaluates to Some "banana"
+
+
+
+
+ [ ] |> List.tryLast
+
+ Evaluates to None
+
+
+
+ Returns the length of the list.
+
+ The input list.
+
+ The length of the list.
+
+ The notation array.Length is preferred.
+
+
+
+ let inputs = [ "a"; "b"; "c" ]
+
+ inputs |> List.length
+
+ Evaluates to 3
+
+
+
+ Returns the last element of the list.
+
+ The input list.
+
+ The last element of the list.
+
+ Thrown when the input does not have any elements.
+
+
+
+ [ "pear"; "banana" ] |> List.last
+
+ Evaluates to banana
+
+
+
+
+ [ ] |> List.last
+
+ Throws ArgumentException
+
+
+
+ Applies the given function to two collections simultaneously. The
+ collections must have identical sizes. The integer passed to the
+ function indicates the index of the element.
+
+ The function to apply to a pair of elements from the input lists along with their index.
+ The first input list.
+ The second input list.
+
+
+
+ let inputs1 = [ "a"; "b"; "c" ]
+ let inputs2 = [ "banana"; "pear"; "apple" ]
+
+ (inputs1, inputs2) ||> List.iteri2 (fun i s1 s2 -> printfn "Index %d: %s - %s" i s1 s2)
+
+ Evaluates to unit and prints
+
+ Index 0: a - banana
+ Index 1: b - pear
+ Index 2: c - apple
+
+ in the console.
+
+
+
+ Applies the given function to each element of the collection. The integer passed to the
+ function indicates the index of the element.
+
+ The function to apply to the elements of the list along with their index.
+ The input list.
+
+
+
+ let inputs = [ "a"; "b"; "c" ]
+
+ inputs |> List.iteri (fun i v -> printfn "{i}: {v}")
+
+ Evaluates to unit and prints
+
+ 0: a
+ 1: b
+ 2: c
+
+ in the console.
+
+
+
+ Applies the given function to two collections simultaneously. The
+ collections must have identical sizes.
+
+ The function to apply to pairs of elements from the input lists.
+ The first input list.
+ The second input list.
+
+
+
+ let inputs1 = [ "a"; "b"; "c" ]
+ let inputs2 = [ 1; 2; 3 ]
+
+ (inputs1, inputs2) ||> List.iter2 (printfn "%s: %i")
+
+ Evaluates to unit and prints
+
+ a: 1
+ b: 2
+ c: 3
+
+ in the console.
+
+
+
+ Applies the given function to each element of the collection.
+
+ The function to apply to elements from the input list.
+ The input list.
+
+
+
+ let inputs = [ "a"; "b"; "c" ]
+
+ inputs |> List.iter (printfn "%s")
+
+ Evaluates to unit and prints
+
+ a
+ b
+ c
+
+ in the console.
+
+
+
+ Indexes into the list. The first element has index 0.
+
+ The index to retrieve.
+ The input list.
+
+ The value at the given index.
+
+ Thrown when the index is negative or the input list does not contain enough elements.
+
+
+
+ let inputs = [ "a"; "b"; "c" ]
+
+ inputs |> List.item 1
+
+ Evaluates to "b"
+
+
+
+
+ let inputs = [ "a"; "b"; "c" ]
+
+ inputs |> List.item 4
+
+ Throws ArgumentException
+
+
+
+ Returns true if the list contains no elements, false otherwise.
+
+ The input list.
+
+ True if the list is empty.
+
+
+
+ [ ] |> List.isEmpty
+
+ Evaluates to true
+
+
+
+
+ [ "pear"; "banana" ] |> List.isEmpty
+
+ Evaluates to false
+
+
+
+ Creates a list by calling the given generator on each index.
+
+ The length of the list to generate.
+ The function to generate an element from an index.
+
+ Thrown when the input length is negative.
+
+ The list of generated elements.
+
+
+
+ List.init 4 (fun v -> v + 5)
+
+ Evaluates to [5; 6; 7; 8]
+
+
+
+
+ List.init -5 (fun v -> v + 5)
+
+ Throws ArgumentException
+
+
+
+ Returns a new list whose elements are the corresponding elements
+ of the input list paired with the index (from 0) of each element.
+
+ The input list.
+
+ The list of indexed elements.
+
+
+
+ let inputs = ["a"; "b"; "c"]
+
+ inputs |> List.indexed
+
+ Evaluates to [(0, "a"); (1, "b"); (2, "c")]
+
+
+
+ Returns the first element of the list.
+
+ The input list.
+
+ Thrown when the list is empty.
+
+ The first element of the list.
+
+
+
+ let inputs = ["banana"; "pear"]
+
+ inputs |> List.head
+
+ Evaluates to banana
+
+
+
+
+ [] |> List.head
+
+ Throws ArgumentException
+
+
+
+ Applies a key-generating function to each element of a list and yields a list of
+ unique keys. Each unique key contains a list of all elements that match
+ to this key.
+
+ A function that transforms an element of the list into a comparable key.
+ The input list.
+
+ The result list.
+
+
+
+ let inputs = [1; 2; 3; 4; 5]
+
+ inputs |> List.groupBy (fun n -> n % 2)
+
+ Evaluates to [(1, [1; 3; 5]); (0, [2; 4])]
+
+
+
+ Tests if all corresponding elements of the collection satisfy the given predicate pairwise.
+
+ The predicate is applied to matching elements in the two collections up to the lesser of the
+ two lengths of the collections. If any application returns false then the overall result is
+ false and no further elements are tested. Otherwise, if one collection is longer
+ than the other then the exception is raised.
+ Otherwise, true is returned.
+ The function to test the input elements.
+ The first input list.
+ The second input list.
+
+ Thrown when the input lists differ in length.
+
+ True if all of the pairs of elements satisfy the predicate.
+
+
+
+ let inputs1 = [1; 2; 3]
+ let inputs2 = [1; 2; 3]
+
+ (inputs1, inputs2) ||> List.forall2 (=)
+
+ Evaluates to true.
+
+
+
+
+ let items1 = [2017; 1; 1]
+ let items2 = [2019; 19; 8]
+
+ (items1, items2) ||> List.forall2 (=)
+
+ Evaluates to false.
+
+
+
+
+ let items1 = [1; 2; 3]
+ let items2 = [1; 2]
+
+ (items1, items2) ||> List.forall2 (=)
+
+ Throws ArgumentException.
+
+
+
+ Tests if all elements of the collection satisfy the given predicate.
+
+ The predicate is applied to the elements of the input list. If any application
+ returns false then the overall result is false and no further elements are tested.
+ Otherwise, true is returned.
+ The function to test the input elements.
+ The input list.
+
+ True if all of the elements satisfy the predicate.
+
+
+
+ let isEven a = a % 2 = 0
+
+ [2; 42] |> List.forall isEven // evaluates to true
+
+ [1; 2] |> List.forall isEven // evaluates to false
+
+
+
+
+ Applies a function to corresponding elements of two collections, threading an accumulator argument
+ through the computation. The collections must have identical sizes.
+ If the input function is f and the elements are i0...iN and j0...jN
+ then computes f i0 j0 (...(f iN jN s)).
+
+ The function to update the state given the input elements.
+ The first input list.
+ The second input list.
+ The initial state.
+
+ The final state value.
+
+
+ Count the positives, negatives and accumulate some text from back to front:
+ type Count =
+ { Positive: int
+ Negative: int
+ Text: string }
+
+ let inputs1 = [ -1; -2; -3 ]
+ let inputs2 = [ 3; 2; 1 ]
+ let initialState = {Positive = 0; Negative = 0; Text = ""}
+
+ (inputs1, inputs2, initialState) |||> List.foldBack2 (fun a b acc ->
+ let text = acc.Text + "(" + string a + "," + string b + ") "
+ if a + b >= 0 then
+ { acc with
+ Positive = acc.Positive + 1
+ Text = text }
+ else
+ { acc with
+ Negative = acc.Negative + 1
+ Text = text }
+ )
+
+ Evaluates to
+
+ { Positive = 2
+ Negative = 1
+ Text = "(-3,1) (-2,2) (-1,3) " }
+
+ Note acc is a commonly used abbreviation for "accumulator".
+
+
+
+ Applies a function to each element of the collection, starting from the end, threading an accumulator argument
+ through the computation. If the input function is f and the elements are i0...iN then
+ computes f i0 (...(f iN s)).
+
+ The function to update the state given the input elements.
+ The input list.
+ The initial state.
+
+ The state object after the folding function is applied to each element of the list.
+
+ Making the sum of squares for the first 5 natural numbers
+
+ ([1..5], 0) ||> List.foldBack (fun v acc -> acc + v * v) // evaluates 55
+
+ Note acc is a commonly used abbreviation for "accumulator".
+
+
+ Shopping for fruits hungry, you tend to take more of each as the hunger grows
+
+ type Fruit = Apple | Pear | Orange
+
+ type BagItem = { fruit: Fruit; quantity: int }
+
+ let takeMore fruit (previous: BagItem list) =
+ let toTakeThisTime =
+ match previous with
+ | bagItem :: otherBagItems -> bagItem.quantity + 1
+ | [] -> 1
+ { fruit = fruit; quantity = toTakeThisTime } :: previous
+
+ let input = [ Apple; Pear; Orange ]
+
+ (input, []) ||> List.foldBack takeMore
+
+ Evaluates to
+
+ [{ fruit = Apple; quantity = 3 }
+ { fruit = Pear; quantity = 2 }
+ { fruit = Orange; quantity = 1 }]
+
+
+
+
+ Applies a function to corresponding elements of two collections, threading an accumulator argument
+ through the computation. The collections must have identical sizes.
+ If the input function is f and the elements are i0...iN and j0...jN
+ then computes f (... (f s i0 j0)...) iN jN.
+
+ The function to update the state given the input elements.
+ The initial state.
+ The first input list.
+ The second input list.
+
+ The final state value.
+
+
+ Count the number of times the coins match:
+ type CoinToss = Head | Tails
+
+ let inputs1 = [Tails; Head; Tails]
+ let inputs2 = [Tails; Head; Head]
+
+ (0, inputs1, inputs2) |||> List.fold2 (fun acc input1 input2 ->
+ match (input1, input2) with
+ | Head, Head -> acc + 1
+ | Tails, Tails -> acc + 1
+ | _ -> acc)
+
+ Evaluates to 1. Note acc is a commonly used abbreviation for "accumulator".
+
+
+
+ Applies a function to each element of the collection, threading an accumulator argument
+ through the computation. Take the second argument, and apply the function to it
+ and the first element of the list. Then feed this result into the function along
+ with the second element and so on. Return the final result.
+ If the input function is f and the elements are i0...iN then
+ computes f (... (f s i0) i1 ...) iN.
+
+ The function to update the state given the input elements.
+ The initial state.
+ The input list.
+
+ The final state value.
+
+ Making the sum of squares for the first 5 natural numbers
+
+ (0, [1..5]) ||> List.fold (fun s v -> s + v * v) // evaluates 55
+
+
+
+ Shopping for fruits hungry, you tend to take more of each as the hunger grows
+
+ type Fruit = Apple | Pear | Orange
+
+ type BagItem = { fruit: Fruit; quantity: int }
+
+ let takeMore (previous: BagItem list) fruit =
+ let toTakeThisTime =
+ match previous with
+ | bagItem :: otherBagItems -> bagItem.quantity + 1
+ | [] -> 1
+ { fruit = fruit; quantity = toTakeThisTime } :: previous
+
+ let inputs = [ Apple; Pear; Orange ]
+
+ ([], inputs) ||> List.fold takeMore
+
+ Evaluates to
+
+ [{ fruit = Orange; quantity = 3 }
+ { fruit = Pear; quantity = 2 }
+ { fruit = Apple; quantity = 1 }]
+
+
+
+
+ Returns a new collection containing only the elements of the collection
+ for which the given predicate returns "true"
+
+ The function to test the input elements.
+ The input list.
+
+ A list containing only the elements that satisfy the predicate.
+
+
+
+ let input = [1, "Luke"; 2, "Kirk"; 3, "Kenobi"; 4, "Spock"]
+
+ let isEven x = 0 = x % 2
+
+ let isComingFromStarTrek (x,_) = isEven x
+
+ input |> List.filter isComingFromStarTrek
+
+ Evaluates to [(2, "Kirk"); (4, "Spock")]
+
+
+
+ Returns the index of the last element in the list
+ that satisfies the given predicate.
+ Raises KeyNotFoundException if no such element exists.
+
+ The function to test the input elements.
+ The input list.
+
+ Thrown if the predicate evaluates to false for all the
+ elements of the list.
+
+ The index of the last element that satisfies the predicate.
+
+
+
+ let isEven x = 0 = x % 2
+
+ let isGreaterThan x y = y > x
+
+ let input = [1, "Luke"; 2, "Kirk"; 3, "Spock"; 4, "Kenobi"]
+
+ input |> List.findIndexBack (fun (x,_) -> isEven x) // evaluates 3
+ input |> List.findIndexBack (fun (x,_) -> x |> isGreaterThan 6) // raises an exception
+
+
+
+
+ Returns the index of the first element in the list
+ that satisfies the given predicate.
+ Raises KeyNotFoundException if no such element exists.
+
+ The function to test the input elements.
+ The input list.
+
+ Thrown if the predicate evaluates to false for all the
+ elements of the list.
+
+ The index of the first element that satisfies the predicate.
+
+
+
+ let isEven x = 0 = x % 2
+
+ let isGreaterThan x y = y > x
+
+ let input = [1, "Luke"; 2, "Kirk"; 3, "Spock"; 4, "Kenobi"]
+
+ input |> List.findIndex (fun (x,_) -> isEven x) // evaluates 1
+ input |> List.findIndex (fun (x,_) -> x |> isGreaterThan 6) // raises an exception
+
+
+
+
+ Returns the last element for which the given function returns True.
+ Raises KeyNotFoundException if no such element exists.
+
+ The function to test the input elements.
+ The input list.
+
+ Thrown if the predicate evaluates to false for
+ all the elements of the list.
+
+ The last element that satisfies the predicate.
+
+
+
+ let isEven x = 0 = x % 2
+
+ let isGreaterThan x y = y > x
+
+ let input = [1, "Luke"; 2, "Kirk"; 3, "Spock"; 4, "Kenobi"]
+
+ input |> List.findBack (fun (x,_) -> isEven x) // evaluates (4, "Kenobi")
+ input |> List.findBack (fun (x,_) -> x |> isGreaterThan 6) // raises an exception
+
+
+
+
+ Returns the first element for which the given function returns True.
+ Raises KeyNotFoundException if no such element exists.
+
+ The function to test the input elements.
+ The input list.
+
+ Thrown if the predicate evaluates to false for
+ all the elements of the list.
+
+ The first element that satisfies the predicate.
+
+
+
+ let isEven x = 0 = x % 2
+
+ let isGreaterThan x y = y > x
+
+ let input = [1, "Luke"; 2, "Kirk"; 3, "Spock"; 4, "Kenobi"]
+
+ input |> List.find (fun (x,_) -> isEven x) // evaluates (2, "Kirk")
+ input |> List.find (fun (x,_) -> x |> isGreaterThan 6) // raises an exception
+
+
+
+
+ Tests if any pair of corresponding elements of the lists satisfies the given predicate.
+
+ The predicate is applied to matching elements in the two collections up to the lesser of the
+ two lengths of the collections. If any application returns true then the overall result is
+ true and no further elements are tested. Otherwise, if one collections is longer
+ than the other then the exception is raised.
+ Otherwise, false is returned.
+
+ The function to test the input elements.
+ The first input list.
+ The second input list.
+
+ Thrown when the input lists differ in length.
+
+ True if any pair of elements satisfy the predicate.
+
+ Check if the sum of pairs (from 2 different lists) have at least one even number
+
+ let anEvenSum a b = 0 = (a + b) % 2
+
+ ([1..4], [2..5])
+ ||> List.exists2 anEvenSum // evaluates false
+
+ ([1..4], [2;4;5;6])
+ ||> List.exists2 anEvenSum // evaluates true
+
+
+
+
+ Tests if any element of the list satisfies the given predicate.
+
+ The predicate is applied to the elements of the input list. If any application
+ returns true then the overall result is true and no further elements are tested.
+ Otherwise, false is returned.
+ The function to test the input elements.
+ The input list.
+
+ True if any element satisfies the predicate.
+
+
+
+ let input = [1, "Kirk"; 2, "Spock"; 3, "Kenobi"]
+
+ input |> List.exists (fun x -> x = (3, "Kenobi")) // evaluates true
+
+ input |> List.exists (fun (n, name) -> n > 5) // evaluates false
+
+
+
+
+ Returns the only element of the list or None if it is empty or contains more than one element.
+
+ The input list.
+
+ The only element of the list or None.
+
+
+
+ [1] |> List.tryExactlyOne // evaluates Some 1
+ [1;2] |> List.tryExactlyOne // evaluates None
+ ([] : int list) |> List.tryExactlyOne // evaluates None
+
+
+
+
+ Returns the only element of the list.
+
+ The input list.
+
+ The only element of the list.
+
+ Thrown when the input does not have precisely one element.
+
+
+
+ ["the chosen one"] |> List.exactlyOne // evaluates "the chosen one"
+
+
+
+
+
+ let input : string list = []
+
+ input |> List.exactlyOne
+
+ Will throw the exception: System.ArgumentException: The input sequence was empty
+
+
+
+
+ [1..5] |> List.exactlyOne
+
+ Will throw the exception: System.ArgumentException: The input sequence contains more than one element
+
+
+
+ Returns a new list with the distinct elements of the input list which do not appear in the itemsToExclude sequence,
+ using generic hash and equality comparisons to compare values.
+
+ A sequence whose elements that also occur in the input list will cause those elements to be
+ removed from the result.
+ A list whose elements that are not also in itemsToExclude will be returned.
+
+ A list that contains the distinct elements of list that do not appear in itemsToExclude.
+
+ Thrown when itemsToExclude is null.
+
+
+
+ let input = [1, "Kirk"; 2, "Spock"; 3, "Kenobi"]
+
+ input |> List.except [3, "Kenobi"]
+
+ Evaluates to [(1, "Kirk"); (2, "Spock")].
+
+
+
+
+ [0..10] |> List.except [1..5] // evaluates [0; 6; 7; 8; 9; 10]
+
+
+
+
+
+ [1..5] |> List.except [0..10] // evaluates []
+
+
+
+
+ Returns an empty list of the given type.
+
+
+ Splits the input list into at most count chunks.
+
+ The maximum number of chunks.
+ The input list.
+
+ The list split into chunks.
+
+ Thrown when count is not positive.
+
+
+
+ [1..10] |> List.splitInto 2
+
+ Evaluates to [[1; 2; 3; 4; 5]; [6; 7; 8; 9; 10]].
+
+
+
+
+ [1..10] |> List.splitInto 4
+
+ Evaluates to [[1; 2; 3]; [4; 5; 6]; [7; 8]; [9; 10]].
+
+
+
+ Applies a key-generating function to each element of a list and returns a list yielding unique
+ keys and their number of occurrences in the original list.
+
+ A function transforming each item of the input list into a key to be
+ compared against the others.
+ The input list.
+
+ The result list.
+
+ Counting the number of occurrences of chars
+
+ let input = ['H'; 'a'; 'p'; 'p'; 'y']
+
+ input |> List.countBy id
+
+ Evaluates [('H', 1); ('a', 1); ('p', 2); ('y', 1)]
+
+
+
+ Returns a list that contains no duplicate entries according to the
+ generic hash and equality comparisons on the keys returned by the given key-generating function.
+ If an element occurs multiple times in the list then the later occurrences are discarded.
+
+ A function transforming the list items into comparable keys.
+ The input list.
+
+ The result list.
+
+
+
+ let isEven x = 0 = x % 2
+
+ let input = [6;1;2;3;1;4;5;5]
+
+ input |> List.distinctBy isEven // evaluates [6; 1]
+
+
+
+
+ Returns a list that contains no duplicate entries according to generic hash and
+ equality comparisons on the entries.
+ If an element occurs multiple times in the list then the later occurrences are discarded.
+
+ The input list.
+
+ The result list.
+
+
+
+ let input = [6;1;2;3;1;4;5;5]
+
+ input |> List.distinct
+
+ Evaluates to [6; 1; 2; 3; 4; 5].
+
+
+
+ Tests if the list contains the specified element.
+
+ The value to locate in the input list.
+ The input list.
+
+ True if the input list contains the specified element; false otherwise.
+
+
+
+ [1..9] |> List.contains 0
+
+ Evaluates to false.
+
+
+
+
+ [1..9] |> List.contains 3
+
+ Evaluates to true.
+
+
+
+
+ let input = [1, "SpongeBob"; 2, "Patrick"; 3, "Squidward"; 4, "Mr. Krabs"]
+
+ input |> List.contains (2, "Patrick")
+
+ Evaluates to true.
+
+
+
+
+ let input = [1, "SpongeBob"; 2, "Patrick"; 3, "Squidward"; 4, "Mr. Krabs"]
+
+ input |> List.contains (22, "Patrick")
+
+ Evaluates to false.
+
+
+
+ Returns a new list that contains the elements of each of the lists in order.
+
+ The input sequence of lists.
+
+ The resulting concatenated list.
+
+
+
+ let input = [ [1;2]
+ [3;4;5]
+ [6;7;8;9] ]
+ input |> List.concat // evaluates [1; 2; 3; 4; 5; 6; 7; 8; 9]
+
+
+
+
+ Compares two lists using the given comparison function, element by element.
+
+ A function that takes an element from each list and returns an int.
+ If it evaluates to a non-zero value iteration is stopped and that value is returned.
+ The first input list.
+ The second input list.
+
+ Returns the first non-zero result from the comparison function. If the first list has a
+ larger element, the return value is always positive. If the second list has a larger
+ element, the return value is always negative. When the elements are equal in the two
+ lists, 1 is returned if the first list is longer, 0 is returned if they are equal in
+ length, and -1 is returned when the second list is longer.
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [1; 10]
+ let input2 = [1; 10]
+
+ (input1, input2) ||> List.compareWith closerToNextDozen
+
+ Evaluates to 0
+
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [1; 5]
+ let input2 = [1; 8]
+
+ (input1, input2) ||> List.compareWith closerToNextDozen
+
+ Evaluates to -1
+
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [1; 11]
+ let input2 = [1; 13]
+
+ (input1, input2) ||> List.compareWith closerToNextDozen
+
+ Evaluates to 1
+
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [1; 2]
+ let input2 = [1]
+
+ (input1, input2) ||> List.compareWith closerToNextDozen
+
+ Evaluates to 1
+
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [1]
+ let input2 = [1; 2]
+
+ (input1, input2) ||> List.compareWith closerToNextDozen
+
+ Evaluates to -1
+
+
+
+ For each element of the list, applies the given function. Concatenates all the results and returns the combined list.
+
+ The function to transform each input element into a sublist to be concatenated.
+ The input list.
+
+ The concatenation of the transformed sublists.
+
+ For each positive number in the array we are generating all the previous positive numbers
+
+ [1..4] |> List.collect (fun x -> [1..x])
+
+ The sample evaluates to [1; 1; 2; 1; 2; 3; 1; 2; 3; 4] (added extra spaces for easy reading)
+
+
+
+ Divides the input list into lists (chunks) of size at most chunkSize.
+ Returns a new list containing the generated lists (chunks) as its elements.
+
+ Returns an empty list when the input list is empty.
+
+ The maximum size of each chunk.
+ The input list.
+
+ The list divided into chunks.
+
+ Thrown when chunkSize is not positive.
+
+
+
+ [ 1..10 ] |> List.chunkBySize 3
+
+ Evaluates to
+
+ [ [ 1; 2; 3 ]
+ [ 4; 5; 6 ]
+ [ 7; 8; 9 ]
+ [ 10 ] ]
+
+
+
+
+
+ [ 1..5 ] |> List.chunkBySize 10
+
+ Evaluates to
+
+ [ [ 1; 2; 3; 4; 5 ] ]
+
+
+
+
+ Applies a function to each element in a list and then returns
+ a list of values v where the applied function returned Some(v).
+
+ Returns an empty list when the input list is empty or when the applied chooser function
+ returns None for all elements.
+
+
+ The function to be applied to the list elements.
+ The input list.
+
+ The resulting list comprising the values v where the chooser function returned Some(x).
+
+
+ Using the identity function id (is defined like fun x -> x):
+
+
+ let input1 = [ Some 1; None; Some 3; None ]
+
+ input1 |> List.choose id
+
+ Evaluates to
+
+ [ 1; 3 ]
+
+
+
+
+
+ type Happiness =
+ | AlwaysHappy
+ | MostOfTheTimeGrumpy
+
+ type People = { Name: string; Happiness: Happiness }
+
+ let takeJustHappyPersons person =
+ match person.Happiness with
+ | AlwaysHappy -> Some person.Name
+ | MostOfTheTimeGrumpy -> None
+
+ let candidatesForTheTrip =
+ [ { Name = "SpongeBob"
+ Happiness = AlwaysHappy }
+ { Name = "Patrick"
+ Happiness = AlwaysHappy }
+ { Name = "Squidward"
+ Happiness = MostOfTheTimeGrumpy } ]
+
+ candidatesForTheTrip
+ |> List.choose takeJustHappyPersons
+
+ Evaluates to
+
+ [ "SpongeBob"; "Patrick" ]
+
+
+
+
+
+ let input3: int option list = []
+
+ input3 |> List.choose id
+ Evaluates to:
+ empty list
+
+
+
+
+
+ let input4: string option list = [None; None]
+
+ input4 |> List.choose id
+ Evaluates to
+ empty list
+
+
+
+
+ Using the identity function id (is defined like fun x -> x):
+
+
+ let input5 = [ Some 1; None; Some 3; None ]
+
+ input5 |> List.choose id // evaluates [1; 3]
+
+
+
+
+
+ Returns the average of values in a list generated by applying a function to each element of the list.
+
+ The function to transform the list elements into the values to be averaged.
+ The input list.
+
+ Thrown when the list is empty.
+
+ The resulting average.
+
+ Calculate average age of persons by extracting their age from a record type.
+
+ type People = { Name: string; Age: int }
+
+ let getAgeAsFloat person = float person.Age
+
+ let people =
+ [ { Name = "Kirk"; Age = 26 }
+ { Name = "Spock"; Age = 90 }
+ { Name = "McCoy"; Age = 37 } ]
+
+ people |> List.averageBy getAgeAsFloat
+
+ Evaluates to
+
+ 51.0
+
+
+
+
+ Returns the average of the values in a non-empty list.
+
+ The input list.
+
+ Thrown when the input list is empty.
+
+ The resulting average.
+
+
+
+ [1.0 .. 9.0] |> List.average
+
+ Evaluates to
+
+ 5.0
+
+
+
+
+ Returns a new list that contains the elements of the first list
+ followed by elements of the second list.
+
+ The first input list.
+ The second input list.
+
+ The resulting list.
+
+
+
+ List.append [ 1..3 ] [ 4..7 ]
+
+ [ 4..7 ] |> List.append [ 1..3 ]
+
+ Evaluates to
+
+ [ 1; 2; 3; 4; 5; 6; 7 ]
+
+
+
+
+ Returns a new list that contains all pairings of elements from two lists.
+
+ The first input list.
+ The second input list.
+
+ The resulting list of pairs.
+
+
+
+ let people = [ "Kirk"; "Spock"; "McCoy" ]
+ let numbers = [ 1; 2 ]
+
+ people |> List.allPairs numbers
+
+ Evaluates to
+
+ [ (1, "Kirk"); (1, "Spock"); (1, "McCoy"); (2, "Kirk"); (2, "Spock"); (2, "McCoy") ]
+
+
+
+
+ Contains operations for working with values of type .
+
+ Operations for collections such as lists, arrays, sets, maps and sequences. See also
+ F# Collection Types in the F# Language Guide.
+
+
+
+ Returns a random sample of elements from the given array using the specified randomizer function, each element can be selected only once.
+
+ The randomizer function, must return a float number from [0.0..1.0) range.
+ The number of elements to return.
+ The input array.
+
+ An array of randomly selected elements from the input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+ Thrown when count is less than 0.
+ Thrown when count is greater than the length of the input array.
+ Thrown when the randomizer function returns a value outside the range [0, 1).
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomSampleBy Random.Shared.NextDouble 3
+
+ Can evaluate to [| 3; 1; 2 |].
+
+
+
+ Returns a random sample of elements from the given array with the specified Random instance, each element can be selected only once.
+
+ The Random instance.
+ The number of elements to return.
+ The input array.
+
+ An array of randomly selected elements from the input array.
+
+ Thrown when the input array is null.
+ Thrown when the random argument is null.
+ Thrown when the input array is empty.
+ Thrown when count is less than 0.
+ Thrown when count is greater than the length of the input array.
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomSampleWith Random.Shared 3
+
+ Can evaluate to [| 3; 1; 2 |].
+
+
+
+ Returns a random sample of elements from the given array, each element can be selected only once.
+
+ The number of elements to return.
+ The input array.
+
+ An array of randomly selected elements from the input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+ Thrown when count is less than 0.
+ Thrown when count is greater than the length of the input array.
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomSample 3
+
+ Can evaluate to [| 3; 1; 2 |].
+
+
+
+ Returns an array of random elements from the given array using the specified randomizer function, each element can be selected multiple times.
+
+ The randomizer function, must return a float number from [0.0..1.0) range.
+ The number of elements to return.
+ The input array.
+
+ An array of randomly selected elements from the input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+ Thrown when count is less than 0.
+ Thrown when the randomizer function returns a value outside the range [0, 1).
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomChoicesBy Random.Shared.NextDouble 3
+
+ Can evaluate to [| 3; 1; 3 |].
+
+
+
+ Returns an array of random elements from the given array with the specified Random instance, each element can be selected multiple times.
+
+ The Random instance.
+ The number of elements to return.
+ The input array.
+
+ An array of randomly selected elements from the input array.
+
+ Thrown when the input array is null.
+ Thrown when the random argument is null.
+ Thrown when the input array is empty.
+ Thrown when count is less than 0.
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomChoicesWith Random.Shared 3
+
+ Can evaluate to [| 3; 1; 3 |].
+
+
+
+ Returns an array of random elements from the given array, each element can be selected multiple times.
+
+ The number of elements to return.
+ The input array.
+
+ An array of randomly selected elements from the input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+ Thrown when count is less than 0.
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomChoices 3
+
+ Can evaluate to [| 3; 1; 3 |].
+
+
+
+ Returns a random element from the given array using the specified randomizer function.
+
+ The randomizer function, must return a float number from [0.0..1.0) range.
+ The input array.
+
+ A randomly selected element from the input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+ Thrown when the randomizer function returns a value outside the range [0, 1).
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomChoiceBy Random.Shared.NextDouble
+
+ Can evaluate to 3.
+
+
+
+ Returns a random element from the given array with the specified Random instance.
+
+ The Random instance.
+ The input array.
+
+ A randomly selected element from the input array.
+
+ Thrown when the input array is null.
+ Thrown when the random argument is null.
+ Thrown when the input array is empty.
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomChoiceWith Random.Shared
+
+ Can evaluate to 3.
+
+
+
+ Returns a random element from the given array.
+
+ The input array.
+
+ A randomly selected element from the input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomChoice
+
+ Can evaluate to 3.
+
+
+
+ Sorts input array in a random order using the specified randomizer function by mutating the array in-place.
+
+ The randomizer function, must return a float number from [0.0..1.0) range.
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown when the randomizer function returns a value outside the range [0, 1).
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomShuffleInPlaceBy Random.Shared.NextDouble
+
+ After evaluation array can contain [| 0; 2; 4; 3; 1 |].
+
+
+
+ Sorts input array in a random order with the specified Random instance by mutating the array in-place.
+
+ The input array.
+ The Random instance.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomShuffleInPlaceWith Random.Shared
+
+ After evaluation array can contain [| 0; 2; 4; 3; 1 |].
+
+
+
+ Sorts input array in a random order by mutating the array in-place.
+
+ The input array.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomShuffleInPlace
+
+ After evaluation array can contain [| 0; 2; 4; 3; 1 |].
+
+
+
+ Return a new array shuffled in a random order using the specified randomizer function.
+
+ The randomizer function, must return a float number from [0.0..1.0) range.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+ Thrown when the randomizer function returns a value outside the range [0, 1).
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomShuffleBy Random.Shared.NextDouble
+
+ Can evaluate to [| 0; 2; 4; 3; 1 |].
+
+
+
+ Return a new array shuffled in a random order with the specified Random instance.
+
+ The Random instance.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+ Thrown when the random argument is null.
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomShuffleWith Random.Shared
+
+ Can evaluate to [| 0; 2; 4; 3; 1 |].
+
+
+
+ Return a new array shuffled in a random order.
+
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| 0; 1; 2; 3; 4 |]
+
+ inputs |> Array.randomShuffle
+
+ Can evaluate to [| 0; 2; 4; 3; 1 |].
+
+
+
+ Return a new array with new items inserted before the given index.
+
+ The index where the items should be inserted.
+ The values to insert.
+ The input array.
+
+ The result array.
+
+ Thrown when index is below 0 or greater than source.Length.
+
+
+
+ let inputs = [| 0; 1; 2 |]
+
+ inputs |> Array.insertManyAt 1 [8; 9]
+
+ Evaluates to [| 0; 8; 9; 1; 2 |].
+
+
+
+ Return a new array with a new item inserted before the given index.
+
+ The index where the item should be inserted.
+ The value to insert.
+ The input array.
+
+ The result array.
+
+ Thrown when index is below 0 or greater than source.Length.
+
+
+
+ let inputs = [| 0; 1; 2 |]
+
+ inputs |> Array.insertAt 1 9
+
+ Evaluates to [| 0; 9; 1; 2 |].
+
+
+
+ Return a new array with the item at a given index set to the new value.
+
+ The index of the item to be replaced.
+ The new value.
+ The input array.
+
+ The result array.
+
+ Thrown when index is outside 0..source.Length - 1
+
+
+
+ let inputs = [| 0; 1; 2 |]
+
+ inputs |> Array.updateAt 1 9
+
+ Evaluates to [| 0; 9; 2 |].
+
+
+
+ Return a new array with the number of items starting at a given index removed.
+
+ The index of the item to be removed.
+ The number of items to remove.
+ The input array.
+
+ The result array.
+
+ Thrown when index is outside 0..source.Length - count
+
+
+
+ let inputs = [| 0; 1; 2; 3 |]
+
+ inputs |> Array.removeManyAt 1 2
+
+ Evaluates to [| 0; 3 |].
+
+
+
+ Return a new array with the item at a given index removed.
+
+ The index of the item to be removed.
+ The input array.
+
+ The result array.
+
+ Thrown when index is outside 0..source.Length - 1
+
+
+
+ let inputs = [| 0; 1; 2 |]
+
+ inputs |> Array.removeAt 1
+
+ Evaluates to [| 0; 2 |].
+
+
+
+ Combines three arrays into an array of pairs. The three arrays must have equal lengths, otherwise an ArgumentException is
+ raised.
+
+ The first input array.
+ The second input array.
+ The third input array.
+
+ Thrown when any of the input arrays are null.
+ Thrown when the input arrays differ in length.
+
+ The array of tupled elements.
+
+
+
+ let numbers = [| 1; 2 |]
+ let names = [| "one"; "two" |]
+ let roman = [| "I"; "II" |]
+
+ Array.zip3 numbers names roman
+
+ Evaluates to [|(1, "one", "I"); (2, "two", "II")|].
+
+
+
+ Combines the two arrays into an array of pairs. The two arrays must have equal lengths, otherwise an ArgumentException is
+ raised.
+
+ The first input array.
+ The second input array.
+
+ Thrown when either of the input arrays is null.
+ Thrown when the input arrays differ in length.
+
+ The array of tupled elements.
+
+
+
+ let numbers = [|1; 2|]
+ let names = [|"one"; "two"|]
+
+ Array.zip numbers names
+
+ Evaluates to [| (1, "one"); (2, "two") |].
+
+
+
+ Returns an array of sliding windows containing elements drawn from the input
+ array. Each window is returned as a fresh array.
+
+ The number of elements in each window.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+ Thrown when windowSize is not positive.
+
+
+
+ let inputs = [| 1; 2; 3; 4; 5 |]
+
+ inputs |> Array.windowed 3
+
+ Evaluates to [|[|1; 2; 3|]; [|2; 3; 4|]; [|3; 4; 5|]|]
+
+
+
+ Returns a new array containing only the elements of the array
+ for which the given predicate returns "true".
+
+ The function to test the input elements.
+ The input array.
+
+ An array containing the elements for which the given predicate returns true.
+
+ Thrown when the input array is null.
+
+ This is identical to Array.filter.
+
+ Select only the even numbers:
+
+ let inputs = [| 1; 2; 3; 4 |]
+
+ inputs |> Array.where (fun elm -> elm % 2 = 0)
+
+ Evaluates to [| 2; 4 |]
+
+
+
+ Splits an array of triples into three arrays.
+
+ The input array.
+
+ The tuple of three arrays.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| (1, "one", "I"); (2, "two", "II") |]
+
+ let numbers, names, roman = inputs |> Array.unzip3
+
+ Evaluates numbers to [|1; 2|], names to [|"one"; "two"|] and roman to [|"I"; "II"|].
+
+
+
+ Splits an array of pairs into two arrays.
+
+ The input array.
+
+ The two arrays.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| (1, "one"); (2, "two") |]
+
+ let numbers, names = inputs |> Array.unzip
+
+ Evaluates numbers to [|1; 2|] and names to [|"one"; "two"|].
+
+
+
+ Returns an array that contains the elements generated by the given computation.
+ The generator is repeatedly called to build the list until it returns `None`.
+ The given initial state argument is passed to the element generator.
+
+ A function that takes in the current state and returns an option tuple of the next
+ element of the array and the next state value.
+ The initial state value.
+
+ The result array.
+
+
+
+ 1 |> Array.unfold (fun state -> if state > 100 then None else Some (state, state * 2))
+
+ Evaluates to [| 1; 2; 4; 8; 16; 32; 64 |]
+
+
+
+ Returns the index of the last element in the array
+ that satisfies the given predicate.
+
+ The function to test the input elements.
+ The input array.
+
+ Thrown when the input array is null.
+
+ The index of the last element that satisfies the predicate, or None.
+
+ Try to find the index of the first even number from the back:
+
+ let inputs = [| 1; 2; 3; 4; 5 |]
+
+ inputs |> Array.tryFindIndexBack (fun elm -> elm % 2 = 0)
+
+ Evaluates to Some 3
+
+
+ Try to find the index of the first even number from the back:
+
+ let inputs = [| 1; 3; 5; 7 |]
+
+ inputs |> Array.tryFindIndexBack (fun elm -> elm % 2 = 0)
+
+ Evaluates to None
+
+
+
+ Tries to find the nth element in the array.
+ Returns None if index is negative or the input array does not contain enough elements.
+
+ The index of element to retrieve.
+ The input array.
+
+ The nth element of the array or None.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| "a"; "b"; "c" |]
+
+ inputs |> Array.tryItem 1
+
+ Evaluates to Some "b".
+
+
+
+
+ let inputs = [| "a"; "b"; "c" |]
+
+ inputs |> Array.tryItem 4
+
+ Evaluates to None.
+
+
+
+ Returns the index of the first element in the array
+ that satisfies the given predicate.
+
+ The function to test the input elements.
+ The input array.
+
+ Thrown when the input array is null.
+
+ The index of the first element that satisfies the predicate, or None.
+
+ Try to find the index of the first even number:
+
+ let inputs = [| 1; 2; 3; 4; 5 |]
+
+ inputs |> Array.tryFindIndex (fun elm -> elm % 2 = 0)
+
+ Evaluates to Some 1
+
+
+ Try to find the index of the first even number:
+
+ let inputs = [| 1; 3; 5; 7 |]
+
+ inputs |> Array.tryFindIndex (fun elm -> elm % 2 = 0)
+
+ Evaluates to None
+
+
+
+ Returns the last element for which the given function returns True.
+ Return None if no such element exists.
+
+ The function to test the input elements.
+ The input array.
+
+ Thrown when the input array is null.
+
+ The last element that satisfies the predicate, or None.
+
+ Try to find the first even number from the back:
+
+ let inputs = [| 1; 2; 3; 4; 5 |]
+
+ inputs |> Array.tryFindBack (fun elm -> elm % 2 = 0)
+
+ Evaluates to Some 4
+
+
+ Try to find the first even number from the back:
+
+ let inputs = [| 1; 5; 3 |]
+
+ inputs |> Array.tryFindBack (fun elm -> elm % 2 = 0)
+
+ Evaluates to None
+
+
+
+ Returns the first element for which the given function returns True.
+ Return None if no such element exists.
+
+ The function to test the input elements.
+ The input array.
+
+ The first element that satisfies the predicate, or None.
+
+ Thrown when the input array is null.
+
+ Try to find the first even number:
+
+ let inputs = [| 1; 2; 3 |]
+
+ inputs |> Array.tryFind (fun elm -> elm % 2 = 0)
+
+ Evaluates to Some 2
+
+
+ Try to find the first even number:
+
+ let inputs = [| 1; 5; 3 |]
+
+ inputs |> Array.tryFind (fun elm -> elm % 2 = 0)
+
+ Evaluates to None
+
+
+
+ Returns at most N elements in a new array.
+
+ The maximum number of items to return.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| "a"; "b"; "c"; "d" |]
+
+ inputs |> Array.truncate 2
+
+ Evaluates to [| "a"; "b" |]
+
+
+
+
+ let inputs = [| "a"; "b"; "c"; "d" |]
+
+ inputs |> Array.truncate 6
+
+ Evaluates to [| "a"; "b"; "c"; "d" |]
+
+
+
+
+ let inputs = [| "a"; "b"; "c"; "d" |]
+
+ inputs |> Array.truncate 0
+
+ Evaluates to [| |].
+
+
+
+ Returns the transpose of the given sequence of arrays.
+
+ The input sequence of arrays.
+
+ The transposed array.
+
+ Thrown when the input sequence is null.
+ Thrown when the input arrays differ in length.
+
+
+
+ let inputs =
+ [| [| 10; 20; 30 |]
+ [| 11; 21; 31 |] |]
+
+ inputs |> Array.transpose
+
+ Evaluates to [|[|10; 11|]; [|20; 21|]; [|30; 31|]|].
+
+
+
+ Views the given array as a sequence.
+
+ The input array.
+
+ The sequence of array elements.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| 1; 2; 5 |]
+
+ inputs |> Array.toSeq
+
+ Evaluates to seq { 1; 2; 5 }.
+
+
+
+ Builds a list from the given array.
+
+ The input array.
+
+ The list of array elements.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| 1; 2; 5 |]
+
+ inputs |> Array.toList
+
+ Evaluates to [ 1; 2; 5 ].
+
+
+
+ Returns a new array containing the elements of the original except the first element.
+
+ The input array.
+
+ Thrown when the array is empty.
+ Thrown when the input array is null.
+
+ A new array containing the elements of the original except the first element.
+
+
+
+ let inputs = [| "a"; "bb"; "ccc" |]
+
+ inputs |> Array.tail
+
+ Evaluates to [| "bb"; "ccc" |]
+
+
+
+
+ Returns an array that contains all elements of the original array while the
+ given predicate returns True, and then returns no further elements.
+
+ A function that evaluates to false when no more items should be returned.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| "a"; "bb"; "ccc"; "d" |]
+
+ inputs |> Array.takeWhile (fun x -> x.Length < 3)
+
+ Evaluates to [| "a"; "bb" |]
+
+
+
+
+ Returns the first N elements of the array.
+ Throws InvalidOperationException
+ if the count exceeds the number of elements in the array. Array.truncate
+ returns as many items as the array contains instead of throwing an exception.
+
+ The number of items to take.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+ Thrown when count exceeds the number of elements
+ in the list.
+
+
+
+ let inputs = [| "a"; "b"; "c"; "d" |]
+
+ inputs |> Array.take 2
+
+ Evaluates to [| "a"; "b" |]
+
+
+
+
+ let inputs = [| "a"; "b"; "c"; "d" |]
+
+ inputs |> Array.take 6
+
+ Throws InvalidOperationException.
+
+
+
+
+ let inputs = [| "a"; "b"; "c"; "d" |]
+
+ inputs |> Array.take 0
+
+ Evaluates to [| |].
+
+
+
+ Returns the sum of the results generated by applying the function to each element of the array.
+
+ The function to transform the array elements into the type to be summed.
+ The input array.
+
+ The resulting sum.
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| "aa"; "bbb"; "cc" |]
+
+ input |> Array.sumBy (fun s -> s.Length)
+
+ Evaluates to 7.
+
+
+
+ Returns the sum of the elements in the array.
+
+ The input array.
+
+ The resulting sum.
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| 1; 5; 3; 2 |]
+
+ input |> Array.sum
+
+ Evaluates to 11.
+
+
+
+ Sorts the elements of an array, in descending order, using the given projection for the keys and returning a new array.
+ Elements are compared using .
+
+ This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
+ For a stable sort, consider using .
+
+ The function to transform array elements into the type that is compared.
+ The input array.
+
+ The sorted array.
+
+
+
+ let input = [| "a"; "bbb"; "cccc"; "dd" |]
+
+ input |> Array.sortByDescending (fun s -> s.Length)
+
+ Evaluates to [|"cccc"; "bbb"; "dd"; "a"|].
+
+
+
+ Sorts the elements of an array, in descending order, returning a new array. Elements are compared using .
+
+ This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
+ For a stable sort, consider using .
+
+ The input array.
+
+ The sorted array.
+
+
+
+ let input = [| 8; 4; 3; 1; 6; 1 |]
+
+ input |> Array.sortDescending
+
+ Evaluates to [| 8; 6; 4; 3; 1; 1 |].
+
+
+
+ Splits an array into two arrays, at the given index.
+
+ The index at which the array is split.
+ The input array.
+
+ The two split arrays.
+
+ Thrown when the input array is null.
+ Thrown when split index exceeds the number of elements
+ in the array.
+
+
+
+ let input = [| 8; 4; 3; 1; 6; 1 |]
+
+ let front, back = input |> Array.splitAt 3
+
+ Evaluates front to [|8; 4; 3|] and back to [|1; 6; 1|].
+
+
+
+ Sorts the elements of an array by mutating the array in-place, using the given comparison function.
+ Elements are compared using .
+
+ The input array.
+
+ Thrown when the input array is null.
+
+
+
+ let array = [| 8; 4; 3; 1; 6; 1 |]
+
+ Array.sortInPlace array
+
+ After evaluation array contains [| 1; 1; 3; 4; 6; 8 |].
+
+
+
+ Sorts the elements of an array by mutating the array in-place, using the given comparison function as the order.
+
+ The function to compare pairs of array elements.
+ The input array.
+
+ Thrown when the input array is null.
+
+ The following sorts entries using a comparison function that compares string lengths then index numbers:
+
+ let compareEntries (n1: int, s1: string) (n2: int, s2: string) =
+ let c = compare s1.Length s2.Length
+ if c <> 0 then c else
+ compare n1 n2
+
+ let array = [| (0,"aa"); (1,"bbb"); (2,"cc"); (3,"dd") |]
+
+ array |> Array.sortInPlaceWith compareEntries
+
+ After evaluation array contains [|(0, "aa"); (2, "cc"); (3, "dd"); (1, "bbb")|].
+
+
+
+ Sorts the elements of an array by mutating the array in-place, using the given projection for the keys.
+ Elements are compared using .
+
+ This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
+ For a stable sort, consider using .
+
+ The function to transform array elements into the type that is compared.
+ The input array.
+
+ Thrown when the input array is null.
+
+
+
+ let array = [| "a"; "bbb"; "cccc"; "dd" |]
+
+ array |> Array.sortInPlaceBy (fun s -> s.Length)
+
+ After evaluation array contains [|"a"; "dd"; "bbb"; "cccc"|].
+
+
+
+ Sorts the elements of an array, using the given comparison function as the order, returning a new array.
+
+ This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
+ For a stable sort, consider using .
+
+ The function to compare pairs of array elements.
+ The input array.
+
+ The sorted array.
+
+ Thrown when the input array is null.
+
+ Sort an array of pairs using a comparison function that compares string lengths then index numbers:
+
+ let compareEntries (n1: int, s1: string) (n2: int, s2: string) =
+ let c = compare s1.Length s2.Length
+ if c <> 0 then c else
+ compare n1 n2
+
+ let input = [| (0,"aa"); (1,"bbb"); (2,"cc"); (3,"dd") |]
+
+ input |> Array.sortWith compareEntries
+
+ Evaluates to [|(0, "aa"); (2, "cc"); (3, "dd"); (1, "bbb")|].
+
+
+
+ Sorts the elements of an array, using the given projection for the keys and returning a new array.
+ Elements are compared using .
+
+ This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
+ For a stable sort, consider using .
+
+ The function to transform array elements into the type that is compared.
+ The input array.
+
+ The sorted array.
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| "a"; "bbb"; "cccc"; "dd" |]
+
+ input |> Array.sortBy (fun s -> s.Length)
+
+ Evaluates to [|"a"; "dd"; "bbb"; "cccc"|].
+
+
+
+ Sorts the elements of an array, returning a new array. Elements are compared using .
+
+ This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
+ For a stable sort, consider using .
+
+ The input array.
+
+ The sorted array.
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| 8; 4; 3; 1; 6; 1 |]
+
+ Array.sort input
+
+ Evaluates to [| 1; 1; 3; 4; 6; 8 |].
+
+
+
+ Builds a new array that contains the given subrange specified by
+ starting index and length.
+
+ The input array.
+ The index of the first element of the sub array.
+ The length of the sub array.
+
+ The created sub array.
+
+ Thrown when the input array is null.
+ Thrown when either startIndex or count is negative,
+ or when there aren't enough elements in the input array.
+
+
+ Slicing syntax is generally preferred, e.g.
+
+ let input = [| 0; 1; 2; 3; 4; 5 |]
+
+ input.[2..4]
+
+
+
+
+
+ let input = [| 0; 1; 2; 3; 4; 5 |]
+
+ Array.sub input 2 3
+
+ Evaluates to [| 2; 3; 4 |].
+
+
+
+ Bypasses elements in an array while the given predicate returns True, and then returns
+ the remaining elements in a new array.
+
+ A function that evaluates an element of the array to a boolean value.
+ The input array.
+
+ The created sub array.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| "a"; "bbb"; "cc"; "d" |]
+
+ inputs |> Array.skipWhile (fun x -> x.Length < 3)
+
+ Evaluates to [|"bbb"; "cc"; "d"|]
+
+
+
+
+ Builds a new array that contains the elements of the given array, excluding the first N elements.
+
+ The number of elements to skip. If negative the full array will be returned as a copy.
+ The input array.
+
+ A copy of the input array, after removing the first N elements.
+
+ Thrown when the input array is null.
+ Thrown when count exceeds the number of
+ elements in the array.
+
+
+
+ let inputs = [| "a"; "b"; "c"; "d" |]
+
+ inputs |> Array.skip 2
+
+ Evaluates to [| "c"; "d" |]
+
+
+
+
+ let inputs = [| "a"; "b"; "c"; "d" |]
+
+ inputs |> Array.skip 5
+
+ Throws ArgumentException.
+
+
+
+
+ let inputs = [| "a"; "b"; "c"; "d" |]
+
+ inputs |> Array.skip -1
+
+ Evaluates to [| "a"; "b"; "c"; "d" |].
+
+
+
+ Sets an element of an array.
+
+ The input array.
+ The input index.
+ The input value.
+
+ Thrown when the input array is null.
+ Thrown when the index is negative or the input array does not contain enough elements.
+
+
+
+ let inputs = [| "a"; "b"; "c" |]
+
+ Array.set inputs 1 "B"
+
+ After evaluation inputs contains [| "a"; "B"; "c" |]
+
+
+
+
+ let inputs = [| "a"; "b"; "c" |]
+
+ Array.set inputs 4 "d"
+
+ Throws IndexOutOfRangeException
+
+
+
+ Returns an array that contains one item only.
+
+ The input item.
+
+ The result array of one item.
+
+
+
+ Array.singleton 7
+
+ Evaluates to [| 7 |].
+
+
+
+ Like foldBack, but return both the intermediary and final results.
+
+ The function to update the state given the input elements.
+ The input array.
+ The initial state.
+
+ The array of state values.
+
+ Thrown when the input array is null.
+
+ Apply a list charges from back to front, and collect the running balances as each is applied:
+
+ type Charge =
+ | In of int
+ | Out of int
+
+ let inputs = [| In 1; Out 2; In 3 |]
+
+ (inputs, 0) ||> Array.scanBack (fun charge acc ->
+ match charge with
+ | In i -> acc + i
+ | Out o -> acc - o)
+
+ Evaluates to [|2; 1; 3; 0|] by processing each input from back to front. Note 0 is the intial
+ state, 3 the next state, 1 the next state, and 2 the final state.
+
+
+
+ Like fold, but return the intermediary and final results.
+
+ The function to update the state given the input elements.
+ The initial state.
+ The input array.
+
+ The array of state values.
+
+ Thrown when the input array is null.
+
+ Apply a list charges and collect the running balances as each is applied:
+
+ type Charge =
+ | In of int
+ | Out of int
+
+ let inputs = [| In 1; Out 2; In 3 |]
+
+ (0, inputs) ||> Array.scan (fun acc charge ->
+ match charge with
+ | In i -> acc + i
+ | Out o -> acc - o)
+
+ Evaluates to [|0; 1; -1; 2|]. Note 0 is the intial
+ state, 1 the next state, -1 the next state, and 2 the final state.
+
+
+
+ Returns a new array with the elements in reverse order.
+
+ The input array.
+
+ The reversed array.
+
+ Thrown when the input array is null.
+
+
+
+ Array.rev [| 0; 1; 2 |]
+
+ Evaluates to [| 2; 1; 0 |].
+
+
+
+ Creates an array by replicating the given initial value.
+
+ The number of elements to replicate.
+ The value to replicate
+
+ The generated array.
+
+ Thrown when count is negative.
+
+
+
+ Array.replicate 3 "a"
+
+ Evaluates to [| "a"; "a"; "a" |].
+
+
+
+ Applies a function to each element of the array, starting from the end, threading an accumulator argument
+ through the computation. If the input function is f and the elements are i0...iN
+ then computes f i0 (...(f iN-1 iN)).
+
+ A function that takes in the next-to-last element of the list and the
+ current accumulated result to produce the next accumulated result.
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+
+ The final result of the reductions.
+
+
+
+ let inputs = [| 1; 3; 4; 2 |]
+
+ inputs |> Array.reduceBack (fun a b -> a + b * 10)
+
+ Evaluates to 2431, by computing 1 + (3 + (4 + 2 * 10) * 10) * 10
+
+
+
+ Applies a function to each element of the array, threading an accumulator argument
+ through the computation. If the input function is f and the elements are i0...iN
+ then computes f (... (f i0 i1)...) iN.
+ Raises ArgumentException if the array has size zero.
+
+ The function to reduce a pair of elements to a single element.
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+
+ The final result of the reductions.
+
+
+
+ let inputs = [| 1; 3; 4; 2 |]
+
+ inputs |> Array.reduce (fun a b -> a * 10 + b)
+
+ Evaluates to 1342, by computing ((1 * 10 + 3) * 10 + 4) * 10 + 2
+
+
+
+ Returns an array with all elements permuted according to the
+ specified permutation.
+
+ The function that maps input indices to output indices.
+ The input array.
+
+ The output array.
+
+ Thrown when the input array is null.
+ Thrown when indexMap does not produce a valid permutation.
+
+
+
+ let inputs = [| 1; 2; 3; 4 |]
+
+ inputs |> Array.permute (fun x -> (x + 1) % 4)
+
+ Evaluates to [|4; 1; 2; 3|].
+
+
+
+ Splits the collection into two collections, containing the
+ elements for which the given predicate returns "true" and "false"
+ respectively.
+
+ The function to test the input elements.
+ The input array.
+
+ A pair of arrays. The first containing the elements the predicate evaluated to true,
+ and the second containing those evaluated to false.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| 1; 2; 3; 4 |]
+
+ inputs |> Array.partition (fun x -> x % 2 = 0)
+
+ Evaluates to ([|2; 4|], [|1; 3|]).
+
+
+
+ Returns an array of each element in the input array and its predecessor, with the
+ exception of the first element which is only returned as the predecessor of the second element.
+
+ The input array.
+
+ The result array.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = [| 1; 2; 3; 4 |]
+
+ inputs |> Array.pairwise
+
+ Evaluates to [|(1, 2); (2, 3); (3, 4)|].
+
+
+
+ Builds a new array from the given enumerable object.
+
+ The input sequence.
+
+ The array of elements from the sequence.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = seq { 1; 2; 5 }
+
+ inputs |> Array.ofSeq
+
+ Evaluates to [| 1; 2; 5 |].
+
+
+
+ Builds an array from the given list.
+
+ The input list.
+
+ The array of elements from the list.
+
+
+
+ let inputs = [ 1; 2; 5 ]
+
+ inputs |> Array.ofList
+
+ Evaluates to [| 1; 2; 5 |].
+
+
+
+ Returns the lowest of all elements of the array, compared via Operators.min on the function result.
+
+ Throws ArgumentException for empty arrays.
+
+ The function to transform the elements into a type supporting comparison.
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+
+ The minimum element.
+
+
+
+ let inputs = [| "aaa"; "b"; "cccc" |]
+
+ inputs |> Array.minBy (fun s -> s.Length)
+
+ Evaluates to "b"
+
+
+
+
+ let inputs: string array= [| |]
+
+ inputs |> Array.minBy (fun s -> s.Length)
+
+ Throws System.ArgumentException.
+
+
+
+ Returns the lowest of all elements of the array, compared via Operators.min.
+
+ Throws ArgumentException for empty arrays
+
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+
+ The minimum element.
+
+
+
+ let inputs = [| 10; 12; 11 |]
+
+ inputs |> Array.min
+
+ Evaluates to 10
+
+
+
+
+ let inputs: int array= [| |]
+
+ inputs |> Array.min
+
+ Throws System.ArgumentException.
+
+
+
+ Returns the greatest of all elements of the array, compared via Operators.max on the function result.
+
+ Throws ArgumentException for empty arrays.
+
+ The function to transform the elements into a type supporting comparison.
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+
+ The maximum element.
+
+
+
+ let inputs = [| "aaa"; "b"; "cccc" |]
+
+ inputs |> Array.maxBy (fun s -> s.Length)
+
+ Evaluates to "cccc"
+
+
+
+
+ let inputs: string array= [| |]
+
+ inputs |> Array.maxBy (fun s -> s.Length)
+
+ Throws System.ArgumentException.
+
+
+
+ Returns the greatest of all elements of the array, compared via Operators.max on the function result.
+
+ Throws ArgumentException for empty arrays.
+
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+
+ The maximum element.
+
+
+
+ let inputs = [| 10; 12; 11 |]
+
+ inputs |> Array.max
+
+ Evaluates to 12
+
+
+
+
+ let inputs: int array= [| |]
+
+ inputs |> Array.max
+
+ Throws System.ArgumentException.
+
+
+
+ Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the array. The integer index passed to the
+ function indicates the index of element being transformed, starting at zero.
+
+ The function to transform elements and their indices.
+ The input array.
+
+ The array of transformed elements.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| 10; 10; 10 |]
+
+ inputs |> Array.mapi (fun i x -> i + x)
+
+ Evaluates to [| 10; 11; 12 |]
+
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to the corresponding elements of the two collections pairwise, also passing the index of
+ the elements. The two input arrays must have the same lengths, otherwise an ArgumentException is
+ raised.
+
+ The function to transform pairs of input elements and their indices.
+ The first input array.
+ The second input array.
+
+ Thrown when either of the input arrays is null.
+ Thrown when the input arrays differ in length.
+
+ The array of transformed elements.
+
+
+
+ let inputs1 = [| "a"; "bad"; "good" |]
+ let inputs2 = [| 0; 2; 1 |]
+
+ (inputs1, inputs2) ||> Array.mapi2 (fun i x y -> i, x[y])
+
+ Evaluates to [|(0, 'a'); (1, 'd'); (2, 'o')|]
+
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to the corresponding triples from the three collections. The three input
+ arrays must have the same length, otherwise an ArgumentException is
+ raised.
+
+ The function to transform the pairs of the input elements.
+ The first input array.
+ The second input array.
+ The third input array.
+
+ Thrown when the input arrays differ in length.
+ Thrown when any of the input arrays is null.
+
+ The array of transformed elements.
+
+
+
+ let inputs1 = [| "a"; "t"; "ti" |]
+ let inputs2 = [| "l"; "h"; "m" |]
+ let inputs3 = [| "l"; "e"; "e" |]
+
+ (inputs1, inputs2, inputs3) |||> Array.map3 (fun x y z -> x + y + z)
+
+ Evaluates to [| "all"; "the"; "time" |]
+
+
+
+
+ Combines map and foldBack. Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the input array. The function is also used to accumulate a final value.
+
+ The function to transform elements from the input array and accumulate the final value.
+ The input array.
+ The initial state.
+
+ Thrown when the input array is null.
+
+ The array of transformed elements, and the final accumulated value.
+
+ Accumulate the charges from back to front, and double them as well
+
+ type Charge =
+ | In of int
+ | Out of int
+
+ let inputs = [| In 1; Out 2; In 3 |]
+
+ let newCharges, balance =
+ (inputs, 0) ||> Array.mapFoldBack (fun charge acc ->
+ match charge with
+ | In i -> In (i*2), acc + i
+ | Out o -> Out (o*2), acc - o)
+
+ Evaluates newCharges to [|In 2; Out 4; In 6|] and balance to 2.
+
+
+
+ Combines map and fold. Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the input array. The function is also used to accumulate a final value.
+
+ The function to transform elements from the input array and accumulate the final value.
+ The initial state.
+ The input array.
+
+ Thrown when the input array is null.
+
+ The array of transformed elements, and the final accumulated value.
+
+
+ Accumulate the charges, and double them as well
+ type Charge =
+ | In of int
+ | Out of int
+
+ let inputs = [| In 1; Out 2; In 3 |]
+
+ let newCharges, balance =
+ (0, inputs) ||> Array.mapFold (fun acc charge ->
+ match charge with
+ | In i -> In (i*2), acc + i
+ | Out o -> Out (o*2), acc - o)
+
+ Evaluates newCharges to [|In 2; Out 4; In 6|] and balance to 2.
+
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to the corresponding elements of the two collections pairwise. The two input
+ arrays must have the same lengths, otherwise an ArgumentException is
+ raised.
+
+ The function to transform the pairs of the input elements.
+ The first input array.
+ The second input array.
+
+ Thrown when the input arrays differ in length.
+ Thrown when either of the input arrays is null.
+
+ The array of transformed elements.
+
+
+
+ let inputs1 = [| "a"; "bad"; "good" |]
+ let inputs2 = [| 0; 2; 1 |]
+
+ (inputs1, inputs2) ||> Array.map2 (fun x y -> x[y])
+
+ Evaluates to [| 'a'; 'd'; 'o' |]
+
+
+
+ Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the array.
+
+ The function to transform elements of the array.
+ The input array.
+
+ The array of transformed elements.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| "a"; "bbb"; "cc" |]
+
+ inputs |> Array.map (fun x -> x.Length)
+
+ Evaluates to [| 1; 3; 2 |]
+
+
+
+ Returns the last element of the array.
+ Return None if no such element exists.
+
+ The input array.
+
+ The last element of the array or None.
+
+ Thrown when the input sequence is null.
+
+
+
+ [| "pear"; "banana" |] |> Array.tryLast
+
+ Evaluates to Some "banana"
+
+
+
+
+ [| |] |> Array.tryLast
+
+ Evaluates to None
+
+
+
+ Returns the length of an array. You can also use property arr.Length.
+
+ The input array.
+
+ The length of the array.
+
+ The notation array.Length is preferred.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| "a"; "b"; "c" |]
+
+ inputs |> Array.length
+
+ Evaluates to 3
+
+
+
+ Gets an element from an array.
+
+ The input index.
+ The input array.
+
+ The value of the array at the given index.
+
+ Normally the syntax array[index] is preferred.
+
+ Thrown when the input array is null.
+ Thrown when the index is negative or the input array does not contain enough elements.
+
+
+
+ let inputs = [| "a"; "b"; "c" |]
+
+ inputs |> Array.item 1
+
+ Evaluates to "b"
+
+
+
+
+ let inputs = [| "a"; "b"; "c" |]
+
+ inputs |> Array.item 4
+
+ Throws ArgumentException
+
+
+
+ Returns the last element of the array.
+
+ The input array.
+
+ The last element of the array.
+
+ Thrown when the input array is null.
+ Thrown when the input does not have any elements.
+
+
+
+ [| "pear"; "banana" |] |> Array.last
+
+ Evaluates to banana
+
+
+
+
+ [| |] |> Array.last
+
+ Throws ArgumentException
+
+
+
+ Applies the given function to pair of elements drawn from matching indices in two arrays,
+ also passing the index of the elements. The two arrays must have the same lengths,
+ otherwise an ArgumentException is raised.
+
+ The function to apply to each index and pair of elements.
+ The first input array.
+ The second input array.
+
+ Thrown when either of the input arrays is null.
+ Thrown when the input arrays differ in length.
+
+
+
+ let inputs1 = [| "a"; "b"; "c" |]
+ let inputs2 = [| "banana"; "pear"; "apple" |]
+
+ (inputs1, inputs2) ||> Array.iteri2 (fun i s1 s2 -> printfn "Index {i}: {s1} - {s2}")
+
+ Evaluates to unit and prints
+
+ Index 0: a - banana
+ Index 1: b - pear
+ Index 2: c - apple
+
+ in the console.
+
+
+
+ Applies the given function to each element of the array. The integer passed to the
+ function indicates the index of element.
+
+ The function to apply to each index and element.
+ The input array.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| "a"; "b"; "c" |]
+
+ inputs |> Array.iteri (fun i v -> printfn "{i}: {v}")
+
+ Evaluates to unit and prints
+
+ 0: a
+ 1: b
+ 2: c
+
+ in the console.
+
+
+
+ Applies the given function to pair of elements drawn from matching indices in two arrays. The
+ two arrays must have the same lengths, otherwise an ArgumentException is
+ raised.
+
+ The function to apply.
+ The first input array.
+ The second input array.
+
+ Thrown when either of the input arrays is null.
+ Thrown when the input arrays differ in length.
+
+
+
+ let inputs1 = [| "a"; "b"; "c" |]
+ let inputs2 = [| 1; 2; 3 |]
+
+ (inputs1, inputs2) ||> Array.iter2 (printfn "%s: %i")
+
+ Evaluates to unit and prints
+
+ a: 1
+ b: 2
+ c: 3
+
+ in the console.
+
+
+
+ Applies the given function to each element of the array.
+
+ The function to apply.
+ The input array.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| "a"; "b"; "c" |]
+
+ inputs |> Array.iter (printfn "%s")
+
+ Evaluates to unit and prints
+
+ a
+ b
+ c
+
+ in the console.
+
+
+
+ Returns true if the given array is empty, otherwise false.
+
+ The input array.
+
+ True if the array is empty.
+
+ Thrown when the input array is null.
+
+
+
+ [| |] |> Array.isEmpty
+
+ Evaluates to true
+
+
+
+
+ [| "pear"; "banana" |] |> Array.isEmpty
+
+ Evaluates to false
+
+
+
+ Creates an array where the entries are initially the default value Unchecked.defaultof<'T>.
+
+ The length of the array to create.
+
+ The created array.
+
+ Thrown when count is negative.
+
+
+
+ let arr : int array = Array.zeroCreate 4
+
+ Evaluates to [| 0; 0; 0; 0 |]
+
+
+
+ Creates an array given the dimension and a generator function to compute the elements.
+
+ The number of elements to initialize.
+ The function to generate the initial values for each index.
+
+ The created array.
+
+ Thrown when count is negative.
+
+
+
+ Array.init 4 (fun v -> v + 5)
+
+ Evaluates to [| 5; 6; 7; 8 |]
+
+
+
+
+ Array.init -5 (fun v -> v + 5)
+
+ Throws ArgumentException
+
+
+
+ Builds a new array whose elements are the corresponding elements of the input array
+ paired with the integer index (from 0) of each element.
+
+ The input array.
+
+ The array of indexed elements.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| "a"; "b"; "c" |]
+
+ inputs |> Array.indexed
+
+ Evaluates to [| (0, "a"); (1, "b"); (2, "c") |]
+
+
+
+ Applies a key-generating function to each element of an array and yields an array of
+ unique keys. Each unique key contains an array of all elements that match
+ to this key.
+
+ A function that transforms an element of the array into a comparable key.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| 1; 2; 3; 4; 5 |]
+
+ inputs |> Array.groupBy (fun n -> n % 2)
+
+ Evaluates to [| (1, [| 1; 3; 5 |]); (0, [| 2; 4 |]) |]
+
+
+
+ Returns the first element of the array.
+
+ The input array.
+
+ The first element of the array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+
+
+
+ let inputs = [| "banana"; "pear" |]
+
+ inputs |> Array.head
+
+ Evaluates to banana
+
+
+
+
+ [| |] |> Array.head
+
+ Throws ArgumentException
+
+
+
+ Gets an element from an array.
+
+ The input array.
+ The input index.
+
+ Normally the syntax array[index] is preferred.
+
+ The value of the array at the given index.
+
+ Thrown when the input array is null.
+ Thrown when the index is negative or the input array does not contain enough elements.
+
+
+
+ let inputs = [| "a"; "b"; "c" |]
+
+ Array.get inputs 1
+
+ Evaluates to "b"
+
+
+
+
+ let inputs = [| "a"; "b"; "c" |]
+
+ Array.get inputs 4
+
+ Throws IndexOutOfRangeException
+
+
+
+ Apply a function to pairs of elements drawn from the two collections, right-to-left,
+ threading an accumulator argument through the computation. The two input
+ arrays must have the same lengths, otherwise an ArgumentException is
+ raised.
+
+ The function to update the state given the input elements.
+ The first input array.
+ The second input array.
+ The initial state.
+
+ Thrown when either of the input arrays is null.
+ Thrown when the input arrays differ in length.
+
+ The final state.
+
+
+ Count the positives, negatives and accumulate some text from back to front:
+ type Count =
+ { Positive: int
+ Negative: int
+ Text: string }
+
+ let inputs1 = [| -1; -2; -3 |]
+ let inputs2 = [| 3; 2; 1 |]
+ let initialState = {Positive = 0; Negative = 0; Text = ""}
+
+ (inputs1, inputs2, initialState) |||> Array.foldBack2 (fun a b acc ->
+ let text = acc.Text + "(" + string a + "," + string b + ") "
+ if a + b >= 0 then
+ { acc with
+ Positive = acc.Positive + 1
+ Text = text }
+ else
+ { acc with
+ Negative = acc.Negative + 1
+ Text = text }
+ )
+
+ Evaluates to
+
+ { Positive = 2
+ Negative = 1
+ Text = "(-3,1) (-2,2) (-1,3) " }
+
+
+
+
+ Applies a function to pairs of elements drawn from the two collections,
+ left-to-right, threading an accumulator argument
+ through the computation. The two input
+ arrays must have the same lengths, otherwise an ArgumentException is
+ raised.
+
+ The function to update the state given the input elements.
+ The initial state.
+ The first input array.
+ The second input array.
+
+ Thrown when either of the input arrays is null.
+ Thrown when the input arrays differ in length.
+
+ The final state.
+
+
+
+ type CoinToss = Head | Tails
+
+ let data1 = [| Tails; Head; Tails |]
+ let data2 = [| Tails; Head; Head |]
+
+ (0, data1, data2) |||> Array.fold2 (fun acc a b ->
+ match (a, b) with
+ | Head, Head -> acc + 1
+ | Tails, Tails -> acc + 1
+ | _ -> acc - 1)
+
+ Evaluates to 1
+
+
+
+ Applies a function to each element of the array, starting from the end, threading an accumulator argument
+ through the computation. If the input function is f and the elements are i0...iN then computes
+ f i0 (...(f iN s))
+
+ The function to update the state given the input elements.
+ The input array.
+ The initial state.
+
+ The state object after the folding function is applied to each element of the array.
+
+ Thrown when the input array is null.
+
+
+
+ type Count =
+ { Positive: int
+ Negative: int
+ Text: string }
+
+ let sequence = [| 1; 0; -1; -2; 3 |]
+ let initialState = {Positive = 0; Negative = 0; Text = "" }
+
+ (sequence, initialState) ||> Array.foldBack (fun a acc ->
+ let text = acc.Text + " " + string a
+ if a >= 0 then
+ { acc with
+ Positive = acc.Positive + 1
+ Text = text }
+ else
+ { acc with
+ Negative = acc.Negative + 1
+ Text = text })
+
+ Evaluates to
+
+ { Positive = 2
+ Negative = 3
+ Text = " 3 -2 -1 0 1" }
+
+
+
+
+ Applies a function to each element of the collection, threading an accumulator argument
+ through the computation. If the input function is f and the elements are i0...iN then computes
+ f (... (f s i0)...) iN
+
+ The function to update the state given the input elements.
+ The initial state.
+ The input array.
+
+ The final state.
+
+ Thrown when the input array is null.
+
+
+
+ type Charge =
+ | In of int
+ | Out of int
+
+ let inputs = [| In 1; Out 2; In 3 |]
+
+ (0, inputs) ||> Array.fold (fun acc charge ->
+ match charge with
+ | In i -> acc + i
+ | Out o -> acc - o)
+
+ Evaluates to 2
+
+
+
+ Tests if all corresponding elements of the array satisfy the given predicate pairwise.
+
+ The predicate is applied to matching elements in the two collections up to the lesser of the
+ two lengths of the collections. If any application returns false then the overall result is
+ false and no further elements are tested. Otherwise, if one collection is longer
+ than the other then the ArgumentException exception is raised.
+ Otherwise, true is returned.
+
+ The function to test the input elements.
+ The first input array.
+ The second input array.
+
+ Thrown when either of the input arrays is null.
+ Thrown when the input arrays differ in length.
+
+ True if all of the array elements satisfy the predicate.
+
+
+
+ let inputs1 = [| 1; 2; 3 |]
+ let inputs2 = [| 1; 2; 3 |]
+
+ (inputs1, inputs2) ||> Array.forall2 (=)
+
+ Evaluates to true.
+
+
+
+
+ let items1 = [| 2017; 1; 1 |]
+ let items2 = [| 2019; 19; 8 |]
+
+ (items1, items2) ||> Array.forall2 (=)
+
+ Evaluates to false.
+
+
+
+
+ let items1 = [| 1; 2; 3 |]
+ let items2 = [| 1; 2 |]
+
+ (items1, items2) ||> Array.forall2 (=)
+
+ Throws ArgumentException.
+
+
+
+ Tests if all elements of the array satisfy the given predicate.
+
+ The predicate is applied to the elements of the input collection. If any application
+ returns false then the overall result is false and no further elements are tested.
+ Otherwise, true is returned.
+
+ The function to test the input elements.
+ The input array.
+
+ True if all of the array elements satisfy the predicate.
+
+ Thrown when the input array is null.
+
+
+
+ let isEven a = a % 2 = 0
+
+ [2; 42] |> Array.forall isEven // evaluates to true
+
+ [1; 2] |> Array.forall isEven // evaluates to false
+
+
+
+
+ Returns the index of the last element in the array
+ that satisfies the given predicate. Raise if
+ none of the elements satisfy the predicate.
+
+ The function to test the input elements.
+ The input array.
+
+ Thrown if predicate
+ never returns true.
+ Thrown when the input array is null.
+
+ The index of the last element in the array that satisfies the given predicate.
+
+
+
+ let inputs = [| 1; 2; 3; 4; 5 |]
+
+ inputs |> Array.findIndex (fun elm -> elm % 2 = 0)
+
+ Evaluates to 3
+
+
+
+
+ let inputs = [| 1; 2; 3; 4; 5 |]
+
+ inputs |> Array.findIndex (fun elm -> elm % 6 = 0)
+
+ Throws KeyNotFoundException
+
+
+
+ Returns the index of the first element in the array
+ that satisfies the given predicate. Raise if
+ none of the elements satisfy the predicate.
+
+ The function to test the input elements.
+ The input array.
+
+ Thrown if predicate
+ never returns true.
+ Thrown when the input array is null.
+
+ The index of the first element in the array that satisfies the given predicate.
+
+
+
+ let inputs = [| 1; 2; 3; 4; 5 |]
+
+ inputs |> Array.findIndex (fun elm -> elm % 2 = 0)
+
+ Evaluates to 1
+
+
+
+
+ let inputs = [| 1; 2; 3; 4; 5 |]
+ inputs |> Array.findIndex (fun elm -> elm % 6 = 0)
+
+ Throws KeyNotFoundException
+
+
+
+ Returns the last element for which the given function returns 'true'.
+ Raise if no such element exists.
+
+ The function to test the input elements.
+ The input array.
+
+ Thrown if predicate
+ never returns true.
+ Thrown when the input array is null.
+
+ The last element for which predicate returns true.
+
+
+
+ let inputs = [| 2; 3; 4 |]
+
+ inputs |> Array.findBack (fun elm -> elm % 2 = 0)
+
+ Evaluates to 4
+
+
+
+
+ let inputs = [| 2; 3; 4 |]
+
+ inputs |> Array.findBack (fun elm -> elm % 6 = 0)
+
+ Throws KeyNotFoundException
+
+
+
+ Returns the first element for which the given function returns 'true'.
+ Raise if no such element exists.
+
+ The function to test the input elements.
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown if predicate
+ never returns true.
+
+ The first element for which predicate returns true.
+
+
+
+ let inputs = [| 1; 2; 3 |]
+
+ inputs |> Array.find (fun elm -> elm % 2 = 0)
+
+ Evaluates to 2
+
+
+
+
+ let inputs = [| 1; 2; 3 |]
+
+ inputs |> Array.find (fun elm -> elm % 6 = 0)
+
+ Throws KeyNotFoundException
+
+
+
+ Returns a new collection containing only the elements of the collection
+ for which the given predicate returns "true".
+
+ The function to test the input elements.
+ The input array.
+
+ An array containing the elements for which the given predicate returns true.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| 1; 2; 3; 4 |]
+
+ inputs |> Array.filter (fun elm -> elm % 2 = 0)
+
+ Evaluates to [| 2; 4 |]
+
+
+
+ Tests if any pair of corresponding elements of the arrays satisfies the given predicate.
+
+ The predicate is applied to matching elements in the two collections up to the lesser of the
+ two lengths of the collections. If any application returns true then the overall result is
+ true and no further elements are tested. Otherwise, if one collections is longer
+ than the other then the ArgumentException exception is raised.
+ Otherwise, false is returned.
+
+ The function to test the input elements.
+ The first input array.
+ The second input array.
+
+ True if any result from predicate is true.
+
+ Thrown when either of the input arrays is null.
+ Thrown when the input arrays differ in length.
+
+
+
+ let inputs1 = [| 1; 2 |]
+ let inputs2 = [| 1; 2; 0 |]
+
+ (inputs1, inputs2) ||> Array.exists2 (fun a b -> a > b)
+
+ Evaluates to false
+
+
+
+
+ let inputs1 = [| 1; 4 |]
+ let inputs2 = [| 1; 3; 5 |]
+
+ (inputs1, inputs2) ||> Array.exists2 (fun a b -> a > b)
+
+ Evaluates to true
+
+
+
+ Tests if any element of the array satisfies the given predicate.
+
+ The predicate is applied to the elements of the input array. If any application
+ returns true then the overall result is true and no further elements are tested.
+ Otherwise, false is returned.
+
+ The function to test the input elements.
+ The input array.
+
+ True if any result from predicate is true.
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| 1; 2; 3; 4; 5 |]
+
+ input |> Array.exists (fun elm -> elm % 4 = 0)
+
+ Evaluates to true
+
+
+
+
+ let input = [| 1; 2; 3; 4; 5 |]
+
+ input |> Array.exists (fun elm -> elm % 6 = 0)
+
+ Evaluates to false
+
+
+
+ Returns a new list with the distinct elements of the input array which do not appear in the itemsToExclude sequence,
+ using generic hash and equality comparisons to compare values.
+
+ A sequence whose elements that also occur in the input array will cause those elements to be
+ removed from the result.
+ An array whose elements that are not also in itemsToExclude will be returned.
+
+ An array that contains the distinct elements of array that do not appear in itemsToExclude.
+
+ Thrown when either itemsToExclude or array is null.
+
+
+
+ let original = [| 1; 2; 3; 4; 5 |]
+ let itemsToExclude = [| 1; 3; 5 |]
+
+ original |> Array.except itemsToExclude
+
+ Evaluates to [| 2; 4 |]
+
+
+
+ Returns the only element of the array or None if array is empty or contains more than one element.
+
+ The input array.
+
+ The only element of the array or None.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| "banana" |]
+
+ inputs |> Array.tryExactlyOne
+
+ Evaluates to Some banana
+
+
+
+
+ let inputs = [| "pear"; "banana" |]
+
+ inputs |> Array.tryExactlyOne
+
+ Evaluates to None
+
+
+
+
+ let inputs: int array = [| |]
+
+ inputs |> Array.tryExactlyOne
+
+ Evaluates to None
+
+
+
+ Returns the only element of the array.
+
+ The input array.
+
+ The only element of the array.
+
+ Thrown when the input array is null.
+ Thrown when the input does not have precisely one element.
+
+
+
+ let inputs = [| "banana" |]
+
+ inputs |> Array.exactlyOne
+
+ Evaluates to banana
+
+
+
+
+ let inputs = [| "pear"; "banana" |]
+
+ inputs |> Array.exactlyOne
+
+ Throws ArgumentException
+
+
+
+
+ let inputs: int array = [| |]
+
+ inputs |> Array.exactlyOne
+
+ Throws ArgumentException
+
+
+
+ Returns an empty array of the given type.
+ The empty array.
+
+
+
+ Array.empty // Evaluates to [| |]
+
+
+
+
+ Splits the input array into at most count chunks.
+
+ The maximum number of chunks.
+ The input array.
+
+ The array split into chunks.
+
+ Thrown when the input array is null.
+ Thrown when count is not positive.
+
+
+
+ let inputs = [| 1; 2; 3; 4; 5 |]
+
+ inputs |> Array.splitInto 3
+
+ Evaluates to seq [| [|1; 2|]; [|3; 4|]; [|5|] |]
+
+
+
+
+ let inputs = [| 1; 2; 3; 4; 5 |]
+
+ inputs |> Array.splitInto -1
+
+ Throws ArgumentException
+
+
+
+ Returns an array that contains no duplicate entries according to the
+ generic hash and equality comparisons on the keys returned by the given key-generating function.
+ If an element occurs multiple times in the array then the later occurrences are discarded.
+
+ A function transforming the array items into comparable keys.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| {Bar = 1 };{Bar = 1}; {Bar = 2}; {Bar = 3} |]
+
+ inputs |> Array.distinctBy (fun foo -> foo.Bar)
+
+ Evaluates to [| { Bar = 1 }; { Bar = 2 }; { Bar = 3 } |]
+
+
+
+ Returns an array that contains no duplicate entries according to generic hash and
+ equality comparisons on the entries.
+ If an element occurs multiple times in the array then the later occurrences are discarded.
+
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| 1; 1; 2; 3 |]
+
+ input |> Array.distinct
+
+ Evaluates to [| 1; 2; 3 |]
+
+
+
+ Divides the input array into chunks of size at most chunkSize.
+
+ The maximum size of each chunk.
+ The input array.
+
+ The array divided into chunks.
+
+ Thrown when the input array is null.
+ Thrown when chunkSize is not positive.
+
+
+
+ let input = [| 1; 2; 3 |]
+
+ input |> Array.chunkBySize 2
+
+ Evaluates to [| [|1; 2|]; [|3|] |]
+
+
+
+
+ let input = [| 1; 2; 3 |]
+
+ input |> Array.chunkBySize -2
+
+ Throws ArgumentException
+
+
+
+ Applies the given function to each element of the array. Returns
+ the array comprised of the results x for each element where
+ the function returns Some(x)
+
+ The function to generate options from the elements.
+ The input array.
+
+ The array of results.
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| Some 1; None; Some 2 |]
+
+ input |> Array.choose id
+
+ Evaluates to [| 1; 2 |]
+
+
+
+
+ let input = [| 1; 2; 3 |]
+
+ input |> Array.choose (fun n -> if n % 2 = 0 then Some n else None)
+
+ Evaluates to [| 2 |]
+
+
+
+ Applies the given function to successive elements, returning the first
+ result where the function returns Some(x) for some x. If the function
+ never returns Some(x) then is raised.
+
+ The function to generate options from the elements.
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown if every result from
+ chooser is None.
+
+ The first result.
+
+
+
+ let input = [| 1; 2; 3 |]
+
+ input |> Array.pick (fun n -> if n % 2 = 0 then Some (string n) else None)
+
+ Evaluates to "2".
+
+
+
+
+ let input = [| 1; 2; 3 |]
+
+ input |> Array.pick (fun n -> if n > 3 = 0 then Some (string n) else None)
+
+ Throws KeyNotFoundException.
+
+
+
+
+ Fills a range of elements of the array with the given value.
+
+ The target array.
+ The index of the first element to set.
+ The number of elements to set.
+ The value to set.
+
+ Thrown when the input array is null.
+ Thrown when either targetIndex or count is negative.
+
+
+
+ let target = [| 0; 1; 2; 3; 4; 5 |]
+
+ Array.fill target 3 2 100
+
+ After evaluation target contains [| 0; 1; 2; 100; 100; 5 |].
+
+
+
+ Applies the given function to successive elements, returning the first
+ result where the function returns Some(x) for some x. If the function
+ never returns Some(x) then None is returned.
+
+ The function to transform the array elements into options.
+ The input array.
+
+ The first transformed element that is Some(x).
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| 1; 2; 3 |]
+
+ input |> Array.tryPick (fun n -> if n % 2 = 0 then Some (string n) else None)
+
+ Evaluates to Some "2".
+
+
+
+
+ let input = [| 1; 2; 3 |]
+
+ input |> Array.tryPick (fun n -> if n > 3 = 0 then Some (string n) else None)
+
+ Evaluates to None.
+
+
+
+
+ Returns the first element of the array, or
+ None if the array is empty.
+
+ The input array.
+
+ Thrown when the input array is null.
+
+ The first element of the array or None.
+
+
+
+ let inputs = [| "banana"; "pear" |]
+
+ inputs |> Array.tryHead
+
+ Evaluates to Some "banana"
+
+
+
+
+ let inputs : int array = [| |]
+
+ inputs |> Array.tryHead
+
+ Evaluates to None
+
+
+
+ Creates an array whose elements are all initially the given value.
+
+ The length of the array to create.
+ The value for the elements.
+
+ The created array.
+
+ Thrown when count is negative.
+
+
+
+ Array.create 4 "a"
+
+ Evaluates to a new array containing[| "a"; "a"; "a"; "a" |].
+
+
+
+
+ let cell = ref "a"
+ let array = Array.create 2 cell
+ cell.Value <- "b"
+
+
+ Before evaluation of the last line, array contains[| { contents = "a"}; { contents = "a"} |].
+ After evaluation of the last line array contains[| { contents = "b"}; { contents = "b"} |].
+ Note each entry in the array is the same mutable cell object.
+
+
+
+ Applies a key-generating function to each element of an array and returns an array yielding unique
+ keys and their number of occurrences in the original array.
+
+ A function transforming each item of the input array into a key to be
+ compared against the others.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+
+
+
+ type Foo = { Bar: string }
+
+ let inputs = [| {Bar = "a"}; {Bar = "b"}; {Bar = "a"} |]
+
+ inputs |> Array.countBy (fun foo -> foo.Bar)
+
+ Evaluates to [| ("a", 2); ("b", 1) |]
+
+
+
+ Builds a new array that contains the elements of the given array.
+
+ The input array.
+
+ A copy of the input array.
+
+ Thrown when the input array is null.
+
+
+
+ let source = [| 12; 13; 14 |]
+
+ Array.copy source
+
+ Evaluates to a new array containing[| 12; 13; 14 |].
+
+
+
+ Tests if the array contains the specified element.
+
+ The value to locate in the input array.
+ The input array.
+
+ True if the input array contains the specified element; false otherwise.
+
+ Thrown when the input array is null.
+
+
+
+ [| 1; 2 |] |> Array.contains 2 // evaluates to true
+ [| 1; 2 |] |> Array.contains 5 // evaluates to false
+
+
+
+
+ Builds a new array that contains the elements of each of the given sequence of arrays.
+
+ The input sequence of arrays.
+
+ The concatenation of the sequence of input arrays.
+
+ Thrown when the input sequence is null.
+
+
+
+ let inputs = [ [| 1; 2 |]; [| 3 |]; [| 4; 5 |] ]
+
+ inputs |> Array.concat
+
+ Evaluates to [| 1; 2; 3; 4; 5 |]
+
+
+
+ Compares two arrays using the given comparison function, element by element.
+
+ A function that takes an element from each array and returns an int.
+ If it evaluates to a non-zero value iteration is stopped and that value is returned.
+ The first input array.
+ The second input array.
+
+ Returns the first non-zero result from the comparison function. If the first array has
+ a larger element, the return value is always positive. If the second array has a larger
+ element, the return value is always negative. When the elements are equal in the two
+ arrays, 1 is returned if the first array is longer, 0 is returned if they are equal in
+ length, and -1 is returned when the second array is longer.
+
+ Thrown when either of the input arrays
+ is null.
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [| 1; 10 |]
+ let input2 = [| 1; 10 |]
+
+ (input1, input2) ||> Array.compareWith closerToNextDozen
+
+ Evaluates to 0
+
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [| 1; 5 |]
+ let input2 = [| 1; 8 |]
+
+ (input1, input2) ||> Array.compareWith closerToNextDozen
+
+ Evaluates to -1
+
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [| 1; 11 |]
+ let input2 = [| 1; 13 |]
+
+ (input1, input2) ||> Array.compareWith closerToNextDozen
+
+ Evaluates to 1
+
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [| 1; 2 |]
+ let input2 = [| 1 |]
+
+ (input1, input2) ||> Array.compareWith closerToNextDozen
+
+ Evaluates to 1
+
+
+
+
+ let closerToNextDozen a b =
+ (a % 12).CompareTo(b % 12)
+
+ let input1 = [| 1 |]
+ let input2 = [| 1; 2 |]
+
+ (input1, input2) ||> Array.compareWith closerToNextDozen
+
+ Evaluates to -1
+
+
+
+ For each element of the array, applies the given function. Concatenates all the results and return the combined array.
+
+ The function to create sub-arrays from the input array elements.
+ The input array.
+
+ The concatenation of the sub-arrays.
+
+ Thrown when the input array is null.
+
+
+
+ type Foo = { Bar: int array }
+
+ let input = [| {Bar = [| 1; 2 |]}; {Bar = [| 3; 4 |]} |]
+
+ input |> Array.collect (fun foo -> foo.Bar)
+
+ Evaluates to [| 1; 2; 3; 4 |]
+
+
+
+
+ let input = [[1; 2]; [3; 4]]
+
+ input |> Array.collect id
+
+ Evaluates to [| 1; 2; 3; 4 |]
+
+
+
+ Reads a range of elements from the first array and write them into the second.
+
+ The source array.
+ The starting index of the source array.
+ The target array.
+ The starting index of the target array.
+ The number of elements to copy.
+
+
+ Slicing syntax is generally preferred, e.g.
+
+ let source = [| 12; 13; 14 |]
+ let target = [| 0; 1; 2; 3; 4; 5 |]
+ target[3..4] <- source[1..2]
+
+
+
+ Thrown when either of the input arrays is null.
+ Thrown when any of sourceIndex, targetIndex or count are negative,
+ or when there aren't enough elements in source or target.
+
+
+
+ let source = [| 12; 13; 14 |]
+ let target = [| 0; 1; 2; 3; 4; 5 |]
+
+ Array.blit source 1 target 3 2
+
+ After evaluation target contains [| 0; 1; 2; 13; 14; 5 |].
+
+
+
+ Returns the average of the elements generated by applying the function to each element of the array.
+
+ The function to transform the array elements before averaging.
+ The input array.
+
+ Thrown when array is empty.
+
+ The computed average.
+
+ Thrown when the input array is null.
+
+
+
+ type Foo = { Bar: float }
+
+ let input = [| {Bar = 2.0}; {Bar = 4.0} |]
+
+ input |> Array.averageBy (fun foo -> foo.Bar)
+
+ Evaluates to 3.0
+
+
+
+
+ type Foo = { Bar: float }
+
+ let input : Foo array = [| |]
+
+ input |> Array.averageBy (fun foo -> foo.Bar)
+
+ Throws ArgumentException
+
+
+
+ Returns the average of the elements in the array.
+
+ The input array.
+
+ Thrown when array is empty.
+ Thrown when the input array is null.
+
+ The average of the elements in the array.
+
+
+
+ [| 1.0; 2.0; 6.0 |] |> Array.average
+
+ Evaluates to 3.0
+
+
+
+
+ [| |] |> Array.average
+
+ Throws ArgumentException
+
+
+
+ Builds a new array that contains the elements of the first array followed by the elements of the second array.
+
+ The first input array.
+ The second input array.
+
+ The resulting array.
+
+ Thrown when either of the input arrays is null.
+
+
+
+ Array.append [| 1; 2 |] [| 3; 4 |]
+
+ Evaluates to [| 1; 2; 3; 4 |].
+
+
+
+ Returns a new array that contains all pairings of elements from the first and second arrays.
+
+ The first input array.
+ The second input array.
+
+ Thrown when either of the input arrays is null.
+
+ The resulting array of pairs.
+
+
+
+ ([| 1; 2 |], [| 3; 4 |]) ||> Array.allPairs
+
+ Evaluates to
+
+ [| (1, 3); (1, 4); (2, 3); (2, 4) |]
+
+
+
+
+ Returns a new collection containing only the elements of the collection
+ for which the given predicate returns true.
+
+ The function to test the input elements.
+ The input array.
+
+ An array containing the elements for which the given predicate returns true.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| 1; 2; 3; 4 |]
+
+ inputs |> Array.Parallel.filter (fun elm -> elm % 2 = 0)
+
+ Evaluates to [| 2; 4 |]
+
+
+
+ Combines the two arrays into an array of pairs. The two arrays must have equal lengths, otherwise an ArgumentException is
+ raised.
+
+ The first input array.
+ The second input array.
+
+ Thrown when either of the input arrays is null.
+ Thrown when the input arrays differ in length.
+
+ The array of tupled elements.
+
+
+
+ let numbers = [|1; 2|]
+ let names = [|"one"; "two"|]
+
+ Array.Parallel.zip numbers names
+
+ Evaluates to [| (1, "one"); (2, "two") |].
+
+
+
+ Sorts the elements of an array in parallel, in descending order, using the given projection for the keys and returning a new array.
+ Elements are compared using .
+
+ This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
+ For a stable sort, consider using .
+
+ The function to transform array elements into the type that is compared.
+ The input array.
+
+ The sorted array.
+
+
+
+ let input = [| "a"; "bbb"; "cccc"; "dd" |]
+
+ input |> Array.Parallel.sortByDescending (fun s -> s.Length)
+
+ Evaluates to [|"cccc"; "bbb"; "dd"; "a"|].
+
+
+
+ Sorts the elements of an array in parallel, in descending order, returning a new array. Elements are compared using .
+
+ This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
+ For a stable sort, consider using .
+
+ The input array.
+
+ The sorted array.
+
+
+
+ let input = [| 8; 4; 3; 1; 6; 1 |]
+
+ input |> Array.Parallel.sortDescending
+
+ Evaluates to [| 8; 6; 4; 3; 1; 1 |].
+
+
+
+ Sorts the elements of an array by mutating the array in-place in parallel, using the given comparison function.
+ Elements are compared using .
+
+ The input array.
+
+ Thrown when the input array is null.
+
+
+
+ let array = [| 8; 4; 3; 1; 6; 1 |]
+
+ Array.sortInPlace array
+
+ After evaluation array contains [| 1; 1; 3; 4; 6; 8 |].
+
+
+
+ Sorts the elements of an array by mutating the array in-place in parallel, using the given comparison function as the order.
+
+ The function to compare pairs of array elements.
+ The input array.
+
+ Thrown when the input array is null.
+
+ The following sorts entries using a comparison function that compares string lengths then index numbers:
+
+ let compareEntries (n1: int, s1: string) (n2: int, s2: string) =
+ let c = compare s1.Length s2.Length
+ if c <> 0 then c else
+ compare n1 n2
+
+ let array = [| (0,"aa"); (1,"bbb"); (2,"cc"); (3,"dd") |]
+
+ array |> Array.Parallel.sortInPlaceWith compareEntries
+
+ After evaluation array contains [|(0, "aa"); (2, "cc"); (3, "dd"); (1, "bbb")|].
+
+
+
+ Sorts the elements of an array by mutating the array in-place in parallel, using the given projection for the keys.
+ Elements are compared using .
+
+ This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
+ For a stable sort, consider using .
+
+ The function to transform array elements into the type that is compared.
+ The input array.
+
+ Thrown when the input array is null.
+
+
+
+ let array = [| "a"; "bbb"; "cccc"; "dd" |]
+
+ array |> Array.Parallel.sortInPlaceBy (fun s -> s.Length)
+
+ After evaluation array contains [|"a"; "dd"; "bbb"; "cccc"|].
+
+
+
+ Sorts the elements of an array in parallel, using the given comparison function as the order, returning a new array.
+
+ This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
+ For a stable sort, consider using .
+
+ The function to compare pairs of array elements.
+ The input array.
+
+ The sorted array.
+
+ Thrown when the input array is null.
+
+ Sort an array of pairs using a comparison function that compares string lengths then index numbers:
+
+ let compareEntries (n1: int, s1: string) (n2: int, s2: string) =
+ let c = compare s1.Length s2.Length
+ if c <> 0 then c else
+ compare n1 n2
+
+ let input = [| (0,"aa"); (1,"bbb"); (2,"cc"); (3,"dd") |]
+
+ input |> Array.Parallel.sortWith compareEntries
+
+ Evaluates to [|(0, "aa"); (2, "cc"); (3, "dd"); (1, "bbb")|].
+
+
+
+ Sorts the elements of an array in parallel, using the given projection for the keys and returning a new array.
+ Elements are compared using .
+
+ This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
+ For a stable sort, consider using .
+
+ The function to transform array elements into the type that is compared.
+ The input array.
+
+ The sorted array.
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| "a"; "bbb"; "cccc"; "dd" |]
+
+ input |> Array.Parallel.sortBy (fun s -> s.Length)
+
+ Evaluates to [|"a"; "dd"; "bbb"; "cccc"|].
+
+
+
+ Sorts the elements of an array in parallel, returning a new array. Elements are compared using .
+
+ This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved.
+ For a stable sort, consider using .
+
+ The input array.
+
+ The sorted array.
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| 8; 4; 3; 1; 6; 1 |]
+
+ Array.Parallel.sort input
+
+ Evaluates to [| 1; 1 3; 4; 6; 8 |].
+
+
+
+ Split the collection into two collections, containing the
+ elements for which the given predicate returns "true" and "false"
+ respectively
+
+ Performs the operation in parallel using .
+ The order in which the given function is applied to indices is not specified.
+
+ The function to test the input elements.
+ The input array.
+
+ The two arrays of results.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| 1; 2; 3; 4 |]
+
+ inputs |> Array.Parallel.partition (fun x -> x % 2 = 0)
+
+ Evaluates to ([|2; 4|], [|1; 3|]).
+
+
+
+ Create an array given the dimension and a generator function to compute the elements.
+
+ Performs the operation in parallel using .
+ The order in which the given function is applied to indices is not specified.
+
+
+
+
+ The array of results.
+
+
+
+ Array.Parallel.init 4 (fun v -> v + 5)
+
+ Evaluates to [| 5; 6; 7; 8 |]
+
+
+
+ Apply the given function to each element of the array. The integer passed to the
+ function indicates the index of element.
+
+ Performs the operation in parallel using .
+ The order in which the given function is applied to elements of the input array is not specified.
+
+
+ The input array.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| "a"; "b"; "c" |]
+
+ inputs |> Array.Parallel.iteri (fun i v -> printfn "{i}: {v}")
+
+ Evaluates to unit and prints the following to the console in an unspecified order:
+
+ 0: a
+ 2: c
+ 1: b
+
+
+
+
+ Apply the given function to each element of the array.
+
+ Performs the operation in parallel using .
+ The order in which the given function is applied to elements of the input array is not specified.
+
+
+ The input array.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| "a"; "b"; "c" |]
+
+ inputs |> Array.Parallel.iter (printfn "%s")
+
+ Evaluates to unit and prints the following to the console in an unspecified order:
+
+ a
+ c
+ b
+
+
+
+
+ Applies a key-generating function to each element of an array in parallel and yields an array of
+ unique keys. Each unique key contains an array of all elements that match
+ to this key.
+
+ Performs the operation in parallel using .
+ The order in which the given function is applied to elements of the input array is not specified.
+ The order of the keys and values in the result is also not specified
+ A function that transforms an element of the array into a comparable key.
+ The input array.
+
+ The result array.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| 1; 2; 3; 4; 5 |]
+
+ inputs |> Array.Parallel.groupBy (fun n -> n % 2)
+
+ Evaluates to [| (1, [| 1; 3; 5 |]); (0, [| 2; 4 |]) |]
+
+
+
+ Build a new array whose elements are the results of applying the given function
+ to each of the elements of the array. The integer index passed to the
+ function indicates the index of element being transformed.
+
+ Performs the operation in parallel using .
+ The order in which the given function is applied to elements of the input array is not specified.
+
+
+ The input array.
+
+ The array of results.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| 10; 10; 10 |]
+
+ inputs |> Array.Parallel.mapi (fun i x -> i + x)
+
+ Evaluates to [| 10; 11; 12 |]
+
+
+
+ Build a new array whose elements are the results of applying the given function
+ to each of the elements of the array.
+
+ Performs the operation in parallel using .
+ The order in which the given function is applied to elements of the input array is not specified.
+
+
+ The input array.
+
+ The array of results.
+
+ Thrown when the input array is null.
+
+
+
+ let inputs = [| "a"; "bbb"; "cc" |]
+
+ inputs |> Array.Parallel.map (fun x -> x.Length)
+
+ Evaluates to [| 1; 3; 2 |]
+
+
+
+ For each element of the array, apply the given function. Concatenate all the results and return the combined array.
+
+ Performs the operation in parallel using .
+ The order in which the given function is applied to elements of the input array is not specified.
+
+
+ The input array.
+
+ 'U array
+
+ Thrown when the input array is null.
+
+
+
+ type Foo = { Bar: int array }
+
+ let input = [| {Bar = [| 1; 2 |]}; {Bar = [| 3; 4 |]} |]
+
+ input |> Array.Parallel.collect (fun foo -> foo.Bar)
+
+ Evaluates to [| 1; 2; 3; 4 |]
+
+
+
+
+ let input = [| [| 1; 2 |]; [| 3; 4 |] |]
+
+ input |> Array.Parallel.collect id
+
+ Evaluates to [| 1; 2; 3; 4 |]
+
+
+
+ Apply the given function to each element of the array. Return
+ the array comprised of the results x for each element where
+ the function returns Some(x).
+
+ Performs the operation in parallel using .
+ The order in which the given function is applied to elements of the input array is not specified.
+
+ The function to generate options from the elements.
+ The input array.
+
+ The array of results.
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| Some 1; None; Some 2 |]
+
+ input |> Array.Parallel.choose id
+
+ Evaluates to [| 1; 2 |]
+
+
+
+
+ let input = [| 1; 2; 3 |]
+
+ input |> Array.Parallel.choose (fun n -> if n % 2 = 0 then Some n else None)
+
+ Evaluates to [| 2 |]
+
+
+
+ Returns the average of the elements generated by applying the function to each element of the array.
+
+ The function to transform the array elements before averaging.
+ The input array.
+
+ Thrown when array is empty.
+
+ The computed average.
+
+ Thrown when the input array is null.
+
+
+
+ type Foo = { Bar: float }
+
+ let input = [| {Bar = 2.0}; {Bar = 4.0} |]
+
+ input |> Array.Parallel.averageBy (fun foo -> foo.Bar)
+
+ Evaluates to 3.0
+
+
+
+
+ type Foo = { Bar: float }
+
+ let input : Foo array = [| |]
+
+ input |> Array.Parallel.averageBy (fun foo -> foo.Bar)
+
+ Throws ArgumentException
+
+
+
+ Returns the average of the elements in the array.
+
+ The input array.
+
+ Thrown when array is empty.
+ Thrown when the input array is null.
+
+ The average of the elements in the array.
+
+
+
+ [| 1.0; 2.0; 6.0 |] |> Array.Parallel.average
+
+ Evaluates to 3.0
+
+
+
+
+ [| |] |> Array.Parallel.average
+
+ Throws ArgumentException
+
+
+
+ Returns the sum of the results generated by applying the function to each element of the array.
+
+ The function to transform the array elements into the type to be summed.
+ The input array.
+
+ The resulting sum.
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| "aa"; "bbb"; "cc" |]
+
+ input |> Array.Parallel.sumBy (fun s -> s.Length)
+
+ Evaluates to 7.
+
+
+
+ Returns the sum of the elements in the array.
+
+ The input array.
+
+ The resulting sum.
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| 1; 5; 3; 2 |]
+
+ input |> Array.Parallel.sum
+
+ Evaluates to 11.
+
+
+
+ Returns the lowest of all elements of the array, compared via Operators.min on the function result.
+
+ Throws ArgumentException for empty arrays.
+
+ The function to transform the elements into a type supporting comparison.
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+
+ The minimum element.
+
+
+
+ let inputs = [| "aaa"; "b"; "cccc" |]
+
+ inputs |> Array.Parallel.minBy (fun s -> s.Length)
+
+ Evaluates to "b"
+
+
+
+
+ let inputs: string array= [| |]
+
+ inputs |> Array.Parallel.minBy (fun s -> s.Length)
+
+ Throws System.ArgumentException.
+
+
+
+ Returns the smallest of all elements of the array, compared via Operators.min.
+
+ Throws ArgumentException for empty arrays
+
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+
+ The minimum element.
+
+
+
+ let inputs = [| 10; 12; 11 |]
+
+ inputs |> Array.Parallel.min
+
+ Evaluates to 10
+
+
+
+
+ let inputs: int array= [| |]
+
+ inputs |> Array.Parallel.min
+
+ Throws System.ArgumentException.
+
+
+
+ Returns the greatest of all elements of the array, compared via Operators.max on the function result.
+
+ Throws ArgumentException for empty arrays.
+
+ The function to transform the elements into a type supporting comparison.
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+
+ The maximum element.
+
+
+
+ let inputs = [| "aaa"; "b"; "cccc" |]
+
+ inputs |> Array.Parallel.maxBy (fun s -> s.Length)
+
+ Evaluates to "cccc"
+
+
+
+
+ let inputs: string array= [| |]
+
+ inputs |> Array.Parallel.maxBy (fun s -> s.Length)
+
+ Throws System.ArgumentException.
+
+
+
+ Returns the greatest of all elements of the array, compared via Operators.max.
+
+ Throws ArgumentException for empty arrays.
+
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+
+ The maximum element.
+
+
+
+ let inputs = [| 10; 12; 11 |]
+
+ inputs |> Array.Parallel.max
+
+ Evaluates to 12
+
+
+
+
+ let inputs: int array= [| |]
+
+ inputs |> Array.Parallel.max
+
+ Throws System.ArgumentException.
+
+
+
+ Applies a projection function to each element of the array in parallel, reducing elements in each thread with a dedicated 'reduction' function.
+ After processing entire input, results from all threads are reduced together.
+ Raises ArgumentException if the array is empty.
+ The order of processing is not guaranteed. For that reason, the 'reduction' function argument should be commutative.
+ (That is, changing the order of execution must not affect the result)
+
+ The function to project from elements of the input array
+ The function to reduce a pair of projected elements to a single element.
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+
+ The final result of the reductions.
+
+
+
+ let inputs = [| "1"; "3"; "4"; "2" |]
+
+ inputs |> Array.Parallel.reduceBy (fun x -> int x) (+)
+
+ Evaluates to 1 + 3 + 4 + 2. However, the system could have decided to compute (1+3) and (4+2) first, and then put them together.
+
+
+
+ Applies a function to each element of the array in parallel, threading an accumulator argument
+ through the computation for each thread involved in the computation. After processing entire input, results from all threads are reduced together.
+ Raises ArgumentException if the array is empty.
+ The order of processing is not guaranteed. For that reason, the 'reduce' function argument should be commutative.
+ (That is, changing the order of execution must not affect the result)
+ Also, compared to the non-parallel version of Array.reduce, the 'reduce' function may be invoked more times due to the resulting reduction from participating threads.
+
+ The function to reduce a pair of elements to a single element.
+ The input array.
+
+ Thrown when the input array is null.
+ Thrown when the input array is empty.
+
+ Result of the reductions.
+
+
+
+ let inputs = [| 1; 3; 4; 2 |]
+
+ inputs |> Array.Parallel.reduce (fun a b -> a + b)
+
+ Evaluates to 1 + 3 + 4 + 2. However, the system could have decided to compute (1+3) and (4+2) first, and then put them together.
+
+
+
+ Applies the given function to successive elements, returning the first
+ result where the function returns Some(x) for some x. If the function
+ never returns Some(x) then None is returned.
+
+ The function to transform the array elements into options.
+ The input array.
+
+ The first transformed element that is Some(x).
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| 1; 2; 3 |]
+
+ input |> Array.Parallel.tryPick (fun n -> if n % 2 = 0 then Some (string n) else None)
+
+ Evaluates to Some 2.
+
+
+
+
+ let input = [| 1; 2; 3 |]
+
+ input |> Array.Parallel.tryPick (fun n -> if n > 3 = 0 then Some (string n) else None)
+
+ Evaluates to None.
+
+
+
+
+ Returns the index of the first element in the array
+ that satisfies the given predicate.
+ Returns None if no such element exists.
+ The function to test the input elements.
+ The input array.
+
+ Thrown when the input array is null.
+
+ The index of the first element that satisfies the predicate, or None.
+
+ Try to find the index of the first even number:
+
+ let inputs = [| 1; 2; 3; 4; 5 |]
+
+ inputs |> Array.Parallel.tryFindIndex (fun elm -> elm % 2 = 0)
+
+ Evaluates to Some 1
+
+
+ Try to find the index of the first even number:
+
+ let inputs = [| 1; 3; 5; 7 |]
+
+ inputs |> Array.Parallel.tryFindIndex (fun elm -> elm % 2 = 0)
+
+ Evaluates to None
+
+
+
+ Returns the first element for which the given function returns True.
+ Returns None if no such element exists.
+
+ The function to test the input elements.
+ The input array.
+
+ The first element that satisfies the predicate, or None.
+
+ Thrown when the input array is null.
+
+ Try to find the first even number:
+
+ let inputs = [| 1; 2; 3 |]
+
+ inputs |> Array.Parallel.tryFind (fun elm -> elm % 2 = 0)
+
+ Evaluates to Some 2.
+
+
+ Try to find the first even number:
+
+ let inputs = [| 1; 5; 3 |]
+
+ inputs |> Array.Parallel.tryFind (fun elm -> elm % 2 = 0)
+
+ Evaluates to None
+
+
+
+ Tests if any element of the array satisfies the given predicate.
+
+ The predicate is applied to the elements of the input array in parallel. If any application
+ returns true then the overall result is true and testing of other elements in all threads is stopped at system's earliest convenience.
+ Otherwise, false is returned.
+
+ The function to test the input elements.
+ The input array.
+
+ True if any result from predicate is true.
+
+ Thrown when the input array is null.
+
+
+
+ let input = [| 1; 2; 3; 4; 5 |]
+
+ input |> Array.Parallel.exists (fun elm -> elm % 4 = 0)
+
+ Evaluates to true
+
+
+
+
+ let input = [| 1; 2; 3; 4; 5 |]
+
+ input |> Array.Parallel.exists (fun elm -> elm % 6 = 0)
+
+ Evaluates to false
+
+
+
+ Tests if all elements of the array satisfy the given predicate.
+
+ The predicate is applied to the elements of the input collection in parallel. If any application
+ returns false then the overall result is false and testing of other elements in all threads is stopped at system's earliest convenience.
+ Otherwise, true is returned.
+
+ The function to test the input elements.
+ The input array.
+
+ True if all of the array elements satisfy the predicate.
+
+ Thrown when the input array is null.
+
+
+
+ let isEven a = a % 2 = 0
+
+ [2; 42] |> Array.Parallel.forall isEven // evaluates to true
+
+ [1; 2] |> Array.Parallel.forall isEven // evaluates to false
+
+
+
+
+ Provides parallel operations on arrays
+
+
+ Contains operations for working with arrays.
+
+
+ See also F# Language Guide - Arrays.
+
+
+
+ Sets the value of an element in an array. You can also
+ use the syntax 'array.[index1,index2,index3,index4] <- value'.
+
+ The input array.
+ The index along the first dimension.
+ The index along the second dimension.
+ The index along the third dimension.
+ The index along the fourth dimension.
+ The value to set.
+
+
+ Indexer syntax is generally preferred, e.g.
+
+ let array: float[,,,] = Array4D.zeroCreate 2 3 4 5
+
+ array[0,2,1,3] <- 5.0
+
+
+
+
+
+ let array = Array4D.zeroCreate 2 3 4 5
+
+ Array4D.2et array 0 2 1 3 5.0
+
+
+
+
+ Fetches an element from a 4D array. You can also use the syntax 'array.[index1,index2,index3,index4]'
+
+ The input array.
+ The index along the first dimension.
+ The index along the second dimension.
+ The index along the third dimension.
+ The index along the fourth dimension.
+
+ The value at the given index.
+
+
+ Indexer syntax is generally preferred, e.g.
+
+ let array: float[,,,] = Array4D.zeroCreate 2 3 4 5
+
+ array[0,2,1,3]
+
+
+
+
+
+ let array = Array4D.zeroCreate 2 3 4 5
+
+ Array4D.get array 0 2 1 3
+
+
+
+
+ Creates an array where the entries are initially the "default" value.
+
+ The length of the first dimension.
+ The length of the second dimension.
+ The length of the third dimension.
+ The length of the fourth dimension.
+
+ The created array.
+
+
+
+ let array : float[,,,] = Array4D.zeroCreate 2 3 3 5
+
+ After evaluation array is a 2x3x3x5 array with contents all zero.
+
+
+
+ Returns the length of an array in the fourth dimension.
+
+ The input array.
+
+ The length of the array in the fourth dimension.
+
+
+
+ let array = Array4D.init 2 3 4 5 (fun i j k -> 100*i + 10*j + k)
+
+ array |> Array4D.length4
+
+ Evaluates to 5.
+
+
+
+ Returns the length of an array in the third dimension.
+
+ The input array.
+
+ The length of the array in the third dimension.
+
+
+
+ let array = Array4D.init 2 3 4 5 (fun i j k -> 100*i + 10*j + k)
+
+ array |> Array4D.length3
+
+ Evaluates to 4.
+
+
+
+ Returns the length of an array in the second dimension.
+
+ The input array.
+
+ The length of the array in the second dimension.
+
+
+
+ let array = Array4D.init 2 3 4 5 (fun i j k -> 100*i + 10*j + k)
+
+ array |> Array4D.length2
+
+ Evaluates to 3.
+
+
+
+ Returns the length of an array in the first dimension
+
+ The input array.
+
+ The length of the array in the first dimension.
+
+
+
+ let array = Array4D.init 2 3 4 5 (fun i j k -> 100*i + 10*j + k)
+
+ array |> Array4D.length1
+
+ Evaluates to 2.
+
+
+
+ Creates an array given the dimensions and a generator function to compute the elements.
+
+ The length of the first dimension.
+ The length of the second dimension.
+ The length of the third dimension.
+ The length of the fourth dimension.
+ The function to create an initial value at each index in the array.
+
+ The created array.
+
+
+
+ Array4D.init 2 2 2 2 (fun i j k l -> i*1000+j*100+k*10+l)
+
+ Evaluates to a 2x2x2x2 array with contents [[[[0; 1]; [10; 11]]; [[100; 101]; [110; 111]]];[[[1000; 1]; [1010; 1011]]; [[1100; 1101]; [1110; 1111]]]]
+
+
+
+
+ Creates an array whose elements are all initially the given value
+
+ The length of the first dimension.
+ The length of the second dimension.
+ The length of the third dimension.
+ The length of the fourth dimension.
+ The initial value for each element of the array.
+
+ The created array.
+
+
+
+ Array4D.create 2 2 2 2 1
+
+ Evaluates to a 2x2x2x2 array with all entries 1
+
+
+
+
+ Contains operations for working with rank 4 arrays.
+
+
+ Creates an array where the entries are initially the "default" value.
+
+ The length of the first dimension.
+ The length of the second dimension.
+ The length of the third dimension.
+
+ The created array.
+
+
+
+ let array : float[,,] = Array3D.zeroCreate 2 3 3
+
+ After evaluation array is a 2x3x3 array with contents all zero.
+
+
+
+ Sets the value of an element in an array. You can also
+ use the syntax 'array.[index1,index2,index3] <- value'.
+
+ The input array.
+ The index along the first dimension.
+ The index along the second dimension.
+ The index along the third dimension.
+ The value to set at the given index.
+
+
+ Indexer syntax is generally preferred, e.g.
+
+ let array = Array3D.zeroCreate 2 3 3
+
+ array[0,2,1] < 4.0
+
+ Evaluates to 11.
+
+
+
+
+ let array = Array3D.zeroCreate 2 3 3
+
+ Array3D.set array 0 2 1 4.0
+
+ After evaluation array is a 2x3x3 array with contents [[[0.0; 0.0; 0.0]; [0.0; 4.0; 0.0]]; [[0.0; 0.0; 0.0]; [0.0; 0.0; 0.0]]]
+
+
+
+ Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the array. The integer indices passed to the
+ function indicates the element being transformed.
+
+ For non-zero-based arrays the basing on an input array will be propagated to the output
+ array.
+ The function to transform the elements at each index in the array.
+ The input array.
+
+ The array created from the transformed elements.
+
+
+
+ let inputs = Array3D.zeroCreate 2 3 3
+
+ inputs |> Array3D.mapi (fun i j k v -> 100*i + 10*j + k)
+
+ Evaluates to a 2x3x3 array with contents [[[0; 2; 4]; [20; 22; 24]]; [[200; 202; 204]; [220; 222; 224]]]
+
+
+
+ Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the array.
+
+ For non-zero-based arrays the basing on an input array will be propagated to the output
+ array.
+ The function to transform each element of the array.
+ The input array.
+
+ The array created from the transformed elements.
+
+
+
+ let inputs = Array3D.init 2 3 3 (fun i j k -> 100*i + 10*j + k)
+
+ inputs |> Array3D.map (fun v -> 2 * v)
+
+ Evaluates to a 2x3x3 array with contents [[[0; 2; 4]; [20; 22; 24]]; [[200; 202; 204]; [220; 222; 224]]]
+
+
+
+ Returns the length of an array in the third dimension.
+
+ The input array.
+
+ The length of the array in the third dimension.
+
+
+
+ let array = Array3D.init 2 3 4 (fun i j k -> 100*i + 10*j + k)
+
+ array |> Array3D.length3
+
+ Evaluates to 4.
+
+
+
+ Returns the length of an array in the second dimension.
+
+ The input array.
+
+ The length of the array in the second dimension.
+
+
+
+ let array = Array3D.init 2 3 4 (fun i j k -> 100*i + 10*j + k)
+
+ array |> Array3D.length2
+
+ Evaluates to 3.
+
+
+
+ Returns the length of an array in the first dimension
+
+ The input array.
+
+ The length of the array in the first dimension.
+
+
+
+ let array = Array3D.init 2 3 4 (fun i j k -> 100*i + 10*j + k)
+
+ array |> Array3D.length1
+
+ Evaluates to 2.
+
+
+
+ Applies the given function to each element of the array. The integer indices passed to the
+ function indicates the index of element.
+
+ The function to apply to each element of the array.
+ The input array.
+
+
+
+ let inputs = Array3D.init 2 2 3 (fun i j k -> 100*i + 10*j + k)
+
+ inputs |> Array3D.iteri (fun i j k v -> printfn $"value at ({i},{j},{k}) = {v}")
+
+ Evaluates to unit and prints
+
+ value at (0,0,0) = 0
+ value at (0,0,1) = 1
+ value at (0,0,2) = 2
+ value at (0,1,0) = 10
+ value at (0,1,1) = 11
+ value at (0,1,2) = 12
+ value at (1,0,0) = 100
+ value at (1,0,1) = 101
+ value at (1,0,2) = 102
+ value at (1,1,0) = 110
+ value at (1,1,1) = 111
+ value at (1,1,2) = 112
+
+ in the console.
+
+
+
+ Applies the given function to each element of the array.
+
+ The function to apply to each element of the array.
+ The input array.
+
+
+
+ let inputs = Array3D.init 2 2 3 (fun i j k -> 100*i + 10*j + k)
+
+ inputs |> Array3D.iter (fun v -> printfn $"value = {v}")
+
+ Evaluates to unit and prints
+
+ value = 0
+ value = 1
+ value = 2
+ value = 10
+ value = 11
+ value = 12
+ value = 100
+ value = 101
+ value = 102
+ value = 110
+ value = 111
+ value = 112
+
+ in the console.
+
+
+
+ Fetches an element from a 3D array. You can also use the syntax 'array.[index1,index2,index3]'
+
+ The input array.
+ The index along the first dimension.
+ The index along the second dimension.
+ The index along the third dimension.
+
+ The value at the given index.
+
+
+ Indexer syntax is generally preferred, e.g.
+
+ let array = Array3D.init 2 3 3 (fun i j k -> 100*i + 10*j + k)
+
+ array[0,2,1]
+
+ Evaluates to 11.
+
+
+
+
+ let array = Array3D.init 2 3 3 (fun i j k -> 100*i + 10*j + k)
+
+ Array3D.get array 0 2 1
+
+ Evaluates to 21.
+
+
+
+ Creates an array given the dimensions and a generator function to compute the elements.
+
+ The length of the first dimension.
+ The length of the second dimension.
+ The length of the third dimension.
+ The function to create an initial value at each index into the array.
+
+ The created array.
+
+
+
+ Array3D.init 2 2 3 (fun i j k -> 100*i + 10*j + k)
+
+ Evaluates to a 2x2x3 array with contents [[[0; 1; 2]; [10; 11; 12]]; [[100; 101; 102]; [110; 111; 112]]]
+
+
+
+ Creates an array whose elements are all initially the given value.
+ The length of the first dimension.
+ The length of the second dimension.
+ The length of the third dimension.
+ The value of the array elements.
+
+ The created array.
+
+
+
+ Array3D.create 2 2 3 1
+
+ Evaluates to a 2x3 array with contents [[[1; 1; 1]; [1; 1; 1]]; [[1; 1; 1]; [1; 1; 1]]]
+
+
+
+
+ Contains operations for working with rank 3 arrays.
+
+
+ See also F# Language Guide - Arrays.
+
+
+
+ Returns binding for the largest key in the map.
+ Raise KeyNotFoundException when map is empty.
+
+ The input map.
+ Thrown if the map is empty.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.maxKeyValue // evaluates to (2, "b")
+
+
+
+
+ Returns binding for the smallest key in the map.
+ Raise KeyNotFoundException when map is empty.
+
+ The input map.
+ Thrown if the map is empty.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.minKeyValue // evaluates to (1, "a")
+
+
+
+
+ The values in the map, including the duplicates.
+ The sequence will be ordered by the keys of the map.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.values // evaluates to seq ["a"; "b"]
+
+
+
+
+ The keys in the map.
+ The sequence will be ordered by the keys of the map.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.keys // evaluates to seq [1; 2]
+
+
+
+
+ The number of bindings in the map.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.count // evaluates to 2
+
+
+
+
+ Returns the key of the first mapping in the collection that satisfies the given predicate.
+ Returns 'None' if no such element exists.
+
+ The function to test the input elements.
+ The input map.
+
+ The first key for which the predicate returns true or None if the predicate evaluates to false for each key/value pair.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.tryFindKey (fun n s -> n = s.Length) // evaluates to Some 1
+ sample |> Map.tryFindKey (fun n s -> n < s.Length) // evaluates to None
+
+
+
+
+ Evaluates the function on each mapping in the collection. Returns the key for the first mapping
+ where the function returns 'true'. Raise KeyNotFoundException if no such element exists.
+
+ The function to test the input elements.
+ The input map.
+ Thrown if the key does not exist in the map.
+
+ The first key for which the predicate evaluates true.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.findKey (fun n s -> n = s.Length) // evaluates to 1
+ sample |> Map.findKey (fun n s -> n < s.Length) // throws KeyNotFoundException
+
+
+
+
+ Lookup an element in the map, returning a Some value if the element is in the domain
+ of the map and None if not.
+
+ The input key.
+ The input map.
+
+ The found Some value or None.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.tryFind 1 // evaluates to Some "a"
+ sample |> Map.tryFind 3 // evaluates to None
+
+
+
+
+ Removes an element from the domain of the map. No exception is raised if the element is not present.
+
+ The input key.
+ The input map.
+
+ The resulting map.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.remove 1 // evaluates to map [(2, "b")]
+ sample |> Map.remove 3 // equal to sample
+
+
+
+
+ Builds two new maps, one containing the bindings for which the given predicate returns 'true',
+ and the other the remaining bindings.
+
+ The function to test the input elements.
+ The input map.
+
+ A pair of maps in which the first contains the elements for which the predicate returned true
+ and the second containing the elements for which the predicated returned false.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.partition (fun n s -> n = s.Length) // evaluates to (map [(1, "a")], map [(2, "b")])
+
+
+
+
+ Tests if an element is in the domain of the map.
+
+ The input key.
+ The input map.
+
+ True if the map contains the key.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.containsKey 1 // evaluates to true
+ sample |> Map.containsKey 3 // evaluates to false
+
+
+
+
+ Builds a new collection whose elements are the results of applying the given function
+ to each of the elements of the collection. The key passed to the
+ function indicates the key of element being transformed.
+
+ The function to transform the key/value pairs.
+ The input map.
+
+ The resulting map of keys and transformed values.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.map (fun n s -> sprintf "%i %s" n s) // evaluates to map [(1, "1 a"); (2, "2 b")]
+
+
+
+
+ Returns true if the given predicate returns true for all of the
+ bindings in the map.
+
+ The function to test the input elements.
+ The input map.
+
+ True if the predicate evaluates to true for all of the bindings in the map.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.forall (fun n s -> n >= s.Length) // evaluates to true
+ sample |> Map.forall (fun n s -> n = s.Length) // evaluates to false
+
+
+
+
+ Builds a new map containing only the bindings for which the given predicate returns 'true'.
+
+ The function to test the key/value pairs.
+ The input map.
+
+ The filtered map.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.filter (fun n s -> n = s.Length) // evaluates to map [(1, "a")]
+
+
+
+
+ Returns true if the given predicate returns true for one of the
+ bindings in the map.
+
+ The function to test the input elements.
+ The input map.
+
+ True if the predicate returns true for one of the key/value pairs.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.exists (fun n s -> n = s.Length) // evaluates to true
+ sample |> Map.exists (fun n s -> n < s.Length) // evaluates to false
+
+
+
+
+ Applies the given function to each binding in the dictionary
+
+ The function to apply to each key/value pair.
+ The input map.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.iter (fun n s -> printf "%i %s " n s)
+
+ Prints "1 a 2 b ".
+
+
+
+ Folds over the bindings in the map
+
+ The function to update the state given the input key/value pairs.
+ The initial state.
+ The input map.
+
+ The final state value.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ ("initial", sample) ||> Map.fold (fun state n s -> sprintf "%s %i %s" state n s)
+
+ Evaluates to "initial 1 a 2 b".
+
+
+
+ Folds over the bindings in the map.
+
+ The function to update the state given the input key/value pairs.
+ The input map.
+ The initial state.
+
+ The final state value.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ (sample, "initial") ||> Map.foldBack (fun n s state -> sprintf "%i %s %s" n s state)
+
+ Evaluates to "1 a 2 b initial"
+
+
+
+ Searches the map looking for the first element where the given function returns a Some value.
+ Raise KeyNotFoundException if no such element exists.
+
+ The function to generate options from the key/value pairs.
+ The input map.
+ Thrown if no element returns a Some
+ value when evaluated by the chooser function
+
+ The first result.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b"); (10, "ccc"); (20, "ddd") ]
+
+ sample |> Map.pick (fun n s -> if n > 5 && s.Length > 2 then Some s else None)
+
+ Evaluates to "ccc"
+
+
+
+ let sample = Map [ (1, "a"); (2, "b"); (10, "ccc"); (20, "ddd") ]
+
+ sample |> Map.pick (fun n s -> if n > 5 && s.Length > 4 then Some s else None)
+
+ Raises KeyNotFoundException
+
+
+
+ Searches the map looking for the first element where the given function returns a Some value.
+
+ The function to generate options from the key/value pairs.
+ The input map.
+
+ The first result.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b"); (10, "ccc"); (20, "ddd") ]
+
+ sample |> Map.tryPick (fun n s -> if n > 5 && s.Length > 2 then Some s else None)
+
+ Evaluates to Some "ccc".
+
+
+
+
+ let sample = Map [ (1, "a"); (2, "b"); (10, "ccc"); (20, "ddd") ]
+
+ sample |> Map.tryPick (fun n s -> if n > 5 && s.Length > 4 then Some s else None)
+
+ Evaluates to None.
+
+
+
+ Lookup an element in the map, raising KeyNotFoundException if no binding
+ exists in the map.
+
+ The input key.
+ The input map.
+ Thrown when the key does not exist in the map.
+
+ The value mapped to the given key.
+
+
+
+ let sample = Map [ (1, "a"); (2, "b") ]
+
+ sample |> Map.find 1 // evaluates to "a"
+ sample |> Map.find 3 // throws KeyNotFoundException
+
+
+
+
+ The empty map.
+
+
+
+ let emptyMap = Map.empty<int, string>
+
+
+
+
+ Is the map empty?
+
+ The input map.
+
+ True if the map is empty.
+
+
+
+ let emptyMap = Map.empty<int, string>
+ emptyMap |> Map.isEmpty // evaluates to true
+
+ let notEmptyMap = Map [ (1, "a"); (2, "b") ]
+ emptyMap |> Map.isEmpty // evaluates to false
+
+
+
+
+ Returns an array of all key-value pairs in the mapping.
+ The array will be ordered by the keys of the map.
+
+ The input map.
+
+ The array of key/value pairs.
+
+
+
+ let input = Map [ (1, "a"); (2, "b") ]
+
+ input |> Map.toArray // evaluates to [|(1, "a"); (2, "b")|]
+
+
+
+
+ Returns a list of all key-value pairs in the mapping.
+ The list will be ordered by the keys of the map.
+
+ The input map.
+
+ The list of key/value pairs.
+
+
+
+ let input = Map [ (1, "a"); (2, "b") ]
+
+ input |> Map.toList // evaluates to [(1, "a"); (2, "b")]
+
+
+
+
+ Views the collection as an enumerable sequence of pairs.
+ The sequence will be ordered by the keys of the map.
+
+ The input map.
+
+ The sequence of key/value pairs.
+
+
+
+ let input = Map [ (1, "a"); (2, "b") ]
+
+ input |> Map.toSeq // evaluates to seq [(1, "a"); (2, "b")]
+
+
+
+
+ Returns a new map made from the given bindings.
+
+ The input sequence of key/value pairs.
+
+ The resulting map.
+
+
+
+ let input = seq { (1, "a"); (2, "b") }
+
+ input |> Map.ofSeq // evaluates to map [(1, "a"); (2, "b")]
+
+
+
+
+ Returns a new map made from the given bindings.
+
+ The input array of key/value pairs.
+
+ The resulting map.
+
+
+
+ let input = [| (1, "a"); (2, "b") |]
+
+ input |> Map.ofArray // evaluates to map [(1, "a"); (2, "b")]
+
+
+
+
+ Returns a new map made from the given bindings.
+
+ The input list of key/value pairs.
+
+ The resulting map.
+
+
+
+ let input = [ (1, "a"); (2, "b") ]
+
+ input |> Map.ofList // evaluates to map [(1, "a"); (2, "b")]
+
+
+
+
+ Returns a new map with the value stored under key changed according to f.
+
+ The input key.
+ The change function.
+ The input map.
+
+ The resulting map.
+
+
+
+ let input = Map [ (1, "a"); (2, "b") ]
+
+ input |> Map.change 1 (fun x ->
+ match x with
+ | Some s -> Some (s + "z")
+ | None -> None
+ ) // evaluates to map [(1, "az"); (2, "b")]
+
+
+
+
+ Returns a new map with the binding added to the given map.
+ If a binding with the given key already exists in the input map, the existing binding is replaced by the new binding in the result map.
+
+ The input key.
+ The input value.
+ The input map.
+
+ The resulting map.
+
+
+
+ let input = Map [ (1, "a"); (2, "b") ]
+
+ input |> Map.add 3 "c" // evaluates to map [(1, "a"); (2, "b"); (3, "c")]
+ input |> Map.add 2 "aa" // evaluates to map [(1, "a"); (2, "aa")]
+
+
+
+
+ Contains operations for working with values of type .
+
+
+ Returns a new set with the elements of the second set removed from the first.
+
+ The first input set.
+ The set whose elements will be removed from set1.
+
+ The set with the elements of set2 removed from set1.
+
+
+
+ let set1 = Set.empty.Add(1).Add(2).Add(3)
+ let set2 = Set.empty.Add(2).Add(3).Add(4)
+ printfn $"The difference of {set1} and {set2} is {Set.difference set1 set2}"
+
+ The sample evaluates to the following output: The difference of set [1; 2; 3] and set [2; 3; 4] is set [1]
+
+
+
+ Builds a new collection from the given enumerable object.
+
+ The input sequence.
+
+ The set containing elements.
+
+
+
+ let set = Set.ofSeq [1, 2, 3]
+ printfn $"The set is {set} and type is {set.GetType().Name}"
+
+ The sample evaluates to the following output: The set is set [(1, 2, 3)] and type is "FSharpSet`1"
+
+
+
+ Returns an ordered view of the collection as an enumerable object.
+
+ The input set.
+
+ An ordered sequence of the elements of set.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ let seq = Set.toSeq set
+ printfn $"The set is {set} and type is {seq.GetType().Name}"
+
+ The sample evaluates to the following output: he set is set [1; 2; 3] and type is Microsoft.FSharp.Collections.FSharpSet`1[System.Int32]
+
+
+
+ Builds an array that contains the elements of the set in order.
+
+ The input set.
+
+ An ordered array of the elements of set.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ let array = Set.toArray set
+ printfn$ "The set is {set} and type is {array.GetType().Name}"
+
+ The sample evaluates to the following output: The set is [|1; 2; 3|] and type is System.Int32 array
+
+
+
+ Builds a set that contains the same elements as the given array.
+
+ The input array.
+
+ A set containing the elements of array.
+
+
+
+ let set = Set.ofArray [|1, 2, 3|]
+ printfn $"The set is {set} and type is {set.GetType().Name}"
+
+ The sample evaluates to the following output: The set is set [(1, 2, 3)] and type is "FSharpSet`1"
+
+
+
+ Builds a list that contains the elements of the set in order.
+
+ The input set.
+
+ An ordered list of the elements of set.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ let list = Set.toList set
+ printfn $"The set is {list} and type is {list.GetType().Name}"
+
+ The sample evaluates to the following output: The set is [1; 2; 3] and type is "FSharpList`1"
+
+
+
+ Builds a set that contains the same elements as the given list.
+
+ The input list.
+
+ A set containing the elements form the input list.
+
+
+
+ let set = Set.ofList [1, 2, 3]
+ printfn $"The set is {set} and type is {set.GetType().Name}"
+
+ The sample evaluates to the following output: The set is set [(1, 2, 3)] and type is "FSharpSet`1"
+
+
+
+ Returns the highest element in the set according to the ordering being used for the set.
+
+ The input set.
+
+ The max value from the set.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ printfn $"The min element of {set} is {Set.minElement set}"
+
+ The sample evaluates to the following output: The max element of set [1; 2; 3] is 3
+
+
+
+ Returns the lowest element in the set according to the ordering being used for the set.
+
+ The input set.
+
+ The min value from the set.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ printfn $"The min element of {set} is {Set.minElement set}"
+
+ The sample evaluates to the following output: The min element of set [1; 2; 3] is 1
+
+
+
+ Returns a new set with the given element removed. No exception is raised if
+ the set doesn't contain the given element.
+
+ The element to remove.
+ The input set.
+
+ The input set with value removed.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ printfn $"The set without 1 is {Set.remove 1 set}"
+
+ The sample evaluates to the following output: The set without 1 is set [2; 3]
+
+
+
+ Splits the set into two sets containing the elements for which the given predicate
+ returns true and false respectively.
+
+ The function to test set elements.
+ The input set.
+
+ A pair of sets with the first containing the elements for which predicate returns
+ true and the second containing the elements for which predicate returns false.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3).Add(4)
+ printfn $"The set with even numbers is {Set.partition (fun x -> x % 2 = 0) set}"
+
+ The sample evaluates to the following output: The partitioned sets are: (set [2; 4], set [1; 3])
+
+
+
+ Applies the given function to each element of the set, in order according
+ to the comparison function.
+
+ The function to apply to each element.
+ The input set.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ Set.iter (fun x -> printfn $"The set contains {x}") set
+
+ The sample evaluates to the following output:
+ The set contains 1
+ The set contains 2
+ The set contains 3
+
+
+
+ Returns "true" if the set is empty.
+
+ The input set.
+
+ True if set is empty.
+
+
+
+ let set = Set.empty.Add(2).Add(3)
+ printfn $"Is the set empty? {set.IsEmpty}"
+
+ The sample evaluates to the following output: Is the set empty? false
+
+
+
+ Computes the union of a sequence of sets.
+
+ The sequence of sets to union.
+
+ The union of the input sets.
+
+
+
+ let headersByFile = seq{
+ yield [ "id"; "name"; "date"; "color" ]
+ yield [ "id"; "age"; "date" ]
+ yield [ "id"; "sex"; "date"; "animal" ]
+ }
+ headersByFile
+ |> Seq.map Set.ofList
+ |> Set.intersectMany
+ |> printfn "The intersection of %A is %A" headersByFile
+
+ The sample evaluates to the following output: The union of seq
+ [["id"; "name"; "date"; "color"]; ["id"; "age"; "date"];
+ ["id"; "sex"; "date"; "animal"]] is set ["age"; "animal"; "color"; "date"; "id"; "name"; "sex"]
+
+
+
+ Computes the union of the two sets.
+
+ The first input set.
+ The second input set.
+
+ The union of set1 and set2.
+
+
+
+ let set1 = Set.empty.Add(1).Add(2).Add(3)
+ let set2 = Set.empty.Add(2).Add(3).Add(4)
+ printfn $"The union of {set1} and {set2} is {(Set.union set1 set2)}"
+
+ The sample evaluates to the following output: The union of set [1; 2; 3] and set [2; 3; 4] is set [1; 2; 3; 4]
+
+
+
+ Computes the intersection of a sequence of sets. The sequence must be non-empty.
+
+ The sequence of sets to intersect.
+
+ The intersection of the input sets.
+
+
+
+ let headersByFile = seq{
+ yield [ "id"; "name"; "date"; "color" ]
+ yield [ "id"; "age"; "date" ]
+ yield [ "id"; "sex"; "date"; "animal" ]
+ }
+ headersByFile
+ |> Seq.map Set.ofList
+ |> Set.intersectMany
+ |> printfn "The intersection of %A is %A" headersByFile
+
+ The sample evaluates to the following output: The intersection of seq
+ [["id"; "name"; "date"; "color"]; ["id"; "age"; "date"];
+ ["id"; "sex"; "date"; "animal"]] is set ["date"; "id"]
+
+
+
+ Computes the intersection of the two sets.
+
+ The first input set.
+ The second input set.
+
+ The intersection of set1 and set2.
+
+
+
+ let set1 = Set.empty.Add(1).Add(2).Add(3)
+ let set2 = Set.empty.Add(2).Add(3).Add(4)
+ printfn $"The intersection of {set1} and {set2} is {Set.intersect set1 set2}"
+
+ The sample evaluates to the following output: The intersection of set [1; 2; 3] and set [2; 3; 4] is set [2; 3]
+
+
+
+ Tests if all elements of the collection satisfy the given predicate.
+ If the input function is f and the elements are i0...iN and "j0...jN"
+ then computes p i0 && ... && p iN.
+
+ The function to test set elements.
+ The input set.
+
+ True if all elements of set satisfy predicate.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ printfn $"Does the set contain even numbers? {Set.forall (fun x -> x % 2 = 0) set}"
+
+ The sample evaluates to the following output: Does the set contain even numbers? false
+
+
+
+ Applies the given accumulating function to all the elements of the set.
+
+ The accumulating function.
+ The input set.
+ The initial state.
+
+ The final state.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ printfn $"The sum of the set is {Set.foldBack (+) set 0}"
+ printfn $"The set is {Set.foldBack (fun x acc -> x :: acc) set []}"
+
+ The sample evaluates to the following output: The sum of the set is 6
+ The set is [1; 2; 3]
+
+
+
+ Applies the given accumulating function to all the elements of the set
+
+ The accumulating function.
+ The initial state.
+ The input set.
+
+ The final state.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ printfn $"The sum of the set is {Set.fold (+) 0 set}"
+ printfn $"The product of the set is {Set.fold (*) 1 set}"
+ printfn $"The reverse of the set is {Set.fold (fun x y -> y :: x) [] set}"
+
+ The sample evaluates to the following output: The sum of the set is 6
+ The product of the set is 6
+ The reverse of the set is [3; 2; 1]
+
+
+
+ Returns a new collection containing the results of applying the
+ given function to each element of the input set.
+
+ The function to transform elements of the input set.
+ The input set.
+
+ A set containing the transformed elements.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ printfn $"The set with doubled values is {Set.map (fun x -> x * 2) set}"
+
+ The sample evaluates to the following output: The set with doubled values is set [2; 4; 6]
+
+
+
+ Returns a new collection containing only the elements of the collection
+ for which the given predicate returns True.
+
+ The function to test set elements.
+ The input set.
+
+ The set containing only the elements for which predicate returns true.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3).Add(4)
+ printfn $"The set with even numbers is {Set.filter (fun x -> x % 2 = 0) set}"
+
+ The sample evaluates to the following output: The set with even numbers is set [2; 4]
+
+
+
+ Tests if any element of the collection satisfies the given predicate.
+ If the input function is predicate and the elements are i0...iN
+ then computes p i0 or ... or p iN.
+
+ The function to test set elements.
+ The input set.
+
+ True if any element of set satisfies predicate.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ printfn $"Does the set contain 1? {Set.exists (fun x -> x = 1) set}"
+
+ The sample evaluates to the following output: Does the set contain 1? true
+
+
+
+ Returns the number of elements in the set. Same as size.
+
+ The input set.
+
+ The number of elements in the set.
+
+
+
+ let set = Set.empty.Add(1).Add(2).Add(3)
+ printfn $"The set has {set.Count} elements"
+
+ The sample evaluates to the following output: The set has 3 elements
+
+
+
+ Evaluates to "true" if all elements of the second set are in the first, and at least
+ one element of the first is not in the second.
+
+ The potential superset.
+ The set to test against.
+
+ True if set1 is a proper superset of set2.
+
+
+
+ let set1 = Set.empty.Add(1).Add(2).Add(3)
+ let set2 = Set.empty.Add(1).Add(2).Add(3).Add(4)
+ printfn $"Is {set1} a proper superset of {set2}? {Set.isProperSuperset set1 set2}"
+
+ The sample evaluates to the following output: Is set [1; 2; 3] a proper superset of set [1; 2; 3; 4]? false
+
+
+
+ Evaluates to "true" if all elements of the second set are in the first.
+
+ The potential superset.
+ The set to test against.
+
+ True if set1 is a superset of set2.
+
+
+
+ let set1 = Set.empty.Add(1).Add(2).Add(3)
+ let set2 = Set.empty.Add(1).Add(2).Add(3).Add(4)
+ printfn $"Is {set1} a superset of {set2}? {Set.isSuperset set1 set2}"
+
+ The sample evaluates to the following output: Is set [1; 2; 3] a superset of set [1; 2; 3; 4]? false
+
+
+
+ Evaluates to "true" if all elements of the first set are in the second, and at least
+ one element of the second is not in the first.
+
+ The potential subset.
+ The set to test against.
+
+ True if set1 is a proper subset of set2.
+
+
+
+ let set1 = Set.empty.Add(1).Add(2).Add(3)
+ let set2 = Set.empty.Add(1).Add(2).Add(3).Add(4)
+ printfn $"Is {set1} a proper subset of {set2}? {Set.isProperSubset set1 set2}"
+
+ The sample evaluates to the following output: Is set [1; 2; 3] a proper subset of set [1; 2; 3; 4]? true
+
+
+
+ Evaluates to "true" if all elements of the first set are in the second
+
+ The potential subset.
+ The set to test against.
+
+ True if set1 is a subset of set2.
+
+
+
+ let set1 = Set.empty.Add(1).Add(2).Add(3)
+ let set2 = Set.empty.Add(1).Add(2).Add(3).Add(4)
+ printfn $"Is {set1} a subset of {set2}? {Set.isSubset set1 set2}"
+
+ The sample evaluates to the following output: Is set [1; 2; 3] a subset of set [1; 2; 3; 4]? true
+
+
+
+ Evaluates to "true" if the given element is in the given set.
+
+ The element to test.
+ The input set.
+
+ True if element is in set.
+
+
+
+ let set = Set.empty.Add(2).Add(3)
+ printfn $"Does the set contain 1? {set.Contains(1))}"
+
+ The sample evaluates to the following output: Does the set contain 1? false
+
+
+
+ Returns a new set with an element added to the set. No exception is raised if
+ the set already contains the given element.
+
+ The value to add.
+ The input set.
+
+ A new set containing value.
+
+
+
+ let set = Set.empty.Add(1).Add(1).Add(2)
+ printfn $"The new set is: {set}"
+
+ The sample evaluates to the following output: The new set is: set [1; 2]
+
+
+
+ The set containing the given element.
+
+ The value for the set to contain.
+
+ The set containing value.
+
+
+
+ Set.singleton 7
+
+ Evaluates to set [ 7 ].
+
+
+
+ The empty set for the type 'T.
+
+
+
+ Set.empty<int>
+
+ Evaluates to set [ ].
+
+
+
+ Contains operations for working with values of type .
+
+
+ Returns a representing an F# tuple type with the given element types
+
+ Runtime assembly containing System.Tuple definitions.
+ An array of types for the tuple elements.
+
+ The type representing the tuple containing the input elements.
+
+
+
+
+ Returns a representing an F# tuple type with the given element types
+
+ An array of types for the tuple elements.
+
+ The type representing the tuple containing the input elements.
+
+
+
+
+ Returns a representing an F# struct tuple type with the given element types
+
+ An array of types for the tuple elements.
+
+ The type representing the struct tuple containing the input elements.
+
+
+
+
+ Returns a representing an F# struct tuple type with the given element types
+
+ Runtime assembly containing System.ValueTuple definitions.
+ An array of types for the tuple elements.
+
+ The type representing the struct tuple containing the input elements.
+
+
+
+
+ Returns a representing the F# function type with the given domain and range
+
+ The input type of the function.
+ The output type of the function.
+
+ The function type with the given domain and range.
+
+
+
+
+ Returns true if the typ is a representation of an F# union type or the runtime type of a value of that type
+
+ The type to check.
+ Optional binding flags.
+
+ True if the type check succeeds.
+
+
+
+
+ Return true if the typ is a representation of an F# tuple type
+
+ The type to check.
+
+ True if the type check succeeds.
+
+
+
+
+ Return true if the typ is a representation of an F# record type
+
+ The type to check.
+ Optional binding flags.
+
+ True if the type check succeeds.
+
+
+
+
+ Return true if the typ is a value corresponding to the compiled form of an F# module
+
+ The type to check.
+
+ True if the type check succeeds.
+
+
+
+
+ Return true if the typ is a representation of an F# function type or the runtime type of a closure implementing an F# function type
+
+ The type to check.
+
+ True if the type check succeeds.
+
+
+
+
+ Returns true if the typ is a representation of an F# exception declaration
+
+ The type to check.
+ Optional binding flags.
+
+ True if the type check is an F# exception.
+
+
+
+
+ Gets the cases of a union type.
+
+ Assumes the given type is a union type. If not, is raised during pre-computation.
+
+ The input union type.
+ Optional binding flags.
+
+ Thrown when the input type is not a union type.
+
+ An array of descriptions of the cases of the given union type.
+
+
+
+
+ Gets the tuple elements from the representation of an F# tuple type.
+
+ The input tuple type.
+
+ An array of the types contained in the given tuple type.
+
+
+
+
+ Reads all the fields from a record value, in declaration order
+
+ Assumes the given input is a record value. If not, is raised.
+
+ The input record type.
+ Optional binding flags.
+
+ An array of descriptions of the properties of the record type.
+
+
+
+
+ Gets the domain and range types from an F# function type or from the runtime type of a closure implementing an F# type
+
+ The input function type.
+
+ A tuple of the domain and range types of the input function.
+
+
+
+
+ Reads all the fields from an F# exception declaration, in declaration order
+
+ Assumes exceptionType is an exception representation type. If not, is raised.
+
+ The exception type to read.
+ Optional binding flags.
+
+ Thrown if the given type is not an exception.
+
+ An array containing the PropertyInfo of each field in the exception.
+
+
+
+
+ Contains operations associated with constructing and analyzing F# types such as records, unions and tuples
+
+
+ Assumes the given type is a union type.
+ If not, is raised during pre-computation.
+
+ Using the computed function is more efficient than calling GetUnionCase
+ because the path executed by the computed function is optimized given the knowledge that it will be
+ used to read values of the given type.
+
+ The type of union to optimize reading.
+ Optional binding flags.
+
+ An optimized function to read the tags of the given union type.
+
+
+
+
+ Precompute a property or static method for reading an integer representing the case tag of a union type.
+
+ The type of union to read.
+ Optional binding flags.
+
+ The description of the union case reader.
+
+
+
+
+ Precompute a function for reading all the fields for a particular discriminator case of a union type
+
+ Using the computed function will typically be faster than executing a corresponding call to GetFields
+
+ The description of the union case to read.
+ Optional binding flags.
+
+ A function to for reading the fields of the given union case.
+
+
+
+
+ A method that constructs objects of the given case
+
+ The description of the union case.
+ Optional binding flags.
+
+ The description of the constructor of the given union case.
+
+
+
+
+ Precompute a function for constructing a discriminated union value for a particular union case.
+
+ The description of the union case.
+ Optional binding flags.
+
+ A function for constructing values of the given union case.
+
+
+
+
+ Precompute a function for reading the values of a particular tuple type
+
+ Assumes the given type is a TupleType.
+ If not, is raised during pre-computation.
+
+ The tuple type to read.
+
+ Thrown when the given type is not a tuple type.
+
+ A function to read values of the given tuple type.
+
+
+
+
+ Gets information that indicates how to read a field of a tuple
+
+ The input tuple type.
+ The index of the tuple element to describe.
+
+ The description of the tuple element and an optional type and index if the tuple is big.
+
+
+
+
+ Gets a method that constructs objects of the given tuple type.
+ For small tuples, no additional type will be returned.
+
+ For large tuples, an additional type is returned indicating that
+ a nested encoding has been used for the tuple type. In this case
+ the suffix portion of the tuple type has the given type and an
+ object of this type must be created and passed as the last argument
+ to the ConstructorInfo. A recursive call to PreComputeTupleConstructorInfo
+ can be used to determine the constructor for that the suffix type.
+
+ The input tuple type.
+
+ The description of the tuple type constructor and an optional extra type
+ for large tuples.
+
+
+
+
+ Precompute a function for reading the values of a particular tuple type
+
+ Assumes the given type is a TupleType.
+ If not, is raised during pre-computation.
+
+ The type of tuple to read.
+
+ Thrown when the given type is not a tuple type.
+
+ A function to read a particular tuple type.
+
+
+
+
+ Precompute a function for reading all the fields from a record. The fields are returned in the
+ same order as the fields reported by a call to Microsoft.FSharp.Reflection.Type.GetInfo for
+ this type.
+
+ Assumes the given type is a RecordType.
+ If not, is raised during pre-computation.
+
+ Using the computed function will typically be faster than executing a corresponding call to Value.GetInfo
+ because the path executed by the computed function is optimized given the knowledge that it will be
+ used to read values of the given type.
+
+ The type of record to read.
+ Optional binding flags.
+
+ Thrown when the input type is not a record type.
+
+ An optimized reader for the given record type.
+
+
+
+
+ Precompute a function for reading a particular field from a record.
+ Assumes the given type is a RecordType with a field of the given name.
+ If not, is raised during pre-computation.
+
+ Using the computed function will typically be faster than executing a corresponding call to Value.GetInfo
+ because the path executed by the computed function is optimized given the knowledge that it will be
+ used to read values of the given type.
+
+ The PropertyInfo of the field to read.
+
+ Thrown when the input type is not a record type.
+
+ A function to read the specified field from the record.
+
+
+
+
+ Get a ConstructorInfo for a record type
+
+ The record type.
+ Optional binding flags.
+
+ A ConstructorInfo for the given record type.
+
+
+
+
+ Precompute a function for constructing a record value.
+
+ Assumes the given type is a RecordType.
+ If not, is raised during pre-computation.
+
+ The type of record to construct.
+ Optional binding flags.
+
+ Thrown when the input type is not a record type.
+
+ A function to construct records of the given type.
+
+
+
+
+ Create a union case value.
+
+ The description of the union case to create.
+ The array of arguments to construct the given case.
+ Optional binding flags.
+
+ The constructed union case.
+
+
+
+
+ Creates an instance of a tuple type
+
+ Assumes at least one element is given. If not, is raised.
+
+ The array of tuple fields.
+ The tuple type to create.
+
+ Thrown if no elements are given.
+
+ An instance of the tuple type with the given elements.
+
+
+
+
+ Creates an instance of a record type.
+
+ Assumes the given input is a record type.
+
+ The type of record to make.
+ The array of values to initialize the record.
+ Optional binding flags for the record.
+
+ Thrown when the input type is not a record type.
+
+ The created record.
+
+
+
+
+ Builds a typed function from object from a dynamic function implementation
+
+ The function type of the implementation.
+ The untyped lambda of the function implementation.
+
+ A typed function from the given dynamic implementation.
+
+
+
+
+ Identify the union case and its fields for an object
+
+ Assumes the given input is a union case value. If not, is raised.
+
+ If the type is not given, then the runtime type of the input object is used to identify the
+ relevant union type. The type should always be given if the input object may be null. For example,
+ option values may be represented using the 'null'.
+ The input union case.
+ The union type containing the value.
+ Optional binding flags.
+
+ Thrown when the input type is not a union case value.
+
+ The description of the union case and its fields.
+
+
+
+
+ Reads all fields from a tuple.
+
+ Assumes the given input is a tuple value. If not, is raised.
+
+ The input tuple.
+
+ Thrown when the input is not a tuple value.
+
+ An array of the fields from the given tuple.
+
+
+
+
+ Reads a field from a tuple value.
+
+ Assumes the given input is a tuple value. If not, is raised.
+
+ The input tuple.
+ The index of the field to read.
+
+ The value of the field.
+
+
+
+
+ Reads all the fields from a record value.
+
+ Assumes the given input is a record value. If not, is raised.
+ The record object.
+ Optional binding flags for the record.
+
+ Thrown when the input type is not a record type.
+
+ The array of fields from the record.
+
+
+
+
+ Reads a field from a record value.
+
+ Assumes the given input is a record value. If not, is raised.
+
+ The record object.
+ The PropertyInfo describing the field to read.
+
+ Thrown when the input is not a record value.
+
+ The field from the record.
+
+
+
+
+ Reads all the fields from a value built using an instance of an F# exception declaration
+
+ Assumes the given input is an F# exception value. If not, is raised.
+
+ The exception instance.
+ Optional binding flags.
+
+ Thrown when the input type is not an F# exception.
+
+ The fields from the given exception.
+
+
+
+
+ Contains operations associated with constructing and analyzing values associated with F# types
+ such as records, unions and tuples.
+
+
+ The integer tag for the case.
+
+
+
+ type CoinToss = Heads | Tails
+
+ typeof<CoinToss>
+ |> FSharpType.GetUnionCases
+ |> Array.map (fun x -> $"{x.Name} has tag {x.Tag}")
+
+ Evaluates to [|"Heads has tag 0"; "Tails has tag 1"|]
+
+
+
+ The name of the case.
+
+
+
+ type Weather = Rainy | Sunny
+
+ typeof<Weather>
+ |> FSharpType.GetUnionCases
+ |> Array.map (fun x -> x.Name)
+
+ Evaluates to [|"Rainy", "Sunny"|]
+
+
+
+ The type in which the case occurs.
+
+
+
+ type Weather = Rainy | Sunny
+
+ let rainy =
+ typeof<Weather>
+ |> FSharpType.GetUnionCases
+ |> Array.head
+
+ rainy.DeclaringType
+
+ Evaluates to a value of type System.Type
+ that holds type information for Weather.
+
+
+
+ The fields associated with the case, represented by a PropertyInfo.
+ The fields associated with the case.
+
+
+
+ type Shape =
+ | Rectangle of width : float * length : float
+ | Circle of radius : float
+ | Prism of width : float * float * height : float
+
+ typeof<Shape>
+ |> FSharpType.GetUnionCases
+ |> Array.map (fun unionCase ->
+ unionCase.GetFields()
+ |> Array.map (fun fieldInfo ->
+ fieldInfo.Name,
+ fieldInfo.PropertyType.Name))
+
+ Evaluates to
+
+ [|[|("width", "Double"); ("length", "Double")|];
+ [|("radius", "Double")|];
+ [|("width", "Double"); ("Item2", "Double"); ("height", "Double")|]|]
+
+
+
+
+ Returns the custom attributes data associated with the case.
+ An list of custom attribute data items.
+
+
+
+ type Signal(signal: string) =
+ inherit System.Attribute()
+ member this.Signal = signal
+
+ type Answer =
+ | [<Signal("Thumbs up")>] Yes
+ | [<Signal("Thumbs down")>] No
+
+ let answerYes =
+ typeof<Answer>
+ |> FSharpType.GetUnionCases
+ |> Array.find (fun x -> x.Name = "Yes")
+
+ answerYes.GetCustomAttributesData()
+
+ Evaluates to
+
+ [|[FSI_0150+Signal("Thumbs up")]
+ {AttributeType = FSI_0150+Signal;
+ Constructor = Void .ctor(System.String);
+ ConstructorArguments = seq ["Thumbs up"];
+ NamedArguments = seq [];};
+ [Microsoft.FSharp.Core.CompilationMappingAttribute((Microsoft.FSharp.Core.SourceConstructFlags)8, (Int32)0)]
+ {AttributeType = Microsoft.FSharp.Core.CompilationMappingAttribute;
+ Constructor = Void .ctor(Microsoft.FSharp.Core.SourceConstructFlags, Int32);
+ ConstructorArguments = seq
+ [(Microsoft.FSharp.Core.SourceConstructFlags)8;
+ (Int32)0];
+ NamedArguments = seq [];}|]
+
+
+
+
+ Returns the custom attributes associated with the case matching the given attribute type.
+ The type of attributes to return.
+
+ An array of custom attributes.
+
+
+
+ type Signal(signal: string) =
+ inherit System.Attribute()
+ member this.Signal = signal
+
+ type Answer =
+ | [<Signal("Thumbs up")>] Yes
+ | [<Signal("Thumbs down")>] No
+
+ typeof<Answer>
+ |> FSharpType.GetUnionCases
+ |> Array.map (fun x -> x.GetCustomAttributes(typeof<Signal>))
+
+ Evaluates to
+
+ [|[|FSI_0147+Signal {Signal = "Thumbs up";
+ TypeId = FSI_0147+Signal;}|];
+ [|FSI_0147+Signal {Signal = "Thumbs down";
+ TypeId = FSI_0147+Signal;}|]|]
+
+
+
+
+ Returns the custom attributes associated with the case.
+ An array of custom attributes.
+
+
+
+ type Weather =
+ | Rainy
+ | Sunny
+
+ typeof<Weather>
+ |> FSharpType.GetUnionCases
+ |> Array.map (fun x -> x.GetCustomAttributes())
+
+ Evaluates to
+
+ [|[|Microsoft.FSharp.Core.CompilationMappingAttribute
+ {ResourceName = null;
+ SequenceNumber = 0;
+ SourceConstructFlags = UnionCase;
+ TypeDefinitions = null;
+ TypeId = Microsoft.FSharp.Core.CompilationMappingAttribute;
+ VariantNumber = 0;}|];
+ [|Microsoft.FSharp.Core.CompilationMappingAttribute
+ {ResourceName = null;
+ SequenceNumber = 1;
+ SourceConstructFlags = UnionCase;
+ TypeDefinitions = null;
+ TypeId = Microsoft.FSharp.Core.CompilationMappingAttribute;
+ VariantNumber = 0;}|]|]
+
+
+
+
+ Represents a case of a discriminated union type
+
+
+ Library functionality for accessing additional information about F# types and F# values at
+ runtime, augmenting that available through System.Reflection.
+
+
+
+ Returns true if the exceptionType is a representation of an F# exception declaration
+
+ The type to check.
+ Optional flag that denotes accessibility of the private representation.
+
+ True if the type check is an F# exception.
+
+
+
+
+ Reads all the fields from an F# exception declaration, in declaration order
+
+ Assumes exceptionType is an exception representation type. If not, is raised.
+
+ The exception type to read.
+ Optional flag that denotes accessibility of the private representation.
+
+ Thrown if the given type is not an exception.
+
+ An array containing the PropertyInfo of each field in the exception.
+
+
+
+
+ Returns true if the typ is a representation of an F# union type or the runtime type of a value of that type
+
+ The type to check.
+ Optional flag that denotes accessibility of the private representation.
+
+ True if the type check succeeds.
+
+
+
+
+ Return true if the typ is a representation of an F# record type
+
+ The type to check.
+ Optional flag that denotes accessibility of the private representation.
+
+ True if the type check succeeds.
+
+
+
+
+ Gets the cases of a union type.
+
+ Assumes the given type is a union type. If not, is raised during pre-computation.
+
+ The input union type.
+ Optional flag that denotes accessibility of the private representation.
+
+ Thrown when the input type is not a union type.
+
+ An array of descriptions of the cases of the given union type.
+
+
+
+
+ Reads all the fields from a record value, in declaration order
+
+ Assumes the given input is a record value. If not, is raised.
+
+ The input record type.
+ Optional flag that denotes accessibility of the private representation.
+
+ An array of descriptions of the properties of the record type.
+
+
+
+
+ Reads all the fields from a value built using an instance of an F# exception declaration
+
+ Assumes the given input is an F# exception value. If not, is raised.
+
+ The exception instance.
+ Optional flag that denotes accessibility of the private representation.
+
+ Thrown when the input type is not an F# exception.
+
+ The fields from the given exception.
+
+
+
+
+ A method that constructs objects of the given case
+
+ The description of the union case.
+ Optional flag that denotes accessibility of the private representation.
+
+ The description of the constructor of the given union case.
+
+
+
+
+ Precompute a function for constructing a discriminated union value for a particular union case.
+
+ The description of the union case.
+ Optional flag that denotes accessibility of the private representation.
+
+ A function for constructing values of the given union case.
+
+
+
+
+ Precompute a function for reading all the fields for a particular discriminator case of a union type
+
+ Using the computed function will typically be faster than executing a corresponding call to GetFields
+
+ The description of the union case to read.
+ Optional flag that denotes accessibility of the private representation.
+
+ A function to for reading the fields of the given union case.
+
+
+
+
+ Precompute a property or static method for reading an integer representing the case tag of a union type.
+
+ The type of union to read.
+ Optional flag that denotes accessibility of the private representation.
+
+ The description of the union case reader.
+
+
+
+
+ Assumes the given type is a union type.
+ If not, is raised during pre-computation.
+
+ Using the computed function is more efficient than calling GetUnionCase
+ because the path executed by the computed function is optimized given the knowledge that it will be
+ used to read values of the given type.
+
+ The type of union to optimize reading.
+ Optional flag that denotes accessibility of the private representation.
+
+ An optimized function to read the tags of the given union type.
+
+
+
+
+ Identify the union case and its fields for an object
+
+ Assumes the given input is a union case value. If not, is raised.
+
+ If the type is not given, then the runtime type of the input object is used to identify the
+ relevant union type. The type should always be given if the input object may be null. For example,
+ option values may be represented using the 'null'.
+
+ The input union case.
+ The union type containing the value.
+ Optional flag that denotes accessibility of the private representation.
+
+ Thrown when the input type is not a union case value.
+
+ The description of the union case and its fields.
+
+
+
+
+ Create a union case value.
+
+ The description of the union case to create.
+ The array of arguments to construct the given case.
+ Optional flag that denotes accessibility of the private representation.
+
+ The constructed union case.
+
+
+
+
+ Get a ConstructorInfo for a record type
+
+ The record type.
+ Optional flag that denotes accessibility of the private representation.
+
+ A ConstructorInfo for the given record type.
+
+
+
+
+ Precompute a function for constructing a record value.
+
+ Assumes the given type is a RecordType.
+ If not, is raised during pre-computation.
+
+ The type of record to construct.
+ Optional flag that denotes accessibility of the private representation.
+
+ Thrown when the input type is not a record type.
+
+ A function to construct records of the given type.
+
+
+
+
+ Precompute a function for reading all the fields from a record. The fields are returned in the
+ same order as the fields reported by a call to Microsoft.FSharp.Reflection.Type.GetInfo for
+ this type.
+
+ Assumes the given type is a RecordType.
+ If not, is raised during pre-computation.
+
+ Using the computed function will typically be faster than executing a corresponding call to Value.GetInfo
+ because the path executed by the computed function is optimized given the knowledge that it will be
+ used to read values of the given type.
+
+ The type of record to read.
+ Optional flag that denotes accessibility of the private representation.
+
+ Thrown when the input type is not a record type.
+
+ An optimized reader for the given record type.
+
+
+
+
+ Reads all the fields from a record value.
+
+ Assumes the given input is a record value. If not, is raised.
+
+ The record object.
+ Optional flag that denotes accessibility of the private representation.
+
+ Thrown when the input type is not a record type.
+
+ The array of fields from the record.
+
+
+
+
+ Creates an instance of a record type.
+
+ Assumes the given input is a record type.
+
+ The type of record to make.
+ The array of values to initialize the record.
+ Optional flags that denotes accessibility of the private representation.
+
+ Thrown when the input type is not a record type.
+
+ The created record.
+
+
+
+
+ Defines further accessing additional information about F# types and F# values at runtime.
+
+
+
+ A record of options to control structural formatting.
+ For F# Interactive properties matching those of this value can be accessed via the 'fsi'
+ value.
+
+ Floating Point format given in the same format accepted by System.Double.ToString,
+ e.g. f6 or g15.
+
+ If ShowProperties is set the printing process will evaluate properties of the values being
+ displayed. This may cause additional computation.
+
+ The ShowIEnumerable is set the printing process will force the evaluation of IEnumerable objects
+ to a small, finite depth, as determined by the printing parameters.
+ This may lead to additional computation being performed during printing.
+
+
+
+
+ Data representing structured layouts of terms.
+
+
+
+
+ Convert any value to a layout using the given formatting options. The
+ layout can then be processed using formatting display engines such as
+ those in the Layout module. any_to_string and output_any are
+ built using any_to_layout with default format options.
+
+
+
+
+ For limiting layout of list-like sequences (lists,arrays,etc).
+ unfold a list of items using (project and z) making layout list via itemL.
+ If reach maxLength (before exhausting) then truncate.
+
+
+
+
+ See tagL
+
+
+
+
+ Layout like an F# list.
+
+
+
+
+ Layout like an F# option.
+
+
+
+
+ Layout list vertically.
+
+
+
+
+ Layout two vertically.
+
+
+
+
+ Form tuple of layouts.
+
+
+
+
+ Wrap braces around layout.
+
+
+
+
+ Wrap square brackets around layout.
+
+
+
+
+ Wrap round brackets around Layout.
+
+
+
+
+ Join layouts into a list separated using the given Layout.
+
+
+
+
+ Join layouts into a semi-colon separated list.
+
+
+
+
+ Join layouts into a space separated list.
+
+
+
+
+ Join layouts into a comma separated list.
+
+
+
+
+ Join broken with ident=4
+
+
+
+
+ Join broken with ident=3
+
+
+
+
+ Join broken with ident=2
+
+
+
+
+ Join broken with ident=1
+
+
+
+
+ Join broken with ident=0
+
+
+
+
+ optional break, indent=4
+
+
+
+
+ optional break, indent=3
+
+
+
+
+ Join, possible break with indent=2
+
+
+
+
+ Join, possible break with indent=1
+
+
+
+
+ Join, possible break with indent=0
+
+
+
+
+ Join, unbreakable.
+
+
+
+
+ An string which is left parenthesis (no space on the right).
+
+
+
+
+ An string which is right parenthesis (no space on the left).
+
+
+
+
+ An string which requires no spaces either side.
+
+
+
+
+ An string leaf
+
+
+
+
+ An uninterpreted leaf, to be interpreted into a string
+ by the layout engine. This allows leaf layouts for numbers, strings and
+ other atoms to be customized according to culture.
+
+
+
+
+ Is it the empty layout?
+
+
+
+
+ The empty layout
+
+
+
+
+ A layout is a sequence of strings which have been joined together.
+ The strings are classified as words, separators and left and right parenthesis.
+ This classification determines where spaces are inserted.
+ A joint is either unbreakable, breakable or broken.
+ If a joint is broken the RHS layout occurs on the next line with optional indentation.
+ A layout can be squashed to for given width which forces breaks as required.
+
+
+
+ Gets the raw expression associated with this type-carrying expression
+
+
+
+ open FSharp.Quotations
+
+ let expr1 = <@ 1 + 1 @>
+
+ expr1.Raw
+
+ Evaluates to the same quotation as <@ expr1 @> except with the weaker type Expr instead of Expr<int>.
+
+
+
+ Type-carrying quoted expressions. Expressions are generated either
+ by quotations in source text or programatically
+
+
+ Returns type of an expression.
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let sampleQuotation = <@ 1 + 1 @>
+
+ sampleQuotation.Type
+
+ Evaluates to typeof<int>.
+
+
+
+ Returns the custom attributes of an expression. For quotations deriving from quotation literals this may include the source location of the literal.
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let sampleQuotation = <@ 1 + 1 @>
+
+ sampleQuotation.CustomAttributes
+
+ Evaluates to a list of expressions containing one custom attribute for the source location of the quotation literal.
+
+
+
+ Builds an expression that represents a value and its associated reflected definition as a quotation
+
+ The untyped object.
+ The type of the object.
+ The definition of the value being quoted.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ Expr.WithValue(box 1, typeof<int>, <@ 2 - 1 @>)
+
+ Evaluates to a quotation that displays as WithValue (1, Call (None, op_Subtraction, [Value (2), Value (1)])).
+
+
+
+ Builds an expression that represents a value and its associated reflected definition as a quotation
+
+ The value being quoted.
+ The definition of the value being quoted.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ Expr.WithValue(1, <@ 2 - 1 @>)
+
+ Evaluates to a quotation that displays as WithValue (1, Call (None, op_Subtraction, [Value (2), Value (1)])).
+
+
+
+ Builds an expression that represents a while loop
+
+ The predicate to control the loop iteration.
+ The body of the while loop.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ let guardExpr = <@ true @>
+ let bodyExpr = <@ () @>
+
+ Expr.WhileLoop(guardExpr, bodyExpr)
+
+ Evaluates to a quotation with the same structure as <@ while true do () @>.
+
+
+
+ Builds an expression that represents setting a mutable variable
+
+ The input variable.
+ The value to set.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ let vVar = Var("v", typeof<int>, isMutable=true)
+
+ Expr.VarSet(vVar, <@ 5 @>)
+
+ Evaluates to a quotation displayed as VarSet (v, Value (5)).
+
+
+
+ Builds an expression that represents a variable
+
+ The input variable.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ let vVar = Var("v", typeof<int>)
+
+ Expr.Var(vVar)
+
+ Evaluates to a quotation displayed as v.
+
+
+
+ Builds an expression that represents a constant value of a particular type, arising from a variable of the given name
+
+ The untyped object.
+ The type of the object.
+ The name of the variable.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ Expr.ValueWithName(box 1, typeof<int>, "name")
+
+ Evaluates to a quotation with the same structure as <@ 1 @> and associated information that the name of the value is "name".
+
+
+
+ Builds an expression that represents a constant value, arising from a variable of the given name
+
+ The typed value.
+ The name of the variable.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ Expr.ValueWithName(1, "name")
+
+ Evaluates to a quotation with the same structure as <@ 1 @> and associated information that the name of the value is "name".
+
+
+
+ Builds an expression that represents a constant value
+
+ The typed value.
+
+
+
+ open FSharp.Quotations
+
+ Expr.Value(1)
+
+ Evaluates to a quotation with the same structure as <@ 1 @>.
+
+
+
+ Builds an expression that represents a constant value of a particular type
+
+ The untyped object.
+ The type of the object.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ Expr.Value(box 1, typeof<int>)
+
+ Evaluates to a quotation with the same structure as <@ 1 @>.
+
+
+
+ Builds an expression that represents a test of a value is of a particular union case
+
+ The expression to test.
+ The description of the union case.
+
+ The resulting expression.
+
+
+
+ open System
+ open FSharp.Quotations
+ open FSharp.Reflection
+
+ let ucCons = FSharpType.GetUnionCases(typeof<int list>)[1]
+
+ Expr.UnionCaseTest(<@ [11] @>, ucCons)
+
+ Evaluates to a quotation that displays as UnionCaseTest (NewUnionCase (Cons, Value (11), NewUnionCase (Empty)), Cons).
+
+
+
+ Builds an expression that represents a type test.
+
+ The expression to test.
+ The target type.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ let obj = box 1
+
+ Expr.TypeTest( <@ obj @>, typeof<int>)
+
+ Evaluates to quotation that displays as TypeTest (Int32, PropertyGet (None, obj, [])).
+
+
+
+ Builds an expression that represents getting a field of a tuple
+
+ The input tuple.
+ The index of the tuple element to get.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ let tupExpr = <@ (1, 2, 3) @>
+
+ Expr.TupleGet(tupExpr, 1)
+
+ Evaluates to quotation that displays as TupleGet (NewTuple (Value (1), Value (2), Value (3)), 1).
+
+
+
+ Builds an expression that represents a try/with construct for exception filtering and catching.
+
+ The body of the try expression.
+
+
+ The variable to bind to a caught exception.
+ The expression evaluated when an exception is caught.
+
+ The resulting expression.
+
+
+
+ open System
+ open FSharp.Quotations
+
+ let exnVar = Var("exn", typeof<exn>)
+
+ Expr.TryWith(<@ 1+1 @>, exnVar, <@ 1 @>, exnVar, <@ 2+2 @>)
+
+ Evaluates to a quotation with the same structure as <@ try 1+1 with exn -> 2+2 @>.
+
+
+
+ Try and find a stored reflection definition for the given method. Stored reflection
+ definitions are added to an F# assembly through the use of the [<ReflectedDefinition>] attribute.
+
+ The description of the method to find.
+
+ The reflection definition or None if a match could not be found.
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ [<ReflectedDefinition>]
+ let f x = x + 1
+
+ let methInfo =
+ match <@ f 1 @> with
+ | Call(_, mi, _) -> mi
+ | _ -> failwith "call expected"
+
+ Expr.TryGetReflectedDefinition(methInfo)
+
+ Evaluates to a quotation with the same structure as <@ fun x -> x + 1 @>, which is the implementation of the
+ method f.
+
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ [<ReflectedDefinition>]
+ module Methods =
+ let f x = (x, x)
+
+ let methInfoGeneric =
+ match <@ Methods.f (1, 2) @> with
+ | Call(_, mi, _) -> mi.GetGenericMethodDefinition()
+ | _ -> failwith "call expected"
+
+ let methInfoAtString = methInfoGeneric.MakeGenericMethod(typeof<string>)
+
+ Expr.TryGetReflectedDefinition(methInfoAtString)
+
+ Evaluates to a quotation with the same structure as <@ fun (x: string) -> (x, x) @>, which is the implementation of the
+ generic method f instanatiated at type string.
+
+
+
+ Builds an expression that represents a try/finally construct
+
+ The body of the try expression.
+ The final part of the expression to be evaluated.
+
+ The resulting expression.
+
+
+
+ open System
+ open FSharp.Quotations
+
+ Expr.TryFinally(<@ 1+1 @>, <@ Console.WriteLine("finally") @>)
+
+ Evaluates to a quotation with the same structure as <@ try 1+1 finally Console.WriteLine("finally") @>.
+
+
+
+ Format the expression as a string
+
+ Indicates if method, property, constructor and type objects should be printed in detail. If false, these are abbreviated to their name.
+
+ The formatted string.
+
+
+
+ open FSharp.Quotations
+
+ let expr1 = <@ 1 + 1 @>
+
+ expr1.ToString(true)
+
+ Evaluates "Call (None, Int32 op_Addition[Int32,Int32,Int32](Int32, Int32),[Value (1), Value (1)])".
+
+
+
+ Substitutes through the given expression using the given functions
+ to map variables to new values. The functions must give consistent results
+ at each application. Variable renaming may occur on the target expression
+ if variable capture occurs.
+
+ The function to map variables into expressions.
+
+ The expression with the given substitutions.
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let sampleQuotation = <@ fun v -> v * v @>
+
+ let v, body =
+ match sampleQuotation with
+ | Lambda(v, body) -> (v, body)
+ | _ -> failwith "unreachable"
+
+ body.Substitute(function v2 when v = v2 -> Some <@ 1 + 1 @> | _ -> None)
+
+ Evaluates to <@ (1 + 1) * (1 + 1)>.
+
+
+
+ Builds an expression that represents the sequential execution of one expression followed by another
+
+ The first expression.
+ The second expression.
+
+ The resulting expression.
+
+
+
+ open System
+ open FSharp.Quotations
+
+ Expr.Sequential(<@ Console.WriteLine("a") @>, <@ Console.WriteLine("b") @>)
+
+ Evaluates to a quotation with the same structure as <@ Console.WriteLine("a"); Console.WriteLine("b") @>.
+
+
+
+ Permits interactive environments such as F# Interactive
+ to explicitly register new pickled resources that represent persisted
+ top level definitions.
+
+ The assembly associated with the resource.
+ The unique name for the resources being added.
+ The type definitions referenced.
+ The serialized resource to register with the environment.
+
+
+
+ Permits interactive environments such as F# Interactive
+ to explicitly register new pickled resources that represent persisted
+ top level definitions.
+
+ The assembly associated with the resource.
+ The unique name for the resources being added.
+ The serialized resource to register with the environment.
+
+
+
+ Builds an expression that represents a nested typed quotation literal
+
+ The expression being quoted.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ Expr.QuoteTyped(<@ 1 @>)
+
+ Evaluates to a quotation with the same structure as <@ <@ 1 @> @>.
+
+
+
+ Builds an expression that represents a nested raw quotation literal
+
+ The expression being quoted.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ Expr.QuoteRaw(<@ 1 @>)
+
+ Evaluates to a quotation with the same structure as <@ <@ 1 @> @>.
+
+
+
+ Builds an expression that represents a nested typed or raw quotation literal
+
+ The expression being quoted.
+
+ The resulting expression.
+
+
+ Builds an expression that represents writing to a static property
+
+ The description of the property.
+ The value to set.
+ List of indices for the property if it is an indexed property.
+
+ The resulting expression.
+
+
+
+ open System
+ open System.Collections.Generic
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let propInfo =
+ match <@ Console.BackgroundColor <- ConsoleColor.Red @> with
+ | PropertySet(None, pi, _, _) -> pi
+ | _ -> failwith "property get expected"
+
+ Expr.PropertySet(propInfo, <@ ConsoleColor.Blue @>)
+
+ Evaluates to a quotation with the same structure as <@ Console.BackgroundColor <- ConsoleColor.Blue @>.
+
+
+
+ Builds an expression that represents writing to a property of an object
+
+ The input object.
+ The description of the property.
+ The value to set.
+ List of indices for the property if it is an indexed property.
+
+ The resulting expression.
+
+
+
+ open System
+ open System.Collections.Generic
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let propInfo =
+ match <@ (new List<int>()).Capacity @> with
+ | PropertyGet(Some _, pi, _) -> pi
+ | _ -> failwith "property get expected"
+
+ let objExpr = <@ (new List<int>()) @>
+
+ Expr.PropertySet(objExpr, propInfo, <@ 6 @>)
+
+ Evaluates to a quotation with the same structure as <@ (new List<int>()).Capacity <- 6 @>.
+
+
+
+ Builds an expression that represents reading a static property
+
+ The description of the property.
+ List of indices for the property if it is an indexed property.
+
+ The resulting expression.
+
+
+
+ open System
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let propInfo =
+ match <@ Console.Out @> with
+ | PropertyGet(None, pi, _) -> pi
+ | _ -> failwith "property get expected"
+
+ Expr.PropertyGet(propInfo)
+
+ Evaluates to a quotation with the same structure as <@ Console.Out @>.
+
+
+
+ Builds an expression that represents reading a property of an object
+
+ The input object.
+ The description of the property.
+ List of indices for the property if it is an indexed property.
+
+ The resulting expression.
+
+
+
+ open System
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let propInfo =
+ match <@ "a".Length @> with
+ | PropertyGet(Some _, pi, _) -> pi
+ | _ -> failwith "property get expected"
+
+ let objExpr = <@ "bb" @>
+
+ Expr.PropertyGet(objExpr, propInfo)
+
+ Evaluates to a quotation with the same structure as <@ "bb".Length @>.
+
+
+
+ Builds an expression that represents the creation of a union case value
+
+ The description of the union case.
+ The list of arguments for the case.
+
+ The resulting expression.
+
+
+
+ open System
+ open FSharp.Quotations
+ open FSharp.Reflection
+
+ let ucCons = FSharpType.GetUnionCases(typeof<int list>)[1]
+
+ Expr.NewUnionCase(ucCons, [ <@ 10 @>; <@ [11] @> ])
+
+ Evaluates to a quotation with the same structure as <@ 10 :: [11] @>.
+
+
+
+ Builds an expression that represents the creation of an F# tuple value
+
+ The list of elements of the tuple.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ Expr.NewTuple([ <@ 1 @>; <@ "a" @> ])
+
+ Evaluates to a quotation with the same structure as <@ (1, "a") @>.
+
+
+
+ Builds an expression that represents the creation of an F# tuple value
+
+ The list of elements of the tuple.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ Expr.NewStructTuple( [ <@ 1 @>; <@ "a" @> ])
+
+ Evaluates to a quotation with the same structure as <@ struct (1, "a") @>.
+
+
+
+ Builds an expression that represents the creation of an F# tuple value
+
+ Runtime assembly containing System.ValueTuple definitions.
+ The list of elements of the tuple.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ Expr.NewStructTuple(typeof<struct (int * int)>.Assembly, [ <@ 1 @>; <@ "a" @> ])
+
+ Evaluates to a quotation with the same structure as <@ struct (1, "a") @>.
+
+
+
+ Builds record-construction expressions
+
+ The type of record.
+ The list of elements of the record.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ type R = { Y: int; X: string }
+
+ Expr.NewRecord(typeof<R>, [ <@ 1 @>; <@ "a" @> ])
+
+ Evaluates to a quotation with the same structure as <@ { Y = 1; X = "a" } @>.
+
+
+
+ Builds an expression that represents the invocation of an object constructor
+
+ The description of the constructor.
+ The list of arguments to the constructor.
+
+ The resulting expression.
+
+
+
+ open System
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let ctorInfo =
+ match <@ new System.DateTime(100L) @> with
+ | NewObject(ci, _) -> ci
+ | _ -> failwith "call expected"
+
+ let argExpr = <@ 100000L @>
+
+ Expr.NewObject(ctorInfo, [argExpr])
+
+ Evaluates to a quotation with the same structure as <@ NewObject (DateTime, Value (100000L)) @>.
+
+
+
+ Builds an expression that represents the creation of a delegate value for the given type
+
+ The type of delegate.
+ The parameters for the delegate.
+ The body of the function.
+
+ The resulting expression.
+
+
+
+ open System
+ open FSharp.Quotations
+
+ let vVar = Var("v", typeof<int>)
+ let vExpr = Expr.Var(vVar)
+
+ Expr.NewDelegate(typeof<Func<int,int>>, [vVar], vExpr)
+
+ Evaluates to a quotation with the same structure as <@ new System.Func<int, int>(fun v -> v) @>.
+
+
+
+ Builds an expression that represents the creation of an array value initialized with the given elements
+
+ The type for the elements of the array.
+ The list of elements of the array.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ Expr.NewArray(typeof<int>, [ <@ 1 @>; <@ 2 @> ])
+
+ Evaluates to a quotation with the same structure as <@ [| 1; 2 |] @>.
+
+
+
+ Builds recursive expressions associated with 'let rec' constructs
+
+ The list of bindings for the let expression.
+ The sub-expression where the bindings are in scope.
+
+ The resulting expression.
+
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let fVar = Var("f", typeof<int -> int>)
+ let gVar = Var("v", typeof<int -> int>)
+ let fExpr = Expr.Var(fVar)
+ let gExpr = Expr.Var(gVar)
+ let fImplExpr = <@ fun x -> (%%gExpr : int -> int) (x - 1) + 1 @>
+ let gImplExpr = <@ fun x -> if x > 0 then (%%fExpr : int -> int) (x - 1) else 0 @>
+ let bodyExpr = <@ (%%gExpr : int -> int) 10 @>
+
+ Expr.LetRecursive([(fVar, fImplExpr); (gVar, gImplExpr)], bodyExpr)
+
+ Evaluates to a quotation with the same structure as <@ let rec f x = g (x-1) + 1 and g x = if x > 0 then f (x - 1) else 0 in g 10 @>.
+
+
+
+ Builds expressions associated with 'let' constructs
+
+ The variable in the let expression.
+ The expression bound to the variable.
+ The sub-expression where the binding is in scope.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ let vVar = Var("v", typeof<int>)
+ let rhsExpr = <@ 6 @>
+ let vExpr = Expr.Var(vVar)
+
+ Expr.Let(vVar, rhsExpr, vExpr)
+
+ Evaluates to a quotation with the same structure as <@ let v = 6 in v @>.
+
+
+
+ Builds an expression that represents the construction of an F# function value
+
+ The parameter to the function.
+ The body of the function.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let vVar = Var("v", typeof<int>)
+ let vExpr = Expr.Var(vVar)
+
+ Expr.Lambda(vVar, vExpr)
+
+ Evaluates to Lambda (v, v).
+
+
+
+ Builds 'if ... then ... else' expressions.
+
+ The condition expression.
+ The then sub-expression.
+ The else sub-expression.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ let guardExpr = <@ 1 > 3 @>
+ let thenExpr = <@ 6 @>
+ let elseExpr = <@ 7 @>
+
+ Expr.IfThenElse(guardExpr, thenExpr, elseExpr)
+
+ Evaluates to a quotation with the same structure as <@ if 1 > 3 then 6 else 7 @>.
+
+
+
+ Fetches or creates a new variable with the given name and type from a global pool of shared variables
+ indexed by name and type. The type is given by the explicit or inferred type parameter
+
+ The variable name.
+
+ The created of fetched typed global variable.
+
+
+
+ open FSharp.Quotations
+
+ let expr1 = Expr.GlobalVar<int>("x")
+ let expr2 = Expr.GlobalVar<int>("x")
+
+ Evaluates expr1 and expr2 to identical quotations.
+
+
+
+ Gets the free expression variables of an expression as a list.
+ A sequence of the free variables in the expression.
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let sampleQuotation = <@ fun v -> v * v @>
+
+ let v, body =
+ match sampleQuotation with
+ | Lambda(v, body) -> (v, body)
+ | _ -> failwith "unreachable"
+
+ body.GetFreeVars()
+
+ Evaluates to a set containing the single variable for v
+
+
+
+ Builds a 'for i = ... to ... do ...' expression that represent loops over integer ranges
+
+ The sub-expression declaring the loop variable.
+ The sub-expression setting the initial value of the loop variable.
+ The sub-expression declaring the final value of the loop variable.
+ The sub-expression representing the body of the loop.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ let loopVariable = Var("x", typeof<int>)
+ let startExpr = <@ 6 @>
+ let endExpr = <@ 7 @>
+ let body = <@ System.Console.WriteLine("hello") @>
+
+ Expr.ForIntegerRangeLoop(loopVariable, startExpr, endExpr, body)
+
+ Evaluates to a quotation with the same structure as <@ for x in 6..7 do System.Console.WriteLine("hello") @>.
+
+
+
+ Builds an expression that represents writing to a field of an object
+
+ The input object.
+ The description of the field to write to.
+ The value to set to the field.
+
+ The resulting expression.
+
+ Create an expression setting a reference cell via the public backing field:
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let fieldInfo = typeof<int ref>.GetField("contents@")
+ let refValue = ref 3
+ let refExpr = <@ refValue @>
+ let valueExpr = <@ 6 @>
+
+ Expr.FieldSet(refExpr, fieldInfo, valueExpr)
+
+ Evaluates to FieldSet (Some (PropertyGet (None, refValue, [])), contents@, Value (6)).
+ Note that for technical reasons the quotation <@ refValue.contents <- 6 @> evaluates to a slightly different quotation
+ accessing the contents field via a property.
+
+
+
+ Builds an expression that represents writing to a static field
+
+ The description of the field to write to.
+ The value to the set to the field.
+
+ The resulting expression.
+
+ Settable public static fields are rare in F# and .NET libraries, so examples of using this method are uncommon.
+
+
+ Builds an expression that represents the access of a field of an object
+
+ The input object.
+ The description of the field to access.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let fieldInfo = typeof<int ref>.GetField("contents@")
+ let refValue = ref 3
+ let refExpr = <@ refValue @>
+
+ Expr.FieldGet(refExpr, fieldInfo)
+
+ Evaluates to FieldGet (Some (PropertyGet (None, refValue, [])), contents@).
+ Note that for technical reasons the quotation <@ refValue.contents @> evaluates to a different quotation
+ accessing the contents field via a property.
+
+
+
+ Builds an expression that represents the access of a static field
+
+ The description of the field to access.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let fieldInfo = typeof<System.DayOfWeek>.GetField("Monday")
+
+ Expr.FieldGet(fieldInfo)
+
+ Evaluates to FieldGet (None, Monday). Note that for technical reasons the quotation <@ System.DayOfWeek.Monday @> evaluates to a different quotation containing a constant enum value Value (Monday).
+
+
+
+ This function is called automatically when quotation syntax (<@ @>) and other sources of
+ quotations are used.
+
+ A type in the assembly where the quotation occurs.
+ The type definitions referenced.
+ The spliced types, to replace references to type variables.
+ The spliced expressions to replace references to spliced expressions.
+ The serialized form of the quoted expression.
+
+ The resulting expression.
+
+
+ This function is called automatically when quotation syntax (<@ @>) and other sources of
+ quotations are used.
+
+ A type in the assembly where the quotation occurs.
+ The spliced types, to replace references to type variables.
+ The spliced expressions to replace references to spliced expressions.
+ The serialized form of the quoted expression.
+
+ The resulting expression.
+
+
+ Builds an expression that represents the invocation of a default object constructor
+
+ The type on which the constructor is invoked.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ Expr.DefaultValue(typeof<int>)
+
+ Evaluates to the quotation DefaultValue (Int32).
+
+
+
+ Builds an expression that represents the coercion of an expression to a type
+
+ The expression to coerce.
+ The target type.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ let expr = <@ box "3" @>
+
+ Expr.Coerce(expr, typeof<string>)
+
+ Evaluates to a quotation with the same structure as <@ (fun x -> x + 1) 3 @>.
+
+
+
+ Returns a new typed expression given an underlying runtime-typed expression.
+ A type annotation is usually required to use this function, and
+ using an incorrect type annotation may result in a later runtime exception.
+
+ The expression to cast.
+
+ The resulting typed expression.
+
+
+
+ open FSharp.Quotations
+
+ let rawExpr = <@ 1 @>
+
+ Expr.Cast<int>(rawExpr)
+
+ Evaluates with type Expr<int>.
+
+
+
+ Builds an expression that represents a call to an instance method associated with an object, potentially passing additional witness arguments
+
+ The input object.
+ The description of the method to call.
+ The additional MethodInfo describing the method to call, accepting witnesses.
+ The list of witnesses to the method.
+ The list of arguments to the method.
+
+ The resulting expression.
+
+ See examples for Call and CallWithWitnesses
+
+
+ Builds an expression that represents a call to an static method or module-bound function, potentially passing additional witness arguments
+
+ The MethodInfo describing the method to call.
+ The additional MethodInfo describing the method to call, accepting witnesses.
+ The list of witnesses to the method.
+ The list of arguments to the method.
+
+ The resulting expression.
+
+ In this example, we show how to use a witness to cosntruct an `op_Addition` call for a type that doesn't support addition directly:
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ // Get the entrypoint for inline addition that takes an explicit witness
+ let addMethInfoG, addMethInfoGW =
+ match <@ 1+1 @> with
+ | CallWithWitnesses(None, mi, miW, _, _) ->
+ mi.GetGenericMethodDefinition(), miW.GetGenericMethodDefinition()
+ | _ ->
+ failwith "call expected"
+
+ // Make a non-standard witness for addition for a type C
+
+ type C(value: int) =
+ member x.Value = value
+
+ let witnessExpr = <@ (fun (x: C) (y: C) -> C(x.Value + y.Value)) @>
+ let argExpr1 = <@ C(4) @>
+ let argExpr2 = <@ C(5) @>
+
+ // Instantiate the generic method at the right type
+
+ let addMethInfo = addMethInfoG.MakeGenericMethod(typeof<C>, typeof<C>, typeof<C>)
+ let addMethInfoW = addMethInfoGW.MakeGenericMethod(typeof<C>, typeof<C>, typeof<C>)
+
+ Expr.CallWithWitnesses(addMethInfo, addMethInfoW, [witnessExpr], [argExpr1; argExpr2])
+
+ Evaluates to a quotation with the same structure as <@ Call (None, op_Addition, [NewObject (C, Value (4)), NewObject (C, Value (5))]) @>.
+
+
+
+ Builds an expression that represents a call to an instance method associated with an object
+
+ The input object.
+ The description of the method to call.
+ The list of arguments to the method.
+
+ The resulting expression.
+
+
+
+ open System
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let objExpr, methInfo =
+ match <@ Console.Out.WriteLine("1") @> with
+ | Call(Some obj, mi, _) -> obj, mi
+ | _ -> failwith "call expected"
+
+ let argExpr = <@ "Hello World" @>
+
+ Expr.Call(objExpr, methInfo, [argExpr])
+
+ Evaluates to a quotation with the same structure as <@ Console.Out.WriteLine("Hello World") @>.
+
+
+
+ Builds an expression that represents a call to an static method or module-bound function
+
+ The MethodInfo describing the method to call.
+ The list of arguments to the method.
+
+ The resulting expression.
+
+
+
+ open System
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let methInfo =
+ match <@ Console.WriteLine("1") @> with
+ | Call(_, mi, _) -> mi
+ | _ -> failwith "call expected"
+
+ let argExpr = <@ "Hello World" @>
+
+ Expr.Call(methInfo, [argExpr])
+
+ Evaluates to a quotation with the same structure as <@ Console.WriteLine("Hello World") @>.
+
+
+
+ Builds an expression that represents the application of a first class function value to multiple arguments
+
+ The function to apply.
+ The list of lists of arguments to the function.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ let funcExpr = <@ (fun (x, y) z -> x + y + z) @>
+ let curriedArgExprs = [[ <@ 1 @>; <@ 2 @> ]; [ <@ 3 @> ]]
+
+ Expr.Applications(funcExpr, curriedArgExprs)
+
+ Evaluates to a quotation with the same structure as <@ (fun (x, y) z -> x + y + z) (1,2) 3 @>.
+
+
+
+ Builds an expression that represents the application of a first class function value to a single argument.
+
+ The function to apply.
+ The argument to the function.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ let funcExpr = <@ (fun x -> x + 1) @>
+ let argExpr = <@ 3 @>
+
+ Expr.Application(funcExpr, argExpr)
+
+ Evaluates to a quotation with the same structure as <@ (fun x -> x + 1) 3 @>.
+
+
+
+ Builds an expression that represents setting the value held at a particular address.
+
+ The target expression.
+ The value to set at the address.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ let array = [| 1; 2; 3 |]
+
+ let addrExpr = Expr.AddressOf(<@ array.[1] @>)
+
+ Expr.AddressSet(addrExpr, <@ 4 @>)
+
+ Evaluates to AddressSet (AddressOf (Call (None, GetArray, [PropertyGet (None, array, []), Value (1)])), Value (4)).
+
+
+
+ Builds an expression that represents getting the address of a value.
+
+ The target expression.
+
+ The resulting expression.
+
+
+
+ open FSharp.Quotations
+
+ let array = [| 1; 2; 3 |]
+
+ Expr.AddressOf(<@ array.[1] @>)
+
+ Evaluates to AddressOf (Call (None, GetArray, [PropertyGet (None, array, []), Value (1)])).
+
+
+
+ Quoted expressions annotated with System.Type values.
+
+
+ The type associated with the variable
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ match <@ fun v -> v @> with
+ | Lambda(v, body) -> v.Type
+ | _ -> failwith "unreachable"
+
+ Evaluates to typeof<int>
+
+
+
+ The declared name of the variable
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ match <@ fun v -> v @> with
+ | Lambda(v, body) -> v.Name
+ | _ -> failwith "unreachable"
+
+ Evaluates to "v"
+
+
+
+ Indicates if the variable represents a mutable storage location
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ match <@ fun v -> v @> with
+ | Lambda(v, body) -> v.IsMutable
+ | _ -> failwith "unreachable"
+
+ Evaluates to false.
+
+
+
+ Fetches or create a new variable with the given name and type from a global pool of shared variables
+ indexed by name and type
+
+ The name of the variable.
+ The type associated with the variable.
+
+ The retrieved or created variable.
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let valueVar1 = Var.Global("value", typeof<int>)
+ let valueVar2 = Var.Global("value", typeof<int>)
+
+ Evaluates both to valueVar1 and valueVar2 to the same variable from a global pool of shared variables.
+
+
+
+ Creates a new variable with the given name, type and mutability
+
+ The declared name of the variable.
+ The type associated with the variable.
+ Indicates if the variable represents a mutable storage location. Default is false.
+
+ The created variable.
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+
+ let valueVar = Var("value"), typeof<int>)
+
+ Evaluates to a new quotation variable with the given name and type.
+
+
+
+ Information at the binding site of a variable
+
+
+ Library functionality for F# quotations.
+ See also F# Code Quotations in the F# Language Guide.
+
+
+
+ Re-build combination expressions. The first parameter should be an object
+ returned by the ShapeCombination case of the active pattern in this module.
+
+ The input shape.
+ The list of arguments.
+
+ The rebuilt expression.
+
+
+
+
+ An active pattern that performs a complete decomposition viewing the expression tree as a binding structure
+
+ The input expression.
+
+ The decomposed Var, Lambda, or ConstApp.
+
+
+
+
+ Active patterns for traversing, visiting, rebuilding and transforming expressions in a generic way
+
+
+ An active pattern to recognize property setters that have an associated ReflectedDefinition
+
+ The description of the property.
+
+ The expression of the method definition if found, or None.
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+ open FSharp.Quotations.DerivedPatterns
+
+ [<ReflectedDefinition>]
+ type C<'T>() =
+ member x.Count with set (v: int) = ()
+
+ let inpExpr = <@ C<int>().Count <- 3 @>
+
+ let implExpr =
+ match inpExpr with
+ | PropertySet(Some _, PropertySetterWithReflectedDefinition implExpr, [], _valueExpr) -> implExpr
+ | _ -> failwith "unexpected"
+
+ Evaluates implExpr to a quotation with the same structure as <@ fun (x: C<int>) (v: int) -> () @>, which is the implementation of the
+ setter for the property Count. Note that the correct generic instantaition has been applied to the implementation to reflect
+ the the type at the callsite.
+
+
+
+
+ An active pattern to recognize property getters or values in modules that have an associated ReflectedDefinition
+
+ The description of the property.
+
+ The expression of the method definition if found, or None.
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+ open FSharp.Quotations.DerivedPatterns
+
+ [<ReflectedDefinition>]
+ type C<'T>() =
+ member x.Identity = x
+
+ let inpExpr = <@ C<int>().Identity @>
+
+ let implExpr =
+ match inpExpr with
+ | PropertyGet(Some _, PropertyGetterWithReflectedDefinition implExpr, [ ]) -> implExpr
+ | _ -> failwith "unexpected"
+
+ Evaluates implExpr to a quotation with the same structure as <@ fun (x: C<int>) () -> x @>, which is the implementation of the
+ property Identity. Note that the correct generic instantaition has been applied to the implementation to reflect
+ the the type at the callsite.
+
+
+
+
+ An active pattern to recognize methods that have an associated ReflectedDefinition
+
+ The description of the method.
+
+ The expression of the method definition if found, or None.
+
+
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+ open FSharp.Quotations.DerivedPatterns
+
+ [<ReflectedDefinition>]
+ let f x = (x, x)
+
+ let inpExpr = <@ f 4 @>
+
+ let implExpr =
+ match inpExpr with
+ | Call(None, MethodWithReflectedDefinition implExpr, [ _argExpr ]) -> implExpr
+ | _ -> failwith "unexpected"
+
+ Evaluates implExpr to a quotation with the same structure as <@ fun (x: int) -> (x, x) @>, which is the implementation of the
+ method f. Note that the correct generic instantaition has been applied to the implementation to reflect
+ the the type at the callsite.
+
+
+
+
+ A parameterized active pattern to recognize calls to a specified function or method.
+ The returned elements are the optional target object (present if the target is an
+ instance method), the generic type instantiation (non-empty if the target is a generic
+ instantiation), and the arguments to the function or method.
+
+ The input template expression to specify the method to call.
+
+ The optional target object (present if the target is an
+ instance method), the generic type instantiation (non-empty if the target is a generic
+ instantiation), and the arguments to the function or method.
+
+ Match a specific call to Console.WriteLine taking one string argument:
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+ open FSharp.Quotations.DerivedPatterns
+
+ let inpExpr = <@ Console.WriteLine("hello") @>
+
+ match inpExpr with
+ | SpecificCall <@ Console.WriteLine("1") @> (None, [], [ argExpr ]) -> argExpr
+ | _ -> failwith "unexpected"
+
+ Evaluates to a quotation with the same structure as <@ "hello" @>.
+
+
+ Calls to this active pattern can be partially applied to pre-evaluate some aspects of the matching. For example:
+
+ open FSharp.Quotations
+ open FSharp.Quotations.Patterns
+ open FSharp.Quotations.DerivedPatterns
+
+ let (|ConsoleWriteLineOneArg|_|) = (|SpecificCall|_|) <@ Console.WriteLine("1") @>
+
+ let inpExpr = <@ Console.WriteLine("hello") @>
+
+ match inpExpr with
+ | ConsoleWriteLineOneArg (None, [], [ argExpr ]) -> argExpr
+ | _ -> failwith "unexpected"
+
+ Evaluates to a quotation with the same structure as <@ "hello" @>.
+
+
+
+ An active pattern to recognize constant decimal expressions
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constant value from the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ 8.0M @> with
+ | Decimal v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to 8.0M.
+
+
+
+ An active pattern to recognize constant unsigned int64 expressions
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constant value from the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ 8UL @> with
+ | UInt64 v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to 8UL.
+
+
+
+ An active pattern to recognize constant int64 expressions
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constant value from the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ 8L @> with
+ | Int64 v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to 8L.
+
+
+
+ An active pattern to recognize constant unsigned int32 expressions
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constant value from the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ 8u @> with
+ | UInt32 v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to 8u.
+
+
+
+ An active pattern to recognize constant int32 expressions
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constant value from the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ 8 @> with
+ | Int32 v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to 8.
+
+
+
+ An active pattern to recognize constant unsigned int16 expressions
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constant value from the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ 8us @> with
+ | UInt16 v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to 8us.
+
+
+
+ An active pattern to recognize constant int16 expressions
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constant value from the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ 8s @> with
+ | Int16 v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to 8s.
+
+
+
+ An active pattern to recognize constant byte expressions
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constant value from the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ 8uy @> with
+ | Byte v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to 8uy.
+
+
+
+ An active pattern to recognize constant signed byte expressions
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constant value from the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ 8y @> with
+ | SByte v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to 8y.
+
+
+
+ An active pattern to recognize constant unicode character expressions
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constant value from the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ 'a' @> with
+ | Char v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to 'a'.
+
+
+
+ An active pattern to recognize constant 64-bit floating point number expressions
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constant value from the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ 1.0 @> with
+ | Double v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to 1.0.
+
+
+
+ An active pattern to recognize constant 32-bit floating point number expressions
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constant value from the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ 1.0f @> with
+ | Single v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to 1.0f.
+
+
+
+ An active pattern to recognize constant string expressions
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constant value from the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ "a" @> with
+ | String v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to "a".
+
+
+
+ An active pattern to recognize constant boolean expressions
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constant value from the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ true @> with
+ | Bool v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to true.
+
+
+
+ An active pattern to recognize () constant expressions
+
+ The input expression to match against.
+
+ When successful, the pattern does not bind any results
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ () @> with
+ | Unit v -> v
+ | _ -> failwith "unexpected"
+
+ Evaluates to true.
+
+
+
+ An active pattern to recognize expressions of the form a || b
+
+ The input expression to match against.
+
+ When successful, the pattern binds the left and right parts of the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ true || false @> with
+ | OrElse (a, b) -> (a, b)
+ | _ -> failwith "unexpected"
+
+ Evaluates to <@ true @>, <@ false @>.
+
+
+
+ An active pattern to recognize expressions of the form a && b
+
+ The input expression to match against.
+
+ When successful, the pattern binds the left and right parts of the input expression
+
+
+
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ true && false @> with
+ | AndAlso (a, b) -> (a, b)
+ | _ -> failwith "unexpected"
+
+ Evaluates to <@ true @>, <@ false @>.
+
+
+
+ An active pattern to recognize expressions that represent the application of a (possibly curried or tupled) first class function value
+
+ The input expression to match against.
+
+ When successful, the pattern binds the function and curried arguments of the input expression
+
+
+
+ open FSharp.Quotations.Patterns
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ (fun f -> f (1, 2) 3) @> with
+ | Lambda(_, Applications (f, curriedArgs)) ->
+ curriedArgs |> List.map (fun args -> args.Length)
+ | _ -> failwith "unexpected"
+
+ Evaluates to [2; 1].
+
+
+
+ An active pattern to recognize expressions that represent a (possibly curried or tupled) first class function value
+
+ The input expression to match against.
+
+ When successful, the pattern binds the curried variables and body of the input expression
+
+
+
+ open FSharp.Quotations.Patterns
+ open FSharp.Quotations.DerivedPatterns
+
+ match <@ (fun (a1, a2) b -> ()) @> with
+ | Lambdas(curriedVars, _) ->
+ curriedVars |> List.map (List.map (fun arg -> arg.Name))
+ | _ -> failwith "unexpected"
+
+ Evaluates to [["a1"; "a2"]; ["b"]].
+
+
+
+ Contains a set of derived F# active patterns to analyze F# expression objects
+
+
+ An active pattern to recognize expressions that represent setting a mutable variable
+
+ The input expression to match against.
+
+ When successful, the pattern binds the variable and value expression of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent a variable
+
+ The input expression to match against.
+
+ When successful, the pattern binds the variable of the input expression
+
+
+
+
+ An active pattern to recognize expressions that are a value with an associated definition
+
+ The input expression to match against.
+
+ When successful, the pattern binds the boxed value, its static type and its definition
+
+
+
+
+ An active pattern to recognize expressions that represent a constant value
+
+ The input expression to match against.
+
+ When successful, the pattern binds the boxed value, its static type and its name
+
+
+
+
+ An active pattern to recognize expressions that represent a constant value. This also matches expressions matched by ValueWithName.
+
+ The input expression to match against.
+
+ When successful, the pattern binds the boxed value and its static type
+
+
+
+
+ An active pattern to recognize expressions that represent a test if a value is of a particular union case
+
+ The input expression to match against.
+
+ When successful, the pattern binds the expression and union case being tested
+
+
+
+
+ An active pattern to recognize expressions that represent a dynamic type test
+
+ The input expression to match against.
+
+ When successful, the pattern binds the expression and type being tested
+
+
+
+
+ An active pattern to recognize expressions that represent getting a tuple field
+
+ The input expression to match against.
+
+ When successful, the pattern binds the expression and tuple field being accessed
+
+
+
+
+ An active pattern to recognize expressions that represent a try/finally construct
+
+ The input expression to match against.
+
+ When successful, the pattern binds the body and handler parts of the try/finally expression
+
+
+
+
+ An active pattern to recognize expressions that represent a try/with construct for exception filtering and catching
+
+ The input expression to match against.
+
+ When successful, the pattern binds the body, exception variable, filter expression and catch expression of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent sequential execution of one expression followed by another
+
+ The input expression to match against.
+
+ When successful, the pattern binds the two sub-expressions of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent a nested typed quotation literal
+
+ The input expression to match against.
+
+ When successful, the pattern binds the nested quotation expression of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent a nested raw quotation literal
+
+ The input expression to match against.
+
+ When successful, the pattern binds the nested quotation expression of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent a nested quotation literal
+
+ The input expression to match against.
+
+ When successful, the pattern binds the nested quotation expression of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent setting a static or instance property, or a non-function value declared in a module
+
+ The input expression to match against.
+
+ When successful, the pattern binds the object, property, indexer arguments and setter value of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent the read of a static or instance property, or a non-function value declared in a module
+
+ The input expression to match against.
+
+ When successful, the pattern binds the object, property and indexer arguments of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent construction of struct tuple values
+
+ The input expression to match against.
+
+ When successful, the pattern binds the element expressions of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent construction of tuple values
+
+ The input expression to match against.
+
+ When successful, the pattern binds the element expressions of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent construction of particular union case values
+
+ The input expression to match against.
+
+ When successful, the pattern binds the union case and field values of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent construction of record values
+
+ The input expression to match against.
+
+ When successful, the pattern binds the record type and field values of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent invocation of object constructors
+
+ The input expression to match against.
+
+ When successful, the pattern binds the constructor and arguments of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent construction of delegate values
+
+ The input expression to match against.
+
+ When successful, the pattern binds the delegate type, argument parameters and body of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent invocations of a default constructor of a struct
+
+ The input expression to match against.
+
+ When successful, the pattern binds the relevant type of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent the construction of arrays
+
+ The input expression to match against.
+
+ When successful, the pattern binds the element type and values of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent recursive let bindings of one or more variables
+
+ The input expression to match against.
+
+ When successful, the pattern binds the bindings and body of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent let bindings
+
+ The input expression to match against.
+
+ When successful, the pattern binds the variable, binding expression and body of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent first class function values
+
+ The input expression to match against.
+
+ When successful, the pattern binds the variable and body of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent conditionals
+
+ The input expression to match against.
+
+ When successful, the pattern binds the condition, then-branch and else-branch of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent while loops
+
+ The input expression to match against.
+
+ When successful, the pattern binds the guard and body of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent loops over integer ranges
+
+ The input expression to match against.
+
+ When successful, the pattern binds the value, start, finish and body of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent setting a static or instance field
+
+ The input expression to match against.
+
+ When successful, the pattern binds the object, field and value of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent getting a static or instance field
+
+ The input expression to match against.
+
+ When successful, the pattern binds the object and field of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent coercions from one type to another
+
+ The input expression to match against.
+
+ When successful, the pattern binds the source expression and target type of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent calls to static and instance methods, and functions defined in modules, including witness arguments
+
+ The input expression to match against.
+
+ When successful, the pattern binds the object, method, witness-argument and argument sub-expressions of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent calls to static and instance methods, and functions defined in modules
+
+ The input expression to match against.
+
+ When successful, the pattern binds the object, method and argument sub-expressions of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent applications of first class function values
+
+ The input expression to match against.
+
+ When successful, the pattern binds the function and argument of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent setting the value held at an address
+
+ The input expression to match against.
+
+ When successful, the pattern binds the target and value expressions of the input expression
+
+
+
+
+ An active pattern to recognize expressions that represent getting the address of a value
+
+ The input expression to match against.
+
+ When successful, the pattern binds the sub-expression of the input AddressOf expression
+
+
+
+
+ Contains a set of primitive F# active patterns to analyze F# expression objects
+
+
+ Copies a block of memory to a specified destination address starting from a specified source address until a specified byte count of (count * sizeof<'T>).
+
+ The destination pointer.
+ The source pointer.
+ The source pointer.
+
+
+
+
+ Copies a value to a specified destination address from a specified source address.
+
+ The destination pointer.
+ The source pointer.
+
+
+
+
+ Initializes a specified block of memory starting at a specific address to a given byte count and initial byte value.
+
+ The input pointer.
+ The initial byte value.
+ The total repeat count of the byte value.
+
+
+
+
+ Clears the value stored at the location of a given native pointer.
+
+ The input pointer.
+
+
+
+
+ Tests whether the given native pointer is null.
+
+ The input pointer.
+
+ Whether the given native pointer is null.
+
+
+
+
+ Gets the null native pointer.
+
+ The null native pointer.
+
+
+
+
+ Allocates a region of memory on the stack.
+
+ The number of objects of type T to allocate.
+
+ A typed pointer to the allocated memory.
+
+
+
+
+ Assigns the value into the memory location referenced by the typed native
+ pointer computed by adding index * sizeof<'T> to the given input pointer.
+
+ The input pointer.
+ The index by which to offset the pointer.
+ The value to assign.
+
+
+
+
+ Assigns the value into the memory location referenced by the given typed native pointer.
+
+ The input pointer.
+ The value to assign.
+
+
+
+
+ Dereferences the given typed native pointer.
+
+ The input pointer.
+
+ The value at the pointer address.
+
+
+
+
+ Dereferences the typed native pointer computed by adding index * sizeof<'T> to the
+ given input pointer.
+
+ The input pointer.
+ The index by which to offset the pointer.
+
+ The value at the pointer address.
+
+
+
+
+ Returns a typed native pointer by adding index * sizeof<'T> to the
+ given input pointer.
+
+ The input pointer.
+ The index by which to offset the pointer.
+
+ A typed pointer.
+
+
+
+
+ Converts a given typed native pointer to a managed pointer.
+
+ The typed native pointer.
+
+ The managed pointer.
+
+
+
+
+ Returns a Common IL (Intermediate Language) signature pointer for a given typed native pointer.
+
+ The typed native pointer.
+
+ A Common IL signature pointer.
+
+
+
+
+ Returns a typed native pointer for a Common IL (Intermediate Language) signature pointer.
+
+ The Common IL signature pointer.
+
+ A typed native pointer.
+
+
+
+
+ Returns an untyped native pointer for a given typed native pointer.
+
+ The typed native pointer.
+
+ An untyped native pointer.
+
+
+
+
+ Returns a typed native pointer for a untyped native pointer.
+
+ The untyped native pointer.
+
+ A typed native pointer.
+
+
+
+
+ Returns a machine address for a given typed native pointer.
+
+ The typed native pointer.
+
+ The machine address.
+
+
+
+
+ Returns a typed native pointer for a given machine address.
+
+ The machine address.
+
+ A typed native pointer.
+
+
+
+
+ Contains operations on native pointers. Use of these operators may
+ result in the generation of unverifiable code.
+
+
+ Library functionality for native interopability. See
+ also F# External Functions in
+ the F# Language Guide.
+
+
+
+ First-class listening points (i.e. objects that permit you to register a callback
+ activated when the event is triggered).
+
+ Events and Observables
+
+
+ A delegate type associated with the F# event type IEvent<_>
+
+ The object that fired the event.
+ The event arguments.
+
+ Events and Observables
+
+
+ First class event values for CLI events conforming to CLI Framework standards.
+
+ Events and Observables
+
+
+ Remove a listener delegate from an event listener store.
+
+ The delegate to be removed from the event listener store.
+
+
+
+
+ Connect a handler delegate object to the event. A handler can
+ be later removed using RemoveHandler. The listener will
+ be invoked when the event is fired.
+
+ A delegate to be invoked when the event is fired.
+
+
+
+
+ First class event values for arbitrary delegate types.
+
+ F# gives special status to member properties compatible with type IDelegateEvent and
+ tagged with the CLIEventAttribute. In this case the F# compiler generates appropriate
+ CLI metadata to make the member appear to other CLI languages as a CLI event.
+
+ Events and Observables
+
+
+ The type of delayed computations.
+
+ Use the values in the Lazy module to manipulate
+ values of this type, and the notation lazy expr to create values
+ of type .
+
+ Lazy Computation
+
+
+ Publishes the event as a first class value.
+
+
+
+
+ Triggers the event using the given parameters.
+
+ The event parameters.
+
+
+
+
+ Creates an observable object.
+ The created event.
+
+
+
+
+ Event implementations for the IEvent<_> type.
+
+ Events and Observables
+
+
+ Publishes the event as a first class event value.
+
+
+
+
+ Triggers the event using the given sender object and parameters. The sender object may be null.
+
+ The object triggering the event.
+ The parameters for the event.
+
+
+
+
+ Creates an event object suitable for delegate types following the standard .NET Framework convention of a first 'sender' argument.
+ The created event.
+
+
+
+
+ Event implementations for a delegate types following the standard .NET Framework convention of a first 'sender' argument.
+
+ Events and Observables
+
+
+ Publishes the event as a first class event value.
+
+
+
+
+ Triggers the event using the given parameters.
+ The parameters for the event.
+
+
+
+
+ Creates an event object suitable for implementing an arbitrary type of delegate.
+ The event object.
+
+
+
+
+ Event implementations for an arbitrary type of delegate.
+
+ Events and Observables
+
+
+ Creates an asynchronous computation that just returns ().
+
+ A cancellation check is performed when the computation is executed.
+
+ The existence of this method permits the use of empty else branches in the
+ async { ... } computation expression syntax.
+ An asynchronous computation that returns ().
+
+
+
+
+ Creates an asynchronous computation that runs computation repeatedly
+ until guard() becomes false.
+
+ A cancellation check is performed whenever the computation is executed.
+
+ The existence of this method permits the use of while in the
+ async { ... } computation expression syntax.
+
+ The function to determine when to stop executing computation.
+ The function to be executed. Equivalent to the body
+ of a while expression.
+
+ An asynchronous computation that behaves similarly to a while loop when run.
+
+
+
+
+ Creates an asynchronous computation that runs binder(resource).
+ The action resource.Dispose() is executed as this computation yields its result
+ or if the asynchronous computation exits by an exception or by cancellation.
+
+ A cancellation check is performed when the computation is executed.
+
+ The existence of this method permits the use of use and use! in the
+ async { ... } computation expression syntax.
+
+ The resource to be used and disposed.
+ The function that takes the resource and returns an asynchronous
+ computation.
+
+ An asynchronous computation that binds and eventually disposes resource.
+
+
+
+
+ Creates an asynchronous computation that runs computation and returns its result.
+ If an exception happens then catchHandler(exn) is called and the resulting computation executed instead.
+
+ A cancellation check is performed when the computation is executed.
+
+ The existence of this method permits the use of try/with in the
+ async { ... } computation expression syntax.
+
+ The input computation.
+ The function to run when computation throws an exception.
+
+ An asynchronous computation that executes computation and calls catchHandler if an
+ exception is thrown.
+
+
+
+
+ Creates an asynchronous computation that runs computation. The action compensation is executed
+ after computation completes, whether computation exits normally or by an exception. If compensation raises an exception itself
+ the original exception is discarded and the new exception becomes the overall result of the computation.
+
+ A cancellation check is performed when the computation is executed.
+
+ The existence of this method permits the use of try/finally in the
+ async { ... } computation expression syntax.
+
+ The input computation.
+ The action to be run after computation completes or raises an
+ exception (including cancellation).
+
+ An asynchronous computation that executes computation and compensation afterwards or
+ when an exception is raised.
+
+
+
+
+ Delegates to the input computation.
+
+ The existence of this method permits the use of return! in the
+ async { ... } computation expression syntax.
+
+ The input computation.
+
+ The input computation.
+
+
+
+
+ Creates an asynchronous computation that returns the result v.
+
+ A cancellation check is performed when the computation is executed.
+
+ The existence of this method permits the use of return in the
+ async { ... } computation expression syntax.
+
+ The value to return from the computation.
+
+ An asynchronous computation that returns value when executed.
+
+
+
+
+ Creates an asynchronous computation that enumerates the sequence seq
+ on demand and runs body for each element.
+
+ A cancellation check is performed on each iteration of the loop.
+
+ The existence of this method permits the use of for in the
+ async { ... } computation expression syntax.
+
+ The sequence to enumerate.
+ A function to take an item from the sequence and create
+ an asynchronous computation. Can be seen as the body of the for expression.
+
+ An asynchronous computation that will enumerate the sequence and run body
+ for each element.
+
+
+
+
+ Creates an asynchronous computation that runs generator.
+
+ A cancellation check is performed when the computation is executed.
+
+ The function to run.
+
+ An asynchronous computation that runs generator.
+
+
+
+
+ Creates an asynchronous computation that first runs computation1
+ and then runs computation2, returning the result of computation2.
+
+ A cancellation check is performed when the computation is executed.
+
+ The existence of this method permits the use of expression sequencing in the
+ async { ... } computation expression syntax.
+
+ The first part of the sequenced computation.
+ The second part of the sequenced computation.
+
+ An asynchronous computation that runs both of the computations sequentially.
+
+
+
+
+ Creates an asynchronous computation that runs computation, and when
+ computation generates a result T, runs binder res.
+
+ A cancellation check is performed when the computation is executed.
+
+ The existence of this method permits the use of let! in the
+ async { ... } computation expression syntax.
+
+ The computation to provide an unbound result.
+ The function to bind the result of computation.
+
+ An asynchronous computation that performs a monadic bind on the result
+ of computation.
+
+
+
+
+
+ Generate an object used to build asynchronous computations using F# computation expressions. The value
+ 'async' is a pre-defined instance of this type.
+
+ A cancellation check is performed when the computation is executed.
+
+
+
+ The type of the async operator, used to build workflows for asynchronous computations.
+
+ Async Programming
+
+
+ The F# compiler emits calls to this function to implement F# async expressions.
+
+ A value indicating asynchronous execution.
+
+
+
+
+ The F# compiler emits calls to this function to implement F# async expressions.
+
+ A value indicating asynchronous execution.
+
+
+
+
+
+ Used by MailboxProcessor
+
+
+
+ The F# compiler emits calls to this function to implement F# async expressions.
+
+ A value indicating asynchronous execution.
+
+
+
+
+ The F# compiler emits calls to this function to implement F# async expressions.
+
+
+
+
+ The F# compiler emits calls to this function to implement F# async expressions.
+
+ A value indicating asynchronous execution.
+
+
+
+
+
+ Used by MailboxProcessor
+
+
+
+ The F# compiler emits references to this type to implement F# async expressions.
+
+ Async Internals
+
+
+ The F# compiler emits references to this type to implement F# async expressions.
+
+ Async Internals
+
+
+ Gets the default cancellation token for executing asynchronous computations.
+
+ The default CancellationToken.
+
+ Cancellation and Exceptions
+
+
+
+ Async.DefaultCancellationToken.Register(fun () -> printfn "Computation Cancelled") |> ignore
+ let primes = [ 2; 3; 5; 7; 11 ]
+
+ for i in primes do
+ async {
+ do! Async.Sleep(i * 1000)
+ printfn $"{i}"
+ }
+ |> Async.Start
+
+ Thread.Sleep(6000)
+ Async.CancelDefaultToken()
+ printfn "Tasks Finished"
+
+ This will print "2" 2 seconds from start, "3" 3 seconds from start, "5" 5 seconds from start, cease computation and then
+ print "Computation Cancelled", followed by "Tasks Finished".
+
+
+
+ Creates an asynchronous computation that returns the CancellationToken governing the execution
+ of the computation.
+
+ In async { let! token = Async.CancellationToken ...} token can be used to initiate other
+ asynchronous operations that will cancel cooperatively with this workflow.
+
+ An asynchronous computation capable of retrieving the CancellationToken from a computation
+ expression.
+
+ Cancellation and Exceptions
+
+
+
+
+ Creates an asynchronous computation that executes computation.
+ If this computation is cancelled before it completes then the computation generated by
+ running compensation is executed.
+
+ The input asynchronous computation.
+ The function to be run if the computation is cancelled.
+
+ An asynchronous computation that runs the compensation if the input computation
+ is cancelled.
+
+ Cancellation and Exceptions
+
+
+
+ let primes = [ 2; 3; 5; 7; 11 ]
+ for i in primes do
+ Async.TryCancelled(
+ async {
+ do! Async.Sleep(i * 1000)
+ printfn $"{i}"
+ },
+ fun oce -> printfn $"Computation Cancelled: {i}")
+ |> Async.Start
+
+ Thread.Sleep(6000)
+ Async.CancelDefaultToken()
+ printfn "Tasks Finished"
+
+ This will print "2" 2 seconds from start, "3" 3 seconds from start, "5" 5 seconds from start, cease computation
+ and then print "Computation Cancelled: 7", "Computation Cancelled: 11" and "Tasks Finished" in any order.
+
+
+
+ Creates an asynchronous computation that queues a work item that runs
+ its continuation.
+
+ A computation that generates a new work item in the thread pool.
+
+ Threads and Contexts
+
+
+
+ async {
+ do! Async.SwitchToNewThread()
+ do! someLongRunningComputation()
+ do! Async.SwitchToThreadPool()
+
+ for i in 1 .. 10 do
+ do! someShortRunningComputation()
+ } |> Async.StartImmediate
+
+ This will run someLongRunningComputation() without blocking the threads in the threadpool, and then switch to the
+ threadpool for shorter computations.
+
+
+
+ Creates an asynchronous computation that creates a new thread and runs
+ its continuation in that thread.
+
+ A computation that will execute on a new thread.
+
+ Threads and Contexts
+
+
+
+ async {
+ do! Async.SwitchToNewThread()
+ do! someLongRunningComputation()
+ } |> Async.StartImmediate
+
+ This will run someLongRunningComputation() without blocking the threads in the threadpool.
+
+
+
+ Creates an asynchronous computation that runs
+ its continuation using syncContext.Post. If syncContext is null
+ then the asynchronous computation is equivalent to SwitchToThreadPool().
+
+ The synchronization context to accept the posted computation.
+
+ An asynchronous computation that uses the syncContext context to execute.
+
+ Threads and Contexts
+
+
+
+
+
+
+
+ Runs an asynchronous computation, starting immediately on the current operating system
+ thread. Call one of the three continuations when the operation completes.
+
+ If no cancellation token is provided then the default cancellation token
+ is used.
+
+ The asynchronous computation to execute.
+ The function called on success.
+ The function called on exception.
+ The function called on cancellation.
+ The CancellationToken to associate with the computation.
+ The default is used if this parameter is not provided.
+
+ Starting Async Computations
+
+
+
+
+ Runs an asynchronous computation, starting immediately on the current operating system
+ thread, but also returns the execution as
+
+
+ If no cancellation token is provided then the default cancellation token is used.
+ You may prefer using this method if you want to achive a similar behviour to async await in C# as
+ async computation starts on the current thread with an ability to return a result.
+
+
+ The asynchronous computation to execute.
+ The CancellationToken to associate with the computation.
+ The default is used if this parameter is not provided.
+
+ A that will be completed
+ in the corresponding state once the computation terminates (produces the result, throws exception or gets canceled)
+
+ Starting Async Computations
+
+
+
+ printfn "A"
+
+ let t =
+ async {
+ printfn "B"
+ do! Async.Sleep(1000)
+ printfn "C"
+ } |> Async.StartImmediateAsTask
+
+ printfn "D"
+ t.Wait()
+ printfn "E"
+
+ Prints "A", "B", "D" immediately, then "C", "E" in 1 second.
+
+
+
+ Runs an asynchronous computation, starting immediately on the current operating system
+ thread.
+
+ If no cancellation token is provided then the default cancellation token is used.
+
+ The asynchronous computation to execute.
+ The CancellationToken to associate with the computation.
+ The default is used if this parameter is not provided.
+
+ Starting Async Computations
+
+
+
+ printfn "A"
+
+ async {
+ printfn "B"
+ do! Async.Sleep(1000)
+ printfn "C"
+ } |> Async.StartImmediate
+
+ printfn "D"
+
+ Prints "A", "B", "D" immediately, then "C" in 1 second
+
+
+
+ Creates an asynchronous computation which starts the given computation as a
+
+ Starting Async Computations
+
+
+
+
+ Starts a child computation within an asynchronous workflow.
+ This allows multiple asynchronous computations to be executed simultaneously.
+
+ This method should normally be used as the immediate
+ right-hand-side of a let! binding in an F# asynchronous workflow, that is,
+
+ async { ...
+ let! completor1 = childComputation1 |> Async.StartChild
+ let! completor2 = childComputation2 |> Async.StartChild
+ ...
+ let! result1 = completor1
+ let! result2 = completor2
+ ... }
+
+
+ When used in this way, each use of StartChild starts an instance of childComputation
+ and returns a completor object representing a computation to wait for the completion of the operation.
+ When executed, the completor awaits the completion of childComputation.
+
+ The child computation.
+ The timeout value in milliseconds. If one is not provided
+ then the default value of -1 corresponding to .
+
+ A new computation that waits for the input computation to finish.
+
+ Cancellation and Exceptions
+
+
+
+
+ let computeWithTimeout timeout =
+ async {
+ let! completor1 =
+ Async.StartChild(
+ (async {
+ do! Async.Sleep(1000)
+ return 1
+ }),
+ millisecondsTimeout = timeout)
+
+ let! completor2 =
+ Async.StartChild(
+ (async {
+ do! Async.Sleep(2000)
+ return 2
+ }),
+ millisecondsTimeout = timeout)
+
+ let! v1 = completor1
+ let! v2 = completor2
+ printfn $"Result: {v1 + v2}"
+ } |> Async.RunSynchronously
+
+ Will throw a System.TimeoutException if called with a timeout less than 2000, otherwise will print "Result: 3".
+
+
+
+ Executes a computation in the thread pool.
+
+ If no cancellation token is provided then the default cancellation token is used.
+
+ A that will be completed
+ in the corresponding state once the computation terminates (produces the result, throws exception or gets canceled)
+
+ Starting Async Computations
+
+
+
+ printfn "A"
+
+ let t =
+ async {
+ printfn "B"
+ do! Async.Sleep(1000)
+ printfn "C"
+ } |> Async.StartAsTask
+
+ printfn "D"
+ t.Wait()
+ printfn "E"
+
+ Prints "A", then "D", "B" quickly in any order, then "C", "E" in 1 second.
+
+
+
+ Starts the asynchronous computation in the thread pool. Do not await its result.
+
+ If no cancellation token is provided then the default cancellation token is used.
+
+ The computation to run asynchronously.
+ The cancellation token to be associated with the computation.
+ If one is not supplied, the default cancellation token is used.
+
+ Starting Async Computations
+
+
+
+ printfn "A"
+
+ async {
+ printfn "B"
+ do! Async.Sleep(1000)
+ printfn "C"
+ } |> Async.Start
+
+ printfn "D"
+
+ Prints "A", then "D", "B" quickly in any order, and then "C" in 1 second.
+
+
+
+
+
+ Creates an asynchronous computation that will sleep for the given time. This is scheduled
+ using a System.Threading.Timer object. The operation will not block operating system threads
+ for the duration of the wait.
+
+
+ The amount of time to sleep.
+
+ An asynchronous computation that will sleep for the given time.
+
+ Thrown when the due time is negative.
+
+ Awaiting Results
+
+
+
+ async {
+ printfn "A"
+ do! Async.Sleep(TimeSpan(0, 0, 1))
+ printfn "B"
+ } |> Async.Start
+ printfn "C"
+
+ Prints "C", then "A" quickly, and then "B" 1 second later.
+
+
+
+
+ Creates an asynchronous computation that will sleep for the given time. This is scheduled
+ using a System.Threading.Timer object. The operation will not block operating system threads
+ for the duration of the wait.
+
+
+ The number of milliseconds to sleep.
+
+ An asynchronous computation that will sleep for the given time.
+
+ Thrown when the due time is negative
+ and not infinite.
+
+ Awaiting Results
+
+
+
+ async {
+ printfn "A"
+ do! Async.Sleep(1000)
+ printfn "B"
+ } |> Async.Start
+
+ printfn "C"
+
+ Prints "C" and "A" quickly in any order, and then "B" 1 second later
+
+
+
+ Creates an asynchronous computation that executes all the given asynchronous computations sequentially.
+
+ If all child computations succeed, an array of results is passed to the success continuation.
+
+ If any child computation raises an exception, then the overall computation will trigger an
+ exception, and cancel the others.
+
+ The overall computation will respond to cancellation while executing the child computations.
+ If cancelled, the computation will cancel any remaining child computations but will still wait
+ for the other child computations to complete.
+
+ A sequence of distinct computations to be run in sequence.
+
+ A computation that returns an array of values from the sequence of input computations.
+
+ Composing Async Computations
+
+
+
+ let primes = [ 2; 3; 5; 7; 10; 11 ]
+ let computations =
+ [ for i in primes do
+ async {
+ do! Async.Sleep(System.Random().Next(1000, 2000))
+
+ if i % 2 > 0 then
+ printfn $"{i}"
+ return true
+ else
+ return false
+ }
+ ]
+
+ let t =
+ Async.Sequential(computations)
+ |> Async.StartAsTask
+
+ t.Wait()
+ printfn $"%A{t.Result}"
+
+ This will print "3", "5", "7", "11" with ~1-2 seconds between them except for pauses where even numbers would be and then
+ prints [| false; true; true; true; false; true |].
+
+
+
+ Runs the asynchronous computation and await its result.
+
+ If an exception occurs in the asynchronous computation then an exception is re-raised by this
+ function.
+
+ If no cancellation token is provided then the default cancellation token is used.
+
+ The computation is started on the current thread if is null,
+ has
+ of true, and no timeout is specified. Otherwise the computation is started by queueing a new work item in the thread pool,
+ and the current thread is blocked awaiting the completion of the computation.
+
+ The timeout parameter is given in milliseconds. A value of -1 is equivalent to
+ .
+
+
+ The computation to run.
+ The amount of time in milliseconds to wait for the result of the
+ computation before raising a . If no value is provided
+ for timeout then a default of -1 is used to correspond to .
+ The cancellation token to be associated with the computation.
+ If one is not supplied, the default cancellation token is used.
+
+ The result of the computation.
+
+ Starting Async Computations
+
+
+
+ printfn "A"
+
+ let result = async {
+ printfn "B"
+ do! Async.Sleep(1000)
+ printfn "C"
+ 17
+ } |> Async.RunSynchronously
+
+ printfn "D"
+
+ Prints "A", "B" immediately, then "C", "D" in 1 second. result is set to 17.
+
+
+
+ Creates an asynchronous computation that executes all the given asynchronous computations,
+ initially queueing each as work items and using a fork/join pattern.
+
+ If all child computations succeed, an array of results is passed to the success continuation.
+
+ If any child computation raises an exception, then the overall computation will trigger an
+ exception, and cancel the others.
+
+ The overall computation will respond to cancellation while executing the child computations.
+ If cancelled, the computation will cancel any remaining child computations but will still wait
+ for the other child computations to complete.
+
+ A sequence of distinct computations to be parallelized.
+ The maximum degree of parallelism in the parallel execution.
+
+ A computation that returns an array of values from the sequence of input computations.
+
+ Composing Async Computations
+
+
+
+ let primes = [ 2; 3; 5; 7; 10; 11 ]
+ let computations =
+ [ for i in primes do
+ async {
+ do! Async.Sleep(System.Random().Next(1000, 2000))
+
+ return
+ if i % 2 > 0 then
+ printfn $"{i}"
+ true
+ else
+ false
+ } ]
+
+ let t =
+ Async.Parallel(computations, maxDegreeOfParallelism=3)
+ |> Async.StartAsTask
+
+ t.Wait()
+ printfn $"%A{t.Result}"
+
+ This will print "3", "5" (in any order) in 1-2 seconds, and then "7", "11" (in any order) in 1-2 more seconds and then
+ [| false; true; true; true; false; true |].
+
+
+
+ Creates an asynchronous computation that executes all the given asynchronous computations,
+ initially queueing each as work items and using a fork/join pattern.
+
+ If all child computations succeed, an array of results is passed to the success continuation.
+
+ If any child computation raises an exception, then the overall computation will trigger an
+ exception, and cancel the others.
+
+ The overall computation will respond to cancellation while executing the child computations.
+ If cancelled, the computation will cancel any remaining child computations but will still wait
+ for the other child computations to complete.
+
+ A sequence of distinct computations to be parallelized.
+
+ A computation that returns an array of values from the sequence of input computations.
+
+ Composing Async Computations
+
+
+
+ let primes = [ 2; 3; 5; 7; 10; 11 ]
+ let t =
+ [ for i in primes do
+ async {
+ do! Async.Sleep(System.Random().Next(1000, 2000))
+
+ if i % 2 > 0 then
+ printfn $"{i}"
+ return true
+ else
+ return false
+ }
+ ]
+ |> Async.Parallel
+ |> Async.StartAsTask
+
+ t.Wait()
+ printfn $"%A{t.Result}"
+
+ This will print "3", "5", "7", "11" (in any order) in 1-2 seconds and then [| false; true; true; true; false; true |].
+
+
+
+ Generates a scoped, cooperative cancellation handler for use within an asynchronous workflow.
+
+ For example,
+ async { use! holder = Async.OnCancel interruption ... }
+ generates an asynchronous computation where, if a cancellation happens any time during
+ the execution of the asynchronous computation in the scope of holder, then action
+ interruption is executed on the thread that is performing the cancellation. This can
+ be used to arrange for a computation to be asynchronously notified that a cancellation
+ has occurred, e.g. by setting a flag, or deregistering a pending I/O action.
+
+ The function that is executed on the thread performing the
+ cancellation.
+
+ An asynchronous computation that triggers the interruption if it is cancelled
+ before being disposed.
+
+ Cancellation and Exceptions
+
+
+
+ let primes = [ 2; 3; 5; 7; 11 ]
+ for i in primes do
+ async {
+ use! holder = Async.OnCancel(fun () -> printfn $"Computation Cancelled: {i}")
+ do! Async.Sleep(i * 1000)
+ printfn $"{i}"
+ }
+ |> Async.Start
+
+ Thread.Sleep(6000)
+ Async.CancelDefaultToken()
+ printfn "Tasks Finished"
+
+ This will print "2" 2 seconds from start, "3" 3 seconds from start, "5" 5 seconds from start, cease computation
+ and then print "Computation Cancelled: 7", "Computation Cancelled: 11" and "Tasks Finished" in any order.
+
+
+
+ Creates an asynchronous computation that runs the given computation and ignores
+ its result.
+
+ The input computation.
+
+ A computation that is equivalent to the input computation, but disregards the result.
+
+ Composing Async Computations
+
+
+
+ let readFile filename numBytes =
+ async {
+ use file = System.IO.File.OpenRead(filename)
+ printfn "Reading from file %s." filename
+ // Throw away the data being read.
+ do! file.AsyncRead(numBytes) |> Async.Ignore
+ }
+ readFile "example.txt" 42 |> Async.Start
+
+ Reads bytes from a given file asynchronously and then ignores the result, allowing the do! to be used with functions
+ that return an unwanted value.
+
+
+
+ Creates an asynchronous computation that captures the current
+ success, exception and cancellation continuations. The callback must
+ eventually call exactly one of the given continuations.
+
+ The function that accepts the current success, exception, and cancellation
+ continuations.
+
+ An asynchronous computation that provides the callback with the current continuations.
+
+ Composing Async Computations
+
+
+
+ let someRiskyBusiness() =
+ match DateTime.Today with
+ | dt when dt.DayOfWeek = DayOfWeek.Monday -> failwith "Not compatible with Mondays"
+ | dt -> dt
+
+ let computation =
+ (fun (successCont, exceptionCont, cancellationCont) ->
+ try
+ someRiskyBusiness () |> successCont
+ with
+ | :? OperationCanceledException as oce -> cancellationCont oce
+ | e -> exceptionCont e)
+ |> Async.FromContinuations
+
+ Async.StartWithContinuations(
+ computation,
+ (fun result -> printfn $"Result: {result}"),
+ (fun e -> printfn $"Exception: {e}"),
+ (fun oce -> printfn $"Cancelled: {oce}")
+ )
+
+ This anonymous function will call someRiskyBusiness() and properly use the provided continuations
+ defined to report the outcome.
+
+
+
+ Creates an asynchronous computation in terms of a Begin/End pair of actions in
+ the style used in .NET 2.0 APIs.
+
+ The computation will respond to cancellation while waiting for the completion
+ of the operation. If a cancellation occurs, and cancelAction is specified, then it is
+ executed, and the computation continues to wait for the completion of the operation.
+
+ If cancelAction is not specified, then cancellation causes the computation
+ to stop immediately, and subsequent invocations of the callback are ignored.
+
+ The first argument for the operation.
+ The second argument for the operation.
+ The third argument for the operation.
+ The function initiating a traditional CLI asynchronous operation.
+ The function completing a traditional CLI asynchronous operation.
+ An optional function to be executed when a cancellation is requested.
+
+ An asynchronous computation wrapping the given Begin/End functions.
+
+ Legacy .NET Async Interoperability
+
+
+
+
+
+ Creates an asynchronous computation in terms of a Begin/End pair of actions in
+ the style used in .NET 2.0 APIs.
+
+ The computation will respond to cancellation while waiting for the completion
+ of the operation. If a cancellation occurs, and cancelAction is specified, then it is
+ executed, and the computation continues to wait for the completion of the operation.
+
+ If cancelAction is not specified, then cancellation causes the computation
+ to stop immediately, and subsequent invocations of the callback are ignored.
+
+ The first argument for the operation.
+ The second argument for the operation.
+ The function initiating a traditional CLI asynchronous operation.
+ The function completing a traditional CLI asynchronous operation.
+ An optional function to be executed when a cancellation is requested.
+
+ An asynchronous computation wrapping the given Begin/End functions.
+
+ Legacy .NET Async Interoperability
+
+
+
+
+
+ Creates an asynchronous computation in terms of a Begin/End pair of actions in
+ the style used in .NET 2.0 APIs.
+
+
+ The computation will respond to cancellation while waiting for the completion
+ of the operation. If a cancellation occurs, and cancelAction is specified, then it is
+ executed, and the computation continues to wait for the completion of the operation.
+
+ If cancelAction is not specified, then cancellation causes the computation
+ to stop immediately, and subsequent invocations of the callback are ignored.
+
+
+ The argument for the operation.
+ The function initiating a traditional CLI asynchronous operation.
+ The function completing a traditional CLI asynchronous operation.
+ An optional function to be executed when a cancellation is requested.
+
+ An asynchronous computation wrapping the given Begin/End functions.
+
+ Legacy .NET Async Interoperability
+
+
+
+
+
+ Creates an asynchronous computation in terms of a Begin/End pair of actions in
+ the style used in CLI APIs.
+
+
+
+ The computation will respond to cancellation while waiting for the completion
+ of the operation. If a cancellation occurs, and cancelAction is specified, then it is
+ executed, and the computation continues to wait for the completion of the operation.
+
+ If cancelAction is not specified, then cancellation causes the computation
+ to stop immediately, and subsequent invocations of the callback are ignored.
+
+ The function initiating a traditional CLI asynchronous operation.
+ The function completing a traditional CLI asynchronous operation.
+ An optional function to be executed when a cancellation is requested.
+
+ An asynchronous computation wrapping the given Begin/End functions.
+
+ Legacy .NET Async Interoperability
+
+
+
+
+
+ Creates an asynchronous computation that executes all given asynchronous computations in parallel,
+ returning the result of the first succeeding computation (one whose result is 'Some x').
+ If all child computations complete with None, the parent computation also returns None.
+
+
+
+ If any child computation raises an exception, then the overall computation will trigger an
+ exception, and cancel the others.
+
+ The overall computation will respond to cancellation while executing the child computations.
+ If cancelled, the computation will cancel any remaining child computations but will still wait
+ for the other child computations to complete.
+
+
+ A sequence of computations to be parallelized.
+
+ A computation that returns the first succeeding computation.
+
+ Composing Async Computations
+
+
+
+ printfn "Starting"
+ let primes = [ 2; 3; 5; 7 ]
+ let computations =
+ [ for i in primes do
+ async {
+ do! Async.Sleep(System.Random().Next(1000, 2000))
+ return if i % 2 > 0 then Some(i) else None
+ }
+ ]
+
+ computations
+ |> Async.Choice
+ |> Async.RunSynchronously
+ |> function
+ | Some (i) -> printfn $"{i}"
+ | None -> printfn "No Result"
+
+ Prints one randomly selected odd number in 1-2 seconds. If the list is changed to all even numbers, it will
+ instead print "No Result".
+
+
+
+
+ let primes = [ 2; 3; 5; 7 ]
+ let computations =
+ [ for i in primes do
+ async {
+ do! Async.Sleep(System.Random().Next(1000, 2000))
+
+ return
+ if i % 2 > 0 then
+ Some(i)
+ else
+ failwith $"Even numbers not supported: {i}"
+ }
+ ]
+
+ computations
+ |> Async.Choice
+ |> Async.RunSynchronously
+ |> function
+ | Some (i) -> printfn $"{i}"
+ | None -> printfn "No Result"
+
+ Will sometimes print one randomly selected odd number, sometimes throw System.Exception("Even numbers not supported: 2").
+
+
+
+ Creates an asynchronous computation that executes computation.
+ If this computation completes successfully then return Choice1Of2 with the returned
+ value. If this computation raises an exception before it completes then return Choice2Of2
+ with the raised exception.
+
+ The input computation that returns the type T.
+
+ A computation that returns a choice of type T or exception.
+
+ Cancellation and Exceptions
+
+
+
+ let someRiskyBusiness() =
+ match DateTime.Today with
+ | dt when dt.DayOfWeek = DayOfWeek.Monday -> failwith "Not compatible with Mondays"
+ | dt -> dt
+
+ async { return someRiskyBusiness() }
+ |> Async.Catch
+ |> Async.RunSynchronously
+ |> function
+ | Choice1Of2 result -> printfn $"Result: {result}"
+ | Choice2Of2 e -> printfn $"Exception: {e}"
+
+ Prints the returned value of someRiskyBusiness() or the exception if there is one.
+
+
+
+ Raises the cancellation condition for the most recent set of asynchronous computations started
+ without any specific CancellationToken. Replaces the global CancellationTokenSource with a new
+ global token source for any asynchronous computations created after this point without any
+ specific CancellationToken.
+
+ Cancellation and Exceptions
+
+
+
+ let primes = [ 2; 3; 5; 7; 11 ]
+
+ let computations =
+ [ for i in primes do
+ async {
+ do! Async.Sleep(i * 1000)
+ printfn $"{i}"
+ }
+ ]
+
+ try
+ let t =
+ Async.Parallel(computations, 3) |> Async.StartAsTask
+
+ Thread.Sleep(6000)
+ Async.CancelDefaultToken()
+ printfn $"Tasks Finished: %A{t.Result}"
+ with
+ | :? System.AggregateException as ae -> printfn $"Tasks Not Finished: {ae.Message}"
+
+ This will print "2" 2 seconds from start, "3" 3 seconds from start, "5" 5 seconds from start, cease computation and
+ then print "Tasks Not Finished: One or more errors occurred. (A task was canceled.)".
+
+
+
+ Creates an asynchronous computation that will wait on the given WaitHandle.
+
+ The computation returns true if the handle indicated a result within the given timeout.
+
+ The WaitHandle that can be signalled.
+ The timeout value in milliseconds. If one is not provided
+ then the default value of -1 corresponding to .
+
+ An asynchronous computation that waits on the given WaitHandle.
+
+ Awaiting Results
+
+
+
+
+ Return an asynchronous computation that will wait for the given task to complete and return
+ its result.
+
+ The task to await.
+
+ If an exception occurs in the asynchronous computation then an exception is re-raised by this
+ function.
+
+ If the task is cancelled then is raised. Note
+ that the task may be governed by a different cancellation token to the overall async computation
+ where the AwaitTask occurs. In practice you should normally start the task with the
+ cancellation token returned by let! ct = Async.CancellationToken, and catch
+ any at the point where the
+ overall async is started.
+
+
+ Awaiting Results
+
+
+
+
+ Return an asynchronous computation that will wait for the given task to complete and return
+ its result.
+
+ The task to await.
+
+ If an exception occurs in the asynchronous computation then an exception is re-raised by this
+ function.
+
+ If the task is cancelled then is raised. Note
+ that the task may be governed by a different cancellation token to the overall async computation
+ where the AwaitTask occurs. In practice you should normally start the task with the
+ cancellation token returned by let! ct = Async.CancellationToken, and catch
+ any at the point where the
+ overall async is started.
+
+
+ Awaiting Results
+
+
+
+
+ Creates an asynchronous computation that will wait on the IAsyncResult.
+
+ The computation returns true if the handle indicated a result within the given timeout.
+
+ The IAsyncResult to wait on.
+ The timeout value in milliseconds. If one is not provided
+ then the default value of -1 corresponding to .
+
+ An asynchronous computation that waits on the given IAsyncResult.
+
+ Awaiting Results
+
+
+
+
+ Creates an asynchronous computation that waits for a single invocation of a CLI
+ event by adding a handler to the event. Once the computation completes or is
+ cancelled, the handler is removed from the event.
+
+ The computation will respond to cancellation while waiting for the event. If a
+ cancellation occurs, and cancelAction is specified, then it is executed, and
+ the computation continues to wait for the event.
+
+ If cancelAction is not specified, then cancellation causes the computation
+ to cancel immediately.
+
+ The event to handle once.
+ An optional function to execute instead of cancelling when a
+ cancellation is issued.
+
+ An asynchronous computation that waits for the event to be invoked.
+
+ Awaiting Results
+
+
+
+
+ Creates three functions that can be used to implement the .NET 1.0 Asynchronous
+ Programming Model (APM) for a given asynchronous computation.
+
+ A function generating the asynchronous computation to split into the traditional
+ .NET Asynchronous Programming Model.
+
+ A tuple of the begin, end, and cancel members.
+
+ Legacy .NET Async Interoperability
+
+
+
+
+ Holds static members for creating and manipulating asynchronous computations.
+
+
+ See also F# Language Guide - Async Workflows.
+
+
+ Async Programming
+
+
+
+ An asynchronous computation, which, when run, will eventually produce a value of type T, or else raises an exception.
+
+
+
+ This type has no members. Asynchronous computations are normally specified either by using an async expression
+ or the static methods in the type.
+
+ See also F# Language Guide - Async Workflows.
+
+
+
+ Library functionality for asynchronous programming, events and agents. See also
+ Asynchronous Programming,
+ Events and
+ Lazy Expressions in the
+ F# Language Guide.
+
+
+ Async Programming
+
+
+
+ The entry point for the dynamic implementation of the corresponding operation. Do not use directly, only used when executing quotations that involve tasks or other reflective execution of F# code.
+
+
+
+
+ Hosts the task code in a state machine and starts the task, executing in the threadpool using Task.Run
+
+
+
+
+ Contains methods to build tasks using the F# computation expression syntax
+
+
+
+
+ The entry point for the dynamic implementation of the corresponding operation. Do not use directly, only used when executing quotations that involve tasks or other reflective execution of F# code.
+
+
+
+
+ Hosts the task code in a state machine and starts the task.
+
+
+
+
+ Contains methods to build tasks using the F# computation expression syntax
+
+
+
+
+ Specifies a unit of task code which produces no result
+
+
+
+
+ Specifies the iterative execution of a unit of task code.
+
+
+
+
+ Specifies a unit of task code which excuted using try/with semantics
+
+
+
+
+ Specifies a unit of task code which excuted using try/finally semantics
+
+
+
+
+ Specifies a unit of task code which returns a value
+
+
+
+
+ Specifies the iterative execution of a unit of task code.
+
+
+
+
+ Specifies the delayed execution of a unit of task code.
+
+
+
+
+ Specifies the sequential composition of two units of task code.
+
+
+
+
+ Contains methods to build tasks using the F# computation expression syntax
+
+
+
+
+ A special compiler-recognised delegate type for specifying blocks of task code
+ with access to the state machine.
+
+
+
+
+ Represents the runtime continuation of a task state machine created dynamically
+
+
+
+
+ This is used by the compiler as a template for creating state machine structs
+
+
+
+
+ Holds the MethodBuilder for the state machine
+
+
+
+
+ Holds the final result of the state machine
+
+
+
+
+ The extra data stored in ResumableStateMachine for tasks
+
+
+
+ Raises a timeout exception if a message not received in this amount of time. By default
+ no timeout is used.
+
+
+
+
+ Occurs when the execution of the agent results in an exception.
+
+
+
+
+ Occurs when the execution of the agent results in an exception.
+
+
+
+
+ Raises a timeout exception if a message not received in this amount of time. By default
+ no timeout is used.
+
+
+
+
+ Returns the number of unprocessed messages in the message queue of the agent.
+
+
+
+
+ Occurs when the execution of the agent results in an exception.
+
+
+
+
+ Scans for a message by looking through messages in arrival order until scanner
+ returns a Some value. Other messages remain in the queue.
+
+ This method is for use within the body of the agent. For each agent, at most
+ one concurrent reader may be active, so no more than one concurrent call to
+ Receive, TryReceive, Scan and/or TryScan may be active.
+
+ The function to return None if the message is to be skipped
+ or Some if the message is to be processed and removed from the queue.
+ An optional timeout in milliseconds. Defaults to -1 which corresponds
+ to .
+
+ An asynchronous computation that scanner built off the read message.
+
+
+
+
+ Waits for a message. This will consume the first message in arrival order.
+
+ This method is for use within the body of the agent.
+
+ Returns None if a timeout is given and the timeout is exceeded.
+
+ This method is for use within the body of the agent. For each agent, at most
+ one concurrent reader may be active, so no more than one concurrent call to
+ Receive, TryReceive, Scan and/or TryScan may be active.
+ An optional timeout in milliseconds. Defaults to -1 which
+ corresponds to .
+
+ An asynchronous computation that returns the received message or
+ None if the timeout is exceeded.
+
+
+
+
+ Like PostAndReply, but returns None if no reply within the timeout period.
+
+ The function to incorporate the AsyncReplyChannel into
+ the message to be sent.
+ An optional timeout parameter (in milliseconds) to wait for a reply message.
+ Defaults to -1 which corresponds to .
+
+ The reply from the agent or None if the timeout expires.
+
+
+
+
+ Starts the agent immediately on the current operating system thread.
+
+
+
+
+ Creates and starts an agent immediately on the current operating system thread. The body
+ function is used to generate the asynchronous computation executed by the agent.
+
+ The function to produce an asynchronous computation that will be executed
+ as the read loop for the MailboxProcessor when StartImmediately is called.
+ A flag denotes will be thrown exception
+ when is called
+ after disposed.
+ An optional cancellation token for the body.
+ Defaults to Async.DefaultCancellationToken.
+
+ The created MailboxProcessor.
+
+
+
+
+ Creates and starts an agent immediately on the current operating system thread. The body
+ function is used to generate the asynchronous computation executed by the agent.
+
+ The function to produce an asynchronous computation that will be executed
+ as the read loop for the MailboxProcessor when StartImmediately is called.
+ An optional cancellation token for the body.
+ Defaults to Async.DefaultCancellationToken.
+
+ The created MailboxProcessor.
+
+
+
+
+ Starts the agent.
+
+
+
+
+ Creates and starts an agent. The body function is used to generate the asynchronous
+ computation executed by the agent.
+
+ The function to produce an asynchronous computation that will be executed
+ as the read loop for the MailboxProcessor when Start is called.
+ A flag denoting that an exception will be thrown
+ when is called
+ after has been disposed.
+ An optional cancellation token for the body.
+ Defaults to Async.DefaultCancellationToken.
+
+ The created MailboxProcessor.
+
+
+
+
+ Creates and starts an agent. The body function is used to generate the asynchronous
+ computation executed by the agent.
+
+ The function to produce an asynchronous computation that will be executed
+ as the read loop for the MailboxProcessor when Start is called.
+ An optional cancellation token for the body.
+ Defaults to Async.DefaultCancellationToken.
+
+ The created MailboxProcessor.
+
+
+
+
+ Scans for a message by looking through messages in arrival order until scanner
+ returns a Some value. Other messages remain in the queue.
+
+ Returns None if a timeout is given and the timeout is exceeded.
+
+ This method is for use within the body of the agent. For each agent, at most
+ one concurrent reader may be active, so no more than one concurrent call to
+ Receive, TryReceive, Scan and/or TryScan may be active.
+
+ The function to return None if the message is to be skipped
+ or Some if the message is to be processed and removed from the queue.
+ An optional timeout in milliseconds. Defaults to -1 which corresponds
+ to .
+
+ An asynchronous computation that scanner built off the read message.
+
+ Thrown when the timeout is exceeded.
+
+
+
+
+ Waits for a message. This will consume the first message in arrival order.
+
+ This method is for use within the body of the agent.
+
+ This method is for use within the body of the agent. For each agent, at most
+ one concurrent reader may be active, so no more than one concurrent call to
+ Receive, TryReceive, Scan and/or TryScan may be active.
+ An optional timeout in milliseconds. Defaults to -1 which corresponds
+ to .
+
+ An asynchronous computation that returns the received message.
+ Thrown when the timeout is exceeded.
+
+
+
+
+ Like AsyncPostAndReply, but returns None if no reply within the timeout period.
+
+ The function to incorporate the AsyncReplyChannel into
+ the message to be sent.
+ An optional timeout parameter (in milliseconds) to wait for a reply message.
+ Defaults to -1 which corresponds to .
+
+ An asynchronous computation that will return the reply or None if the timeout expires.
+
+
+
+
+ Posts a message to an agent and await a reply on the channel, synchronously.
+
+ The message is generated by applying buildMessage to a new reply channel
+ to be incorporated into the message. The receiving agent must process this
+ message and invoke the Reply method on this reply channel precisely once.
+ The function to incorporate the AsyncReplyChannel into
+ the message to be sent.
+ An optional timeout parameter (in milliseconds) to wait for a reply message.
+ Defaults to -1 which corresponds to .
+
+ The reply from the agent.
+
+
+
+
+ Posts a message to an agent and await a reply on the channel, asynchronously.
+
+ The message is generated by applying buildMessage to a new reply channel
+ to be incorporated into the message. The receiving agent must process this
+ message and invoke the Reply method on this reply channel precisely once.
+ The function to incorporate the AsyncReplyChannel into
+ the message to be sent.
+ An optional timeout parameter (in milliseconds) to wait for a reply message.
+ Defaults to -1 which corresponds to .
+
+ An asynchronous computation that will wait for the reply from the agent.
+
+
+
+
+ Posts a message to the message queue of the MailboxProcessor, asynchronously.
+
+ The message to post.
+
+
+
+
+ Disposes the agent's internal resources.
+
+
+
+
+ Creates an agent. The body function is used to generate the asynchronous
+ computation executed by the agent. This function is not executed until
+ Start is called.
+
+ The function to produce an asynchronous computation that will be executed
+ as the read loop for the MailboxProcessor when Start is called.
+ A flag denoting that an exception will be thrown
+ when is called
+ after has been disposed.
+ An optional cancellation token for the body.
+ Defaults to Async.DefaultCancellationToken.
+
+ The created MailboxProcessor.
+
+
+
+
+ Creates an agent. The body function is used to generate the asynchronous
+ computation executed by the agent. This function is not executed until
+ Start is called.
+
+ The function to produce an asynchronous computation that will be executed
+ as the read loop for the MailboxProcessor when Start is called.
+ An optional cancellation token for the body.
+ Defaults to Async.DefaultCancellationToken.
+
+ The created MailboxProcessor.
+
+
+
+
+ A message-processing agent which executes an asynchronous computation.
+
+ The agent encapsulates a message queue that supports multiple-writers and
+ a single reader agent. Writers send messages to the agent by using the Post
+ method and its variations.
+
+ The agent may wait for messages using the Receive or TryReceive methods or
+ scan through all available messages using the Scan or TryScan method.
+
+ Agents
+
+
+ Sends a reply to a PostAndReply message.
+ The value to send.
+
+
+ A handle to a capability to reply to a PostAndReply message.
+
+ Agents
+
+
+ Forces the execution of this value and return its result. Same as Value. Mutual exclusion is used to
+ prevent other threads also computing the value.
+ The value of the Lazy object.
+
+
+ Creates a lazy computation that evaluates to the given value when forced.
+
+ The input value.
+
+ The created Lazy object.
+
+
+ Creates a lazy computation that evaluates to the result of the given function when forced.
+
+ The function to provide the value when needed.
+
+ The created Lazy object.
+
+
+ Extensions related to Lazy values.
+
+ Lazy Computation
+
+
+ Returns an asynchronous computation that, when run, will wait for the download of the given URI to specified file.
+
+ The URI to retrieve.
+ The file name to save download to.
+
+ An asynchronous computation that will wait for the download of the URI to specified file.
+
+
+
+ open System.Net
+ open System
+ let client = new WebClient()
+ Uri("https://www.w3.com") |> fun x -> client.AsyncDownloadFile(x, "output.html") |> Async.RunSynchronously
+
+ This will download the server response as a file and output it as output.html
+
+
+
+ Returns an asynchronous computation that, when run, will wait for the download of the given URI.
+
+ The URI to retrieve.
+
+ An asynchronous computation that will wait for the download of the URI.
+
+
+
+ open System.Net
+ open System.Text
+ open System
+ let client = new WebClient()
+ client.AsyncDownloadData(Uri("https://www.w3.org")) |> Async.RunSynchronously |> Encoding.ASCII.GetString
+
+
+ Downloads the data in bytes and decodes it to a string.
+
+
+ Returns an asynchronous computation that, when run, will wait for the download of the given URI.
+
+ The URI to retrieve.
+
+ An asynchronous computation that will wait for the download of the URI.
+
+
+
+ open System
+ let client = new WebClient()
+ Uri("https://www.w3.org") |> client.AsyncDownloadString |> Async.RunSynchronously
+
+ This will download the server response from https://www.w3.org
+
+
+
+ Returns an asynchronous computation that, when run, will wait for a response to the given WebRequest.
+ An asynchronous computation that waits for response to the WebRequest.
+
+
+
+ open System.Net
+ open System.IO
+ let responseStreamToString = fun (responseStream : WebResponse) ->
+ let reader = new StreamReader(responseStream.GetResponseStream())
+ reader.ReadToEnd()
+ let webRequest = WebRequest.Create("https://www.w3.org")
+ let result = webRequest.AsyncGetResponse() |> Async.RunSynchronously |> responseStreamToString
+
+
+ Gets the web response asynchronously and converts response stream to string
+
+
+ A module of extension members providing asynchronous operations for some basic Web operations.
+
+ Async Programming
+
+
+ Connects a listener function to the observable. The listener will
+ be invoked for each observation. The listener can be removed by
+ calling Dispose on the returned IDisposable object.
+
+ The function to be called for each observation.
+
+ An object that will remove the listener if disposed.
+
+
+
+
+ Permanently connects a listener function to the observable. The listener will
+ be invoked for each observation.
+
+ The function to be called for each observation.
+
+
+
+
+ Returns an asynchronous computation that will write the given bytes to the stream.
+
+ The buffer to write from.
+ An optional offset as a number of bytes in the stream.
+ An optional number of bytes to write to the stream.
+
+ An asynchronous computation that will write the given bytes to the stream.
+
+ Thrown when the sum of offset and count is longer than
+ the buffer length.
+ Thrown when offset or count is negative.
+
+
+
+
+ Returns an asynchronous computation that will read the given number of bytes from the stream.
+
+ The number of bytes to read.
+
+ An asynchronous computation that returns the read byte array when run.
+
+
+
+
+ Returns an asynchronous computation that will read from the stream into the given buffer.
+ The buffer to read into.
+ An optional offset as a number of bytes in the stream.
+ An optional number of bytes to read from the stream.
+
+ An asynchronous computation that will read from the stream into the given buffer.
+
+ Thrown when the sum of offset and count is longer than
+ the buffer length.
+ Thrown when offset or count is negative.
+
+
+
+
+ A module of extension members providing asynchronous operations for some basic CLI types related to concurrency and I/O.
+
+ Async Programming
+
+
+ The F# compiler emits calls to this function to implement the try/with construct for F# async expressions.
+
+ The async activation.
+ The computation to protect.
+ The exception filter.
+
+ A value indicating asynchronous execution.
+
+
+ The F# compiler emits calls to this function to implement the try/finally construct for F# async expressions.
+
+ The async activation.
+ The computation to protect.
+ The finally code.
+
+ A value indicating asynchronous execution.
+
+
+ The F# compiler emits calls to this function to implement the let! construct for F# async expressions.
+
+ The async activation.
+ The first part of the computation.
+ A function returning the second part of the computation.
+
+ An async activation suitable for running part1 of the asynchronous execution.
+
+
+ The F# compiler emits calls to this function to implement constructs for F# async expressions.
+
+ The async activation.
+ The result of the first part of the computation.
+ A function returning the second part of the computation.
+
+ A value indicating asynchronous execution.
+
+
+ The F# compiler emits calls to this function to implement constructs for F# async expressions.
+
+ The async computation.
+ The async activation.
+
+ A value indicating asynchronous execution.
+
+
+ The F# compiler emits calls to this function to implement F# async expressions.
+
+ The body of the async computation.
+
+ The async computation.
+
+
+ Entry points for generated code
+
+ Async Internals
+
+
+
+ The entry point for the dynamic implementation of the corresponding operation. Do not use directly, only used when executing quotations that involve tasks or other reflective execution of F# code.
+
+
+
+
+ Specifies a unit of task code which draws a result from a task.
+
+
+
+
+ Specifies a unit of task code which draws a result from a task then calls a continuation.
+
+
+
+
+ Contains high-priority overloads for the `task` computation expression builder.
+
+
+
+
+ Specifies a unit of task code which draws a result from an F# async value.
+
+
+
+
+ Specifies a unit of task code which draws a result from an F# async value then calls a continuation.
+
+
+
+
+ Contains medium-priority overloads for the `task` computation expression builder.
+
+
+
+
+ Specifies a unit of task code which binds to the resource implementing IDisposable and disposes it synchronously
+
+
+
+
+ The entry point for the dynamic implementation of the corresponding operation. Do not use directly, only used when executing quotations that involve tasks or other reflective execution of F# code.
+
+
+
+
+ Specifies a unit of task code which draws its result from a task-like value
+ satisfying the GetAwaiter pattern.
+
+
+
+
+ Specifies a unit of task code which draws a result from a task-like value
+ satisfying the GetAwaiter pattern and calls a continuation.
+
+
+
+
+ Contains low-priority overloads for the `task` computation expression builder.
+
+
+
+
+ Builds a task using computation expression syntax which switches to execute on a background thread if not
+ already doing so.
+
+
+
+ If the task is created on a foreground thread (where is non-null)
+ its body is executed on a background thread using .
+ If created on a background thread (where is null) it is executed
+ immediately on that thread.
+
+
+
+
+
+
+ Builds a task using computation expression syntax.
+
+
+
+
+
+
+ Contains the `task` computation expression builder.
+
+
+
+ Returns a new event that triggers on the second and subsequent triggerings of the input event.
+ The Nth triggering of the input event passes the arguments from the N-1th and Nth triggering as
+ a pair. The argument passed to the N-1th triggering is held in hidden internal state until the
+ Nth triggering occurs.
+
+ The input event.
+
+ An event that triggers on pairs of consecutive values passed from the source event.
+
+
+ open System
+
+ let createTimer interval =
+ let timer = new Timers.Timer(interval)
+ timer.AutoReset <- true
+ timer.Enabled <- true
+ timer.Elapsed
+
+ let timer = createTimer 1000
+
+ let pairWise = Event.pairwise timer
+
+ let extractPair (pair: Timers.ElapsedEventArgs * Timers.ElapsedEventArgs) =
+ let leftPair, rightPair = pair
+ printfn $"(Left): {leftPair.SignalTime} (Right): {rightPair.SignalTime}"
+
+ pairWise.Subscribe(extractPair) |> ignore
+
+ Console.ReadLine() |> ignore
+
+ The sample will output the timer event every second:
+ (Left): 2/14/2022 11:58:46 PM (Right): 2/14/2022 11:58:46 PM
+ (Left): 2/14/2022 11:58:46 PM (Right): 2/14/2022 11:58:47 PM
+ (Left): 2/14/2022 11:58:47 PM (Right): 2/14/2022 11:58:48 PM
+
+
+
+ Runs the given function each time the given event is triggered.
+
+ The function to call when the event is triggered.
+ The input event.
+
+
+
+ open System
+
+ let createTimer interval =
+ let timer = new Timers.Timer(interval)
+ timer.AutoReset <- true
+ timer.Enabled <- true
+ timer.Elapsed
+
+ let timer = createTimer 1000
+
+ Event.add (fun (event: Timers.ElapsedEventArgs) -> printfn $"{event.SignalTime} ") timer
+
+ Console.ReadLine() |> ignore
+
+ The sample will output the timer event every second:
+ 2/14/2022 11:52:05 PM
+ 2/14/2022 11:52:06 PM
+ 2/14/2022 11:52:07 PM
+ 2/14/2022 11:52:08 PM
+
+
+
+ Returns a new event consisting of the results of applying the given accumulating function
+ to successive values triggered on the input event. An item of internal state
+ records the current value of the state parameter. The internal state is not locked during the
+ execution of the accumulation function, so care should be taken that the
+ input IEvent not triggered by multiple threads simultaneously.
+
+ The function to update the state with each event value.
+ The initial state.
+ The input event.
+
+ An event that fires on the updated state values.
+
+
+ open System
+
+ let createTimer interval =
+ let timer = new Timers.Timer(interval)
+ timer.AutoReset <- true
+ timer.Enabled <- true
+ timer.Elapsed
+
+ let timer = createTimer 1000
+
+ let multiplyBy number =
+ fun (timerEvent: Timers.ElapsedEventArgs) -> number * timerEvent.SignalTime./// Second
+
+ let initialState = 2
+
+ let scan = Event.scan multiplyBy initialState timer
+
+ scan.Subscribe(fun x -> printf "%A " x) |> ignore
+
+ Console.ReadLine() |> ignore
+
+ The sample will output depending on your timestamp. It will multiply the seconds with an initial state of 2: 106 5724 314820 17629920 1004905440 -1845026624 -1482388416
+
+
+
+ Returns a new event which fires on a selection of messages from the original event.
+ The selection function takes an original message to an optional new message.
+
+ The function to select and transform event values to pass on.
+ The input event.
+
+ An event that fires only when the chooser returns Some.
+
+
+ open System
+
+ let createTimer interval =
+ let timer = new Timers.Timer(interval)
+ timer.AutoReset <- true
+ timer.Enabled <- true
+ timer.Elapsed
+
+ let timer = createTimer 1000
+
+ let getEvenSeconds (number: Timers.ElapsedEventArgs) =
+ match number with
+ | _ when number.SignalTime.Second % 2 = 0 -> Some number.SignalTime
+ | _ -> None
+
+ let evenSecondsEvent = Event.choose getEvenSeconds timer
+
+ evenSecondsEvent.Subscribe(fun x -> printfn $"{x} ")
+ |> ignore
+
+ Console.ReadLine() |> ignore
+
+ The sample will output: 2/15/2022 12:04:04 AM
+ 2/15/2022 12:04:06 AM
+ 2/15/2022 12:04:08 AM
+
+
+
+ Returns a new event that listens to the original event and triggers the
+ first resulting event if the application of the function to the event arguments
+ returned a Choice1Of2, and the second event if it returns a Choice2Of2.
+
+ The function to transform event values into one of two types.
+ The input event.
+
+ A tuple of events. The first fires whenever splitter evaluates to Choice1of1 and
+ the second fires whenever splitter evaluates to Choice2of2.
+
+
+ open System
+
+ let createTimer interval =
+ let timer = new Timers.Timer(interval)
+ timer.AutoReset <- true
+ timer.Enabled <- true
+ timer.Elapsed
+
+ let timer = createTimer 1000
+
+ let bySeconds (timerEvent: Timers.ElapsedEventArgs) =
+ match timerEvent.SignalTime.Second % 2 = 0 with
+ | true -> Choice1Of2 timerEvent.SignalTime.Second
+ | false -> Choice2Of2 $"{timerEvent.SignalTime.Second} is not an even num ber"
+
+ let evenSplit, printOddNumbers = Event.split bySeconds timer
+
+ let printOutput event functionName =
+ Event.add (fun output -> printfn $"{functionName} - Split output: {output}. /// Type: {output.GetType()}") event
+
+ printOutput evenSplit (nameof evenSplit) |> ignore
+
+ printOutput printOddNumbers (nameof printOddNumbers)
+ |> ignore
+
+ Console.ReadLine() |> ignore
+
+ The sample will split the events by even or odd seconds: evenSplit - Split output: 44. Type: System.Int32
+ printOddNumbers - Split output: 45 is not an even number. Type: System.String
+ evenSplit - Split output: 46. Type: System.Int32
+ printOddNumbers - Split output: 47 is not an even number. Type: System.String
+ evenSplit - Split output: 48. Type: System.Int32
+ printOddNumbers - Split output: 49 is not an even number. Type: System.String
+
+
+
+ Returns a new event that listens to the original event and triggers the
+ first resulting event if the application of the predicate to the event arguments
+ returned true, and the second event if it returned false.
+
+ The function to determine which output event to trigger.
+ The input event.
+
+ A tuple of events. The first is triggered when the predicate evaluates to true
+ and the second when the predicate evaluates to false.
+
+
+ open System
+
+ let createTimer interval =
+ let timer = new Timers.Timer(interval)
+ timer.AutoReset <- true
+ timer.Enabled <- true
+ timer.Elapsed
+
+ let timer = createTimer 1000
+
+ let getEvenSeconds (number: Timers.ElapsedEventArgs) =
+ match number with
+ | _ when number.SignalTime.Second % 2 = 0 -> true
+ | _ -> false
+
+ let leftPartition, rightPartition = Event.partition getEvenSeconds timer
+
+ leftPartition.Subscribe(fun x -> printfn $"Left partition: {x.SignalTime}")
+ |> ignore
+
+ rightPartition.Subscribe(fun x -> printfn $"Right partition: {x.SignalTime}")
+ |> ignore
+
+ Console.ReadLine() |> ignore
+
+ The sample will partition into two events if it is even or odd seconds:
+ Right partition: 2/15/2022 12:00:27 AM
+ Left partition: 2/15/2022 12:00:28 AM
+ Right partition: 2/15/2022 12:00:29 AM
+ Left partition: 2/15/2022 12:00:30 AM
+ Right partition: 2/15/2022 12:00:31 AM
+
+
+
+ Returns a new event that listens to the original event and triggers the resulting
+ event only when the argument to the event passes the given function.
+
+ The function to determine which triggers from the event to propagate.
+ The input event.
+
+ An event that only passes values that pass the predicate.
+
+
+ open System
+
+ let createTimer interval =
+ let timer = new Timers.Timer(interval)
+ timer.AutoReset <- true
+ timer.Enabled <- true
+ timer.Elapsed
+
+ let timer = createTimer 1000
+
+ let getEvenSeconds (number: Timers.ElapsedEventArgs) =
+ match number with
+ | _ when number.SignalTime.Second % 2 = 0 -> true
+ | _ -> false
+
+ let evenSecondsEvent = Event.filter getEvenSeconds timer
+
+ evenSecondsEvent.Subscribe(fun x -> printfn $"{x} ")
+ |> ignore
+
+ Console.ReadLine() |> ignore
+
+ The sample will only output even seconds: 2/15/2022 12:03:08 AM
+ 2/15/2022 12:03:10 AM
+ 2/15/2022 12:03:12 AM
+ 2/15/2022 12:03:14 AM
+
+
+
+ Returns a new event that passes values transformed by the given function.
+
+ The function to transform event values.
+ The input event.
+
+ An event that passes the transformed values.
+
+
+ open System
+
+ let createTimer interval =
+ let timer = new Timers.Timer(interval)
+ timer.AutoReset <- true
+ timer.Enabled <- true
+ timer.Elapsed
+
+ let timer = createTimer 1000
+
+ let transformSeconds (number: Timers.ElapsedEventArgs) =
+ match number with
+ | _ when number.SignalTime.Second % 2 = 0 -> 100
+ | _ -> -500
+
+ let evenSecondsEvent = Event.map transformSeconds timer
+
+ evenSecondsEvent.Subscribe(fun x -> printf $"{x} ")
+ |> ignore
+
+ Console.ReadLine() |> ignore
+
+ The sample will transform the seconds if it's even or odd number and the output is: -500 100 -500 100 -500 100
+
+
+
+ Fires the output event when either of the input events fire.
+ The first input event.
+ The second input event.
+
+ An event that fires when either of the input events fire.
+
+
+ open System.Reactive.Linq
+ open System
+ let createTimer interval =
+ let timer = new Timers.Timer(interval)
+ timer.AutoReset <- true
+ timer.Enabled <- true
+ timer.Elapsed
+
+ let oneSecondTimer = createTimer 1000
+ let fiveSecondsTimer = createTimer 5000
+
+ let result = Event.merge oneSecondTimer fiveSecondsTimer
+
+ result.Subscribe(fun output -> printfn $"Output - {output.SignalTime} ")
+ |> ignore
+
+ Console.ReadLine() |> ignore
+
+ The sample will output: Output - 2/15/2022 12:10:40 AM
+ Output - 2/15/2022 12:10:41 AM
+ Output - 2/15/2022 12:10:41 AM
+ Output - 2/15/2022 12:10:42 AM
+ Output - 2/15/2022 12:10:43 AM
+
+
+
+ Contains operations for working with values of type .
+
+ Events and Observables
+
+
+ Returns a new observable that triggers on the second and subsequent triggerings of the input observable.
+ The Nth triggering of the input observable passes the arguments from the N-1th and Nth triggering as
+ a pair. The argument passed to the N-1th triggering is held in hidden internal state until the
+ Nth triggering occurs.
+
+ For each observer, the registered intermediate observing object is not thread safe.
+ That is, observations arising from the source must not be triggered concurrently
+ on different threads.
+ The input Observable.
+
+ An Observable that triggers on successive pairs of observations from the input Observable.
+
+
+
+ /// open System.Reactive.Linq
+ let numbers = seq { 1..5 }
+ let observableNumbers = Observable.ToObservable numbers
+
+ let pairWise = Observable.pairwise observableNumbers
+
+ pairWise.Subscribe(fun pair -> printf $"{pair} ")
+ |> ignore
+
+ The sample evaluates to: (1, 2), (2, 3), (3, 4), (4, 5)
+
+
+
+ Creates an observer which subscribes to the given observable and which calls
+ the given function for each observation.
+
+ The function to be called on each observation.
+ The input Observable.
+
+ An object that will remove the callback if disposed.
+
+
+
+ open System.Reactive.Linq
+ let numbers = seq { 1..3 }
+ let observableNumbers = Observable.ToObservable numbers
+ let printOutput observable =
+ use subscription = Observable.subscribe (fun x -> printfn "%A" x) observable
+ subscription
+ printOutput observableNumbers |> ignore
+
+ The sample evaluates to: 1, 2, 3
+
+
+
+ Creates an observer which permanently subscribes to the given observable and which calls
+ the given function for each observation.
+
+ The function to be called on each observation.
+ The input Observable.
+
+
+
+ open System.Reactive.Linq
+ let numbers = seq { 1..5 }
+ let observableNumbers = Observable.ToObservable numbers
+ let multiplyByTwo = fun number -> printf $"{number * 2} "
+ Observable.add multiplyByTwo observableNumbers
+
+ The sample evaluates to: 2 4 6 8 10
+
+
+
+ Returns an observable which, for each observer, allocates an item of state
+ and applies the given accumulating function to successive values arising from
+ the input. The returned object will trigger observations for each computed
+ state value, excluding the initial value. The returned object propagates
+ all errors arising from the source and completes when the source completes.
+
+ For each observer, the registered intermediate observing object is not thread safe.
+ That is, observations arising from the source must not be triggered concurrently
+ on different threads.
+ The function to update the state with each observation.
+ The initial state.
+ The input Observable.
+
+ An Observable that triggers on the updated state values.
+
+
+
+ open System.Reactive.Linq
+ let numbers = seq { 1..5 }
+ let observableNumbers = Observable.ToObservable numbers
+
+ let multiplyBy number = fun y -> number * y
+ let initialState = 2
+ let scan = Observable.scan multiplyBy initialState observableNumbers
+
+ scan.Subscribe(fun x -> printf "%A " x) |> ignore
+
+ The sample evaluates to: 2 4 12 48 240
+
+
+
+ Returns an observable which chooses a projection of observations from the source
+ using the given function. The returned object will trigger observations x
+ for which the splitter returns Some x. The returned object also propagates
+ all errors arising from the source and completes when the source completes.
+
+ The function that returns Some for observations to be propagated
+ and None for observations to ignore.
+ The input Observable.
+
+ An Observable that only propagates some of the observations from the source.
+
+
+
+ open System.Reactive.Linq
+ let numbers = seq { 1..5 }
+ let observableNumbers = Observable.ToObservable numbers
+
+ let getOddNumbers number =
+ match number with
+ | _ when number % 2 = 0 -> None
+ | _ -> Some number
+
+ let map = Observable.choose getOddNumbers observableNumbers
+
+ map.Subscribe(fun x -> printf $"{x} ") |> ignore
+
+ The sample will output: 1 3 5
+
+
+
+ Returns two observables which split the observations of the source by the
+ given function. The first will trigger observations x for which the
+ splitter returns Choice1Of2 x. The second will trigger observations
+ y for which the splitter returns Choice2Of2 y The splitter is
+ executed once for each subscribed observer. Both also propagate error
+ observations arising from the source and each completes when the source
+ completes.
+
+ The function that takes an observation an transforms
+ it into one of the two output Choice types.
+ The input Observable.
+
+ A tuple of Observables. The first triggers when splitter returns Choice1of2
+ and the second triggers when splitter returns Choice2of2.
+
+
+
+ open System.Reactive.Linq
+ let numbers = seq { 1..5 }
+ let observableNumbers = Observable.ToObservable numbers
+
+ let getEvenNumbers number =
+ match number % 2 = 0 with
+ | true -> Choice1Of2 number
+ | false -> Choice2Of2 $"{number} is not an even number"
+
+ let evenSplit, printOddNumbers = Observable.split getEvenNumbers observableNumbers
+
+ let printOutput observable functionName =
+ use subscription =
+ Observable.subscribe
+ (fun output -> printfn $"{functionName} - Split output: {output}. Type: {output.GetType()}")
+ observable
+
+ subscription
+
+ printOutput evenSplit (nameof evenSplit) |> ignore
+ printOutput printOddNumbers (nameof printOddNumbers) |> ignore
+
+ The sample evaluates to: evenSplit - Split output: 2. Type: System.Int32
+ evenSplit - Split output: 4. Type: System.Int32
+ printOddNumbers - Split output: 1 is not an even number. Type: System.String
+ printOddNumbers - Split output: 3 is not an even number. Type: System.String
+ printOddNumbers - Split output: 5 is not an even number. Type: System.String
+
+
+
+ Returns two observables which partition the observations of the source by
+ the given function. The first will trigger observations for those values
+ for which the predicate returns true. The second will trigger observations
+ for those values where the predicate returns false. The predicate is
+ executed once for each subscribed observer. Both also propagate all error
+ observations arising from the source and each completes when the source
+ completes.
+
+ The function to determine which output Observable will trigger
+ a particular observation.
+ The input Observable.
+
+ A tuple of Observables. The first triggers when the predicate returns true, and
+ the second triggers when the predicate returns false.
+
+
+
+ open System.Reactive.Linq
+ let numbers = seq { 1..5 }
+ let observableNumbers = Observable.ToObservable numbers
+
+ let isEvenNumber = fun number -> number % 2 = 0
+
+ let leftPartition, rightPartition =
+ Observable.partition isEvenNumber observableNumbers
+
+ leftPartition.Subscribe(fun x -> printfn $"Left partition: {x}") |> ignore
+
+ rightPartition.Subscribe(fun x -> printfn $"Right partition: {x}") |> ignore
+
+ The sample evaluates to: Left partition: 2, 4, Right partition: 1, 3, 5
+
+
+
+ Returns an observable which filters the observations of the source
+ by the given function. The observable will see only those observations
+ for which the predicate returns true. The predicate is executed once for
+ each subscribed observer. The returned object also propagates error
+ observations arising from the source and completes when the source completes.
+
+ The function to apply to observations to determine if it should
+ be kept.
+ The input Observable.
+
+ An Observable that filters observations based on filter.
+
+
+
+ open System.Reactive.Linq
+ let numbers = seq { 1..5 }
+ let observableNumbers = Observable.ToObservable numbers
+
+ let getEvenNumbers = fun number -> number % 2 = 0
+ let map = Observable.filter multiplyByTwo observableNumbers
+
+ map.Subscribe(fun x -> printf $"{x} ") |> ignore
+
+ The sample will output: 2 4
+
+
+
+ Returns an observable which transforms the observations of the source by the
+ given function. The transformation function is executed once for each
+ subscribed observer. The returned object also propagates error observations
+ arising from the source and completes when the source completes.
+ The function applied to observations from the source.
+ The input Observable.
+
+ An Observable of the type specified by mapping.
+
+
+
+ open System.Reactive.Linq
+ let numbers = seq { 1..5 }
+ let observableNumbers = Observable.ToObservable numbers
+
+ let multiplyByTwo = fun number -> number * 2
+ let map = Observable.map multiplyByTwo observableNumbers
+
+ map.Subscribe(fun x -> printf $"{x} ") |> ignore
+
+ The sample will output: 2 4 6 8 10
+
+
+
+ Returns an observable for the merged observations from the sources.
+ The returned object propagates success and error values arising
+ from either source and completes when both the sources have completed.
+
+ For each observer, the registered intermediate observing object is not
+ thread safe. That is, observations arising from the sources must not
+ be triggered concurrently on different threads.
+
+ The first Observable.
+ The second Observable.
+
+ An Observable that propagates information from both sources.
+
+
+
+ open System.Reactive.Linq
+ open System
+
+ let createTimer interval =
+ let timer = new Timers.Timer(interval)
+ timer.AutoReset <- true
+ timer.Enabled <- true
+ Observable.Create(fun observer -> timer.Elapsed.Subscribe(observer))
+
+ let observableFirstTimer = createTimer 1000
+ let observableSecondTimer = createTimer 3000
+
+ let result = Observable.merge observableFirstTimer observableSecondTimer
+
+ result.Subscribe(fun output -> printfn $"Output - {output.SignalTime} ")
+ |> ignore
+
+ Console.ReadLine() |> ignore
+
+ The sample will merge all events at a given interval and output it to the stream:
+ Output - 2/5/2022 3:49:37 AM
+ Output - 2/5/2022 3:49:38 AM
+ Output - 2/5/2022 3:49:39 AM
+ Output - 2/5/2022 3:49:39 AM
+ Output - 2/5/2022 3:49:40 AM
+ Output - 2/5/2022 3:49:41 AM
+ Output - 2/5/2022 3:49:42 AM
+ Output - 2/5/2022 3:49:42 AM
+
+
+
+
+ Contains operations for working with first class event and other observable objects.
+
+ Events and Observables
+
+
+
+ A method used to support the F# query syntax. Returns an empty sequence that has the specified type argument.
+
+
+
+
+
+
+ A method used to support the F# query syntax. Returns a sequence that contains the specified values.
+
+
+
+
+
+
+ A method used to support the F# query syntax. Returns a sequence of length one that contains the specified value.
+
+
+
+
+
+ A query operator that selects those elements based on a specified predicate.
+
+
+
+
+
+ A query operator that performs a subsequent ordering of the elements selected so far in descending order by the given nullable sorting key.
+ This operator may only be used immediately after a 'sortBy', 'sortByDescending', 'thenBy' or 'thenByDescending', or their nullable variants.
+
+
+
+
+
+ A query operator that performs a subsequent ordering of the elements selected so far in ascending order by the given nullable sorting key.
+ This operator may only be used immediately after a 'sortBy', 'sortByDescending', 'thenBy' or 'thenByDescending', or their nullable variants.
+
+
+
+
+
+ A query operator that performs a subsequent ordering of the elements selected so far in descending order by the given sorting key.
+ This operator may only be used immediately after a 'sortBy', 'sortByDescending', 'thenBy' or 'thenByDescending', or their nullable variants.
+
+
+
+
+
+ A query operator that performs a subsequent ordering of the elements selected so far in ascending order by the given sorting key.
+ This operator may only be used immediately after a 'sortBy', 'sortByDescending', 'thenBy' or 'thenByDescending', or their nullable variants.
+
+
+
+
+
+ A query operator that selects elements from a sequence as long as a specified condition is true, and then skips the remaining elements.
+
+
+
+
+
+ A query operator that selects a specified number of contiguous elements from those selected so far.
+
+
+
+
+
+ A query operator that selects a nullable value for each element selected so far and returns the sum of these values.
+ If any nullable does not have a value, it is ignored.
+
+
+
+
+
+ A query operator that selects a value for each element selected so far and returns the sum of these values.
+
+
+
+
+
+
+ A method used to support the F# query syntax. Inputs to queries are implicitly wrapped by a call to one of the overloads of this method.
+
+
+
+
+
+
+ A method used to support the F# query syntax. Inputs to queries are implicitly wrapped by a call to one of the overloads of this method.
+
+
+
+
+
+ A query operator that sorts the elements selected so far in descending order by the given nullable sorting key.
+
+
+
+
+
+ A query operator that sorts the elements selected so far in ascending order by the given nullable sorting key.
+
+
+
+
+
+ A query operator that sorts the elements selected so far in descending order by the given sorting key.
+
+
+
+
+
+ A query operator that sorts the elements selected so far in ascending order by the given sorting key.
+
+
+
+
+
+ A query operator that bypasses elements in a sequence as long as a specified condition is true and then selects the remaining elements.
+
+
+
+
+
+ A query operator that bypasses a specified number of the elements selected so far and selects the remaining elements.
+
+
+
+
+
+ A query operator that projects each of the elements selected so far.
+
+
+
+
+
+
+ A method used to support the F# query syntax. Runs the given quotation as a query using LINQ IQueryable rules.
+
+
+
+
+
+
+ A method used to support the F# query syntax. Indicates that the query should be passed as a quotation to the Run method.
+
+
+
+
+
+ A query operator that selects the element at a specified index amongst those selected so far.
+
+
+
+
+
+ A query operator that selects a nullable value for each element selected so far and returns the minimum of these values.
+ If any nullable does not have a value, it is ignored.
+
+
+
+
+
+ A query operator that selects a value for each element selected so far and returns the minimum resulting value.
+
+
+
+
+
+ A query operator that selects a nullable value for each element selected so far and returns the maximum of these values.
+ If any nullable does not have a value, it is ignored.
+
+
+
+
+
+ A query operator that selects a value for each element selected so far and returns the maximum resulting value.
+
+
+
+
+
+ A query operator that correlates two sets of selected values based on matching keys and groups the results.
+ If any group is empty, a group with a single default value is used instead.
+ Normal usage is 'leftOuterJoin y in elements2 on (key1 = key2) into group'.
+
+
+
+
+
+ A query operator that selects the last element of those selected so far, or a default value if no element is found.
+
+
+
+
+
+ A query operator that selects the last element of those selected so far.
+
+
+
+
+
+ A query operator that correlates two sets of selected values based on matching keys.
+ Normal usage is 'join y in elements2 on (key1 = key2)'.
+
+
+
+
+
+ A query operator that selects the first element of those selected so far, or a default value if the sequence contains no elements.
+
+
+
+
+
+ A query operator that selects the first element from those selected so far.
+
+
+
+
+
+ A query operator that selects a value for each element selected so far and groups the elements by the given key.
+
+
+
+
+
+ A query operator that correlates two sets of selected values based on matching keys and groups the results.
+ Normal usage is 'groupJoin y in elements2 on (key1 = key2) into group'.
+
+
+
+
+
+ A query operator that groups the elements selected so far according to a specified key selector.
+
+
+
+
+
+
+ A method used to support the F# query syntax. Projects each element of a sequence to another sequence and combines the resulting sequences into one sequence.
+
+
+
+
+
+ A query operator that selects the first element selected so far that satisfies a specified condition.
+
+
+
+
+
+ A query operator that determines whether any element selected so far satisfies a condition.
+
+
+
+
+
+ A query operator that selects the single, specific element of those selected so far, or a default value if that element is not found.
+
+
+
+
+
+ A query operator that selects the single, specific element selected so far
+
+
+
+
+
+ A query operator that selects distinct elements from the elements selected so far.
+
+
+
+
+
+ A query operator that returns the number of selected elements.
+
+
+
+
+
+ A query operator that determines whether the selected elements contains a specified element.
+
+
+
+
+
+ A query operator that selects a nullable value for each element selected so far and returns the average of these values.
+ If any nullable does not have a value, it is ignored.
+
+
+
+
+
+ A query operator that selects a value for each element selected so far and returns the average of these values.
+
+
+
+
+
+ A query operator that determines whether all elements selected so far satisfies a condition.
+
+
+
+
+
+ Create an instance of this builder. Use 'query { ... }' to use the query syntax.
+
+
+
+ The type used to support the F# query syntax. Use 'query { ... }' to use the query syntax. See
+ also <a href="https://learn.microsoft.com/dotnet/fsharp/language-reference/query-expressions">F# Query Expressions</a> in the F# Language Guide.
+
+
+
+
+ A property used to support the F# query syntax.
+
+
+
+
+ A method used to support the F# query syntax.
+
+
+
+
+ A partial input or result in an F# query. This type is used to support the F# query syntax.
+
+
+
+ Library functionality for F# query syntax and interoperability with .NET LINQ Expressions. See
+ also F# Query Expressions in the F# Language Guide.
+
+
+
+ Converts the argument to character. Numeric inputs are converted according to the UTF-16
+ encoding for characters. The operation requires an appropriate static conversion method on the input type.
+
+ The input value.
+
+ The converted char.
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.char (Nullable<int>()) // evaluates to Nullable<char>()
+ Nullable.char (Nullable<int>(64)) // evaluates to Nullable<char>('@')
+
+
+
+
+ Converts the argument to System.Decimal using a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted decimal.
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.decimal (Nullable<int>()) // evaluates to Nullable<decimal>()
+ Nullable.decimal (Nullable<int>(3)) // evaluates to Nullable<decimal>(3.0M)
+
+
+
+
+ Converts the argument to unsigned native integer using a direct conversion for all
+ primitive numeric types. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted unativeint
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.unativeint (Nullable<int>()) // evaluates to Nullable<unativeint>()
+ Nullable.unativeint (Nullable<int>(3)) // evaluates to Nullable<unativeint>(3un)
+
+
+
+
+ Converts the argument to signed native integer. This is a direct conversion for all
+ primitive numeric types. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted nativeint
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.nativeint (Nullable<int>()) // evaluates to Nullable<nativeint>()
+ Nullable.nativeint (Nullable<int>(3)) // evaluates to Nullable<nativeint>(3n)
+
+
+
+
+ Converts the argument to 64-bit float. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted float
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.double (Nullable<int>()) // evaluates to Nullable<double>()
+ Nullable.double (Nullable<int>(3)) // evaluates to Nullable<double>(3.0)
+
+
+
+
+ Converts the argument to 32-bit float. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted float32
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.single (Nullable<int>()) // evaluates to Nullable<float32>()
+ Nullable.single (Nullable<int>(3)) // evaluates to Nullable<float32>(3.0f)
+
+
+
+
+ Converts the argument to 64-bit float. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted float
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.float (Nullable<int>()) // evaluates to Nullable<float>()
+ Nullable.float (Nullable<int>(3)) // evaluates to Nullable<float>(3.0)
+
+
+
+
+ Converts the argument to 32-bit float. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted float32
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.float32 (Nullable<int>()) // evaluates to Nullable<float32>()
+ Nullable.float32 (Nullable<int>(3)) // evaluates to Nullable<float32>(3.0f)
+
+
+
+
+ Converts the argument to unsigned 64-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted uint64
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.uint64 (Nullable<int>()) // evaluates to Nullable<uint64>()
+ Nullable.uint64 (Nullable<int>(3)) // evaluates to Nullable<uint64>(3UL)
+
+
+
+
+ Converts the argument to signed 64-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted int64
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.int64 (Nullable<int>()) // evaluates to Nullable<int64>()
+ Nullable.int64 (Nullable<int>(3)) // evaluates to Nullable<int64>(3L)
+
+
+
+
+ Converts the argument to unsigned 32-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted uint32
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.uint32 (Nullable<int>()) // evaluates to Nullable<uint32>()
+ Nullable.uint32 (Nullable<int>(3)) // evaluates to Nullable(3u)
+
+
+
+
+ Converts the argument to signed 32-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted int32
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.int32 (Nullable<int64>()) // evaluates to Nullable<int32>()
+ Nullable.int32 (Nullable<int64>(3)) // evaluates to Nullable(3)
+
+
+
+
+ Converts the argument to a particular enum type.
+
+ The input value.
+
+ The converted enum type.
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.enum<DayOfWeek> (Nullable<int>()) // evaluates to Nullable<uint>()
+ Nullable.enum<DayOfWeek> (Nullable<int>(3)) // evaluates to Nullable<DayOfWeek>(Wednesday)
+
+
+
+
+ Converts the argument to an unsigned 32-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted unsigned integer
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.uint (Nullable<int>()) // evaluates to Nullable<uint>()
+ Nullable.uint (Nullable<int>(3)) // evaluates to Nullable(3u)
+
+
+
+
+ Converts the argument to signed 32-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted int
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.int (Nullable<int64>()) // evaluates to Nullable<int>()
+ Nullable.int (Nullable<int64>(3)) // evaluates to Nullable(3)
+
+
+
+
+ Converts the argument to unsigned 16-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted uint16
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.uint16 (Nullable<int>()) // evaluates to Nullable<uint16>()
+ Nullable.uint16 (Nullable<int>(3)) // evaluates to Nullable(3us)
+
+
+
+
+ Converts the argument to signed 16-bit integer. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted int16
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.int16 (Nullable<int>()) // evaluates to Nullable<int16>()
+ Nullable.int16 (Nullable<int>(3)) // evaluates to Nullable(3s)
+
+
+
+
+ Converts the argument to signed byte. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted sbyte
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.int8 (Nullable<int>()) // evaluates to Nullable<sbyte>()
+ Nullable.int8 (Nullable<int>(3)) // evaluates to Nullable(3y)
+
+
+
+
+ Converts the argument to signed byte. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted sbyte
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.sbyte (Nullable<int>()) // evaluates to Nullable<sbyte>()
+ Nullable.sbyte (Nullable<int>(3)) // evaluates to Nullable(3y)
+
+
+
+
+ Converts the argument to byte. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted byte
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.uint8 (Nullable<int>()) // evaluates to Nullable<byte>()
+ Nullable.uint8 (Nullable<int>(3)) // evaluates to Nullable(3uy)
+
+
+
+
+ Converts the argument to byte. This is a direct conversion for all
+ primitive numeric types. The operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted byte
+
+
+
+ open System
+ open FSharp.Linq.NullableOperators
+
+ Nullable.byte (Nullable<int>()) // evaluates to Nullable<byte>()
+ Nullable.byte (Nullable<int>(3)) // evaluates to Nullable(3uy)
+
+
+
+
+
+
+ Functions for converting nullable values
+
+
+
+ The division operator where a nullable value appears on both left and right sides
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The division operator where a nullable value appears on the right
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The division operator where a nullable value appears on the left
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The modulus operator where a nullable value appears on both left and right sides
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The modulus operator where a nullable value appears on the right
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The modulus operator where a nullable value appears on the left
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The multiplication operator where a nullable value appears on both left and right sides
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The multiplication operator where a nullable value appears on the right
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The multiplication operator where a nullable value appears on the left
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The subtraction operator where a nullable value appears on both left and right sides
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The subtraction operator where a nullable value appears on the right
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The subtraction operator where a nullable value appears on the left
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The addition operator where a nullable value appears on both left and right sides
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The addition operator where a nullable value appears on the right
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The addition operator where a nullable value appears on the left
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The '<>' operator where a nullable value appears on both left and right sides
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The '=' operator where a nullable value appears on both left and right sides
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The '<' operator where a nullable value appears on both left and right sides
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The '<=' operator where a nullable value appears on both left and right sides
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The '>' operator where a nullable value appears on both left and right sides
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The '>=' operator where a nullable value appears on both left and right sides
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The '<>' operator where a nullable value appears on the right
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The '=' operator where a nullable value appears on the right
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The '<' operator where a nullable value appears on the right
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The '<=' operator where a nullable value appears on the right
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The '>' operator where a nullable value appears on the right
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The '>=' operator where a nullable value appears on the right
+
+ This operator is primarily for use in F# queries
+
+ See the other operators in this module for related examples.
+
+
+ The '<>' operator where a nullable value appears on the left
+
+ This operator is primarily for use in F# queries
+
+
+
+ open FSharp.Linq.NullableOperators
+
+ Nullable(3) ?<>= 4 // true
+ Nullable(4) ?<>= 4 // false
+ Nullable() ?<> 4 // true
+
+
+
+
+
+ The '=' operator where a nullable value appears on the left
+
+ This operator is primarily for use in F# queries
+
+
+
+ open FSharp.Linq.NullableOperators
+
+ Nullable(3) ?= 4 // false
+ Nullable(4) ?= 4 // true
+ Nullable() ?= 4 // false
+
+
+
+
+
+ The '<' operator where a nullable value appears on the left
+
+ This operator is primarily for use in F# queries
+
+
+
+ open FSharp.Linq.NullableOperators
+
+ Nullable(3) ?< 4 // true
+ Nullable(4) ?< 4 // false
+ Nullable() ?< 4 // false
+
+
+
+
+ The '<=' operator where a nullable value appears on the left
+
+ This operator is primarily for use in F# queries
+
+
+
+ open FSharp.Linq.NullableOperators
+
+ Nullable(3) ?<= 4 // true
+ Nullable(5) ?<= 4 // false
+ Nullable() ?<= 4 // false
+
+
+
+
+ The '>' operator where a nullable value appears on the left
+
+ This operator is primarily for use in F# queries
+
+
+
+ open FSharp.Linq.NullableOperators
+
+ Nullable(3) ?> 4 // false
+ Nullable(5) ?> 4 // true
+ Nullable() ?> 4 // false
+
+
+
+
+
+ The '>=' operator where a nullable value appears on the left
+
+ This operator is primarily for use in F# queries
+
+
+
+ open FSharp.Linq.NullableOperators
+
+ Nullable(3) ?>= 4 // false
+ Nullable(4) ?>= 4 // true
+ Nullable() ?>= 4 // false
+
+
+
+
+
+
+ Operators for working with nullable values, primarily used on F# queries.
+
+
+
+ This type shouldn't be used directly from user code.
+
+
+
+ This type shouldn't be used directly from user code.
+
+
+
+ This type shouldn't be used directly from user code.
+
+
+
+ This type shouldn't be used directly from user code.
+
+
+
+ This type shouldn't be used directly from user code.
+
+
+
+ This type shouldn't be used directly from user code.
+
+
+
+ This type shouldn't be used directly from user code.
+
+
+
+ This type shouldn't be used directly from user code.
+
+
+
+
+ A type used to reconstruct a grouping after applying a mutable->immutable mapping transformation
+ on a result of a query.
+
+
+
+
+ A runtime helper used to evaluate nested quotation literals.
+
+
+
+
+
+
+ A runtime helper used to evaluate nested quotation literals.
+
+
+
+
+
+
+ Evaluates a subset of F# quotations by first converting to a LINQ expression, for the subset of LINQ expressions represented by the
+ expression syntax in the C# language.
+
+
+
+
+
+
+ Converts a subset of F# quotations to a LINQ expression, for the subset of LINQ expressions represented by the
+ expression syntax in the C# language.
+
+
+
+
+
+
+ Converts a subset of F# quotations to a LINQ expression, for the subset of LINQ expressions represented by the
+ expression syntax in the C# language.
+
+
+
+
+
+
+ When used in a quotation, this function indicates a specific conversion
+ should be performed when converting the quotation to a LINQ expression.
+
+ This function should not be called directly.
+
+
+
+
+ When used in a quotation, this function indicates a specific conversion
+ should be performed when converting the quotation to a LINQ expression.
+
+ This function should not be called directly.
+
+
+
+
+ When used in a quotation, this function indicates a specific conversion
+ should be performed when converting the quotation to a LINQ expression.
+
+ This function should not be called directly.
+
+
+
+
+ Contains functionality to convert F# quotations to LINQ expression trees.
+
+
+
+ Library functionality associated with converting F# quotations to .NET LINQ expression trees.
+
+
+
+
+ The generic MethodInfo for Select function
+ Describes how we got from productions of immutable objects to productions of anonymous objects, with enough information
+ that we can invert the process in final query results.
+
+
+
+
+ Given the expression part of a "yield" or "select" which produces a result in terms of immutable tuples or immutable records,
+ generate an equivalent expression yielding anonymous objects. Also return the conversion for the immutable-to-mutable correspondence
+ so we can reverse this later.
+
+
+
+
+ Simplify gets of tuples and gets of record fields.
+
+
+
+
+ Cleanup the use of property-set object constructions in leaf expressions that form parts of F# queries.
+
+
+
+
+ Given an type involving immutable tuples and records, logically corresponding to the type produced at a
+ "yield" or "select", convert it to a type involving anonymous objects according to the conversion data.
+
+
+
+
+ Recognize anonymous type construction written using 'new AnonymousObject(<e1>, <e2>, ...)'
+
+
+
+
+ Recognize object construction written using 'new O(Prop1 = <e>, Prop2 = <e>, ...)'
+
+
+
+
+ Tests whether a list consists only of assignments of properties of the
+ given variable, null values (ignored) and ends by returning the given variable
+ (pattern returns only property assignments)
+
+
+
+
+ Recognize sequential series written as (... ((<e>; <e>); <e>); ...)
+
+
+
+
+ A method used to support the F# query syntax. Runs the given quotation as a query using LINQ IEnumerable rules.
+
+
+
+
+ A module used to support the F# query syntax.
+
+
+
+
+ A method used to support the F# query syntax. Runs the given quotation as a query using LINQ rules.
+
+
+
+
+ A module used to support the F# query syntax.
+
+
+
+ Contains modules used to support the F# query syntax.
+
+
+
+
+ A synonym for henry, the SI unit of inductance
+
+
+
+
+ A synonym for katal, the SI unit of catalytic activity
+
+
+
+
+ A synonym for sievert, the SI unit of does equivalent
+
+
+
+
+ A synonym for gray, the SI unit of absorbed dose
+
+
+
+
+ A synonym for becquerel, the SI unit of activity referred to a radionuclide
+
+
+
+
+ A synonym for lux, the SI unit of illuminance
+
+
+
+
+ A synonym for lumen, the SI unit of luminous flux
+
+
+
+
+ A synonym for tesla, the SI unit of magnetic flux density
+
+
+
+
+ A synonym for weber, the SI unit of magnetic flux
+
+
+
+
+ A synonym for UnitNames.ohm, the SI unit of electric resistance.
+
+
+
+
+ A synonym for siemens, the SI unit of electric conductance
+
+
+
+
+ A synonym for farad, the SI unit of capacitance
+
+
+
+
+ A synonym for volt, the SI unit of electric potential difference, electromotive force
+
+
+
+
+ A synonym for coulomb, the SI unit of electric charge, amount of electricity
+
+
+
+
+ A synonym for watt, the SI unit of power, radiant flux
+
+
+
+
+ A synonym for joule, the SI unit of energy, work, amount of heat
+
+
+
+
+ A synonym for pascal, the SI unit of pressure, stress
+
+
+
+
+ A synonym for newton, the SI unit of force
+
+
+
+
+ A synonym for hertz, the SI unit of frequency
+
+
+
+
+ A synonym for candela, the SI unit of luminous intensity
+
+
+
+
+ A synonym for mole, the SI unit of amount of substance
+
+
+
+
+ A synonym for kelvin, the SI unit of thermodynamic temperature
+
+
+
+
+ A synonym for ampere, the SI unit of electric current
+
+
+
+
+ A synonym for second, the SI unit of time
+
+
+
+
+ A synonym for kilogram, the SI unit of mass
+
+
+
+
+ A synonym for Metre, the SI unit of length
+
+
+
+
+ The SI unit of catalytic activity
+
+
+
+
+ The SI unit of does equivalent
+
+
+
+
+ The SI unit of absorbed dose
+
+
+
+
+ The SI unit of activity referred to a radionuclide
+
+
+
+
+ The SI unit of illuminance
+
+
+
+
+ The SI unit of luminous flux
+
+
+
+
+ The SI unit of inductance
+
+
+
+
+ The SI unit of magnetic flux density
+
+
+
+
+ The SI unit of magnetic flux
+
+
+
+
+ The SI unit of electric conductance
+
+
+
+
+ The SI unit of electric resistance
+
+
+
+
+ The SI unit of capacitance
+
+
+
+
+ The SI unit of electric potential difference, electromotive force
+
+
+
+
+ The SI unit of electric charge, amount of electricity
+
+
+
+
+ The SI unit of power, radiant flux
+
+
+
+
+ The SI unit of energy, work, amount of heat
+
+
+
+
+ The SI unit of pressure, stress
+
+
+
+
+ The SI unit of force
+
+
+
+
+ The SI unit of frequency
+
+
+
+
+ The SI unit of luminous intensity
+
+
+
+
+ The SI unit of amount of substance
+
+
+
+
+ The SI unit of thermodynamic temperature
+
+
+
+
+ The SI unit of electric current
+
+
+
+
+ The SI unit of time
+
+
+
+
+ The SI unit of mass
+
+
+
+
+ The SI unit of length
+
+
+
+
+ The SI unit of length
+
+
+
+ Represents an Common IL (Intermediate Language) Signature Pointer.
+
+ This type should only be used when writing F# code that interoperates
+ with other .NET languages that use generic Common IL Signature Pointers.
+ Use of this type in F# code may result in unverifiable code being generated.
+ Because of the rules of Common IL Signature Pointers, you cannot use this type in generic type parameters,
+ resulting in compiler errors. As a result, you should convert this type to
+ for use in F#. Note that Common IL Signature Pointers exposed by other .NET languages are converted to
+ or automatically by F#,
+ and F# also shows generic-specialized typed native pointers correctly to other .NET languages as Common IL Signature Pointers.
+ However, generic typed native pointers are shown as to other .NET languages.
+ For other languages to interpret generic F# typed native pointers correctly, you should expose this type or
+ instead of .
+ Values of this type can be generated by the functions in the NativeInterop.NativePtr module.
+
+ ByRef and Pointer Types
+
+
+ Represents an untyped unmanaged pointer in F# code.
+
+ This type should only be used when writing F# code that interoperates
+ with native code. Use of this type in F# code may result in
+ unverifiable code being generated. Conversions to and from the
+ type may be required. Values of this type can be generated
+ by the functions in the NativeInterop.NativePtr module.
+
+ ByRef and Pointer Types
+
+
+ Represents an unmanaged pointer in F# code.
+
+ This type should only be used when writing F# code that interoperates
+ with native code. Use of this type in F# code may result in
+ unverifiable code being generated. Conversions to and from the
+ type may be required. Values of this type can be generated
+ by the functions in the NativeInterop.NativePtr module.
+
+ ByRef and Pointer Types
+
+
+ Single dimensional, zero-based arrays, written int array, string array etc.
+
+ Use the values in the module to manipulate values
+ of this type, or the notation arr.[x] to get/set array
+ values.
+
+ Basic Types
+
+
+ Thirty-two dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Thirty-one dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Thirty dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Twenty-nine dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Twenty-eight dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Twenty-seven dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Twenty-six dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Twenty-five dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Twenty-four dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Twenty-three dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Twenty-two dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Twenty-one dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Twenty dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Nineteen dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Eighteen dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Seventeen dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Sixteen dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Fifteen dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Fourteen dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Thirteen dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Twelve dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Eleven dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Ten dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Nine dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Eight dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Seven dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Six dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Five dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Four dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Use the values in the Array4D module
+ to manipulate values of this type, or the notation arr.[x1,x2,x3,x4] to get and set array
+ values.
+
+ Basic Types
+
+
+
+ Three dimensional arrays, typically zero-based. Non-zero-based arrays
+ can be created using methods on the System.Array type.
+
+ Use the values in the Array3D module
+ to manipulate values of this type, or the notation arr.[x1,x2,x3] to get and set array
+ values.
+
+ Basic Types
+
+
+
+ Two dimensional arrays, typically zero-based.
+
+ Use the values in the Array2D module
+ to manipulate values of this type, or the notation arr.[x,y] to get/set array
+ values.
+
+ Non-zero-based arrays can also be created using methods on the System.Array type.
+
+ Basic Types
+
+
+
+ Single dimensional, zero-based arrays, written int array, string array etc.
+
+ Use the values in the Array module to manipulate values
+ of this type, or the notation arr.[x] to get/set array
+ values.
+
+ Basic Types
+
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type . Identical to .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type . Identical to .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+ An abbreviation for the CLI type .
+
+ Basic Types
+
+
+
+ Represents an Error or a Failure. The code failed with a value of 'TError representing what went wrong.
+
+
+
+
+ Represents an OK or a Successful result. The code succeeded with a value of 'T.
+
+
+
+ Helper type for error handling without exceptions.
+
+ Choices and Results
+
+
+ The type of optional values, represented as structs.
+
+ Use the constructors ValueSome and ValueNone to create values of this type.
+ Use the values in the ValueOption module to manipulate values of this type,
+ or pattern match against the values directly.
+
+ Options
+
+
+ The representation of "Value of type 'T"
+
+ The input value.
+
+ An option representing the value.
+
+
+ The representation of "No value"
+
+
+ Implicitly converts a value into an optional that is a 'ValueSome' value.
+
+ The input value
+
+ The F# compiler ignored this method when determining possible type-directed conversions. Instead, use Some or None explicitly.
+
+ A voption representing the value.
+
+
+
+ Get the value of a 'ValueSome' option. An InvalidOperationException is raised if the option is 'ValueNone'.
+
+
+ Create a value option value that is a 'ValueNone' value.
+
+
+
+ Return 'true' if the value option is a 'ValueSome' value.
+
+
+ Return 'true' if the value option is a 'ValueNone' value.
+
+
+ Create a value option value that is a 'Some' value.
+
+ The input value
+
+ A value option representing the value.
+
+
+
+ The type of optional values, represented as structs.
+
+ Use the constructors ValueSome and ValueNone to create values of this type.
+ Use the values in the ValueOption module to manipulate values of this type,
+ or pattern match against the values directly.
+
+ Options
+
+
+
+ The type of optional values. When used from other CLI languages the
+ empty option is the null value.
+
+ Use the constructors Some and None to create values of this type.
+ Use the values in the Option module to manipulate values of this type,
+ or pattern match against the values directly.
+
+ 'None' values will appear as the value null to other CLI languages.
+ Instance methods on this type will appear as static methods to other CLI languages
+ due to the use of null as a value representation.
+
+ Options
+
+
+ The representation of "Value of type 'T"
+
+ The input value.
+
+ An option representing the value.
+
+
+ The representation of "No value"
+
+
+ Implicitly converts a value into an optional that is a 'Some' value.
+
+ The input value
+
+ The F# compiler ignored this method when determining possible type-directed conversions. Instead, use Some or None explicitly.
+
+ An option representing the value.
+
+
+
+ Get the value of a 'Some' option. A NullReferenceException is raised if the option is 'None'.
+
+
+ Create an option value that is a 'None' value.
+
+
+
+ Return 'true' if the option is a 'Some' value.
+
+
+ Return 'true' if the option is a 'None' value.
+
+
+ Create an option value that is a 'Some' value.
+
+ The input value
+
+ An option representing the value.
+
+
+
+ The type of optional values. When used from other CLI languages the
+ empty option is the null value.
+
+ Use the constructors Some and None to create values of this type.
+ Use the values in the Option module to manipulate values of this type,
+ or pattern match against the values directly.
+
+ None values will appear as the value null to other CLI languages.
+ Instance methods on this type will appear as static methods to other CLI languages
+ due to the use of null as a value representation.
+
+ Options
+
+
+
+ The type of mutable references. Use the functions [!] and [:=] to get and
+ set values of this type.
+ Basic Types
+
+
+
+ The current value of the reference cell
+
+
+
+ The current value of the reference cell
+
+
+ The current value of the reference cell
+
+
+ The type of mutable references. Use the functions [!] and [:=] to get and
+ set values of this type.
+
+ Basic Types
+
+
+
+ Convert the given Converter delegate object to an F# function value
+
+ The input Converter delegate.
+
+ The F# function.
+
+
+ Convert the given Action delegate object to an F# function value
+
+ The input Action delegate.
+
+ The F# function.
+
+
+ A utility function to convert function values from tupled to curried form
+
+ The input tupled function.
+
+ The output curried function.
+
+
+ A utility function to convert function values from tupled to curried form
+
+ The input tupled function.
+
+ The output curried function.
+
+
+ A utility function to convert function values from tupled to curried form
+
+ The input tupled function.
+
+ The output curried function.
+
+
+ A utility function to convert function values from tupled to curried form
+
+ The input tupled function.
+
+ The output curried function.
+
+
+ Convert the given Func delegate object to an F# function value
+
+ The input Func delegate.
+
+ The F# function.
+
+
+ Convert the given Func delegate object to an F# function value
+
+ The input Func delegate.
+
+ The F# function.
+
+
+ Convert the given Func delegate object to an F# function value
+
+ The input Func delegate.
+
+ The F# function.
+
+
+ Convert the given Func delegate object to an F# function value
+
+ The input Func delegate.
+
+ The F#funcfunction.
+
+
+ Convert the given Func delegate object to an F# function value
+
+ The input Func delegate.
+
+ The F# function.
+
+
+ Convert the given Func delegate object to an F# function value
+
+ The input Func delegate.
+
+ The F# function.
+
+
+ Convert the given Action delegate object to an F# function value
+
+ The input Action delegate.
+
+ The F# function.
+
+
+ Convert the given Action delegate object to an F# function value
+
+ The input Action delegate.
+
+ The F# function.
+
+
+ Convert the given Action delegate object to an F# function value
+
+ The input Action delegate.
+
+ The F# function.
+
+
+ Convert the given Action delegate object to an F# function value
+
+ The input Action delegate.
+
+ The F#funcfunction.
+
+
+ Convert the given Action delegate object to an F# function value
+
+ The input Action delegate.
+
+ The F# function.
+
+
+ Convert the given Action delegate object to an F# function value
+
+ The input Action delegate.
+
+ The F# function.
+
+
+ Helper functions for converting F# first class function values to and from CLI representations
+ of functions using delegates.
+ Language Primitives
+
+
+ Convert an value of type to a F# first class function value
+
+ The input System.Converter.
+
+ An F# function of the same type.
+
+
+ Convert an F# first class function value to a value of type
+
+ The input function.
+
+ A System.Converter of the function type.
+
+
+ Convert an F# first class function value to a value of type
+
+ The input function.
+
+ System.Converter<'T,'U>
+
+
+ Invoke an F# first class function value with two curried arguments. In some cases this
+ will result in a more efficient application than applying the arguments successively.
+
+ The input function.
+ The first arg.
+ The second arg.
+
+ The function result.
+
+
+ Invoke an F# first class function value with three curried arguments. In some cases this
+ will result in a more efficient application than applying the arguments successively.
+
+ The input function.
+ The first arg.
+ The second arg.
+ The third arg.
+
+ The function result.
+
+
+ Invoke an F# first class function value with four curried arguments. In some cases this
+ will result in a more efficient application than applying the arguments successively.
+
+ The input function.
+ The first arg.
+ The second arg.
+ The third arg.
+ The fourth arg.
+
+ The function result.
+
+
+ Invoke an F# first class function value with five curried arguments. In some cases this
+ will result in a more efficient application than applying the arguments successively.
+
+ The input function.
+ The first arg.
+ The second arg.
+ The third arg.
+ The fourth arg.
+ The fifth arg.
+
+ The function result.
+
+
+ Invoke an F# first class function value with one argument
+
+
+
+ 'U
+
+
+ Convert an value of type to a F# first class function value
+
+ The input System.Converter.
+
+ An F# function of the same type.
+
+
+ Construct an instance of an F# first class function value
+ The created F# function.
+
+
+ The CLI type used to represent F# function values. This type is not
+ typically used directly, though may be used from other CLI languages.
+ Language Primitives
+
+
+ Specialize the type function at a given type
+ The specialized type.
+
+
+ Construct an instance of an F# first class type function value
+ FSharpTypeFunc
+
+
+ The CLI type used to represent F# first-class type function values. This type is for use
+ by compiled F# code.
+ Language Primitives
+
+
+ Choice 7 of 7 choices
+
+
+ Choice 6 of 7 choices
+
+
+ Choice 5 of 7 choices
+
+
+ Choice 4 of 7 choices
+
+
+ Choice 3 of 7 choices
+
+
+ Choice 2 of 7 choices
+
+
+ Choice 1 of 7 choices
+
+
+ Helper types for active patterns with 7 choices.
+ Choices and Results
+
+
+ Choice 6 of 6 choices
+
+
+ Choice 5 of 6 choices
+
+
+ Choice 4 of 6 choices
+
+
+ Choice 3 of 6 choices
+
+
+ Choice 2 of 6 choices
+
+
+ Choice 1 of 6 choices
+
+
+ Helper types for active patterns with 6 choices.
+ Choices and Results
+
+
+ Choice 5 of 5 choices
+
+
+ Choice 4 of 5 choices
+
+
+ Choice 3 of 5 choices
+
+
+ Choice 2 of 5 choices
+
+
+ Choice 1 of 5 choices
+
+
+ Helper types for active patterns with 5 choices.
+ Choices and Results
+
+
+ Choice 4 of 4 choices
+
+
+ Choice 3 of 4 choices
+
+
+ Choice 2 of 4 choices
+
+
+ Choice 1 of 4 choices
+
+
+ Helper types for active patterns with 4 choices.
+ Choices and Results
+
+
+ Choice 3 of 3 choices
+
+
+ Choice 2 of 3 choices
+
+
+ Choice 1 of 3 choices
+
+
+ Helper types for active patterns with 3 choices.
+ Choices and Results
+
+
+ Choice 2 of 2 choices
+
+
+ Choice 1 of 2 choices
+
+
+ Helper types for active patterns with 2 choices.
+ Choices and Results
+
+
+ Represents a out-argument managed pointer in F# code. This type should only be used with F# 4.5+.
+ ByRef and Pointer Types
+
+
+ Represents a in-argument or readonly managed pointer in F# code. This type should only be used with F# 4.5+.
+ ByRef and Pointer Types
+
+
+ Represents a managed pointer in F# code. For F# 4.5+ this is considered equivalent to byref<'T, ByRefKinds.InOut>
+ ByRef and Pointer Types
+
+
+ Represents a managed pointer in F# code.
+ ByRef and Pointer Types
+
+
+ The type of 32-bit unsigned integer numbers, annotated with a unit of measure.
+ The unit of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of 8-bit unsigned integer numbers, annotated with a unit of measure.
+ The unit of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of 32-bit signed integer numbers, annotated with a unit of measure.
+ The unit of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of 8-bit signed integer numbers, annotated with a unit of measure.
+ The unit of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of single-precision floating point numbers, annotated with a unit of measure.
+ The unit of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of double-precision floating point numbers, annotated with a unit of measure.
+ The unit of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of machine-sized unsigned integer numbers, annotated with a unit of measure.
+ The unit of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of 64-bit unsigned integer numbers, annotated with a unit of measure.
+ The unit of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of 16-bit unsigned integer numbers, annotated with a unit of measure.
+ The unit of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of 8-bit unsigned integer numbers, annotated with a unit of measure.
+ The unit of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of 32-bit unsigned integer numbers, annotated with a unit of measure.
+ The unit of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of machine-sized signed integer numbers, annotated with a unit of measure.
+ The unit of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of 64-bit signed integer numbers, annotated with a unit of measure. The unit
+ of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of 16-bit signed integer numbers, annotated with a unit of measure. The unit
+ of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of 8-bit signed integer numbers, annotated with a unit of measure. The unit
+ of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of 32-bit signed integer numbers, annotated with a unit of measure. The unit
+ of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of decimal numbers, annotated with a unit of measure. The unit
+ of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ The type of single-precision floating point numbers, annotated with a unit of measure.
+ The unit of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+
+ Basic Types with Units of Measure
+
+
+ The type of double-precision floating point numbers, annotated with a unit of measure.
+ The unit of measure is erased in compiled code and when values of this type
+ are analyzed using reflection. The type is representationally equivalent to
+ .
+
+ Basic Types with Units of Measure
+
+
+ Indicates a function that should be called in a tail recursive way inside its recursive scope.
+ A warning is emitted if the function is analyzed as not tail recursive after the optimization phase.
+
+ Attributes
+
+
+
+ let mul x y = x * y
+ [<TailCall>]
+ let rec fact n acc =
+ if n = 0
+ then acc
+ else (fact (n - 1) (mul n acc)) + 23 // warning because of the addition after the call to fact
+
+
+
+
+ Creates an instance of the attribute
+ NoCompilerInliningAttribute
+
+
+ Indicates a value or a function that must not be inlined by the F# compiler,
+ but may be inlined by the JIT compiler.
+
+ Attributes
+
+
+ Indicates the namespace or module to be automatically opened when an assembly is referenced
+ or an enclosing module opened.
+
+
+ Creates an attribute used to mark a namespace or module path to be 'automatically opened' when an assembly is referenced
+
+ The namespace or module to be automatically opened when an assembly is referenced
+ or an enclosing module opened.
+
+ AutoOpenAttribute
+
+
+ Creates an attribute used to mark a module as 'automatically opened' when the enclosing namespace is opened
+ AutoOpenAttribute
+
+
+ Indicates a construct is automatically opened when brought into scope through
+ an assembly reference or then opening of the containing namespace or module.
+
+ When applied to an assembly, this attribute must be given a string
+ argument, and this indicates a valid module or namespace in that assembly. Source
+ code files compiled with a reference to this assembly are processed in an environment
+ where the given path is automatically opened.
+
+ When applied to a type or module within an assembly, then the attribute must not be given any arguments, and
+ the type or module is implicitly opened when its enclosing namespace or module is opened.
+
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ RequireQualifiedAccessAttribute
+
+
+ This attribute is used to indicate that references to the elements of a module, record or union
+ type require explicit qualified access.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ NoDynamicInvocationAttribute
+
+
+ This attribute is used to tag values that may not be dynamically invoked at runtime. This is
+ typically added to inlined functions whose implementations include unverifiable code. It
+ causes the method body emitted for the inlined function to raise an exception if
+ dynamically invoked, rather than including the unverifiable code in the generated
+ assembly.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ UnverifiableAttribute
+
+
+ This attribute is used to tag values whose use will result in the generation
+ of unverifiable code. These values are inevitably marked 'inline' to ensure that
+ the unverifiable constructs are not present in the actual code for the F# library,
+ but are rather copied to the source code of the caller.
+
+ Attributes
+
+
+ Indicates if the construct should always be hidden in an editing environment.
+
+
+ Indicates if the message should indicate a compiler error. Error numbers less than
+ 10000 are considered reserved for use by the F# compiler and libraries.
+
+
+ Indicates the number associated with the message.
+
+
+ Indicates the warning message to be emitted when F# source code uses this construct
+
+
+ Indicates if the construct should always be hidden in an editing environment.
+
+
+ Indicates if the message should indicate a compiler error. Error numbers less than
+ 10000 are considered reserved for use by the F# compiler and libraries.
+
+
+ Creates an instance of the attribute.
+
+
+ Indicates that a message should be emitted when F# source code uses this construct.
+
+ Attributes
+
+
+ Indicates the text to display by default when objects of this type are displayed
+ using '%A' printf formatting patterns and other two-dimensional text-based display
+ layouts.
+
+
+ Creates an instance of the attribute
+
+ Indicates the text to display when using the '%A' printf formatting.
+
+ StructuredFormatDisplayAttribute
+
+
+ This attribute is used to mark how a type is displayed by default when using
+ '%A' printf formatting patterns and other two-dimensional text-based display layouts.
+ In this version of F# valid values are of the form PreText {PropertyName1} PostText {PropertyName2} ... {PropertyNameX} PostText.
+ The property names indicate properties to evaluate and to display instead of the object itself.
+
+ Attributes
+
+
+ Indicates the number of arguments in each argument group
+
+
+ Creates an instance of the attribute
+
+ Indicates the number of arguments in each argument group.
+
+ CompilationArgumentCountsAttribute
+
+
+ This attribute is generated automatically by the F# compiler to tag functions and members
+ that accept a partial application of some of their arguments and return a residual function.
+
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ InlineIfLambdaAttribute
+
+
+ Adding this attribute to a parameter of function type indicates that, if the overall function or method is inlined and the parameter is
+ determined to be a known lambda, then this function should be statically inlined throughout the body of the function of method.
+
+ If the function parameter is called multiple times in the implementation of the function or method this attribute may cause code explosion and slow compilation times.
+
+ Attributes
+
+
+ Indicates the warning message to be emitted when F# source code uses this construct
+
+
+ Creates an instance of the attribute
+
+ The warning message to be emitted when code uses this construct.
+
+ ExperimentalAttribute
+
+
+ This attribute is used to tag values that are part of an experimental library
+ feature.
+
+ Attributes
+
+
+ Indicates one or more adjustments to the compiled representation of an F# type or member
+
+
+ Creates an instance of the attribute
+
+ Indicates adjustments to the compiled representation of the type or member.
+
+ CompilationRepresentationAttribute
+
+
+ This attribute is used to adjust the runtime representation for a type.
+ For example, it may be used to note that the null representation
+ may be used for a type. This affects how some constructs are compiled.
+
+
+ Attributes
+
+
+ Indicates the name of the entity in F# source code
+
+
+ Creates an instance of the attribute
+
+ The name of the method in source.
+
+ CompilationSourceNameAttribute
+
+
+ This attribute is inserted automatically by the F# compiler to tag
+ methods which are given the 'CompiledName' attribute.
+
+ This attribute is used by the functions in the
+ FSharp.Reflection namespace to reverse-map compiled constructs to
+ their original forms. It is not intended for use from user code.
+
+
+ Attributes
+
+
+ Indicates the variant number of the entity, if any, in a linear sequence of elements with F# source code
+
+
+ Indicates the type definitions needed to resolve the source construct
+
+
+ Indicates the relationship between the compiled entity and F# source code
+
+
+ Indicates the sequence number of the entity, if any, in a linear sequence of elements with F# source code
+
+
+ Indicates the resource the source construct relates to
+
+
+ Creates an instance of the attribute
+
+ Indicates the type definitions needed to resolve the source construct.
+ The name of the resource needed to resolve the source construct.
+
+ CompilationMappingAttribute
+
+
+ Creates an instance of the attribute
+
+ Indicates the type of source construct.
+ Indicates the index in the sequence of variants.
+ Indicates the index in the sequence of constructs.
+
+ CompilationMappingAttribute
+
+
+ Creates an instance of the attribute
+
+ Indicates the type of source construct.
+ Indicates the index in the sequence of constructs.
+
+ CompilationMappingAttribute
+
+
+ Creates an instance of the attribute
+
+ Indicates the type of source construct.
+
+ CompilationMappingAttribute
+
+
+ This attribute is inserted automatically by the F# compiler to tag types
+ and methods in the generated CLI code with flags indicating the correspondence
+ with original source constructs.
+
+ This attribute is used by the functions in the
+ FSharp.Reflection namespace to reverse-map compiled constructs to
+ their original forms. It is not intended for use from user code.
+
+ Attributes
+
+
+ The release number of the F# version associated with the attribute
+
+
+ The minor version number of the F# version associated with the attribute
+
+
+ The major version number of the F# version associated with the attribute
+
+
+ Creates an instance of the attribute
+
+ The major version number.
+ The minor version number.
+ The release number.
+
+ FSharpInterfaceDataVersionAttribute
+
+
+ This attribute is added to generated assemblies to indicate the
+ version of the data schema used to encode additional F#
+ specific information in the resource attached to compiled F# libraries.
+
+ Attributes
+
+
+ The value of the attribute, indicating whether the type is automatically marked serializable or not
+
+
+ Creates an instance of the attribute
+
+ Indicates whether the type should be serializable by default.
+
+ AutoSerializableAttribute
+
+
+ Adding this attribute to a type with value 'false' disables the behaviour where F# makes the
+ type Serializable by default.
+
+ Attributes
+
+
+ The name of the value as it appears in compiled code
+
+
+ Creates an instance of the attribute
+
+ The name to use in compiled code.
+
+ CompiledNameAttribute
+
+
+ Adding this attribute to a value or function definition in an F# module changes the name used
+ for the value in compiled CLI code.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ GeneralizableValueAttribute
+
+
+ Adding this attribute to a non-function value with generic parameters indicates that
+ uses of the construct can give rise to generic code through type inference.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ RequiresExplicitTypeArgumentsAttribute
+
+
+ Adding this attribute to a type, value or member requires that
+ uses of the construct must explicitly instantiate any generic type parameters.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ OptionalArgumentAttribute
+
+
+ This attribute is added automatically for all optional arguments.
+
+ Attributes
+
+
+ Indicates if a constraint is asserted that the field type supports 'null'
+
+
+ Creates an instance of the attribute
+
+ Indicates whether to assert that the field type supports null.
+
+ DefaultValueAttribute
+
+
+ Creates an instance of the attribute
+ DefaultValueAttribute
+
+
+ Adding this attribute to a field declaration means that the field is
+ not initialized. During type checking a constraint is asserted that the field type supports 'null'.
+ If the 'check' value is false then the constraint is not asserted.
+
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ NoComparisonAttribute
+
+
+ Adding this attribute to a type indicates it is a type where comparison is an abnormal operation.
+ This means that the type does not satisfy the F# 'comparison' constraint. Within the bounds of the
+ F# type system, this helps ensure that the F# generic comparison function is not instantiated directly
+ at this type. The attribute and checking does not constrain the use of comparison with base or child
+ types of this type.
+
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ CustomComparisonAttribute
+
+
+ Adding this attribute to a type indicates it is a type with a user-defined implementation of comparison.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ CustomEqualityAttribute
+
+
+ Adding this attribute to a type indicates it is a type with a user-defined implementation of equality.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ NoEqualityAttribute
+
+
+ Adding this attribute to a type indicates it is a type where equality is an abnormal operation.
+ This means that the type does not satisfy the F# 'equality' constraint. Within the bounds of the
+ F# type system, this helps ensure that the F# generic equality function is not instantiated directly
+ at this type. The attribute and checking does not constrain the use of comparison with base or child
+ types of this type.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ ProjectionParameterAttribute
+
+
+ Indicates that, when a custom operator is used in a computation expression,
+ a parameter is automatically parameterized by the variable space of the computation expression
+
+ Attributes
+
+
+ Indicates if the custom operation maintains the variable space of the query of computation expression through the use of a bind operation
+
+
+ Indicates if the custom operation maintains the variable space of the query of computation expression
+
+
+ Indicates the name used for the 'on' part of the custom query operator for join-like operators
+
+
+ Indicates if the custom operation is an operation similar to a zip in a sequence computation, supporting two inputs
+
+
+ Indicates if the custom operation is an operation similar to a join in a sequence computation, supporting two inputs and a correlation constraint
+
+
+ Indicates if the custom operation is an operation similar to a group join in a sequence computation, supporting two inputs and a correlation constraint, and generating a group
+
+
+ Indicates if the custom operation supports the use of 'into' immediately after the use of the operation in a query or other computation expression to consume the results of the operation
+
+
+ Get the name of the custom operation when used in a query or other computation expression
+
+
+ Indicates if the custom operation maintains the variable space of the query of computation expression through the use of a bind operation
+
+
+ Indicates if the custom operation maintains the variable space of the query of computation expression
+
+
+ Indicates the name used for the 'on' part of the custom query operator for join-like operators
+
+
+ Indicates if the custom operation is an operation similar to a zip in a sequence computation, supporting two inputs
+
+
+ Indicates if the custom operation is an operation similar to a join in a sequence computation, supporting two inputs and a correlation constraint
+
+
+ Indicates if the custom operation is an operation similar to a group join in a sequence computation, supporting two inputs and a correlation constraint, and generating a group
+
+
+ Indicates if the custom operation supports the use of 'into' immediately after the use of the operation in a query or other computation expression to consume the results of the operation
+
+
+ Create an instance of attribute with empty name
+ CustomOperationAttribute
+
+
+ Creates an instance of the attribute
+ CustomOperationAttribute
+
+
+ Indicates that a member on a computation builder type is a custom query operator,
+ and indicates the name of that operator.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ StructuralComparisonAttribute
+
+
+ Adding this attribute to a record, union, exception, or struct type confirms the
+ automatic generation of implementations for 'System.IComparable' for the type.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ StructuralEqualityAttribute
+
+
+ Adding this attribute to a record, union or struct type confirms the automatic
+ generation of overrides for 'System.Object.Equals(obj)' and
+ 'System.Object.GetHashCode()' for the type.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ ReferenceEqualityAttribute
+
+
+ Adding this attribute to a record or union type disables the automatic generation
+ of overrides for 'System.Object.Equals(obj)', 'System.Object.GetHashCode()'
+ and 'System.IComparable' for the type. The type will by default use reference equality.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ EntryPointAttribute
+
+
+ Adding this attribute to a function indicates it is the entrypoint for an application.
+ If this attribute is not specified for an EXE then the initialization implicit in the
+ module bindings in the last file in the compilation sequence are used as the entrypoint.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ VolatileFieldAttribute
+
+
+ Adding this attribute to an F# mutable binding causes the "volatile"
+ prefix to be used for all accesses to the field.
+
+ Attributes
+
+
+ The value of the attribute, indicating whether the type has a default augmentation or not
+
+
+ Creates an instance of the attribute
+
+ Indicates whether to generate helper members on the CLI class representing a discriminated
+ union.
+
+ DefaultAugmentationAttribute
+
+
+ Adding this attribute to a discriminated union with value false
+ turns off the generation of standard helper member tester, constructor
+ and accessor members for the generated CLI class for that type.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ CLIMutableAttribute
+
+
+ Adding this attribute to a record type causes it to be compiled to a CLI representation
+ with a default constructor with property getters and setters.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ CLIEventAttribute
+
+
+ Adding this attribute to a property with event type causes it to be compiled with as a CLI
+ metadata event, through a syntactic translation to a pair of 'add_EventName' and
+ 'remove_EventName' methods.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ LiteralAttribute
+
+
+ Adding this attribute to a value causes it to be compiled as a CLI constant literal.
+
+ Attributes
+
+
+ The value of the attribute, indicating whether the type allows the null literal or not
+
+
+ Creates an instance of the attribute with the specified value
+ AllowNullLiteralAttribute
+
+
+ Creates an instance of the attribute
+ AllowNullLiteralAttribute
+
+
+ Adding this attribute to a type lets the 'null' literal be used for the type
+ within F# code. This attribute may only be added to F#-defined class or
+ interface types.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ ClassAttribute
+
+
+ Adding this attribute to a type causes it to be represented using a CLI class.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ InterfaceAttribute
+
+
+ Adding this attribute to a type causes it to be represented using a CLI interface.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ MeasureAnnotatedAbbreviationAttribute
+
+
+ Adding this attribute to a type causes it to be interpreted as a refined type, currently limited to measure-parameterized types.
+ This may only be used under very limited conditions.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ MeasureAttribute
+
+
+ Adding this attribute to a type causes it to be interpreted as a unit of measure.
+ This may only be used under very limited conditions.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ StructAttribute
+
+
+ Adding this attribute to a type causes it to be represented using a CLI struct.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ ComparisonConditionalOnAttribute
+
+
+ This attribute is used to indicate a generic container type satisfies the F# 'comparison'
+ constraint only if a generic argument also satisfies this constraint.
+
+ For example, adding
+ this attribute to parameter 'T on a type definition C<'T> means that a type C<X> only supports
+ comparison if the type X also supports comparison and all other conditions for C<X> to support
+ comparison are also met. The type C<'T> can still be used with other type arguments, but a type such
+ as C<(int -> int)> will not support comparison because the type (int -> int) is an F# function type
+ and does not support comparison.
+
+ This attribute will be ignored if it is used on the generic parameters of functions or methods.
+
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ EqualityConditionalOnAttribute
+
+
+ This attribute is used to indicate a generic container type satisfies the F# 'equality'
+ constraint only if a generic argument also satisfies this constraint.
+
+
+
+ For example, adding
+ this attribute to parameter 'T on a type definition C<'T> means that a type C<X> only supports
+ equality if the type X also supports equality and all other conditions for C<X> to support
+ equality are also met. The type C<'T> can still be used with other type arguments, but a type such
+ as C<(int -> int)> will not support equality because the type (int -> int) is an F# function type
+ and does not support equality.
+
+ This attribute will be ignored if it is used on the generic parameters of functions or methods.
+
+
+ Attributes
+
+
+ The value of the attribute, indicating whether to include the evaluated value of the definition as the outer node of the quotation
+
+
+ Creates an instance of the attribute
+
+ Indicates whether to include the evaluated value of the definition as the outer node of the quotation
+
+ ReflectedDefinitionAttribute
+
+
+ Creates an instance of the attribute
+ ReflectedDefinitionAttribute
+
+
+ Adding this attribute to the let-binding for the definition of a top-level
+ value makes the quotation expression that implements the value available
+ for use at runtime.
+
+ Attributes
+
+
+ Creates an instance of the attribute
+ AbstractClassAttribute
+
+
+ Adding this attribute to class definition makes it abstract, which means it need not
+ implement all its methods. Instances of abstract classes may not be constructed directly.
+
+ Attributes
+
+
+ The value of the attribute, indicating whether the type is sealed or not.
+
+
+ Creates an instance of the attribute
+
+ Indicates whether the class is sealed.
+
+ SealedAttribute
+
+
+ Creates an instance of the attribute.
+ The created attribute.
+
+
+ Adding this attribute to class definition makes it sealed, which means it may not
+ be extended or implemented.
+
+ Attributes
+
+
+ Compile a property as a CLI event.
+
+
+ Permit the use of null as a representation for nullary discriminators in a discriminated union.
+
+
+ append 'Module' to the end of a module whose name clashes with a type name in the same namespace.
+
+
+ Compile a member as 'instance' even if null is used as a representation for this type.
+
+
+ Compile an instance member as 'static' .
+
+
+ No special compilation representation.
+
+
+ Indicates one or more adjustments to the compiled representation of an F# type or member.
+
+ Attributes
+
+
+ Indicates that the compiled entity had private or internal representation in F# source code.
+
+
+ The mask of values related to the kind of the compiled entity.
+
+
+ Indicates that the compiled entity is part of the representation of an F# value declaration.
+
+
+ Indicates that the compiled entity is part of the representation of an F# union case declaration.
+
+
+ Indicates that the compiled entity is part of the representation of an F# module declaration.
+
+
+ Indicates that the compiled entity is part of the representation of an F# closure.
+
+
+ Indicates that the compiled entity is part of the representation of an F# exception declaration.
+
+
+ Indicates that the compiled entity is part of the representation of an F# record or union case field declaration.
+
+
+ Indicates that the compiled entity is part of the representation of an F# class or other object type declaration.
+
+
+ Indicates that the compiled entity is part of the representation of an F# record type declaration.
+
+
+ Indicates that the compiled entity is part of the representation of an F# union type declaration.
+
+
+ Indicates that the compiled entity has no relationship to an element in F# source code.
+
+
+ Indicates the relationship between a compiled entity in a CLI binary and an element in F# source code.
+
+ Attributes
+
+
+ The type 'unit', which has only one value "()". This value is special and
+ always uses the representation 'null'.
+
+ Basic Types
+
+
+
+ Basic definitions of operators, options, functions, results, choices, attributes and plain text formatting.
+
+
+ The type 'unit', which has only one value "()". This value is special and
+ always uses the representation 'null'.
+
+ Basic Types
+
+
+
+ An abbreviation for .
+
+ Basic Types
+
+
+ Type of a formatting expression.
+ Function type generated by printf.
+ Type argument passed to %a formatters
+ Value generated by the overall printf action (e.g. sprint generates a string)
+ Value generated after post processing (e.g. failwithf generates a string internally then raises an exception)
+ Tuple of values generated by scan or match.
+
+ Language Primitives
+
+
+ Type of a formatting expression.
+ Function type generated by printf.
+ Type argument passed to %a formatters
+ Value generated by the overall printf action (e.g. sprint generates a string)
+ Value generated after post processing (e.g. failwithf generates a string internally then raises an exception)
+
+ Language Primitives
+
+
+ Construct a format string
+
+ The input string.
+ The captured expressions in an interpolated string.
+ The types of expressions for %A expression gaps in interpolated string.
+
+ The created format string.
+
+
+ Construct a format string
+
+ The input string.
+
+ The created format string.
+
+
+ Type of a formatting expression.
+
+ Function type generated by printf.
+ Type argument passed to %a formatters
+ Value generated by the overall printf action (e.g. sprint generates a string)
+ Value generated after post processing (e.g. failwithf generates a string internally then raises an exception)
+ Tuple of values generated by scan or match.
+
+ Language Primitives
+
+
+ The raw text of the format string.
+
+
+ The captures associated with an interpolated string.
+
+
+ The capture types associated with an interpolated string.
+
+
+ Construct a format string
+ The input string.
+ The captured expressions in an interpolated string.
+ The types of expressions for %A expression gaps in interpolated string.
+ The PrintfFormat containing the formatted result.
+
+
+ Construct a format string
+ The input string.
+
+ The PrintfFormat containing the formatted result.
+
+
+ Type of a formatting expression.
+
+ Function type generated by printf.
+ Type argument passed to %a formatters
+ Value generated by the overall printf action (e.g. sprint generates a string)
+ Value generated after post processing (e.g. failwithf generates a string internally then raises an exception)
+
+ Language Primitives
+
+
+ Non-exhaustive match failures will raise the MatchFailureException exception
+ Language Primitives
+
+
+ maxDegreeOfParallelism must be positive, was {0}
+
+
+ This is not a valid query expression. The construct '{0}' was used in a query but is not recognized by the F#-to-LINQ query translator. Check the specification of permitted queries and consider moving some of the operations out of the query expression.
+
+
+ This is not a valid query expression. The property '{0}' was used in a query but is not recognized by the F#-to-LINQ query translator. Check the specification of permitted queries and consider moving some of the operations out of the query expression.
+
+
+ This is not a valid query expression. The method '{0}' was used in a query but is not recognized by the F#-to-LINQ query translator. Check the specification of permitted queries and consider moving some of the operations out of the query expression
+
+
+ This is not a valid query expression. The following construct was used in a query but is not recognized by the F#-to-LINQ query translator:\n{0}\nCheck the specification of permitted queries and consider moving some of the operations out of the query expression.
+
+
+ An if/then/else conditional or pattern matching expression with multiple branches is not permitted in a query. An if/then/else conditional may be used.
+
+
+ Unrecognized use of a 'sumBy' or 'averageBy' operator in a query. In queries whose original data is of static type IQueryable, these operators may only be used with result type int32, int64, single, double or decimal
+
+
+ 'thenBy' and 'thenByDescending' may only be used with an ordered input
+
+
+ The input sequence contains more than one element.
+
+
+ The tuple type '{0}' is invalid. Required constructor is not defined.
+
+
+ The record type '{0}' is invalid. Required constructor is not defined.
+
+
+ A continuation provided by Async.FromContinuations was invoked multiple times
+
+
+ The option value was None
+
+
+ This value cannot be mutated
+
+
+ type argument out of range
+
+
+ ill formed expression: AppOp or LetOp
+
+
+ Failed to bind assembly '{0}' while processing quotation data
+
+
+ Cannot take the address of this quotation
+
+
+ Could not bind to method
+
+
+ Could not bind property {0} in type {1}
+
+
+ Could not bind function {0} in type {1}
+
+
+ Bad format specifier (width)
+
+
+ Bad format specifier (after {0})
+
+
+ Bad format specifier (precision)
+
+
+ Not a function type
+
+
+ Missing format specifier
+
+
+ The # formatting modifier is invalid in F#
+
+
+ Expected a width argument
+
+
+ Expected a precision argument
+
+
+ Bad integer supplied to dynamic formatter
+
+
+ Bad format specifier:{0}
+
+
+ Bad float value
+
+
+ Multiple CompilationMappingAttributes, expected at most one
+
+
+ MoveNext not called, or finished
+
+
+ first class uses of '%' or '%%' are not permitted
+
+
+ The constructor method '{0}' for the union case could not be found
+
+
+ An index satisfying the predicate was not found in the collection.
+
+
+ The method '{0}' expects {1} type arguments but {2} were provided
+
+
+ Writing a get-only property
+
+
+ F# union type requires different number of arguments
+
+
+ The tuple lengths are different
+
+
+ Tuple access out of range
+
+
+ Type mismatch when splicing expression into quotation literal. The type of the expression tree being inserted doesn't match the type expected by the splicing operation. Expected '{0}', but received type '{1}'. Consider type-annotating with the expected expression type, e.g., (%% x : {0}) or (%x : {0}).
+
+
+ Type mismatch when building '{0}': function type doesn't match delegate type. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': the expression has the wrong type. Expected '{1}', but received type '{2}'.
+
+
+ Receiver object was unexpected, as member is static
+
+
+ Reading a set-only property
+
+
+ Parent type cannot be null
+
+
+ The member is non-static (instance), but no receiver object was supplied
+
+
+ Invalid function type
+
+
+ Incorrect type
+
+
+ Incorrect number of arguments
+
+
+ Incorrect instance type
+
+
+ Incompatible record length
+
+
+ Failed to bind type '{0}' in assembly '{1}'
+
+
+ Failed to bind property '{0}'
+
+
+ Failed to bind field '{0}'
+
+
+ Failed to bind constructor
+
+
+ The tuple index '{1}' was out of range for tuple type '{0}'.
+
+
+ The System.Threading.SynchronizationContext.Current of the calling thread is null.
+
+
+ The step of a range cannot be zero.
+
+
+ The step of a range cannot be NaN.
+
+
+ The start of a range cannot be NaN.
+
+
+ Reset is not supported on this enumerator.
+
+
+ The parameter is not a recognized method name.
+
+
+ Unexpected quotation hole in expression.
+
+
+ Type mismatch when building '{0}': the variable type doesn't match the type of the right-hand-side of a let binding. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': mismatched type of argument and tuple element. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': types of true and false branches differ. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': lower and upper bounds must be integers. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': body of the for loop must be lambda taking integer as an argument. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': invalid parameter for a method or indexer property. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': initializer doesn't match array type. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': incorrect argument type for an F# union. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': incorrect argument type for an F# record. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': guard must return boolean. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': function argument type doesn't match. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': types of expression does not match. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': expression doesn't match the tuple type. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': expected function type in function application or let binding. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': condition expression must be of type bool. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': body must return unit. Expected '{1}', but received type '{2}'.
+
+
+ Type mismatch when building '{0}': the type of the field was incorrect. Expected '{1}', but received type '{2}'.
+
+
+ Type '{0}' did not have an F# union case named '{1}'.
+
+
+ Type '{0}' did not have an F# record field named '{1}'.
+
+
+ Not a valid F# union case index.
+
+
+ Expected exactly two type arguments.
+
+
+ Expected exactly one type argument.
+
+
+ The type '{0}' is an F# union type but its representation is private. You must specify BindingFlags.NonPublic to access private type representations.
+
+
+ The type '{0}' is an F# record type but its representation is private. You must specify BindingFlags.NonPublic to access private type representations.
+
+
+ The type '{0}' is the representation of an F# exception declaration but its representation is private. You must specify BindingFlags.NonPublic to access private type representations.
+
+
+ The index is outside the legal range.
+
+
+ The object is null and no type was given. Either pass a non-null object or a non-null type parameter.
+
+
+ The object is not an F# record value.
+
+
+ One of the elements in the array is null.
+
+
+ This object is for recursive equality calls and cannot be used for hashing.
+
+
+ The input sequence has an insufficient number of elements.
+
+
+ The two objects have different types and are not comparable.
+
+
+ Type '{0}' is not an F# union type.
+
+
+ Type '{0}' is not a tuple type.
+
+
+ Type '{0}' is not an F# record type.
+
+
+ The function did not compute a permutation.
+
+
+ Type '{0}' is not the representation of an F# exception declaration.
+
+
+ Type '{0}' is not a function type.
+
+
+ Arrays with non-zero base cannot be created on this platform.
+
+
+ The static initialization of a file or type resulted in static data being accessed recursively before it was fully initialized.
+
+
+ The initialization of an object or value resulted in an object or value being accessed recursively before it was fully initialized.
+
+
+ Negating the minimum value of a twos complement number is invalid.
+
+
+ The IAsyncResult object provided does not match this 'End' operation.
+
+
+ The IAsyncResult object provided does not match this 'Cancel' operation.
+
+
+ Map values cannot be mutated.
+
+
+ Mailbox.Scan timed out.
+
+
+ Mailbox.Receive timed out.
+
+
+ MailboxProcessor.PostAndReply timed out.
+
+
+ MailboxProcessor.PostAndAsyncReply timed out.
+
+
+ The MailboxProcessor has already been started.
+
+
+ The lists had different lengths.
+
+
+ The item, key, or index was not found in the collection.
+
+
+ This is not a valid tuple type for the F# reflection library.
+
+
+ The input sequence was empty.
+
+
+ The input must be positive.
+
+
+ The input must be non-negative.
+
+
+ The input list was empty.
+
+
+ The index was outside the range of elements in the list.
+
+
+ Failure during generic comparison: the type '{0}' does not implement the System.IComparable interface. This error may be arise from the use of a function such as 'compare', 'max' or 'min' or a data structure such as 'Set' or 'Map' whose keys contain instances of this type.
+
+
+ Failed to read enough bytes from the stream.
+
+
+ Enumeration based on System.Int32 exceeded System.Int32.MaxValue.
+
+
+ Set contains no elements.
+
+
+ Enumeration has not started. Call MoveNext.
+
+
+ Enumeration already finished.
+
+
+ The end of a range cannot be NaN.
+
+
+ Dynamic invocation of op_Multiply involving overloading is not supported.
+
+
+ Dynamic invocation of op_Multiply involving coercions is not supported.
+
+
+ Dynamic invocation of op_Addition involving overloading is not supported.
+
+
+ Dynamic invocation of op_Addition involving coercions is not supported.
+
+
+ Dynamic invocation of DivideByInt involving coercions is not supported.
+
+
+ Expecting delegate type.
+
+
+ Input string was not in a correct format.
+
+
+ The input array was empty.
+
+
+ The arrays have different lengths.
+
+
+ First class uses of address-of operators are not permitted.
+
+
+ The match cases were incomplete
+
+
+ An active pattern to match values of type
+
+ The input key/value pair.
+
+ A tuple containing the key and value.
+
+
+
+ let kv = System.Collections.Generic.KeyValuePair(42, "the answer")
+ match kv with // evaluates to "found it"
+ | KeyValue (42, v) -> "found it"
+ | KeyValue (k, v) -> "keep waiting"
+
+
+
+
+
+ Converts the argument to character. Numeric inputs are converted according to the UTF-16
+ encoding for characters. String inputs must be exactly one character long. For other
+ input types the operation requires an appropriate static conversion method on the input type.
+
+ The input value.
+
+ The converted char.
+
+
+
+ char "A" // evaluates to 'A'
+ char 0x41 // evaluates to 'A'
+ char 65 // evaluates to 'A'
+
+
+
+
+
+ Converts the argument to System.Decimal using a direct conversion for all
+ primitive numeric types. For strings, the input is converted using UInt64.Parse()
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted decimal.
+
+
+
+ decimal "42.23" // evaluates to 42.23M
+ decimal 0xff // evaluates to 255M
+ decimal -10 // evaluates to -10M
+
+
+
+
+
+ Converts the argument to a string using ToString.
+
+ For standard integer and floating point values and any type that implements IFormattable
+ ToString conversion uses CultureInfo.InvariantCulture.
+ The input value.
+
+ The converted string.
+
+
+
+ string 'A' // evaluates to "A"
+ string 0xff // evaluates to "255"
+ string -10 // evaluates to "-10"
+
+
+
+
+
+ Converts the argument to unsigned native integer using a direct conversion for all
+ primitive numeric types. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted unativeint
+
+
+
+ unativeint 'A' // evaluates to 65un
+ unativeint 0xff // evaluates to 255un
+ unativeint -10 // evaluates to 18446744073709551606un
+
+
+
+
+
+ Converts the argument to signed native integer. This is a direct conversion for all
+ primitive numeric types. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted nativeint
+
+
+
+ nativeint 'A' // evaluates to 65n
+ nativeint 0xff // evaluates to 255n
+ nativeint -10 // evaluates to -10n
+
+
+
+
+
+ Converts the argument to 64-bit float. This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using Double.Parse()
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted float
+
+
+
+ float 'A' // evaluates to 65.0
+ float 0xff // evaluates to 255.0
+ float -10 // evaluates to -10.0
+
+
+
+
+
+ Converts the argument to 32-bit float. This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using Single.Parse()
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted float32
+
+
+
+ float32 'A' // evaluates to 65.0f
+ float32 0xff // evaluates to 255.0f
+ float32 -10 // evaluates to -10.0f
+
+
+
+
+
+ Converts the argument to unsigned 64-bit integer. This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using UInt64.Parse()
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted uint64
+
+
+
+ uint64 'A' // evaluates to 65UL
+ uint64 0xff // evaluates to 255UL
+ uint64 -10 // evaluates to 18446744073709551606UL
+
+
+
+
+
+ Converts the argument to signed 64-bit integer. This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using Int64.Parse()
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted int64
+
+
+
+ int64 'A' // evaluates to 65L
+ int64 0xff // evaluates to 255L
+ int64 -10 // evaluates to -10L
+
+
+
+
+
+ Converts the argument to unsigned 32-bit integer. This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using UInt32.Parse()
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted uint32
+
+
+
+ uint32 'A' // evaluates to 65u
+ uint32 0xff // evaluates to 255u
+ uint32 -10 // evaluates to 4294967286u
+
+
+
+
+
+ Converts the argument to signed 32-bit integer. This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using Int32.Parse()
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted int32
+
+
+
+ int32 'A' // evaluates to 65
+ int32 0xff // evaluates to 255
+ int32 -10 // evaluates to -10
+
+
+
+
+
+ Converts the argument to a particular enum type.
+
+ The input value.
+
+ The converted enum type.
+
+
+
+ type Color =
+ | Red = 1
+ | Green = 2
+ | Blue = 3
+ let c: Color = enum 3 // c evaluates to Blue
+
+
+
+
+
+ Converts the argument to an unsigned 32-bit integer. This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using UInt32.Parse()
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted int
+
+
+
+ uint 'A' // evaluates to 65u
+ uint 0xff // evaluates to 255u
+ uint -10 // evaluates to 4294967286u
+
+
+
+
+
+ Converts the argument to signed 32-bit integer. This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using Int32.Parse()
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted int
+
+
+
+ int 'A' // evaluates to 65
+ int 0xff // evaluates to 255
+ int -10 // evaluates to -10
+
+
+
+
+
+ Converts the argument to unsigned 16-bit integer. This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using UInt16.Parse()
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted uint16
+
+
+
+ uint16 'A' // evaluates to 65us
+ uint16 0xff // evaluates to 255s
+ uint16 -10 // evaluates to 65526us
+
+
+
+
+
+ Converts the argument to signed 16-bit integer. This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using Int16.Parse()
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted int16
+
+
+
+ int16 'A' // evaluates to 65s
+ int16 0xff // evaluates to 255s
+ int16 -10 // evaluates to -10s
+
+
+
+
+
+ Converts the argument to signed byte. This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using SByte.Parse()
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted sbyte
+
+
+
+ sbyte 'A' // evaluates to 65y
+ sbyte 0xff // evaluates to -1y
+ sbyte -10 // evaluates to -10y
+
+
+
+
+
+ Converts the argument to byte. This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using Byte.Parse()
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted byte
+
+
+
+ byte 'A' // evaluates to 65uy
+ byte 0xff // evaluates to 255uy
+ byte -10 // evaluates to 246uy
+
+
+
+
+
+ Overloaded power operator. If n > 0 then equivalent to x*...*x for n occurrences of x.
+
+ The input base.
+ The input exponent.
+
+ The base raised to the exponent.
+
+
+
+ pown 2.0 3 // evaluates to 8.0
+
+
+
+
+
+ Overloaded power operator.
+
+ The input base.
+ The input exponent.
+
+ The base raised to the exponent.
+
+
+
+ 2.0 ** 3 // evaluates to 8.0
+
+
+
+
+
+ Overloaded truncate operator.
+
+ The input value.
+
+ The truncated value.
+
+
+
+ truncate 23.92 // evaluates to 23.0
+ truncate 23.92f // evaluates to 23.0f
+
+
+
+
+
+ Hyperbolic tangent of the given number
+
+ The input value.
+
+ The hyperbolic tangent of the input.
+
+
+
+ tanh -1.0 // evaluates to -0.761594156
+ tanh 0.0 // evaluates to 0.0
+ tanh 1.0 // evaluates to 0.761594156
+
+
+
+
+
+ Tangent of the given number
+
+ The input value.
+
+ The tangent of the input.
+
+
+
+ tan (-0.5 * System.Math.PI) // evaluates to -1.633123935e+16
+ tan (0.0 * System.Math.PI) // evaluates to 0.0
+ tan (0.5 * System.Math.PI) // evaluates to 1.633123935e+16
+
+
+
+
+
+ Hyperbolic sine of the given number
+
+ The input value.
+
+ The hyperbolic sine of the input.
+
+
+
+ sinh -1.0 // evaluates to -1.175201194
+ sinh 0.0 // evaluates to 0.0
+ sinh 1.0 // evaluates to 1.175201194
+
+
+
+
+
+ Sine of the given number
+
+ The input value.
+
+ The sine of the input.
+
+
+
+ sin (0.0 * System.Math.PI) // evaluates to 0.0
+ sin (0.5 * System.Math.PI) // evaluates to 1.0
+ sin (1.0 * System.Math.PI) // evaluates to 1.224646799e-16
+
+
+
+
+
+ Hyperbolic cosine of the given number
+
+ The input value.
+
+ The hyperbolic cosine of the input.
+
+
+
+ cosh -1.0 // evaluates to 1.543080635
+ cosh 0.0 // evaluates to 1.0
+ cosh 1.0 // evaluates to 1.543080635
+
+
+
+
+
+ Cosine of the given number
+
+ The input value.
+
+ The cosine of the input.
+
+
+
+ cos (0.0 * System.Math.PI) // evaluates to 1.0
+ cos (0.5 * System.Math.PI) // evaluates to 6.123233996e-17
+ cos (1.0 * System.Math.PI) // evaluates to -1.0
+
+
+
+
+
+ Square root of the given number
+
+ The input value.
+
+ The square root of the input.
+
+
+
+ sqrt 2.0 // Evaluates to 1.414213562
+ sqrt 100.0 // Evaluates to 10.0
+
+
+
+
+
+ Logarithm to base 10 of the given number
+
+ The input value.
+
+ The logarithm to base 10 of the input.
+
+
+
+ log10 1000.0 // Evaluates to 3.0
+ log10 100000.0 // Evaluates to 5.0
+ log10 0.0001 // Evaluates to -4.0
+ log10 -20.0 // Evaluates to nan
+
+
+
+
+
+ Natural logarithm of the given number
+
+ The input value.
+
+ The natural logarithm of the input.
+
+
+
+ let logBase baseNumber value = (log value) / (log baseNumber)
+ logBase 2.0 32.0 // Evaluates to 5.0
+ logBase 10.0 1000.0 // Evaluates to 3.0
+
+
+
+
+
+ Round the given number
+
+ The input value.
+
+ The nearest integer to the input value.
+
+
+
+ round 3.49 // Evaluates to 3.0
+ round -3.49 // Evaluates to -3.0
+ round 3.5 // Evaluates to 4.0
+ round -3.5 // Evaluates to -4.0
+
+
+
+
+
+ Sign of the given number
+
+ The input value.
+
+ -1, 0, or 1 depending on the sign of the input.
+
+
+
+ sign -12.0 // Evaluates to -1
+ sign 43 // Evaluates to 1
+
+
+
+
+
+ Floor of the given number
+
+ The input value.
+
+ The floor of the input.
+
+
+
+ floor 12.1 // Evaluates to 12.0
+ floor -1.9 // Evaluates to -2.0
+
+
+
+
+
+ Exponential of the given number
+
+ The input value.
+
+ The exponential of the input.
+
+
+
+ exp 0.0 // Evaluates to 1.0
+ exp 1.0 // Evaluates to 2.718281828
+ exp -1.0 // Evaluates to 0.3678794412
+ exp 2.0 // Evaluates to 7.389056099
+
+
+
+
+
+ Ceiling of the given number
+
+ The input value.
+
+ The ceiling of the input.
+
+
+
+ ceil 12.1 // Evaluates to 13.0
+ ceil -1.9 // Evaluates to -1.0
+
+
+
+
+
+ Inverse tangent of x/y where x and y are specified separately
+
+ The y input value.
+ The x input value.
+
+ The inverse tangent of the input ratio.
+
+
+
+ let angleFromPlaneAtXY x y = atan2 y x * 180.0 / System.Math.PI
+ angleFromPlaneAtXY 0.0 -1.0 // Evaluates to -90.0
+ angleFromPlaneAtXY 1.0 1.0 // Evaluates to 45.0
+ angleFromPlaneAtXY -1.0 1.0 // Evaluates to 135.0
+
+
+
+
+
+ Inverse tangent of the given number
+
+ The input value.
+
+ The inverse tangent of the input.
+
+
+
+ let angleFrom opposite adjacent = atan(opposite / adjacent)
+ angleFrom 5.0 5.0 // Evaluates to 0.7853981634
+
+
+
+
+
+ Inverse sine of the given number
+
+ The input value.
+
+ The inverse sine of the input.
+
+
+
+ let angleFromOpposite opposite hypotenuse = asin(opposite / hypotenuse)
+ angleFromOpposite 6.0 10.0 // Evaluates to 0.6435011088
+ angleFromOpposite 5.0 3.0 // Evaluates to nan
+
+
+
+
+
+ Inverse cosine of the given number
+
+ The input value.
+
+ The inverse cosine of the input.
+
+
+
+ let angleFromAdjacent adjacent hypotenuse = acos(adjacent / hypotenuse)
+ angleFromAdjacent 8.0 10.0 // Evaluates to 0.6435011088
+
+
+
+
+
+ Absolute value of the given number.
+
+ The input value.
+
+ The absolute value of the input.
+
+
+
+ abs -12 // Evaluates to 12
+ abs -15.0 // Evaluates to 15.0
+
+
+
+
+
+ A generic hash function. This function has the same behaviour as 'hash',
+ however the default structural hashing for F# union, record and tuple
+ types stops when the given limit of nodes is reached. The exact behaviour of
+ the function can be adjusted on a type-by-type basis by implementing
+ GetHashCode for each type.
+
+ The limit of nodes.
+ The input object.
+
+ The computed hash.
+
+
+
+
+
+ A generic hash function, designed to return equal hash values for items that are
+ equal according to the "=" operator. By default it will use structural hashing
+ for F# union, record and tuple types, hashing the complete contents of the
+ type. The exact behaviour of the function can be adjusted on a
+ type-by-type basis by implementing GetHashCode for each type.
+
+ The input object.
+
+ The computed hash.
+
+
+
+ hash "Bob Jones" // Evaluates to -325251320
+
+
+
+
+
+ Returns the internal size of a type in bytes. For example, sizeof<int> returns 4.
+
+
+
+ sizeof<bool> // Evaluates to 1
+ sizeof<byte> // Evaluates to 1
+ sizeof<int> // Evaluates to 4
+ sizeof<double> // Evaluates to 8
+ sizeof<struct(byte * byte)> // Evaluates to 2
+ sizeof<nativeint> // Evaluates to 4 or 8 (32-bit or 64-bit) depending on your platform
+
+
+
+
+
+ Generate a System.Type representation for a type definition. If the
+ input type is a generic type instantiation then return the
+ generic type definition associated with all such instantiations.
+
+
+
+ typeof<int list;> // Evaluates to Microsoft.FSharp.Collections.FSharpList`1[System.Int32]
+ typedefof<int list;> // Evaluates to Microsoft.FSharp.Collections.FSharpList`1[T] ///
+
+
+
+
+
+ An internal, library-only compiler intrinsic for compile-time
+ generation of a RuntimeMethodHandle.
+
+
+ Returns the name of the given symbol.
+
+
+
+ let myVariableName = "This value doesn't matter"
+ nameof(myVariableName) // Evaluates to "myVariableName"
+
+
+
+
+
+ Generate a System.Type runtime representation of a static type.
+
+
+
+ let t = typeof<int> // Gets the System.Type
+ t.FullName // Evaluates to "System.Int32"
+
+
+
+
+
+ Clean up resources associated with the input object after the completion of the given function.
+ Cleanup occurs even when an exception is raised by the protected
+ code.
+
+ The resource to be disposed after action is called.
+ The action that accepts the resource.
+
+ The resulting value.
+
+
+ The following code appends 10 lines to test.txt, then closes the StreamWriter when finished.
+
+ open System.IO
+
+ using (File.AppendText "test.txt") (fun writer ->
+ for i in 1 .. 10 do
+ writer.WriteLine("Hello World {0}", i))
+
+
+
+
+
+
+ Execute the function as a mutual-exclusion region using the input value as a lock.
+
+ The object to be locked.
+ The action to perform during the lock.
+
+ The resulting value.
+
+
+
+ open System.Linq
+
+ /// A counter object, supporting unlocked and locked increment
+ type TestCounter () =
+ let mutable count = 0
+
+ /// Increment the counter, unlocked
+ member this.IncrementWithoutLock() =
+ count <- count + 1
+
+ /// Increment the counter, locked
+ member this.IncrementWithLock() =
+ lock this (fun () -> count <- count + 1)
+
+ /// Get the count
+ member this.Count = count
+
+ let counter = TestCounter()
+
+ // Create a parallel sequence to that uses all our CPUs
+ (seq {1..100000}).AsParallel()
+ .ForAll(fun _ -> counter.IncrementWithoutLock())
+
+ // Evaluates to a number between 1-100000, non-deterministically because there is no locking
+ counter.Count
+
+ let counter2 = TestCounter()
+
+ // Create a parallel sequence to that uses all our CPUs
+ (seq {1..100000}).AsParallel()
+ .ForAll(fun _ -> counter2.IncrementWithLock())
+
+ // Evaluates to 100000 deterministically because the increment to the counter object is locked
+ counter2.Count
+
+
+
+
+
+ The standard overloaded skip range operator, e.g. [n..skip..m] for lists, seq {n..skip..m} for sequences
+
+ The start value of the range.
+ The step value of the range.
+ The end value of the range.
+
+ The sequence spanning the range using the specified step size.
+
+
+
+ [1..2..6] // Evaluates to [1; 3; 5]
+ [1.1..0.2..1.5] // Evaluates to [1.1; 1.3; 1.5]
+ ['a'..'e'] // Evaluates to ['a'; 'b'; 'c'; 'd'; 'e']
+
+
+
+
+
+ The standard overloaded range operator, e.g. [n..m] for lists, seq {n..m} for sequences
+
+ The start value of the range.
+ The end value of the range.
+
+ The sequence spanning the range.
+
+
+
+ [1..4] // Evaluates to [1; 2; 3; 4]
+ [1.5..4.4] // Evaluates to [1.5; 2.5; 3.5]
+ ['a'..'d'] // Evaluates to ['a'; 'b'; 'c'; 'd']
+
+ [|1..4|] // Evaluates to an array [|1; 2; 3; 4|]
+ { 1..4 } // Evaluates to a sequence [1; 2; 3; 4])
+
+
+
+
+
+ Reads the value of the property .
+
+
+ Reads the value of the property .
+
+
+ Reads the value of the property .
+
+
+ Equivalent to
+
+
+ Equivalent to
+
+
+ Equivalent to
+
+
+ Equivalent to
+
+
+ Exit the current hardware isolated process, if security settings permit,
+ otherwise raise an exception. Calls .
+
+ The exit code to use.
+
+ Never returns.
+
+
+
+ [<EntryPoint>]
+ let main argv =
+ if argv.Length = 0 then
+ eprintfn "You must provide arguments"
+ exit(-1) // Causes program to quit with an error code
+ printfn "Argument count: %i" argv.Length
+ 0
+
+
+
+
+
+ Builds a sequence using sequence expression syntax
+
+ The input sequence.
+
+ The result sequence.
+
+
+
+ seq { for i in 0..10 do yield (i, i*i) }
+
+
+
+
+
+ Negate a logical value. Not True equals False and not False equals True
+
+ The value to negate.
+
+ The result of the negation.
+
+
+
+ not (2 + 2 = 5) // Evaluates to true
+
+ // not is a function that can be compose with other functions
+ let fileDoesNotExist = System.IO.File.Exists >> not
+
+
+
+
+
+ Concatenate two lists.
+
+ The first list.
+ The second list.
+
+ The concatenation of the lists.
+
+
+
+ let l1 = ['a'; 'b'; 'c']
+ let l2 = ['d'; 'e'; 'f']
+ l1 @ l2 // Evalulates to ['a'; 'b'; 'c'; 'd'; 'e'; 'f']
+
+
+
+
+
+ Increment a mutable reference cell containing an integer
+
+ The reference cell.
+
+
+
+ let count = ref 99 // Creates a reference cell object with a mutable Value property
+ incr count // Increments our counter
+ count.Value // Evaluates to 100
+
+
+
+
+
+ Decrement a mutable reference cell containing an integer
+
+ The reference cell.
+
+
+
+ let count = ref 99 // Creates a reference cell object with a mutable Value property
+ decr count // Decrements our counter
+ count.Value // Evaluates to 98
+
+
+
+
+
+ Dereference a mutable reference cell
+
+ The cell to dereference.
+
+ The value contained in the cell.
+
+
+
+ let count = ref 12 // Creates a reference cell object with a mutable Value property
+ count.Value // Evaluates to 12
+ !count // Also evaluates to 12 (with shorter syntax)
+
+
+
+
+
+ Assign to a mutable reference cell
+
+ The cell to mutate.
+ The value to set inside the cell.
+
+
+
+ let count = ref 0 // Creates a reference cell object with a mutable Value property
+ count.Value <- 1 // Updates the value
+ count := 2 // Also updates the value, but with shorter syntax
+ count.Value // Evaluates to 2
+
+
+
+
+
+ Create a mutable reference cell
+
+ The value to contain in the cell.
+
+ The created reference cell.
+
+
+
+ let count = ref 0 // Creates a reference cell object with a mutable Value property
+ count.Value // Evaluates to 0
+ count.Value <- 1 // Updates the value
+ count.Value // Evaluates to 1
+
+
+
+
+
+ The identity function
+
+ The input value.
+
+ The same value.
+
+
+
+ id 12 // Evaluates to 12
+ id "abc" // Evaluates to "abc"
+
+
+
+
+
+ Throw a exception
+
+ The exception message.
+
+ The result value.
+
+
+
+ type FileReader(fileName: string) =
+ let mutable isOpen = false
+ member this.Open() =
+ if isOpen then invalidOp "File is already open"
+ // ... Here we may open the file ...
+ isOpen <- true
+
+ let reader = FileReader("journal.txt")
+ reader.Open() // Executes fine
+ reader.Open() // Throws System.InvalidOperationException: File is already open
+
+
+
+
+
+ Throw a exception
+
+ The argument name.
+
+ Never returns.
+
+
+
+ let fullName firstName lastName =
+ if isNull firstName then nullArg (nameof(firstName))
+ if isNull lastName then nullArg (nameof(lastName))
+ firstName + " " + lastName
+
+ fullName null "Jones" // Throws System.ArgumentNullException: Value cannot be null. (Parameter 'firstName')
+
+
+
+
+
+ Throw a exception with
+ the given argument name and message.
+
+ The argument name.
+ The exception message.
+
+ Never returns.
+
+
+
+ let fullName firstName lastName =
+ if String.IsNullOrWhiteSpace(firstName) then
+ invalidArg (nameof(firstName)) "First name can't be null or blank"
+ if String.IsNullOrWhiteSpace(lastName) then
+ invalidArg (nameof(lastName)) "Last name can't be null or blank"
+ firstName + " " + lastName
+
+ fullName null "Jones"
+
+ Throws System.ArgumentException: First name can't be null or blank (Parameter 'firstName')
+
+
+
+
+ Throw a exception.
+
+ The exception message.
+
+ Never returns.
+
+
+
+ let failingFunction() =
+ failwith "Oh no" // Throws an exception
+ true // Never reaches this
+
+ failingFunction() // Throws a System.Exception
+
+
+
+
+
+ Determines whether the given value is not null.
+
+ The value to check.
+
+ True when value is not null, false otherwise.
+
+
+ Determines whether the given value is null.
+
+ The value to check.
+
+ True when value is null, false otherwise.
+
+
+
+ isNull null // Evaluates to true
+ isNull "Not null" // Evaluates to false
+
+
+
+
+
+ Try to unbox a strongly typed value.
+
+ The boxed value.
+
+ The unboxed result as an option.
+
+
+
+ let x: int = 123
+ let obj1 = box x // obj1 is a generic object type
+ tryUnbox<int> obj1 // Evaluates to Some(123)
+ tryUnbox<double> obj1 // Evaluates to None
+
+
+
+
+
+ Boxes a strongly typed value.
+
+ The value to box.
+
+ The boxed object.
+
+
+
+ let x: int = 123
+ let obj1 = box x // obj1 is a generic object type
+ unbox<int> obj1 // Evaluates to 123 (int)
+ unbox<double> obj1 // Throws System.InvalidCastException
+
+
+
+
+
+ Unbox a strongly typed value.
+
+ The boxed value.
+
+ The unboxed result.
+
+
+
+ let x: int = 123
+ let obj1 = box x // obj1 is a generic object type
+ unbox<int> obj1 // Evaluates to 123 (int)
+ unbox<double> obj1 // Throws System.InvalidCastException
+
+
+
+
+
+ Ignore the passed value. This is often used to throw away results of a computation.
+
+ The value to ignore.
+
+
+
+ ignore 55555 // Evaluates to ()
+
+
+
+
+
+ Minimum based on generic comparison
+
+ The first value.
+ The second value.
+
+ The minimum value.
+
+
+
+ min 1 2 // Evaluates to 1
+ min [1;2;3] [1;2;4] // Evaluates to [1;2;3]
+ min "zoo" "alpha" // Evaluates to "alpha"
+
+
+
+
+
+ Maximum based on generic comparison
+
+ The first value.
+ The second value.
+
+ The maximum value.
+
+
+
+ max 1 2 // Evaluates to 2
+ max [1;2;3] [1;2;4] // Evaluates to [1;2;4]
+ max "zoo" "alpha" // Evaluates to "zoo"
+
+
+
+
+
+ Generic comparison.
+
+ The first value.
+ The second value.
+
+ The result of the comparison.
+
+
+
+ compare 1 2 // Evaluates to -1
+ compare [1;2;3] [1;2;4] // Evaluates to -1
+ compare 2 2 // Evaluates to 0
+ compare [1;2;3] [1;2;3] // Evaluates to 0
+ compare 2 1 // Evaluates to 1
+ compare [1;2;4] [1;2;3] // Evaluates to 1
+
+
+
+
+
+ Return the second element of a tuple, snd (a,b) = b.
+
+ The input tuple.
+
+ The second value.
+
+
+
+ snd ("first", 2) // Evaluates to 2
+
+
+
+
+
+ Return the first element of a tuple, fst (a,b) = a.
+
+ The input tuple.
+
+ The first value.
+
+
+
+ fst ("first", 2) // Evaluates to "first"
+
+
+
+
+
+ Matches objects whose runtime type is precisely
+
+ The input exception.
+
+ A string option.
+
+
+
+
+
+ Builds a object.
+
+ The message for the Exception.
+
+ A System.Exception.
+
+
+
+ let throwException() =
+ raise(Failure("Oh no!!!"))
+ true // Never gets here
+
+ throwException() // Throws a generic Exception class
+
+
+
+
+
+ Rethrows an exception. This should only be used when handling an exception
+ The result value.
+
+
+
+ let readFile (fileName: string) =
+ try
+ File.ReadAllText(fileName)
+ with ex ->
+ eprintfn "Couldn't read %s" fileName
+ reraise()
+
+ readFile "/this-file-doest-exist"
+ // Prints the message to stderr
+ // Throws a System.IO.FileNotFoundException
+
+
+
+
+
+ Rethrows an exception. This should only be used when handling an exception
+ The result value.
+
+
+ Raises an exception
+
+ The exception to raise.
+
+ The result value.
+
+
+
+ open System.IO
+ exception FileNotFoundException of string
+
+ let readFile (fileName: string) =
+ if not (File.Exists(fileName)) then
+ raise(FileNotFoundException(fileName))
+ File.ReadAllText(fileName)
+
+ readFile "/this-file-doest-exist"
+
+ When executed, raises a FileNotFoundException.
+
+
+
+
+ Concatenate two strings. The operator '+' may also be used.
+
+
+ Used to specify a default value for an optional argument in the implementation of a function
+
+ A value option representing the argument.
+ The default value of the argument.
+
+ The argument value. If it is None, the defaultValue is returned.
+
+
+
+ let arg1 = ValueSome(5)
+ defaultValueArg arg1 6 // Evaluates to 5
+ defaultValueArg ValueNone 6 // Evaluates to 6
+
+
+
+
+
+ Used to specify a default value for an optional argument in the implementation of a function
+
+ An option representing the argument.
+ The default value of the argument.
+
+ The argument value. If it is None, the defaultValue is returned.
+
+
+
+ type Vector(x: double, y: double, ?z: double) =
+ let z = defaultArg z 0.0
+ member this.X = x
+ member this.Y = y
+ member this.Z = z
+
+ let v1 = Vector(1.0, 2.0)
+ v1.Z // Evaluates to 0.
+ let v2 = Vector(1.0, 2.0, 3.0)
+ v2.Z // Evaluates to 3.0
+
+
+
+
+
+ Apply a function to three values, the values being a triple on the right, the function on the left
+
+ The function.
+ The first argument.
+ The second argument.
+ The third argument.
+
+ The function result.
+
+
+
+ let sum3 x y z = x + y + z
+ sum3 <||| (3, 4, 5) // Evaluates to 12
+
+
+
+
+
+ Apply a function to two values, the values being a pair on the right, the function on the left
+
+ The function.
+ The first argument.
+ The second argument.
+
+ The function result.
+
+
+
+ let sum x y = x + y
+ sum <|| (3, 4) // Evaluates to 7
+
+
+
+
+
+ Apply a function to a value, the value being on the right, the function on the left
+
+ The function.
+ The argument.
+
+ The function result.
+
+
+
+ let doubleIt x = x * 2
+ doubleIt <| 3 // Evaluates to 6
+
+
+
+
+
+ Apply a function to three values, the values being a triple on the left, the function on the right
+
+ The first argument.
+ The second argument.
+ The third argument.
+ The function.
+
+ The function result.
+
+
+
+ let sum3 x y z = x + y + z
+ (3, 4, 5) |||> sum3 // Evaluates to 12
+
+
+
+
+
+ Apply a function to two values, the values being a pair on the left, the function on the right
+
+ The first argument.
+ The second argument.
+ The function.
+
+ The function result.
+
+
+
+ let sum x y = x + y
+ (3, 4) ||> sum // Evaluates to 7
+
+
+
+
+
+ Apply a function to a value, the value being on the left, the function on the right
+
+ The argument.
+ The function.
+
+ The function result.
+
+
+
+ let doubleIt x = x * 2
+ 3 |> doubleIt // Evaluates to 6
+
+
+
+
+
+ Compose two functions, the function on the right being applied first
+
+ The second function to apply.
+ The first function to apply.
+
+ The composition of the input functions.
+
+
+
+ let addOne x = x + 1
+ let doubleIt x = x * 2
+ let doubleThenAdd = addOne << doubleIt
+ doubleThenAdd 3
+
+
+
+
+
+ Compose two functions, the function on the left being applied first
+
+ The first function to apply.
+ The second function to apply.
+
+ The composition of the input functions.
+
+
+
+ let addOne x = x + 1
+ let doubleIt x = x * 2
+ let addThenDouble = addOne >> doubleIt
+ addThenDouble 3 // Evaluates to 8
+
+
+
+
+
+ Structural inequality
+
+ The first parameter.
+ The second parameter.
+
+ The result of the comparison.
+
+
+
+ 5 <> 5 // Evaluates to false
+ 5 <> 6 // Evaluates to true
+ [1; 2] <> [1; 2] // Evaluates to false
+
+
+
+
+
+ Structural equality
+
+ The first parameter.
+ The second parameter.
+
+ The result of the comparison.
+
+
+
+ 5 = 5 // Evaluates to true
+ 5 = 6 // Evaluates to false
+ [1; 2] = [1; 2] // Evaluates to true
+ (1, 5) = (1, 6) // Evaluates to false
+
+
+
+
+
+ Structural less-than-or-equal comparison
+
+ The first parameter.
+ The second parameter.
+
+ The result of the comparison.
+
+
+
+ 5 <= 1 // Evaluates to false
+ 5 <= 5 // Evaluates to true
+ [1; 5] <= [1; 6] // Evaluates to true
+
+
+
+
+
+ Structural greater-than-or-equal
+
+ The first parameter.
+ The second parameter.
+
+ The result of the comparison.
+
+
+
+ 5 >= 1 // Evaluates to true
+ 5 >= 5 // Evaluates to true
+ [1; 5] >= [1; 6] // Evaluates to false
+
+
+
+
+
+ Structural greater-than
+
+ The first parameter.
+ The second parameter.
+
+ The result of the comparison.
+
+
+
+ 5 > 1 // Evaluates to true
+ 5 > 5 // Evaluates to false
+ (1, "a") > (1, "z") // Evaluates to false
+
+
+
+
+
+ Structural less-than comparison
+
+ The first parameter.
+ The second parameter.
+
+ The result of the comparison.
+
+
+
+ 1 < 5 // Evaluates to true
+ 5 < 5 // Evaluates to false
+ (1, "a") < (1, "z") // Evaluates to true
+
+
+
+
+
+ Overloaded prefix-plus operator
+
+ The input value.
+
+ The result of the operation.
+
+
+
+
+
+ Overloaded bitwise-NOT operator
+
+ The input value.
+
+ The result of the operation.
+
+
+
+ let byte1 = 60uy // 00111100
+ let byte2 = ~~~b1 // 11000011
+
+ Evaluates to 195
+
+
+
+
+ Overloaded byte-shift right operator by a specified number of bits
+
+ The input value.
+ The amount to shift.
+
+ The result of the operation.
+
+
+
+ let a = 206 // 00000000000000000000000011010000
+ let c1 = a >>> 2 // 00000000000000000000000000110100
+ // Evaluates to 51
+ let c2 = a >>> 6 // 00000000000000000000000000000011
+ Evaluates to 3
+
+
+
+
+ Overloaded byte-shift left operator by a specified number of bits
+
+ The input value.
+ The amount to shift.
+
+ The result of the operation.
+
+
+
+ let a = 13 // 00000000000000000000000000001101
+ let c = a <<< 4 // 00000000000000000000000011010000
+
+ Evaluates to 208
+
+
+
+ Overloaded bitwise-XOR operator
+
+ The first parameter.
+ The second parameter.
+
+ The result of the operation.
+
+
+
+ let a = 13 // 00000000000000000000000000001101
+ let b = 11 // 00000000000000000000000000001011
+ let c = a ^^^ b // 00000000000000000000000000000110
+
+ Evaluates to 6
+
+
+
+ Overloaded bitwise-OR operator
+
+ The first parameter.
+ The second parameter.
+
+ The result of the operation.
+
+
+
+ let a = 13 // 00000000000000000000000000001101
+ let b = 11 // 00000000000000000000000000001011
+ let c = a ||| b // 00000000000000000000000000001111
+
+ Evaluates to 15
+
+
+
+ Overloaded bitwise-AND operator
+
+ The first parameter.
+ The second parameter.
+
+ The result of the operation.
+
+
+
+ let a = 13 // 00000000000000000000000000001101
+ let b = 11 // 00000000000000000000000000001011
+ let c = a &&& b // 00000000000000000000000000001001
+
+ Evaluates to 9
+
+
+
+ Overloaded modulo operator
+
+ The first parameter.
+ The second parameter.
+
+ The result of the operation.
+
+
+
+ 29 % 5 // Evaluates to 4
+
+
+
+
+ Overloaded division operator
+
+ The first parameter.
+ The second parameter.
+
+ The result of the operation.
+
+
+
+ 16 / 2 // Evaluates to 8
+
+
+
+
+ Overloaded multiplication operator
+
+ The first parameter.
+ The second parameter.
+
+ The result of the operation.
+
+
+
+ 8 * 6 // Evaluates to 48
+
+
+
+
+ Overloaded subtraction operator
+
+ The first parameter.
+ The second parameter.
+
+ The result of the operation.
+
+
+
+ 10 - 2 // Evaluates to 8
+
+
+
+
+ Overloaded addition operator
+
+ The first parameter.
+ The second parameter.
+
+ The result of the operation.
+
+
+
+ 2 + 2 // Evaluates to 4
+ "Hello " + "Word" // Evaluates to "Hello World"
+
+
+
+
+
+ Overloaded unary negation.
+
+ The value to negate.
+
+ The result of the operation.
+
+
+
+
+
+ Converts the argument to char. Numeric inputs are converted using a checked
+ conversion according to the UTF-16 encoding for characters. String inputs must
+ be exactly one character long. For other input types the operation requires an
+ appropriate static conversion method on the input type.
+
+ The input value.
+
+ The converted char
+
+
+
+
+
+ Converts the argument to unativeint. This is a direct, checked conversion for all
+ primitive numeric types. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted unativeint
+
+
+
+
+
+ Converts the argument to . This is a direct, checked conversion for all
+ primitive numeric types. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted nativeint
+
+
+
+
+
+ Converts the argument to uint64. This is a direct, checked conversion for all
+ primitive numeric types. For strings, the input is converted using
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted uint64
+
+
+
+
+
+ Converts the argument to int64. This is a direct, checked conversion for all
+ primitive numeric types. For strings, the input is converted using
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted int64
+
+
+
+
+
+ Converts the argument to uint32. This is a direct, checked conversion for all
+ primitive numeric types. For strings, the input is converted using
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted uint32
+
+
+
+
+
+ Converts the argument to int32. This is a direct, checked conversion for all
+ primitive numeric types. For strings, the input is converted using
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted int32
+
+
+
+
+
+ Converts the argument to int. This is a direct, checked conversion for all
+ primitive numeric types. For strings, the input is converted using
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted int
+
+
+
+
+
+ Converts the argument to uint16. This is a direct, checked conversion for all
+ primitive numeric types. For strings, the input is converted using
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted uint16
+
+
+
+
+
+ Converts the argument to int16. This is a direct, checked conversion for all
+ primitive numeric types. For strings, the input is converted using
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted int16
+
+
+
+
+
+ Converts the argument to sbyte. This is a direct, checked conversion for all
+ primitive numeric types. For strings, the input is converted using
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted sbyte
+
+
+
+
+
+ Converts the argument to byte. This is a direct, checked conversion for all
+ primitive numeric types. For strings, the input is converted using
+ with InvariantCulture settings. Otherwise the operation requires an appropriate
+ static conversion method on the input type.
+
+ The input value.
+
+ The converted byte
+
+
+
+
+
+ Overloaded multiplication operator (checks for overflow)
+
+ The first value.
+ The second value.
+
+ The product of the two input values.
+
+
+
+
+
+ Overloaded addition operator (checks for overflow)
+
+ The first value.
+ The second value.
+
+ The sum of the two input values.
+
+
+
+
+
+ Overloaded subtraction operator (checks for overflow)
+
+ The first value.
+ The second value.
+
+ The first value minus the second value.
+
+
+
+
+
+ Overloaded unary negation (checks for overflow)
+
+ The input value.
+
+ The negated value.
+
+
+
+
+
+ This module contains the basic arithmetic operations with overflow checks.
+
+
+ Calls GetHashCode() on the value
+
+ The value.
+
+ The hash code.
+
+
+
+
+
+ Minimum of the two values
+
+ The first value.
+ The second value.
+
+ The minimum value.
+
+
+
+
+
+ Maximum of the two values
+
+ The first value.
+ The second value.
+
+ The maximum value.
+
+
+
+
+
+ Compares the two values
+
+ The first value.
+ The second value.
+
+ The result of the comparison.
+
+
+
+
+
+ Compares the two values for inequality
+
+ The first parameter.
+ The second parameter.
+
+ The result of the comparison.
+
+
+
+
+
+ Compares the two values for equality
+
+ The first parameter.
+ The second parameter.
+
+ The result of the comparison.
+
+
+
+
+
+ Compares the two values for less-than-or-equal
+
+ The first parameter.
+ The second parameter.
+
+ The result of the comparison.
+
+
+
+
+
+ Compares the two values for greater-than-or-equal
+
+ The first parameter.
+ The second parameter.
+
+ The result of the comparison.
+
+
+
+
+
+ Compares the two values for greater-than
+
+ The first parameter.
+ The second parameter.
+
+ The result of the comparison.
+
+
+
+
+
+ Compares the two values for less-than
+
+ The first parameter.
+ The second parameter.
+
+ The result of the comparison.
+
+
+
+
+
+ A module of comparison and equality operators that are statically resolved, but which are not fully generic and do not make structural comparison. Opening this
+ module may make code that relies on structural or generic comparison no longer compile.
+
+
+ Perform generic hashing on a value where the type of the value is not
+ statically required to satisfy the 'equality' constraint.
+ The computed hash value.
+
+
+
+
+
+ Perform generic equality on two values where the type of the values is not
+ statically required to satisfy the 'equality' constraint.
+ The result of the comparison.
+
+
+
+
+
+ Perform generic comparison on two values where the type of the values is not
+ statically required to have the 'comparison' constraint.
+ The result of the comparison.
+
+
+
+
+
+ Generate a default value for any type. This is null for reference types,
+ For structs, this is struct value where all fields have the default value.
+ This function is unsafe in the sense that some F# values do not have proper null values.
+
+
+
+
+
+ Unboxes a strongly typed value. This is the inverse of box, unbox<t>(box<t> a) equals a.
+
+ The boxed value.
+
+ The unboxed result.
+
+
+
+
+
+ This module contains basic operations which do not apply runtime and/or static checks
+
+
+ This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator
+
+
+ This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'decimal'
+
+
+ This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'float'
+
+
+ This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'float32'
+
+
+ This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'unativeint'
+
+
+ This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'nativeint'
+
+
+ This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'uint64'
+
+
+ This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'int64'
+
+
+ This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'uint32'
+
+
+ This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'int32'
+
+
+ This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'uint16'
+
+
+ This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'int16'
+
+
+ This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'sbyte'
+
+
+ This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'byte'
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ This is a library intrinsic. Calls to this function may be generated by evaluating quotations.
+
+
+ Generate a range of values using the given zero, add, start, step and stop values
+
+
+ Generate a range of values using the given zero, add, start, step and stop values
+
+
+ Generate a range of char values
+
+
+ Generate a range of byte values
+
+
+ Generate a range of sbyte values
+
+
+ Generate a range of uint16 values
+
+
+ Generate a range of int16 values
+
+
+ Generate a range of unativeint values
+
+
+ Generate a range of nativeint values
+
+
+ Generate a range of uint32 values
+
+
+ Generate a range of uint64 values
+
+
+ Generate a range of int64 values
+
+
+ Generate a range of float32 values
+
+
+ Generate a range of float values
+
+
+ Generate a range of integers
+
+
+ Gets a slice from a string
+
+ The source string.
+ The index of the first character of the slice.
+ The index of the last character of the slice.
+
+ The substring from the given indices.
+
+
+ Sets a slice of an array
+
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+ The source array.
+
+
+ Sets a 1D slice of a 4D array
+
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The fixed index of the second dimension.
+ The fixed index of the third dimension.
+ The fixed index of the fourth dimension.
+ The source array.
+
+
+ Sets a 1D slice of a 4D array
+
+ The target array.
+ The fixed index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The fixed index of the third dimension.
+ The fixed index of the fourth dimension.
+ The source array.
+
+
+ Sets a 1D slice of a 4D array
+
+ The target array.
+ The fixed index of the first dimension.
+ The fixed index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The fixed index of the fourth dimension.
+ The source array.
+
+
+ Sets a 1D slice of a 4D array
+
+ The target array.
+ The fixed index of the first dimension.
+ The fixed index of the second dimension.
+ The fixed index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+ The source array.
+
+
+ Sets a 2D slice of a 4D array
+
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The fixed index of the third dimension.
+ The fixed index of the fourth dimension.
+ The source array.
+
+
+ Sets a 2D slice of a 4D array
+
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The fixed index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The fixed index of the fourth dimension.
+ The source array.
+
+
+ Sets a 2D slice of a 4D array
+
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The fixed index of the second dimension.
+ The fixed index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+ The source array.
+
+
+ Sets a 2D slice of a 4D array
+
+ The target array.
+ The fixed index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The fixed index of the fourth dimension.
+ The source array.
+
+
+ Sets a 2D slice of a 4D array
+
+ The target array.
+ The fixed index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The fixed index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+ The source array.
+
+
+ Sets a 2D slice of a 4D array
+
+ The target array.
+ The fixed index of the first dimension.
+ The fixed index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+ The source array.
+
+
+ Sets a 3D slice of a 4D array
+
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The fixed index of the fourth dimension.
+ The source array.
+
+
+ Sets a 3D slice of a 4D array
+
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The fixed index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+ The source array.
+
+
+ Sets a 3D slice of a 4D array
+
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The fixed index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+ The source array.
+
+
+ Sets a 3D slice of a 4D array
+
+ The target array.
+ The fixed index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+ The source array.
+
+
+ Gets a 1D slice of a 4D array
+
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The fixed index of the second dimension.
+ The fixed index of the third dimension.
+ The fixed index of the fourth dimension.
+
+ The one dimensional sub array from the given indices.
+
+
+ Gets a 1D slice of a 4D array
+
+ The source array.
+ The fixed index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The fixed index of the third dimension.
+ The fixed index of the fourth dimension.
+
+ The one dimensional sub array from the given indices.
+
+
+ Gets a 1D slice of a 4D array
+
+ The source array.
+ The fixed index of the first dimension.
+ The fixed index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The fixed index of the fourth dimension.
+
+ The one dimensional sub array from the given indices.
+
+
+ Gets a 1D slice of a 4D array
+
+ The source array.
+ The fixed index of the first dimension.
+ The fixed index of the second dimension.
+ The fixed index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+
+ The one dimensional sub array from the given indices.
+
+
+ Gets a 2D slice of a 4D array
+
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The fixed index of the third dimension.
+ The fixed index of the fourth dimension.
+
+ The two dimensional sub array from the given indices.
+
+
+ Gets a 2D slice of a 4D array
+
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The fixed index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The fixed index of the fourth dimension.
+
+ The two dimensional sub array from the given indices.
+
+
+ Gets a 2D slice of a 4D array
+
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The fixed index of the second dimension.
+ The fixed index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+
+ The two dimensional sub array from the given indices.
+
+
+ Gets a 2D slice of a 4D array
+
+ The source array.
+ The fixed index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The fixed index of the fourth dimension.
+
+ The two dimensional sub array from the given indices.
+
+
+ Gets a 2D slice of a 4D array
+
+ The source array.
+ The fixed index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The fixed index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+
+ The two dimensional sub array from the given indices.
+
+
+ Gets a 2D slice of a 4D array
+
+ The source array.
+ The fixed index of the first dimension.
+ The fixed index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+
+ The two dimensional sub array from the given indices.
+
+
+ Gets a 3D slice of a 4D array
+
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The fixed index of the fourth dimension.
+
+ The three dimensional sub array from the given indices.
+
+
+ Gets a 3D slice of a 4D array
+
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The fixed index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+
+ The three dimensional sub array from the given indices.
+
+
+ Gets a 3D slice of a 4D array
+
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The fixed index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+
+ The three dimensional sub array from the given indices.
+
+
+ Gets a 3D slice of a 4D array
+
+ The source array.
+ The fixed index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+
+ The three dimensional sub array from the given indices.
+
+
+ Gets a slice of an array
+
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The start index of the fourth dimension.
+ The end index of the fourth dimension.
+
+ The four dimensional sub array from the given indices.
+
+
+ Sets a 1D slice of a 3D array.
+
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The fixed index of the second dimension.
+ The fixed index of the third dimension.
+ The source array.
+
+ The one dimensional sub array from the given indices.
+
+
+ Sets a 1D slice of a 3D array.
+
+ The target array.
+ The fixed index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The fixed index of the third dimension.
+ The source array.
+
+ The one dimensional sub array from the given indices.
+
+
+ Sets a 1D slice of a 3D array.
+
+ The target array.
+ The fixed index of the first dimension.
+ The fixed index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The source array.
+
+ The one dimensional sub array from the given indices.
+
+
+ Sets a 2D slice of a 3D array
+
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The fixed index of the third dimension.
+ The source array.
+
+ The two dimensional sub array from the given indices.
+
+
+ Sets a 2D slice of a 3D array
+
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The fixed index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The source array.
+
+ The two dimensional sub array from the given indices.
+
+
+ Sets a 2D slice of a 3D array
+
+ The target array.
+ The fixed index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The source array.
+
+ The two dimensional sub array from the given indices.
+
+
+ Sets a slice of an array
+
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+ The source array.
+
+
+ Gets a 1D slice of a 3D array.
+
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The fixed index of the second dimension.
+ The fixed index of the third dimension.
+
+ The one dimensional sub array from the given indices.
+
+
+ Gets a 1D slice of a 3D array.
+
+ The source array.
+ The fixed index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The fixed index of the third dimension.
+
+ The one dimensional sub array from the given indices.
+
+
+ Gets a 1D slice of a 3D array.
+
+ The source array.
+ The fixed index of the first dimension.
+ The fixed index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+
+ The one dimensional sub array from the given indices.
+
+
+ Gets a 2D slice of a 3D array.
+
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The fixed index of the third dimension.
+
+ The two dimensional sub array from the given indices.
+
+
+ Gets a 2D slice of a 3D array.
+
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The fixed index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+
+ The two dimensional sub array from the given indices.
+
+
+ Gets a 2D slice of a 3D array.
+
+ The source array.
+ The fixed index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+
+ The two dimensional sub array from the given indices.
+
+
+ Gets a slice of an array
+
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The start index of the third dimension.
+ The end index of the third dimension.
+
+ The three dimensional sub array from the given indices.
+
+
+ Sets a vector slice of a 2D array. The index of the second dimension is fixed.
+
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The index of the second dimension.
+ The source array.
+
+
+ Sets a vector slice of a 2D array. The index of the first dimension is fixed.
+
+ The target array.
+ The index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The source array.
+
+
+ Sets a region slice of an array
+
+ The target array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+ The source array.
+
+
+ Gets a vector slice of a 2D array. The index of the second dimension is fixed.
+
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The fixed index of the second dimension.
+
+ The sub array from the input indices.
+
+
+ Gets a vector slice of a 2D array. The index of the first dimension is fixed.
+
+ The source array.
+ The index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+
+ The sub array from the input indices.
+
+
+ Gets a region slice of an array
+
+ The source array.
+ The start index of the first dimension.
+ The end index of the first dimension.
+ The start index of the second dimension.
+ The end index of the second dimension.
+
+ The two dimensional sub array from the input indices.
+
+
+ Sets a slice of an array
+
+ The target array.
+ The start index.
+ The end index.
+ The source array.
+
+
+ Gets a slice of an array
+
+ The input array.
+ The start index.
+ The end index.
+
+ The sub array from the input indices.
+
+
+ A module of compiler intrinsic functions for efficient implementations of F# integer ranges
+ and dynamic invocations of other F# operators
+
+
+ Get the index for the element offset elements away from the end of the collection.
+
+ The rank of the index.
+ The offset from the end.
+
+ The corresponding index from the start.
+
+
+ Get the index for the element offset elements away from the end of the collection.
+
+ The rank of the index.
+ The offset from the end.
+
+ The corresponding index from the start.
+
+
+ Get the index for the element offset elements away from the end of the collection.
+
+ The rank of the index. This refers to the dimension in the 2d array.
+ The offset from the end.
+
+ The corresponding index from the start.
+
+
+ Get the index for the element offset elements away from the end of the collection.
+
+ The rank of the index. This refers to the dimension in the 3d array.
+ The offset from the end.
+
+ The corresponding index from the start.
+
+
+ Get the index for the element offset elements away from the end of the collection.
+
+ The rank of the index. This refers to the dimension in the 4d array.
+ The offset from the end.
+
+ The corresponding index from the start.
+
+
+ Contains extension methods to allow the use of F# indexer notation with arrays.
+ This module is automatically opened in all F# code.
+
+
+ Basic F# Operators. This module is automatically opened in all F# code.
+
+ Basic Operators
+
+
+ Invoke an F# first class function value that accepts five curried arguments
+ without intervening execution
+
+ The first arg.
+ The second arg.
+ The third arg.
+ The fourth arg.
+ The fifth arg.
+
+ The function result.
+
+
+ Adapt an F# first class function value to be an optimized function value that can
+ accept five curried arguments without intervening execution.
+
+ The input function.
+
+ The optimized function.
+
+
+ Construct an optimized function value that can accept five curried
+ arguments without intervening execution.
+ The optimized function.
+
+
+ The CLI type used to represent F# function values that accept five curried arguments
+ without intervening execution. This type should not typically used directly from
+ either F# code or from other CLI languages.
+
+
+ Invoke an F# first class function value that accepts four curried arguments
+ without intervening execution
+
+ The first arg.
+ The second arg.
+ The third arg.
+ The fourth arg.
+
+ The function result.
+
+
+ Adapt an F# first class function value to be an optimized function value that can
+ accept four curried arguments without intervening execution.
+
+ The input function.
+
+ The optimized function.
+
+
+ Construct an optimized function value that can accept four curried
+ arguments without intervening execution.
+ The optimized function.
+
+
+ The CLI type used to represent F# function values that accept four curried arguments
+ without intervening execution. This type should not typically used directly from
+ either F# code or from other CLI languages.
+
+
+ Invoke an F# first class function value that accepts three curried arguments
+ without intervening execution
+
+ The first arg.
+ The second arg.
+ The third arg.
+
+ The function result.
+
+
+ Adapt an F# first class function value to be an optimized function value that can
+ accept three curried arguments without intervening execution.
+
+ The input function.
+
+ The adapted function.
+
+
+ Construct an optimized function value that can accept three curried
+ arguments without intervening execution.
+ The optimized function.
+
+
+ The CLI type used to represent F# function values that accept
+ three iterated (curried) arguments without intervening execution. This type should not
+ typically used directly from either F# code or from other CLI languages.
+
+
+ Invoke the optimized function value with two curried arguments
+
+ The first arg.
+ The second arg.
+
+ The function result.
+
+
+ Adapt an F# first class function value to be an optimized function value that can
+ accept two curried arguments without intervening execution.
+
+ The input function.
+
+ The adapted function.
+
+
+ Construct an optimized function value that can accept two curried
+ arguments without intervening execution.
+ The optimized function.
+
+
+ The CLI type used to represent F# function values that accept
+ two iterated (curried) arguments without intervening execution. This type should not
+ typically used directly from either F# code or from other CLI languages.
+
+
+ An implementation module used to hold some private implementations of function
+ value invocation.
+ Language Primitives
+
+
+ Divides a value by an integer.
+
+ The input value.
+ The input int.
+
+ The division result.
+
+
+ Resolves to the value 'one' for any primitive numeric type or any type with a static member called 'One'
+
+
+ Resolves to the zero value for any primitive numeric type or any type with a static member called 'Zero'
+
+
+ A compiler intrinsic that implements dynamic invocations for the DivideByInt primitive.
+
+
+ A compiler intrinsic that implements dynamic invocations related to the '=' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations related to the '=' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations related to the '>=' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations related to the '<=' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations related to the '>' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations related to the '<' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations related to checked conversion operators.
+
+
+ A compiler intrinsic that implements dynamic invocations related to conversion operators.
+
+
+ A compiler intrinsic that implements dynamic invocations related to the '~~~' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations related to the '^^^' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations to the '|||' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations to the '&&&' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations to the '>>>' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations to the '<<<' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations to the checked unary '-' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations to the checked '-' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations to the '%' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations to the unary '-' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations to the '/' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations to the '-' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations to the checked '*' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations to the '*' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations to the checked '+' operator.
+
+
+ A compiler intrinsic that implements dynamic invocations to the '+' operator.
+
+
+ Resolves to the value 'one' for any primitive numeric type or any type with a static member called 'One'.
+
+
+ Resolves to the zero value for any primitive numeric type or any type with a static member called 'Zero'.
+
+
+ Parse an uint64 according to the rules used by the overloaded 'uint64' conversion operator when applied to strings
+
+ The input string.
+
+ The parsed value.
+
+
+ Parse an int64 according to the rules used by the overloaded 'int64' conversion operator when applied to strings
+
+ The input string.
+
+ The parsed value.
+
+
+ Parse an uint32 according to the rules used by the overloaded 'uint32' conversion operator when applied to strings
+
+ The input string.
+
+ The parsed value.
+
+
+ Parse an int32 according to the rules used by the overloaded 'int32' conversion operator when applied to strings
+
+ The input string.
+
+ The parsed value.
+
+
+ Creates a unativeint value with units-of-measure
+
+ The input unativeint.
+
+ The unativeint with units-of-measure.
+
+
+ Creates a byte value with units-of-measure
+
+ The input byte.
+
+ The byte with units-of-measure.
+
+
+ Creates a uint16 value with units-of-measure
+
+ The input uint16.
+
+ The uint16 with units-of-measure.
+
+
+ Creates a uint64 value with units-of-measure
+
+ The input uint64.
+
+ The uint64 with units-of-measure.
+
+
+ Creates a uint value with units-of-measure
+
+ The input uint.
+
+ The uint with units-of-measure.
+
+
+ Creates a nativeint value with units-of-measure
+
+ The input nativeint.
+
+ The nativeint with units-of-measure.
+
+
+ Creates an sbyte value with units-of-measure
+
+ The input sbyte.
+
+ The sbyte with units-of-measure.
+
+
+ Creates an int16 value with units-of-measure
+
+ The input int16.
+
+ The int16 with units-of-measure.
+
+
+ Creates an int64 value with units-of-measure
+
+ The input int64.
+
+ The int64 with units of measure.
+
+
+ Creates an int32 value with units-of-measure
+
+ The input int.
+
+ The int with units of measure.
+
+
+ Creates a decimal value with units-of-measure
+
+ The input decimal.
+
+ The decimal with units of measure.
+
+
+ Creates a float32 value with units-of-measure
+
+ The input float.
+
+ The float with units-of-measure.
+
+
+ Creates a float value with units-of-measure
+
+ The input float.
+
+ The float with units-of-measure.
+
+
+ Get the underlying value for an enum value
+
+ The input enum.
+
+ The enumeration as a value.
+
+
+ Build an enum value from an underlying value
+
+ The input value.
+
+ The value as an enumeration.
+
+
+ Recursively hash a part of a value according to its structure.
+
+ The comparison function.
+ The input object.
+
+ The hashed value.
+
+
+ Hash a value according to its structure. Use the given limit to restrict the hash when hashing F#
+ records, lists and union types.
+
+ The limit on the number of nodes.
+ The input object.
+
+ The hashed value.
+
+
+ Hash a value according to its structure. This hash is not limited by an overall node count when hashing F#
+ records, lists and union types.
+
+ The input object.
+
+ The hashed value.
+
+
+ Make an F# comparer object for the given type
+
+
+ Make an F# hash/equality object for the given type
+
+
+ Make an F# hash/equality object for the given type using node-limited hashing when hashing F#
+ records, lists and union types.
+
+ The input limit on the number of nodes.
+
+ System.Collections.Generic.IEqualityComparer<'T>
+
+
+ Make an F# hash/equality object for the given type
+
+
+ Make an F# comparer object for the given type, where it can be null if System.Collections.Generic.Comparer<'T>.Default
+
+
+ Make an F# comparer object for the given type
+
+
+ A static F# comparer object
+
+
+ Return an F# comparer object suitable for hashing and equality. This hashing behaviour
+ of the returned comparer is not limited by an overall node count when hashing F#
+ records, lists and union types. This equality comparer has equivalence
+ relation semantics ([nan] = [nan]).
+
+
+ Return an F# comparer object suitable for hashing and equality. This hashing behaviour
+ of the returned comparer is not limited by an overall node count when hashing F#
+ records, lists and union types.
+
+
+ The physical hash. Hashes on the object identity.
+
+ The input object.
+
+ The hashed value.
+
+
+ Reference/physical equality.
+ True if the inputs are reference-equal, false otherwise.
+
+ The first value.
+ The second value.
+
+ The result of the comparison.
+
+
+ Take the maximum of two values structurally according to the order given by GenericComparison
+
+ The first value.
+ The second value.
+
+ The maximum value.
+
+
+ Take the minimum of two values structurally according to the order given by GenericComparison
+
+ The first value.
+ The second value.
+
+ The minimum value.
+
+
+ Compare two values
+
+ The first value.
+ The second value.
+
+ The result of the comparison.
+
+
+ Compare two values
+
+ The first value.
+ The second value.
+
+ The result of the comparison.
+
+
+ Compare two values
+
+ The first value.
+ The second value.
+
+ The result of the comparison.
+
+
+ Compare two values
+
+ The first value.
+ The second value.
+
+ The result of the comparison.
+
+
+ Compare two values. May be called as a recursive case from an implementation of System.IComparable to
+ ensure consistent NaN comparison semantics.
+
+ The function to compare the values.
+ The first value.
+ The second value.
+
+ The result of the comparison.
+
+
+ Compare two values
+
+ The first value.
+ The second value.
+
+ The result of the comparison.
+
+
+ Compare two values for equality
+
+
+ The first value.
+ The second value.
+
+ The result of the comparison.
+
+
+ Compare two values for equality using equivalence relation semantics ([nan] = [nan])
+
+ The first value.
+ The second value.
+
+ The result of the comparison.
+
+
+ Compare two values for equality using partial equivalence relation semantics ([nan] <> [nan])
+
+ The first value.
+ The second value.
+
+ The result of the comparison.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ A primitive entry point used by the F# compiler for optimization purposes.
+
+
+ The F# compiler emits calls to some of the functions in this module as part of the compiled form of some language constructs
+
+
+
+ The standard overloaded associative (4-indexed) mutation operator
+
+
+
+ The standard overloaded associative (3-indexed) mutation operator
+
+
+ The standard overloaded associative (2-indexed) mutation operator
+
+
+ The standard overloaded associative (indexed) mutation operator
+
+
+ The standard overloaded associative (4-indexed) lookup operator
+
+
+ The standard overloaded associative (3-indexed) lookup operator
+
+
+ The standard overloaded associative (2-indexed) lookup operator
+
+
+ The standard overloaded associative (indexed) lookup operator
+
+
+ A compiler intrinsic for checking initialization soundness of recursive bindings
+
+
+ A compiler intrinsic for checking initialization soundness of recursive static bindings
+
+
+ A compiler intrinsic for checking initialization soundness of recursive bindings
+
+
+ A compiler intrinsic for the efficient compilation of sequence expressions
+
+
+ This function implements parsing of decimal constants
+
+
+ This function implements calls to default constructors
+ accessed by 'new' constraints.
+
+
+ Primitive used by pattern match compilation
+
+
+ A compiler intrinsic that implements the ':?' operator
+
+
+ A compiler intrinsic that implements the ':?' operator
+
+
+ A compiler intrinsic that implements the ':?>' operator
+
+
+ A compiler intrinsic that implements the ':?>' operator
+
+
+ The F# compiler emits calls to some of the functions in this module as part of the compiled form of some language constructs
+
+
+ Address-of. Uses of this value may result in the generation of unverifiable code.
+
+ The input object.
+
+ The unmanaged pointer.
+
+
+ Address-of. Uses of this value may result in the generation of unverifiable code.
+
+ The input object.
+
+ The managed pointer.
+
+
+ Binary 'or'. When used as a binary operator the right hand value is evaluated only on demand
+
+ The first value.
+ The second value.
+
+ The result of the operation.
+
+
+ Binary 'or'. When used as a binary operator the right hand value is evaluated only on demand.
+
+
+ Binary 'and'. When used as a binary operator the right hand value is evaluated only on demand
+
+ The first value.
+ The second value.
+
+ The result of the operation.
+
+
+ Binary 'and'. When used as a binary operator the right hand value is evaluated only on demand.
+
+
+ The F# compiler emits calls to some of the functions in this module as part of the compiled form of some language constructs
+
+
+ For compiler use only
+
+
+ Language primitives associated with the F# language
+
+ Language Primitives
+
+
+
+ Represents a byref that can be both read and written
+
+
+
+
+ Represents a byref that can be read
+
+
+
+
+ Represents a byref that can be written
+
+
+
+ Represents the types of byrefs in F# 4.5+
+ ByRef and Pointer Types
+
+
+ Convert an option to a potentially null value.
+
+ The input value.
+
+ The result value, which is null if the input was ValueNone.
+
+
+
+ (ValueNone: string ValueOption) |> ValueOption.toObj // evaluates to null
+ ValueSome "not a null string" |> ValueOption.toObj // evaluates to "not a null string"
+
+
+
+
+ Convert a potentially null value to a value option.
+
+ The input value.
+
+ The result value option.
+
+
+
+ (null: string) |> ValueOption.ofObj // evaluates to ValueNone
+ "not a null string" |> ValueOption.ofObj // evaluates to (ValueSome "not a null string")
+
+
+
+
+ Convert a Nullable value to a value option.
+
+ The input nullable value.
+
+ The result value option.
+
+
+
+ System.Nullable<int>() |> ValueOption.ofNullable // evaluates to ValueNone
+ System.Nullable(42) |> ValueOption.ofNullable // evaluates to ValueSome 42
+
+
+
+
+ Convert the value option to a Nullable value.
+
+ The input value option.
+
+ The result value.
+
+
+
+ (ValueNone: int ValueOption) |> ValueOption.toNullable // evaluates to new System.Nullable<int>()
+ ValueSome 42 |> ValueOption.toNullable // evaluates to new System.Nullable(42)
+
+
+
+
+ Convert the value option to a list of length 0 or 1.
+
+ The input value option.
+
+ The result list.
+
+
+
+ (ValueNone: int ValueOption) |> ValueOption.toList // evaluates to []
+ ValueSome 42 |> ValueOption.toList // evaluates to [42]
+
+
+
+
+ Convert the value option to an array of length 0 or 1.
+
+ The input value option.
+
+ The result array.
+
+
+
+ (ValueNone: int ValueOption) |> ValueOption.toArray // evaluates to [||]
+ ValueSome 42 |> ValueOption.toArray // evaluates to [|42|]
+
+
+
+
+ filter f inp evaluates to match inp with ValueNone -> ValueNone | ValueSome x -> if f x then ValueSome x else ValueNone.
+
+ A function that evaluates whether the value contained in the value option should remain, or be filtered out.
+ The input value option.
+
+ The input if the predicate evaluates to true; otherwise, ValueNone.
+
+
+
+ ValueNone |> ValueOption.filter (fun x -> x >= 5) // evaluates to ValueNone
+ ValueSome 42 |> ValueOption.filter (fun x -> x >= 5) // evaluates to ValueSome 42
+ ValueSome 4 |> ValueOption.filter (fun x -> x >= 5) // evaluates to ValueNone
+
+
+
+
+ flatten inp evaluates to match inp with ValueNone -> ValueNone | ValueSome x -> x
+
+ The input value option.
+
+ The input value if the value is Some; otherwise, ValueNone.
+ flatten is equivalent to bind id.
+
+
+
+ (ValueNone: int ValueOption ValueOption) |> ValueOption.flatten // evaluates to ValueNone
+ (ValueSome ((ValueNone: int ValueOption))) |> ValueOption.flatten // evaluates to ValueNone
+ (ValueSome (ValueSome 42)) |> ValueOption.flatten // evaluates to ValueSome 42
+
+
+
+
+ bind f inp evaluates to match inp with ValueNone -> ValueNone | ValueSome x -> f x
+
+ A function that takes the value of type T from a value option and transforms it into
+ a value option containing a value of type U.
+ The input value option.
+
+ An option of the output type of the binder.
+
+
+
+ let tryParse input =
+ match System.Int32.TryParse (input: string) with
+ | true, v -> ValueSome v
+ | false, _ -> ValueNone
+ ValueNone |> ValueOption.bind tryParse // evaluates to ValueNone
+ ValueSome "42" |> ValueOption.bind tryParse // evaluates to ValueSome 42
+ ValueSome "Forty-two" |> ValueOption.bind tryParse // evaluates to ValueNone
+
+
+
+
+ map f voption1 voption2 voption3 evaluates to match voption1, voption2, voption3 with ValueSome x, ValueSome y, ValueSome z -> ValueSome (f x y z) | _ -> ValueNone.
+
+ A function to apply to the value option values.
+ The first value option.
+ The second value option.
+ The third value option.
+
+ A value option of the input values after applying the mapping function, or ValueNone if any input is ValueNone.
+
+
+
+ (ValueNone, ValueNone, ValueNone) |||> ValueOption.map3 (fun x y z -> x + y + z) // evaluates to ValueNone
+ (ValueSome 100, ValueNone, ValueNone) |||> ValueOption.map3 (fun x y z -> x + y + z) // evaluates to ValueNone
+ (ValueNone, ValueSome 100, ValueNone) |||> ValueOption.map3 (fun x y z -> x + y + z) // evaluates to ValueNone
+ (ValueNone, ValueNone, ValueSome 100) |||> ValueOption.map3 (fun x y z -> x + y + z) // evaluates to ValueNone
+ (ValueSome 5, ValueSome 100, ValueSome 10) |||> ValueOption.map3 (fun x y z -> x + y + z) // evaluates to ValueSome 115
+
+
+
+
+ map f voption1 voption2 evaluates to match voption1, voption2 with ValueSome x, ValueSome y -> ValueSome (f x y) | _ -> ValueNone.
+
+ A function to apply to the voption values.
+ The first value option.
+ The second value option.
+
+ A value option of the input values after applying the mapping function, or ValueNone if either input is ValueNone.
+
+
+
+ (ValueNone, ValueNone) ||> ValueOption.map2 (fun x y -> x + y) // evaluates to ValueNone
+ (ValueSome 5, ValueNone) ||> ValueOption.map2 (fun x y -> x + y) // evaluates to ValueNone
+ (ValueNone, ValueSome 10) ||> ValueOption.map2 (fun x y -> x + y) // evaluates to ValueNone
+ (ValueSome 5, ValueSome 10) ||> ValueOption.map2 (fun x y -> x + y) // evaluates to ValueSome 15
+
+
+
+
+ map f inp evaluates to match inp with ValueNone -> ValueNone | ValueSome x -> ValueSome (f x).
+
+ A function to apply to the voption value.
+ The input value option.
+
+ A value option of the input value after applying the mapping function, or ValueNone if the input is ValueNone.
+
+
+
+ ValueNone |> ValueOption.map (fun x -> x * 2) // evaluates to ValueNone
+ ValueSome 42 |> ValueOption.map (fun x -> x * 2) // evaluates to ValueSome 84
+
+
+
+
+ iter f inp executes match inp with ValueNone -> () | ValueSome x -> f x.
+
+ A function to apply to the voption value.
+ The input value option.
+
+
+
+ ValueNone |> ValueOption.iter (printfn "%s") // does nothing
+ ValueSome "Hello world" |> ValueOption.iter (printfn "%s") // prints "Hello world"
+
+
+
+
+ Evaluates to true if is ValueSome and its value is equal to .
+
+ The value to test for equality.
+ The input value option.
+
+ True if the option is ValueSome and contains a value equal to , otherwise false.
+
+
+
+ (99, ValueNone) ||> ValueOption.contains // evaluates to false
+ (99, ValueSome 99) ||> ValueOption.contains // evaluates to true
+ (99, ValueSome 100) ||> ValueOption.contains // evaluates to false
+
+
+
+
+ forall p inp evaluates to match inp with ValueNone -> true | ValueSome x -> p x.
+
+ A function that evaluates to a boolean when given a value from the value option type.
+ The input value option.
+
+ True if the option is None, otherwise it returns the result of applying the predicate
+ to the option value.
+
+
+
+ ValueNone |> ValueOption.forall (fun x -> x >= 5) // evaluates to true
+ ValueSome 42 |> ValueOption.forall (fun x -> x >= 5) // evaluates to true
+ ValueSome 4 |> ValueOption.forall (fun x -> x >= 5) // evaluates to false
+
+
+
+
+ exists p inp evaluates to match inp with ValueNone -> false | ValueSome x -> p x.
+
+ A function that evaluates to a boolean when given a value from the option type.
+ The input value option.
+
+ False if the option is ValueNone, otherwise it returns the result of applying the predicate
+ to the option value.
+
+
+
+ ValueNone |> ValueOption.exists (fun x -> x >= 5) // evaluates to false
+ ValueSome 42 |> ValueOption.exists (fun x -> x >= 5) // evaluates to true
+ ValueSome 4 |> ValueOption.exists (fun x -> x >= 5) // evaluates to false
+
+
+
+
+ fold f inp s evaluates to match inp with ValueNone -> s | ValueSome x -> f x s.
+
+ A function to update the state data when given a value from a value option.
+ The input value option.
+ The initial state.
+
+ The original state if the option is ValueNone, otherwise it returns the updated state with the folder
+ and the voption value.
+
+
+
+ (ValueNone, 0) ||> ValueOption.foldBack (fun x accum -> accum + x * 2) // evaluates to 0
+ (ValueSome 1, 0) ||> ValueOption.foldBack (fun x accum -> accum + x * 2) // evaluates to 2
+ (ValueSome 1, 10) ||> ValueOption.foldBack (fun x accum -> accum + x * 2) // evaluates to 12
+
+
+
+
+ fold f s inp evaluates to match inp with ValueNone -> s | ValueSome x -> f s x.
+
+ A function to update the state data when given a value from a value option.
+ The initial state.
+ The input value option.
+
+ The original state if the option is ValueNone, otherwise it returns the updated state with the folder
+ and the voption value.
+
+
+
+ (0, ValueNone) ||> ValueOption.fold (fun accum x -> accum + x * 2) // evaluates to 0
+ (0, ValueSome 1) ||> ValueOption.fold (fun accum x -> accum + x * 2) // evaluates to 2
+ (10, ValueSome 1) ||> ValueOption.fold (fun accum x -> accum + x * 2) // evaluates to 12
+
+
+
+
+ count inp evaluates to match inp with ValueNone -> 0 | ValueSome _ -> 1.
+
+ The input value option.
+
+ A zero if the option is ValueNone, a one otherwise.
+
+
+
+ ValueNone |> ValueOption.count // evaluates to 0
+ ValueSome 99 |> ValueOption.count // evaluates to 1
+
+
+
+
+ Gets the value associated with the option.
+
+ The input value option.
+
+ The value within the option.
+ Thrown when the option is ValueNone.
+
+
+
+ ValueSome 42 |> ValueOption.get // evaluates to 42
+ (ValueNone: int ValueOption) |> ValueOption.get // throws exception!
+
+
+
+
+ Returns if it is Some, otherwise evaluates and returns the result.
+
+ A thunk that provides an alternate value option when evaluated.
+ The input value option.
+
+ The voption if the voption is ValueSome, else the result of evaluating .
+ is not evaluated unless is ValueNone.
+
+
+
+ (ValueNone: int ValueOption) |> ValueOption.orElseWith (fun () -> ValueNone) // evaluates to ValueNone
+ ValueNone |> ValueOption.orElseWith (fun () -> (ValueSome 99)) // evaluates to ValueSome 99
+ ValueSome 42 |> ValueOption.orElseWith (fun () -> ValueNone) // evaluates to ValueSome 42
+ ValueSome 42 |> ValueOption.orElseWith (fun () -> (ValueSome 99)) // evaluates to ValueSome 42
+
+
+
+
+ Returns if it is Some, otherwise returns .
+
+ The value to use if is None.
+ The input option.
+
+ The option if the option is Some, else the alternate option.
+
+
+
+ ((ValueNone: int ValueOption), ValueNone) ||> ValueOption.orElse // evaluates to ValueNone
+ (ValueSome 99, ValueNone) ||> ValueOption.orElse // evaluates to ValueSome 99
+ (ValueNone, ValueSome 42) ||> ValueOption.orElse // evaluates to ValueSome 42
+ (ValueSome 99, ValueSome 42) ||> ValueOption.orElse // evaluates to ValueSome 42
+
+
+
+
+ Gets the value of the voption if the voption is ValueSome, otherwise evaluates and returns the result.
+
+ A thunk that provides a default value when evaluated.
+ The input voption.
+
+ The voption if the voption is ValueSome, else the result of evaluating .
+ is not evaluated unless is ValueNone.
+
+
+
+ ValueNone |> ValueOption.defaultWith (fun () -> 99) // evaluates to 99
+ ValueSome 42 |> ValueOption.defaultWith (fun () -> 99) // evaluates to 42
+
+
+
+
+ Gets the value of the value option if the option is ValueSome, otherwise returns the specified default value.
+
+ The specified default value.
+ The input voption.
+
+ The voption if the voption is ValueSome, else the default value.
+ Identical to the built-in operator, except with the arguments swapped.
+
+
+
+ (99, ValueNone) ||> ValueOption.defaultValue // evaluates to 99
+ (99, ValueSome 42) ||> ValueOption.defaultValue // evaluates to 42
+
+
+
+
+ Returns true if the value option is ValueNone.
+
+ The input value option.
+
+ True if the voption is ValueNone.
+
+
+
+ ValueNone |> ValueOption.isNone // evaluates to true
+ ValueSome 42 |> ValueOption.isNone // evaluates to false
+
+
+
+
+ Returns true if the value option is not ValueNone.
+
+ The input value option.
+
+ True if the value option is not ValueNone.
+
+
+
+ ValueNone |> ValueOption.isSome // evaluates to false
+ ValueSome 42 |> ValueOption.isSome // evaluates to true
+
+
+
+
+ Contains operations for working with value options.
+
+ Options
+
+
+ Convert an option to a potentially null value.
+
+ The input value.
+
+ The result value, which is null if the input was None.
+
+
+
+ (None: string option) |> Option.toObj // evaluates to null
+ Some "not a null string" |> Option.toObj // evaluates to "not a null string"
+
+
+
+
+ Convert a potentially null value to an option.
+
+ The input value.
+
+ The result option.
+
+
+
+ (null: string) |> Option.ofObj // evaluates to None
+ "not a null string" |> Option.ofObj // evaluates to (Some "not a null string")
+
+
+
+
+ Convert a Nullable value to an option.
+
+ The input nullable value.
+
+ The result option.
+
+
+
+ System.Nullable<int>() |> Option.ofNullable // evaluates to None
+ System.Nullable(42) |> Option.ofNullable // evaluates to Some 42
+
+
+
+
+ Convert the option to a Nullable value.
+
+ The input option.
+
+ The result value.
+
+
+
+ (None: int option) |> Option.toNullable // evaluates to new System.Nullable<int>()
+ Some 42 |> Option.toNullable // evaluates to new System.Nullable(42)
+
+
+
+
+ Convert the option to a list of length 0 or 1.
+
+ The input option.
+
+ The result list.
+
+
+
+ (None: int option) |> Option.toList // evaluates to []
+ Some 42 |> Option.toList // evaluates to [42]
+
+
+
+
+ Convert the option to an array of length 0 or 1.
+
+ The input option.
+
+ The result array.
+
+
+
+ (None: int option) |> Option.toArray // evaluates to [||]
+ Some 42 |> Option.toArray // evaluates to [|42|]
+
+
+
+
+ filter f inp evaluates to match inp with None -> None | Some x -> if f x then Some x else None.
+
+ A function that evaluates whether the value contained in the option should remain, or be filtered out.
+ The input option.
+
+ The input if the predicate evaluates to true; otherwise, None.
+
+
+
+ None |> Option.filter (fun x -> x >= 5) // evaluates to None
+ Some 42 |> Option.filter (fun x -> x >= 5) // evaluates to Some 42
+ Some 4 |> Option.filter (fun x -> x >= 5) // evaluates to None
+
+
+
+
+ flatten inp evaluates to match inp with None -> None | Some x -> x
+
+ The input option.
+
+ The input value if the value is Some; otherwise, None.
+
+ flatten is equivalent to bind id.
+
+
+
+ (None: int option option) |> Option.flatten // evaluates to None
+ (Some ((None: int option))) |> Option.flatten // evaluates to None
+ (Some (Some 42)) |> Option.flatten // evaluates to Some 42
+
+
+
+
+ bind f inp evaluates to match inp with None -> None | Some x -> f x
+
+ A function that takes the value of type T from an option and transforms it into
+ an option containing a value of type U.
+ The input option.
+
+ An option of the output type of the binder.
+
+
+
+ let tryParse (input: string) =
+ match System.Int32.TryParse input with
+ | true, v -> Some v
+ | false, _ -> None
+ None |> Option.bind tryParse // evaluates to None
+ Some "42" |> Option.bind tryParse // evaluates to Some 42
+ Some "Forty-two" |> Option.bind tryParse // evaluates to None
+
+
+
+
+ map f option1 option2 option3 evaluates to match option1, option2, option3 with Some x, Some y, Some z -> Some (f x y z) | _ -> None.
+
+ A function to apply to the option values.
+ The first option.
+ The second option.
+ The third option.
+
+ An option of the input values after applying the mapping function, or None if any input is None.
+
+
+
+ (None, None, None) |||> Option.map3 (fun x y z -> x + y + z) // evaluates to None
+ (Some 100, None, None) |||> Option.map3 (fun x y z -> x + y + z) // evaluates to None
+ (None, Some 100, None) |||> Option.map3 (fun x y z -> x + y + z) // evaluates to None
+ (None, None, Some 100) |||> Option.map3 (fun x y z -> x + y + z) // evaluates to None
+ (Some 5, Some 100, Some 10) |||> Option.map3 (fun x y z -> x + y + z) // evaluates to Some 115
+
+
+
+
+ map f option1 option2 evaluates to match option1, option2 with Some x, Some y -> Some (f x y) | _ -> None.
+
+ A function to apply to the option values.
+ The first option.
+ The second option.
+
+ An option of the input values after applying the mapping function, or None if either input is None.
+
+
+
+ (None, None) ||> Option.map2 (fun x y -> x + y) // evaluates to None
+ (Some 5, None) ||> Option.map2 (fun x y -> x + y) // evaluates to None
+ (None, Some 10) ||> Option.map2 (fun x y -> x + y) // evaluates to None
+ (Some 5, Some 10) ||> Option.map2 (fun x y -> x + y) // evaluates to Some 15
+
+
+
+
+ map f inp evaluates to match inp with None -> None | Some x -> Some (f x).
+
+ A function to apply to the option value.
+ The input option.
+
+ An option of the input value after applying the mapping function, or None if the input is None.
+
+
+
+ None |> Option.map (fun x -> x * 2) // evaluates to None
+ Some 42 |> Option.map (fun x -> x * 2) // evaluates to Some 84
+
+
+
+
+ iter f inp executes match inp with None -> () | Some x -> f x.
+
+ A function to apply to the option value.
+ The input option.
+
+
+
+ None |> Option.iter (printfn "%s") // does nothing
+ Some "Hello world" |> Option.iter (printfn "%s") // prints "Hello world"
+
+
+
+
+ Evaluates to true if is Some and its value is equal to .
+
+ The value to test for equality.
+ The input option.
+
+ True if the option is Some and contains a value equal to , otherwise false.
+
+
+
+ (99, None) ||> Option.contains // evaluates to false
+ (99, Some 99) ||> Option.contains // evaluates to true
+ (99, Some 100) ||> Option.contains // evaluates to false
+
+
+
+
+ forall p inp evaluates to match inp with None -> true | Some x -> p x.
+
+ A function that evaluates to a boolean when given a value from the option type.
+ The input option.
+
+ True if the option is None, otherwise it returns the result of applying the predicate
+ to the option value.
+
+
+
+ None |> Option.forall (fun x -> x >= 5) // evaluates to true
+ Some 42 |> Option.forall (fun x -> x >= 5) // evaluates to true
+ Some 4 |> Option.forall (fun x -> x >= 5) // evaluates to false
+
+
+
+
+ exists p inp evaluates to match inp with None -> false | Some x -> p x.
+
+ A function that evaluates to a boolean when given a value from the option type.
+ The input option.
+
+ False if the option is None, otherwise it returns the result of applying the predicate
+ to the option value.
+
+
+
+ None |> Option.exists (fun x -> x >= 5) // evaluates to false
+ Some 42 |> Option.exists (fun x -> x >= 5) // evaluates to true
+ Some 4 |> Option.exists (fun x -> x >= 5) // evaluates to false
+
+
+
+
+ fold f inp s evaluates to match inp with None -> s | Some x -> f x s.
+
+ A function to update the state data when given a value from an option.
+ The input option.
+ The initial state.
+
+ The original state if the option is None, otherwise it returns the updated state with the folder
+ and the option value.
+
+
+
+ (None, 0) ||> Option.foldBack (fun x accum -> accum + x * 2) // evaluates to 0
+ (Some 1, 0) ||> Option.foldBack (fun x accum -> accum + x * 2) // evaluates to 2
+ (Some 1, 10) ||> Option.foldBack (fun x accum -> accum + x * 2) // evaluates to 12
+
+
+
+
+ fold f s inp evaluates to match inp with None -> s | Some x -> f s x.
+
+ A function to update the state data when given a value from an option.
+ The initial state.
+ The input option.
+
+ The original state if the option is None, otherwise it returns the updated state with the folder
+ and the option value.
+
+
+
+ (0, None) ||> Option.fold (fun accum x -> accum + x * 2) // evaluates to 0
+ (0, Some 1) ||> Option.fold (fun accum x -> accum + x * 2) // evaluates to 2
+ (10, Some 1) ||> Option.fold (fun accum x -> accum + x * 2) // evaluates to 12
+
+
+
+
+ count inp evaluates to match inp with None -> 0 | Some _ -> 1.
+
+ The input option.
+
+ A zero if the option is None, a one otherwise.
+
+
+
+ None |> Option.count // evaluates to 0
+ Some 99 |> Option.count // evaluates to 1
+
+
+
+
+ Gets the value associated with the option.
+
+ The input option.
+
+ The value within the option.
+
+ Thrown when the option is None.
+
+
+
+ Some 42 |> Option.get // evaluates to 42
+ (None: int option) |> Option.get // throws exception!
+
+
+
+
+ Returns if it is Some, otherwise evaluates and returns the result.
+
+ A thunk that provides an alternate option when evaluated.
+ The input option.
+
+ The option if the option is Some, else the result of evaluating .
+ is not evaluated unless is None.
+
+
+
+ (None: int Option) |> Option.orElseWith (fun () -> None) // evaluates to None
+ None |> Option.orElseWith (fun () -> (Some 99)) // evaluates to Some 99
+ Some 42 |> Option.orElseWith (fun () -> None) // evaluates to Some 42
+ Some 42 |> Option.orElseWith (fun () -> (Some 99)) // evaluates to Some 42
+
+
+
+
+ Returns if it is Some, otherwise returns .
+
+ The value to use if is None.
+ The input option.
+
+ The option if the option is Some, else the alternate option.
+
+
+
+ ((None: int Option), None) ||> Option.orElse // evaluates to None
+ (Some 99, None) ||> Option.orElse // evaluates to Some 99
+ (None, Some 42) ||> Option.orElse // evaluates to Some 42
+ (Some 99, Some 42) ||> Option.orElse // evaluates to Some 42
+
+
+
+
+ Gets the value of the option if the option is Some, otherwise evaluates and returns the result.
+
+ A thunk that provides a default value when evaluated.
+ The input option.
+
+ The option if the option is Some, else the result of evaluating .
+ is not evaluated unless is None.
+
+
+
+ None |> Option.defaultWith (fun () -> 99) // evaluates to 99
+ Some 42 |> Option.defaultWith (fun () -> 99) // evaluates to 42
+
+
+
+
+ Gets the value of the option if the option is Some, otherwise returns the specified default value.
+
+ The specified default value.
+ The input option.
+
+ The option if the option is Some, else the default value.
+
+ Identical to the built-in operator, except with the arguments swapped.
+
+
+
+ (99, None) ||> Option.defaultValue // evaluates to 99
+ (99, Some 42) ||> Option.defaultValue // evaluates to 42
+
+
+
+
+ Returns true if the option is None.
+
+ The input option.
+
+ True if the option is None.
+
+
+
+ None |> Option.isNone // evaluates to true
+ Some 42 |> Option.isNone // evaluates to false
+
+
+
+
+ Returns true if the option is not None.
+ The input option.
+
+ True if the option is not None.
+
+
+
+ None |> Option.isSome // evaluates to false
+ Some 42 |> Option.isSome // evaluates to true
+
+
+
+
+ Contains operations for working with options.
+
+ Options
+
+
+ Convert the result to an Option value.
+
+ The input result.
+
+ The result value.
+
+
+
+ Error 42 |> Result.toOption // evaluates to ValueNone
+ Ok 42 |> Result.toOption // evaluates to ValueSome 42
+
+
+
+
+ Convert the result to an Option value.
+
+ The input result.
+
+ The option value.
+
+
+
+ Error 42 |> Result.toOption // evaluates to None
+ Ok 42 |> Result.toOption // evaluates to Some 42
+
+
+
+
+ Convert the result to a list of length 0 or 1.
+
+ The input result.
+
+ The result list.
+
+
+
+ Error 42 |> Result.toList // evaluates to []
+ Ok 42 |> Result.toList // evaluates to [ 42 ]
+
+
+
+
+ Convert the result to an array of length 0 or 1.
+
+ The input result.
+
+ The result array.
+
+
+
+ Error 42 |> Result.toArray // evaluates to [||]
+ Ok 42 |> Result.toArray // evaluates to [| 42 |]
+
+
+
+
+ iter f inp executes match inp with Error _ -> () | Ok x -> f x.
+
+ A function to apply to the result value.
+ The input result.
+
+
+
+ Error "Hello world" |> Result.iter (printfn "%s") // does nothing
+ Ok "Hello world" |> Result.iter (printfn "%s") // prints "Hello world"
+
+
+
+
+ Evaluates to true if is Ok and its value is equal to .
+
+ The value to test for equality.
+ The input result.
+
+ True if the result is Ok and contains a value equal to , otherwise false.
+
+
+
+ (99, Error 99) ||> Result.contains // evaluates to false
+ (99, Ok 99) ||> Result.contains // evaluates to true
+ (99, Ok 100) ||> Result.contains // evaluates to false
+
+
+
+
+ forall p inp evaluates to match inp with Error _ -> true | Ok x -> p x.
+
+ A function that evaluates to a boolean when given a value from the result type.
+ The input result.
+
+ True if the result is Error, otherwise it returns the result of applying the predicate
+ to the result value.
+
+
+
+ Error 1 |> Result.forall (fun x -> x >= 5) // evaluates to true
+ Ok 42 |> Result.forall (fun x -> x >= 5) // evaluates to true
+ Ok 4 |> Result.forall (fun x -> x >= 5) // evaluates to false
+
+
+
+
+ exists p inp evaluates to match inp with Error _ -> false | Ok x -> p x.
+
+ A function that evaluates to a boolean when given a value from the result type.
+ The input result.
+
+ False if the result is Error, otherwise it returns the result of applying the predicate
+ to the result value.
+
+
+
+ Error 6 |> Result.exists (fun x -> x >= 5) // evaluates to false
+ Ok 42 |> Result.exists (fun x -> x >= 5) // evaluates to true
+ Ok 4 |> Result.exists (fun x -> x >= 5) // evaluates to false
+
+
+
+
+ foldBack f inp s evaluates to match inp with Error _ -> s | Ok x -> f x s.
+
+ A function to update the state data when given a value from an result.
+ The input result.
+ The initial state.
+
+ The original state if the result is Error, otherwise it returns the updated state with the folder
+ and the result value.
+
+
+
+ (Error 2, 0) ||> Result.foldBack (fun x accum -> accum + x * 2) // evaluates to 0
+ (Ok 1, 0) ||> Result.foldBack (fun x accum -> accum + x * 2) // evaluates to 2
+ (Ok 1, 10) ||> Result.foldBack (fun x accum -> accum + x * 2) // evaluates to 12
+
+
+
+
+ fold f s inp evaluates to match inp with Error _ -> s | Ok x -> f s x.
+
+ A function to update the state data when given a value from an result.
+ The initial state.
+ The input result.
+
+ The original state if the result is Error, otherwise it returns the updated state with the folder
+ and the result value.
+
+
+
+ (0, Error 2) ||> Result.fold (fun accum x -> accum + x * 2) // evaluates to 0
+ (0, Ok 1) ||> Result.fold (fun accum x -> accum + x * 2) // evaluates to 2
+ (10, Ok 1) ||> Result.fold (fun accum x -> accum + x * 2) // evaluates to 12
+
+
+
+
+ count inp evaluates to match inp with Error _ -> 0 | Ok _ -> 1.
+
+ The input result.
+
+ A zero if the result is Error, a one otherwise.
+
+
+
+ Error 99 |> Result.count // evaluates to 0
+ Ok 99 |> Result.count // evaluates to 1
+
+
+
+
+ Gets the value of the result if the result is Ok, otherwise evaluates and returns the result.
+
+ A thunk that provides a default value when evaluated.
+ The input result.
+
+ The result if the result is Ok, else the result of evaluating .
+ is not evaluated unless is Error.
+
+
+
+ Ok 1 |> Result.defaultWith (fun error -> 99) // evaluates to 1
+ Error 2 |> Result.defaultWith (fun error -> 99) // evaluates to 99
+
+
+
+
+ Gets the value of the result if the result is Ok, otherwise returns the specified default value.
+
+ The specified default value.
+ The input result.
+
+ The result if the result is Ok, else the default value.
+
+
+
+ Result.defaultValue 2 (Error 3) // evaluates to 2
+ Result.defaultValue 2 (Ok 1) // evaluates to 1
+
+
+
+
+ Returns true if the result is Error.
+
+ The input result.
+
+ True if the result is Error.
+
+
+
+ Ok 42 |> Result.isError // evaluates to false
+ Error 42 |> Result.isError // evaluates to true
+
+
+
+
+ Returns true if the result is Ok.
+ The input result.
+
+ True if the result is OK.
+
+
+
+ Ok 42 |> Result.isOk // evaluates to true
+ Error 42 |> Result.isOk // evaluates to false
+
+
+
+
+ bind f inp evaluates to match inp with Error e -> Error e | Ok x -> f x
+
+ A function that takes the value of type T from a result and transforms it into
+ a result containing a value of type U.
+ The input result.
+
+ A result of the output type of the binder.
+
+
+
+ let tryParse (input: string) =
+ match System.Int32.TryParse input with
+ | true, v -> Ok v
+ | false, _ -> Error "couldn't parse"
+
+ Error "message" |> Result.bind tryParse // evaluates to Error "message"
+
+ Ok "42" |> Result.bind tryParse // evaluates to Ok 42
+
+ Ok "Forty-two" |> Result.bind tryParse // evaluates to Error "couldn't parse"
+
+
+
+
+ map f inp evaluates to match inp with Error x -> Error (f x) | Ok v -> Ok v.
+
+ A function to apply to the Error result value.
+ The input result.
+
+ A result of the error value after applying the mapping function, or Ok if the input is Ok.
+
+
+
+ Ok 1 |> Result.mapError (fun x -> "bar") // evaluates to Ok 1
+
+ Error "foo" |> Result.mapError (fun x -> "bar") // evaluates to Error "bar"
+
+
+
+
+ map f inp evaluates to match inp with Error e -> Error e | Ok x -> Ok (f x).
+
+ A function to apply to the OK result value.
+ The input result.
+
+ A result of the input value after applying the mapping function, or Error if the input is Error.
+
+
+
+ Ok 1 |> Result.map (fun x -> "perfect") // evaluates to Ok "perfect"
+
+ Error "message" |> Result.map (fun x -> "perfect") // evaluates to Error "message"
+
+
+
+
+ Contains operations for working with values of type .
+
+ Choices and Results
+
+
+ Returns a string by concatenating count instances of str.
+
+ The number of copies of the input string will be copied.
+ The input string.
+
+ The concatenated string.
+ Thrown when count is negative.
+
+
+
+ "Do it!" |> String.replicate 3
+
+ Evaluates to "Do it!Do it!Do it!".
+
+
+
+ Builds a new string whose characters are the results of applying the function mapping
+ to each character and index of the input string.
+
+ The function to apply to each character and index of the string.
+ The input string.
+
+ The resulting string.
+
+
+
+ input |> String.mapi (fun i c -> (i, c))
+
+ Evaluates to [ (0, 'O'); (1, 'K'); (2, '!') ].
+
+
+
+ Builds a new string whose characters are the results of applying the function mapping
+ to each of the characters of the input string.
+
+ The function to apply to the characters of the string.
+ The input string.
+
+ The resulting string.
+
+ Changing case to upper for all characters in the input string
+
+ open System
+
+ let input = "Hello there!"
+
+ input |> String.map Char.ToUpper // evaluates "HELLO THERE!"
+
+
+
+
+ Returns the length of the string.
+
+ The input string.
+
+ The number of characters in the string.
+
+ Getting the length of different strings
+
+ String.length null // evaluates 0
+ String.length "" // evaluates 0
+ String.length "123" // evaluates 3
+
+
+
+
+ Applies the function action to the index of each character in the string and the
+ character itself.
+
+ The function to apply to each character and index of the string.
+ The input string.
+
+ Numbering the characters and printing the associated ASCII code
+ for each characater in the input string
+
+ let input = "Hello"
+ input |> String.iteri (fun i c -> printfn "%d. %c %d" (i + 1) c (int c))
+
+ The sample evaluates as unit, but prints:
+
+ 1. H 72
+ 2. e 101
+ 3. l 108
+ 4. l 108
+ 5. o 111
+
+
+
+
+ Applies the function action to each character in the string.
+
+ The function to be applied to each character of the string.
+ The input string.
+
+ Printing the ASCII code for each characater in the string
+
+ let input = "Hello"
+ input |> String.iter (fun c -> printfn "%c %d" c (int c))
+
+ The sample evaluates as unit, but prints:
+
+ H 72
+ e 101
+ l 108
+ l 108
+ o 111
+
+
+
+
+ Builds a new string whose characters are the results of applying the function mapping
+ to each index from 0 to count-1 and concatenating the resulting
+ strings.
+
+ The number of strings to initialize.
+ The function to take an index and produce a string to
+ be concatenated with the others.
+
+ The constructed string.
+
+ Thrown when count is negative.
+
+ Enumerate digits ASCII codes
+
+ String.init 10 (fun i -> int '0' + i |> sprintf "%d ")
+
+ The sample evaluates to: "48 49 50 51 52 53 54 55 56 57 "
+
+
+
+ Tests if all characters in the string satisfy the given predicate.
+
+ The function to test each character of the string.
+ The input string.
+
+ True if all characters return true for the predicate and false otherwise.
+
+ Looking for lowercase characters
+
+ open System
+
+ "all are lower" |> String.forall Char.IsLower // evaluates false
+
+ "allarelower" |> String.forall Char.IsLower // evaluates true
+
+
+
+
+ Builds a new string containing only the characters of the input string
+ for which the given predicate returns "true".
+
+ Returns an empty string if the input string is null
+
+ A function to test whether each character in the input sequence should be included in the output string.
+ The input string.
+
+ The resulting string.
+
+ Filtering out just alphanumeric characters
+
+ open System
+
+ let input = "0 1 2 3 4 5 6 7 8 9 a A m M"
+
+ input |> String.filter Uri.IsHexDigit // evaluates "123456789aA"
+
+
+ Filtering out just digits
+
+ open System
+
+ "hello" |> String.filter Char.IsDigit // evaluates ""
+
+
+
+
+ Tests if any character of the string satisfies the given predicate.
+
+ The function to test each character of the string.
+ The input string.
+
+ True if any character returns true for the predicate and false otherwise.
+
+ Looking for uppercase characters
+
+ open System
+
+ "Yoda" |> String.exists Char.IsUpper // evaluates true
+
+ "nope" |> String.exists Char.IsUpper // evaluates false
+
+
+
+
+ Returns a new string made by concatenating the given strings
+ with separator sep, that is a1 + sep + ... + sep + aN.
+ The separator string to be inserted between the strings
+ of the input sequence.
+ The sequence of strings to be concatenated.
+
+ A new string consisting of the concatenated strings separated by
+ the separation string.
+ Thrown when strings is null.
+
+
+
+ let input1 = ["Stefan"; "says:"; "Hello"; "there!"]
+
+ input1 |> String.concat " " // evaluates "Stefan says: Hello there!"
+
+ let input2 = [0..9] |> List.map string
+
+ input2 |> String.concat "" // evaluates "0123456789"
+ input2 |> String.concat ", " // evaluates "0, 1, 2, 3, 4, 5, 6, 7, 8, 9"
+
+ let input3 = ["No comma"]
+
+ input3 |> String.concat "," // evaluates "No comma"
+
+
+
+
+ Builds a new string whose characters are the results of applying the function mapping
+ to each of the characters of the input string and concatenating the resulting
+ strings.
+
+ The function to produce a string from each character of the input string.
+ The input string.
+
+ The concatenated string.
+
+ The following samples shows how to interspace spaces in a text
+
+ let input = "Stefan says: Hi!"
+
+ input |> String.collect (sprintf "%c ")
+
+ The sample evaluates to "S t e f a n s a y s : H i ! "
+
+
+ How to show the ASCII representation of a very secret text
+
+ "Secret" |> String.collect (fun chr -> int chr |> sprintf "%d ")
+
+ The sample evaluates to "83 101 99 114 101 116 "
+
+
+
+ Functional programming operators for string processing. Further string operations
+ are available via the member functions on strings and other functionality in
+ System.String
+ and System.Text.RegularExpressions types.
+
+
+ Strings and Text
+
+
+
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
+
+
+
+
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
+
+
+
+
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
+
+
+
+
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
+
+
+
+
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
+
+
+
+
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
+
+
+
+
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
+
+
+
+
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
+
+
+
+ Provides a default implementations of F# numeric literal syntax for literals of the form 'dddI'
+
+ Language Primitives
+
+
+ Represents a statically-analyzed format associated with writing to a . The type parameter indicates the
+ arguments and return type of the format operation.
+
+
+ Represents a statically-analyzed format when formatting builds a string. The type parameter indicates the
+ arguments and return type of the format operation.
+
+
+ Represents a statically-analyzed format associated with writing to a . The type parameter indicates the
+ arguments and return type of the format operation.
+
+
+ Represents a statically-analyzed format associated with writing to a . The first type parameter indicates the
+ arguments of the format operation and the last the overall return type.
+
+
+ Represents a statically-analyzed format when formatting builds a string. The first type parameter indicates the
+ arguments of the format operation and the last the overall return type.
+
+
+ Represents a statically-analyzed format associated with writing to a . The first type parameter indicates the
+ arguments of the format operation and the last the overall return type.
+
+
+ Print to a string buffer and raise an exception with the given
+ result. Helper printers must return strings.
+
+ The input formatter.
+
+ The arguments of the formatter.
+
+
+
+ failwithf "That's wrong. Five = %d and six = %d" (3+2) (3+3)
+
+ Throws Exception with message "That's wrong. Five = 5 and six = 6".
+
+
+
+ sprintf, but call the given 'final' function to generate the result.
+ See kprintf.
+
+ The function called to generate a result from the formatted string.
+ The input formatter.
+
+ The arguments of the formatter.
+
+ Using % format patterns:
+
+ open Printf
+
+ ksprintf (fun s -> s + ", done!") $"Write three = {1+2}"
+
+ Evaluates to "Write three = 3, done!".
+
+
+
+ printf, but call the given 'final' function to generate the result.
+ For example, these let the printing force a flush after all output has
+ been entered onto the channel, but not before.
+
+ The function called after formatting to generate the format result.
+ The input formatter.
+
+ The arguments of the formatter.
+
+ Using % format patterns:
+
+ open Printf
+
+ kprintf (fun s -> s + ", done!") $"Write three = {1+2}"
+
+ Evaluates to "Write three = 3, done!".
+
+
+
+ fprintf, but call the given 'final' function to generate the result.
+ See kprintf.
+
+ The function called after formatting to generate the format result.
+ The input TextWriter.
+ The input formatter.
+
+ The arguments of the formatter.
+
+ Using % format patterns:
+
+ open Printf
+ open System.IO
+
+ let file = File.CreateText("out.txt")
+
+ kfprintf (fun () -> file.Close()) file $"Write three = {1+2}"
+
+ Writes "Write three = 3" to out.txt.
+
+
+
+ bprintf, but call the given 'final' function to generate the result.
+ See kprintf.
+
+ The function called after formatting to generate the format result.
+ The input StringBuilder.
+ The input formatter.
+
+ The arguments of the formatter.
+
+ Using % format patterns:
+
+ open Printf
+ open System.Text
+
+ let buffer = new StringBuilder()
+
+ kbprintf (fun () -> buffer.ToString()) buffer "Write five = %d" (3+2)
+
+ Evaluates to "Write five = 5".
+
+
+
+ Print to a string via an internal string buffer and return
+ the result as a string. Helper printers must return strings.
+
+ The input formatter.
+
+ The formatted string.
+
+
+
+ sprintf "Write five = %d and six = %d" (3+2) (3+3)
+
+ Evaluates to "Write five = 5 and six = 6".
+
+
+
+ Formatted printing to stdout, adding a newline.
+
+ The input formatter.
+
+ The return type and arguments of the formatter.
+
+ Using interpolated strings:
+
+ printfn $"Write three = {1+2}"
+ printfn $"Write four = {2+2}"
+
+ After evaluation the two lines are written to stdout.
+
+
+ Using % format patterns:
+
+ printfn "Write five = %d" (3+2)
+ printfn "Write six = %d" (3+3)
+
+ After evaluation the two lines are written to stdout.
+
+
+
+ Formatted printing to stdout
+
+ The input formatter.
+
+ The return type and arguments of the formatter.
+
+ Using interpolated strings:
+
+ printf $"Write three = {1+2}"
+
+ After evaluation the text "Write three = 3" is written to stdout.
+
+
+ Using % format patterns:
+
+ printf "Write five = %d" (3+2)
+
+ After evaluation the text "Write five = 5" is written to stdout.
+
+
+
+ Formatted printing to stderr, adding a newline
+
+ The input formatter.
+
+ The return type and arguments of the formatter.
+
+ Using interpolated strings:
+
+ eprintfn $"Write three = {1+2}"
+ eprintfn $"Write four = {2+2}"
+
+ After evaluation two lines are written to stderr.
+
+
+ Using % format patterns:
+
+ eprintfn "Write five = %d" (3+2)
+ eprintfn "Write six = %d" (3+3)
+
+ After evaluation two lines are written to stderr.
+
+
+
+ Formatted printing to stderr
+
+ The input formatter.
+
+ The return type and arguments of the formatter.
+
+ Using interpolated strings:
+
+ eprintf $"Write three = {1+2}"
+
+ After evaluation the text "Write three = 3" is written to stderr.
+
+
+ Using % format patterns:
+
+ eprintf "Write five = %d" (3+2)
+
+ After evaluation the text "Write five = 5" is written to stderr.
+
+
+
+ Print to a text writer, adding a newline
+
+ The TextWriter to print to.
+ The input formatter.
+
+ The return type and arguments of the formatter.
+
+
+ Using interpolated strings:
+
+ open Printf
+ open System.IO
+
+ let file = File.CreateText("out.txt")
+
+ fprintfn file $"Write three = {1+2}"
+ fprintfn file $"Write four = {2+2}"
+ file.Close()
+
+ After evaluation the file contains two lines.
+
+
+ Using % format patterns:
+
+ open Printf
+ open System.IO
+
+ let file = File.CreateText("out.txt")
+
+ fprintfn file "Write five = %d" (3+2)
+ fprintfn file "Write six = %d" (3+3)
+ file.Close()
+
+ After evaluation the file contains two lines.
+
+
+
+ Print to a text writer.
+
+ The TextWriter to print to.
+ The input formatter.
+
+ The return type and arguments of the formatter.
+
+ Using interpolated strings:
+
+ open Printf
+ open System.IO
+
+ let file = File.CreateText("out.txt")
+
+ fprintf file $"Write three = {1+2}"
+ file.Close()
+
+ After evaluation the file contains the text "Write three = 3".
+
+
+ Using % format patterns:
+
+ open Printf
+ open System.IO
+
+ let file = File.CreateText("out.txt")
+
+ fprintf file "Write five = %d" (3+2)
+ file.Close()
+
+ After evaluation the file contains the text "Write five = 5".
+
+
+
+ Print to a
+
+ The StringBuilder to print to.
+ The input format or interpolated string.
+
+ The return type and arguments of the formatter.
+
+ Using interpolated strings:
+
+ open Printf
+ open System.Text
+
+ let buffer = new StringBuilder()
+
+ bprintf buffer $"Write three = {1+2}"
+ buffer.ToString()
+
+ Evaluates to "Write three = 3".
+
+
+ Using % format patterns:
+
+ open Printf
+ open System.Text
+
+ let buffer = new StringBuilder()
+
+ bprintf buffer "Write five = %d" (3+2)
+ buffer.ToString()
+
+ Evaluates to "Write five = 5".
+
+
+
+ Extensible printf-style formatting for numbers and other datatypes
+
+ Format specifications are strings with "%" markers indicating format
+ placeholders. Format placeholders consist of %[flags][width][.precision][type].
+
+ Strings and Text
+
+
+
+ Return the resulting list
+
+
+
+
+ Add multiple elements to the collector and return the resulting array
+
+
+
+
+ Add multiple elements to the collector
+
+
+
+
+ Add an element to the collector
+
+
+
+
+ Collects elements and builds an array
+
+
+
+
+ Return the resulting list
+
+
+
+
+ Add multiple elements to the collector and return the resulting list
+
+
+
+
+ Add multiple elements to the collector
+
+
+
+
+ Add an element to the collector
+
+
+
+
+ Collects elements and builds a list
+
+
+
+ The F# compiler emits implementations of this type for compiled sequence expressions.
+
+
+ The F# compiler emits implementations of this type for compiled sequence expressions.
+
+
+ The F# compiler emits implementations of this type for compiled sequence expressions.
+
+ A new enumerator for the sequence.
+
+
+ The F# compiler emits implementations of this type for compiled sequence expressions.
+
+ A reference to the sequence.
+
+ A 0, 1, and 2 respectively indicate Stop, Yield, and Goto conditions for the sequence generator.
+
+
+ The F# compiler emits implementations of this type for compiled sequence expressions.
+
+
+ The F# compiler emits implementations of this type for compiled sequence expressions.
+
+ A new sequence generator for the expression.
+
+
+ The F# compiler emits implementations of this type for compiled sequence expressions.
+
+
+ Creates an instance of the attribute
+ NoEagerConstraintApplicationAttribute
+
+
+ Adding this attribute to the method adjusts the processing of some generic methods
+ during overload resolution.
+
+ During overload resolution, caller arguments are matched with called arguments
+ to extract type information. By default, when the caller argument type is unconstrained (for example
+ a simple value x without known type information), and a method qualifies for
+ lambda constraint propagation, then member trait constraints from a method overload
+ are eagerly applied to the caller argument type. This causes that overload to be preferred,
+ regardless of other method overload resolution rules. Using this attribute suppresses this behaviour.
+
+
+
+ Consider the following overloads:
+
+ type OverloadsWithSrtp() =
+ [<NoEagerConstraintApplicationAttribute>]
+ static member inline SomeMethod< ^T when ^T : (member Number: int) > (x: ^T, f: ^T -> int) = 1
+ static member SomeMethod(x: 'T list, f: 'T list -> int) = 2
+
+ let inline f x =
+ OverloadsWithSrtp.SomeMethod (x, (fun a -> 1))
+
+ With the attribute, the overload resolution fails, because both members are applicable.
+ Without the attribute, the overload resolution succeeds, because the member constraint is
+ eagerly applied, making the second member non-applicable.
+
+ Attributes
+
+
+
+ Defines the implementation of the code run after the creation of a struct state machine.
+
+
+
+
+ Defines the implementation of the SetStateMachine method for a struct state machine.
+
+
+
+
+ Defines the implementation of the MoveNext method for a struct state machine.
+
+
+
+
+ A special compiler-recognised delegate type for specifying blocks of resumable code
+ with access to the state machine.
+
+
+
+
+ Represents the runtime continuation of a resumable state machine created dynamically
+
+
+
+
+ The continuation of the state machine
+
+
+
+
+ Additional data associated with the state machine
+
+
+
+
+ The continuation of the state machine
+
+
+
+
+ Additional data associated with the state machine
+
+
+
+
+ Executes the SetStateMachine implementation of the state machine
+
+
+
+
+ Executes the MoveNext implementation of the state machine
+
+
+
+
+ Create dynamic information for a state machine
+
+
+
+
+ Represents the delegated runtime continuation of a resumable state machine created dynamically
+
+
+
+
+ Copy-out or copy-in the data of the state machine
+
+
+
+
+ Get the resumption point of the state machine
+
+
+
+
+ Copy-out or copy-in the data of the state machine
+
+
+
+ Represents the delegated runtime continuation for a resumable state machine created dynamically
+ This field is removed from state machines generated using '__stateMachine'. Resumable code
+ used in state machines which accesses this field will raise a runtime exception.
+
+
+
+ When statically compiled, holds the continuation goto-label further execution of the state machine
+
+
+
+
+ When statically compiled, holds the data for the state machine
+
+
+
+
+ Acts as a template for struct state machines introduced by __stateMachine, and also as a reflective implementation
+
+
+
+
+ Get the static parameters for a provided method.
+
+
+ A method returned by GetMethod on a provided type
+
+ The static parameters of the provided method, if any
+
+
+
+ Apply static arguments to a provided method that accepts static arguments.
+
+ The provider must return a provided method with the given mangled name.
+ the provided method definition which has static parameters
+ the full name of the method that must be returned, including encoded representations of static parameters
+ the values of the static parameters, indexed by name
+
+ The provided method definition corresponding to the given static parameter values
+
+
+
+ Represents additional, optional information for a type provider component
+
+
+
+
+ Triggered when an assumption changes that invalidates the resolutions so far reported by the provider
+
+
+
+
+ Triggered when an assumption changes that invalidates the resolutions so far reported by the provider
+
+
+
+
+ Triggered when an assumption changes that invalidates the resolutions so far reported by the provider
+
+
+
+
+ Get the static parameters for a provided type.
+
+
+ A type returned by GetTypes or ResolveTypeName
+
+
+
+
+
+ Gets the namespaces provided by the type provider.
+
+
+
+
+ Called by the compiler to ask for an Expression tree to replace the given MethodBase with.
+
+
+ MethodBase that was given to the compiler by a type returned by a GetType(s) call.
+ Expressions that represent the parameters to this call.
+
+ An expression that the compiler will use in place of the given method base.
+
+
+
+ Get the physical contents of the given logical provided assembly.
+
+
+
+
+ Apply static arguments to a provided type that accepts static arguments.
+
+
+ The provider must return a type with the given mangled name.
+
+ the provided type definition which has static parameters
+ the full path of the type, including encoded representations of static parameters
+ the static parameters, indexed by name
+
+
+
+
+
+ Represents an instantiation of a type provider component.
+
+
+
+
+ Namespace name the provider injects types into.
+
+
+
+
+ Compilers call this method to query a type provider for a type name.
+
+ Resolver should return a type called name in namespace NamespaceName or null if the type is unknown.
+
+
+
+
+
+ The top-level types
+
+
+
+
+
+ The sub-namespaces in this namespace. An optional member to prevent generation of namespaces until an outer namespace is explored.
+
+
+
+
+ Represents a namespace provided by a type provider component.
+
+
+
+
+ Get the full path to use for temporary files for the type provider instance.
+
+
+
+
+ version of referenced system runtime assembly
+
+
+
+
+ Get the full path to referenced assembly that caused this type provider instance to be created.
+
+
+
+
+ Get the full path to use to resolve relative paths in any file name arguments given to the type provider instance.
+
+
+
+
+ Get the referenced assemblies for the type provider instance.
+
+
+
+
+ Indicates if the type provider host responds to invalidation events for type provider instances.
+
+
+
+
+ Indicates if the type provider instance is used in an environment which executes provided code such as F# Interactive.
+
+
+
+
+ Get the full path to use for temporary files for the type provider instance.
+
+
+
+
+ version of referenced system runtime assembly
+
+
+
+
+ Get the full path to referenced assembly that caused this type provider instance to be created.
+
+
+
+
+ Get the full path to use to resolve relative paths in any file name arguments given to the type provider instance.
+
+
+
+
+ Get the referenced assemblies for the type provider instance.
+
+
+
+
+ Indicates if the type provider host responds to invalidation events for type provider instances.
+
+
+
+
+ Indicates if the type provider instance is used in an environment which executes provided code such as F# Interactive.
+
+
+
+
+ Checks if given type exists in target system runtime library
+
+
+
+
+ Create a configuration which calls the given functions for the corresponding operation.
+
+
+
+
+ Create a configuration which calls the given function for the corresponding operation.
+
+
+
+
+ If the class that implements ITypeProvider has a constructor that accepts TypeProviderConfig
+ then it will be constructed with an instance of TypeProviderConfig.
+
+
+
+ Creates an instance of the attribute
+ TypeProviderEditorHideMethodsAttribute
+
+
+ Indicates that a code editor should hide all System.Object methods from the intellisense menus for instances of a provided type
+
+
+ Gets or sets the line for the location.
+
+
+ Gets or sets the file path for the definition location.
+
+
+ Gets or sets the column for the location.
+
+
+ Gets or sets the line for the location.
+
+
+ Gets or sets the file path for the definition location.
+
+
+ Gets or sets the column for the location.
+
+
+ A type provider may provide an instance of this attribute to indicate the definition location for a provided type or member.
+
+
+ Gets the comment text.
+
+
+ Creates an instance of the attribute
+ TypeProviderXmlDocAttribute
+
+
+ A type provider may provide an instance of this attribute to indicate the documentation to show for
+ a provided type or member.
+
+
+ Gets the assembly name.
+
+
+ Creates an instance of the attribute
+ TypeProviderAssemblyAttribute
+ The name of the design-time assembly for this type provider.
+
+
+ Creates an instance of the attribute
+ TypeProviderAssemblyAttribute
+
+
+ Place this attribute on a runtime assembly to indicate that there is a corresponding design-time
+ assembly that contains a type provider. Runtime and design-time assembly may be the same.
+
+
+ Additional type attribute flags related to provided types
+
+
+ Creates an instance of the attribute
+ TypeProviderAttribute
+
+
+ Place on a class that implements ITypeProvider to extend the compiler
+
+
+ Represents the '1' measure expression when returned as a generic argument of a provided type.
+
+
+ Represents the inverse of a measure expressions when returned as a generic argument of a provided type.
+
+
+ Represents the product of two measure expressions when returned as a generic argument of a provided type.
+
+
+ Library functionality for supporting type providers and code generated by the F# compiler. See
+ also F# Type Providers in the F# Language Guide.
+
+
+
+ Creates an anonymous event with the given handlers.
+
+ A function to handle adding a delegate for the event to trigger.
+ A function to handle removing a delegate that the event triggers.
+ A function to produce the delegate type the event can trigger.
+
+ The initialized event.
+
+
+ The F# compiler emits calls to this function to implement the use operator for F# sequence
+ expressions.
+
+ The resource to be used and disposed.
+ The input sequence.
+
+ The result sequence.
+
+
+ The F# compiler emits calls to this function to implement the compiler-intrinsic
+ conversions from untyped IEnumerable sequences to typed sequences.
+
+ An initializer function.
+ A function to iterate and test if end of sequence is reached.
+ A function to retrieve the current element.
+
+ The resulting typed sequence.
+
+
+ The F# compiler emits calls to this function to
+ implement the try/with operator for F# sequence expressions.
+
+ The input sequence.
+ Pattern matches after 'when' converted to return 1
+ Pattern matches after 'when' with their actual execution code
+
+ The result sequence.
+
+
+ The F# compiler emits calls to this function to
+ implement the try/finally operator for F# sequence expressions.
+
+ The input sequence.
+ A computation to be included in an enumerator's Dispose method.
+
+ The result sequence.
+
+
+ The F# compiler emits calls to this function to
+ implement the while operator for F# sequence expressions.
+
+ A function that indicates whether iteration should continue.
+ The input sequence.
+
+ The result sequence.
+
+
+ A group of functions used as part of the compiled representation of F# sequence expressions.
+
+
+
+ Statically generates a closure struct type based on ResumableStateMachine,
+ At runtime an instance of the new struct type is populated and 'afterMethod' is called
+ to consume it.
+
+
+
+ At compile-time, the ResumableStateMachine type guides the generation of a new struct type by the F# compiler
+ with closure-capture fields in a way similar to an object expression.
+ Any mention of the ResumableStateMachine type in any the 'methods' is rewritten to this
+ fresh struct type. The 'methods' are used to implement the interfaces on ResumableStateMachine and are also rewritten.
+ The 'after' method is then executed and must eliminate the ResumableStateMachine. For example,
+ its return type must not include ResumableStateMachine.
+
+ Gives the implementation of the MoveNext method on IAsyncStateMachine.
+ Gives the implementation of the SetStateMachine method on IAsyncStateMachine.
+ Gives code to execute after the generation of the state machine and to produce the final result.
+
+
+
+ Indicates to jump to a resumption point within resumable code.
+ This may be the first statement in a MoveNextMethodImpl.
+ The integer must be a valid resumption point within this resumable code.
+
+
+
+
+
+ Indicates a resumption point within resumable code
+
+
+
+
+ When used in a conditional, statically determines whether the 'then' branch
+ represents valid resumable code and provides an alternative implementation
+ if not.
+
+
+
+
+ Indicates a named debug point arising from the context of inlined code.
+
+
+ Only a limited range of debug point names are supported.
+
+ If the debug point name is the empty string then the range used for the debug point will be
+ the range of the outermost expression prior to inlining.
+
+ If the debug point name is ForLoop.InOrToKeyword and the code was ultimately
+ from a for .. in .. do or for .. = .. to .. do construct in a computation expression,
+ de-sugared to an inlined builder.For call, then the name "ForLoop.InOrToKeyword" can be used.
+ The range of the debug point will be precisely the range of the in or to keyword.
+
+ If the name doesn't correspond to a known debug point arising from the original source context, then
+ an opt-in warning 3514 is emitted, and the range used for the debug point will be
+ the range of the root expression prior to inlining.
+
+
+
+
+ Contains compiler intrinsics related to the definition of state machines.
+
+
+
+
+ The dynamic implementation of the corresponding operation. This operation should not be used directly.
+
+
+
+
+ The dynamic implementation of the corresponding operation. This operation should not be used directly.
+
+
+
+
+ The dynamic implementation of the corresponding operation. This operation should not be used directly.
+
+
+
+
+ The dynamic implementation of the corresponding operation. This operation should not be used directly.
+
+
+
+
+ The dynamic implementation of the corresponding operation. This operation should not be used directly.
+
+
+
+
+ Specifies resumable code which does nothing
+
+
+
+
+ Specifies resumable code which executes a loop
+
+
+
+
+ Specifies resumable code which executes with 'use' semantics
+
+
+
+
+ Specifies resumable code which executes with try/with semantics
+
+
+
+
+ Specifies resumable code which executes with try/finally semantics
+
+
+
+
+ Specifies resumable code which executes with try/finally semantics
+
+
+
+
+ Specifies resumable code which iterates yields
+
+
+
+
+ Specifies resumable code which iterates an input sequence
+
+
+
+
+ Creates resumable code whose definition is a delayed function
+
+
+
+
+ Sequences one section of resumable code after another
+
+
+
+
+ Contains functions for composing resumable code blocks
+
+
+
+ Builds a query using query syntax and operators.
+
+
+
+ let findEvensAndSortAndDouble(xs: System.Linq.IQueryable<int>) =
+ query {
+ for x in xs do
+ where (x % 2 = 0)
+ sortBy x
+ select (x+x)
+ }
+
+ let data = [1; 2; 6; 7; 3; 6; 2; 1]
+
+ findEvensAndSortAndDouble (data.AsQueryable()) |> Seq.toList
+
+ Evaluates to [4; 4; 12; 12].
+
+
+
+ An active pattern to force the execution of values of type Lazy<_>.
+
+
+
+ let f (Lazy v) = v + v
+
+ let v = lazy (printf "eval!"; 5+5)
+
+ f v
+ f v
+
+ Evaluates to 10. The text eval! is printed once on the first invocation of f.
+
+
+
+ Special prefix operator for splicing untyped expressions into quotation holes.
+
+
+
+ let f v = <@@ (%%v: int) + (%%v: int) @@>
+
+ f <@@ 5 + 5 @@>;;
+
+ Evaluates to an untyped quotation equivalent to <@@ (5 + 5) + (5 + 5) @@>
+
+
+
+ Special prefix operator for splicing typed expressions into quotation holes.
+
+
+
+ let f v = <@ %v + %v @>
+
+ f <@ 5 + 5 @>;;
+
+ Evaluates to a quotation equivalent to <@ (5 + 5) + (5 + 5) @>
+
+
+
+ Builds a 2D array from a sequence of sequences of elements.
+
+
+
+ array2D [ [ 1.0; 2.0 ]; [ 3.0; 4.0 ] ]
+
+ Evaluates to a 2x2 zero-based array with contents [[1.0; 2.0]; [3.0; 4.0]]
+
+
+
+ Builds a read-only lookup table from a sequence of key/value pairs. The key objects are indexed using generic hashing and equality.
+
+
+
+ let table = readOnlyDict [ (1, 100); (2, 200) ]
+
+ table[1]
+
+ Evaluates to 100.
+
+
+
+
+ let table = readOnlyDict [ (1, 100); (2, 200) ]
+
+ table[3]
+
+ Throws System.Collections.Generic.KeyNotFoundException.
+
+
+
+ Builds a read-only lookup table from a sequence of key/value pairs. The key objects are indexed using generic hashing and equality.
+
+
+
+ let table = dict [ (1, 100); (2, 200) ]
+
+ table[1]
+
+ Evaluates to 100.
+
+
+
+
+ let table = dict [ (1, 100); (2, 200) ]
+
+ table[3]
+
+ Throws System.Collections.Generic.KeyNotFoundException.
+
+
+
+ Converts the argument to signed byte.
+ This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using SByte.Parse() with InvariantCulture settings.
+ Otherwise the operation requires and invokes a ToSByte method on the input type.
+
+
+
+ int8 -12
+
+ Evaluates to -12y.
+
+
+
+
+ int8 "3"
+
+ Evaluates to 3y.
+
+
+
+ Converts the argument to byte.
+ This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using Byte.Parse() on strings and otherwise requires a ToByte method on the input type.
+
+
+
+ uint8 12
+
+ Evaluates to 12uy.
+
+
+
+ Converts the argument to 64-bit float.
+
+ This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using Double.Parse() with InvariantCulture settings. Otherwise the operation requires and invokes a ToDouble method on the input type.
+
+
+
+ double 45
+
+ Evaluates to 45.0.
+
+
+
+
+ double 12.3f
+
+ Evaluates to 12.30000019.
+
+
+
+ Converts the argument to 32-bit float.
+
+ This is a direct conversion for all
+ primitive numeric types. For strings, the input is converted using Single.Parse() with InvariantCulture settings. Otherwise the operation requires and invokes a ToSingle method on the input type.
+
+
+
+ single 45
+
+ Evaluates to 45.0f.
+
+
+
+ Builds an asynchronous workflow using computation expression syntax.
+
+
+
+ let sleepExample() =
+ async {
+ printfn "sleeping"
+ do! Async.Sleep 10
+ printfn "waking up"
+ return 6
+ }
+
+ sleepExample() |> Async.RunSynchronously
+
+
+
+
+ Builds a set from a sequence of objects. The objects are indexed using generic comparison.
+
+ The input sequence of elements.
+
+ The created set.
+
+
+
+ let values = set [ 1; 2; 3; 5; 7; 11 ]
+
+ Evaluates to a set containing the given numbers.
+
+
+
+ Print to a file using the given format, and add a newline.
+
+ The file TextWriter.
+ The formatter.
+
+ The formatted result.
+
+ See Printf.fprintfn (link: ) for examples.
+
+
+ Print to a file using the given format.
+
+ The file TextWriter.
+ The formatter.
+
+ The formatted result.
+
+ See Printf.fprintf (link: ) for examples.
+
+
+ Print to a string buffer and raise an exception with the given
+ result. Helper printers must return strings.
+
+ The formatter.
+
+ The formatted result.
+
+ See Printf.failwithf (link: ) for examples.
+
+
+ Print to a string using the given format.
+
+ The formatter.
+
+ The formatted result.
+
+ See Printf.sprintf (link: ) for examples.
+
+
+ Print to stderr using the given format, and add a newline.
+
+ The formatter.
+
+ The formatted result.
+
+ See Printf.eprintfn (link: ) for examples.
+
+
+ Print to stderr using the given format.
+
+ The formatter.
+
+ The formatted result.
+
+ See Printf.eprintf (link: ) for examples.
+
+
+ Print to stdout using the given format, and add a newline.
+
+ The formatter.
+
+ The formatted result.
+
+ See Printf.printfn (link: ) for examples.
+
+
+ Print to stdout using the given format.
+
+ The formatter.
+
+ The formatted result.
+
+ See Printf.printf (link: ) for examples.
+
+
+ Converts the argument to signed byte.
+ This is a direct, checked conversion for all
+ primitive numeric types. For strings, the input is converted using SByte.Parse() with InvariantCulture settings.
+ Otherwise the operation requires and invokes a ToSByte method on the input type.
+
+
+
+ Checked.int8 -12
+
+ Evaluates to -12y.
+
+
+
+
+ Checked.int8 "129"
+
+ Throws System.OverflowException.
+
+
+
+ Converts the argument to byte.
+ This is a direct, checked conversion for all
+ primitive numeric types. For strings, the input is converted using Byte.Parse() on strings and otherwise requires a ToByte method on the input type.
+
+
+
+ Checked.uint8 12
+
+ Evaluates to -12y.
+
+
+
+
+ Checked.uint8 -12
+
+ Throws System.OverflowException.
+
+
+
+ A set of extra operators and functions. This module is automatically opened in all F# code.
+
+ Basic Operators
+
+
+
diff --git a/dotnet/sdk/8.0.402/FSharp/FSharp.DependencyManager.Nuget.dll b/dotnet/sdk/8.0.402/FSharp/FSharp.DependencyManager.Nuget.dll
new file mode 100644
index 0000000000000000000000000000000000000000..caafef85c72d1a1135a4a49d787ba0bd55be44d8
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/FSharp.DependencyManager.Nuget.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/Microsoft.Build.Framework.dll b/dotnet/sdk/8.0.402/FSharp/Microsoft.Build.Framework.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a957a5636a11a5662a6ab3c55a8a5b75ad32e6ba
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/Microsoft.Build.Framework.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/Microsoft.Build.Tasks.Core.dll b/dotnet/sdk/8.0.402/FSharp/Microsoft.Build.Tasks.Core.dll
new file mode 100644
index 0000000000000000000000000000000000000000..df0653320ff86a0288b6e4bb18b5bb9005e43a6f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/Microsoft.Build.Tasks.Core.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:88048fa3d435f962c554e53342613b5ccdea9f6c17fb59ab6558ff67202f9135
+size 2586112
diff --git a/dotnet/sdk/8.0.402/FSharp/Microsoft.Build.Utilities.Core.dll b/dotnet/sdk/8.0.402/FSharp/Microsoft.Build.Utilities.Core.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f93ac6b303a849b8e74ec40820589df6b4379587
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/Microsoft.Build.Utilities.Core.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.Core.NetSdk.props b/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.Core.NetSdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..014d27b9e686b247822aa2373847bba8debc5e4d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.Core.NetSdk.props
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+
+ <_FSCorePackageVersionSet>true
+ 8.0.400
+ <_FSharpCoreLibraryPacksFolder Condition="'$(_FSharpCoreLibraryPacksFolder)' == ''">$([MSBuild]::EnsureTrailingSlash('$(MSBuildThisFileDirectory)'))library-packs
+
+
+
diff --git a/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.NetSdk.props b/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.NetSdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..a20e79257166224fc0d5644a3a54e165dc1ded3d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.NetSdk.props
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+
+
+
+ TRACE
+
+
+
+
+ $(DefineConstants);TRACE
+
+
+
+
+
+ false
+
+ false
+
+
+
+ F#
+ {F2A71F9B-5D33-465A-A702-920D77279786}
+ false
+ false
+ 3
+ 3239;$(WarningsAsErrors)
+ true
+ true
+ false
+
+
+
+
+ $(WarningsAsErrors);SYSLIB0011
+
+
+
+ true
+ false
+ false
+
+
+
+ false
+ true
+ true
+
+
+
+ $([System.IO.Path]::GetDirectoryName($(DOTNET_HOST_PATH)))
+ $([System.IO.Path]::GetFileName($(DOTNET_HOST_PATH)))
+ "$(MSBuildThisFileDirectory)fsc.dll"
+
+ $([System.IO.Path]::GetDirectoryName($(DOTNET_HOST_PATH)))
+ $([System.IO.Path]::GetFileName($(DOTNET_HOST_PATH)))
+ "$(MSBuildThisFileDirectory)fsi.dll"
+
+
+
+ true
+ true
+
+
+
+
+
+
+
+
+
+ 4.4.0
+
+
+
+
+
+ contentFiles
+
+
+
+ contentFiles
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.NetSdk.targets b/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.NetSdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..eb90a0727812cca0f264bfe5514af6163c4d8bc6
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.NetSdk.targets
@@ -0,0 +1,197 @@
+
+
+
+
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+
+ true
+ true
+ true
+ true
+ true
+
+
+
+ <_DebugSymbolsIntermediatePathTemporary Include="$(PdbFile)"/>
+
+ <_DebugSymbolsIntermediatePath Include="@(_DebugSymbolsIntermediatePathTemporary->'%(RootDir)%(Directory)%(Filename).pdb')"/>
+
+
+
+
+ <_ExplicitReference Include="$(FrameworkPathOverride)\mscorlib.dll" Condition=" '$(NoStdLib)' != 'true' " />
+
+
+
+ mscorlib
+ netcore
+ netstandard
+
+
+
+
+
+ $(MSBuildProjectFullPath)
+
+
+
+ $(TargetsForTfmSpecificContentInPackage);PackageFSharpDesignTimeTools
+
+
+
+ $(RestoreAdditionalProjectSources);$(_FSharpCoreLibraryPacksFolder)
+
+
+
+
+
+
+
+
+
+
+
+
+ fsharp41
+ tools
+
+
+
+
+
+
+ <_ResolvedOutputFiles
+ Include="%(_ResolvedProjectReferencePaths.RootDir)%(_ResolvedProjectReferencePaths.Directory)/**/*"
+ Exclude="%(_ResolvedProjectReferencePaths.RootDir)%(_ResolvedProjectReferencePaths.Directory)/**/FSharp.Core.dll;%(_ResolvedProjectReferencePaths.RootDir)%(_ResolvedProjectReferencePaths.Directory)/**/System.ValueTuple.dll"
+ Condition="'%(_ResolvedProjectReferencePaths.IsFSharpDesignTimeProvider)' == 'true'">
+ %(_ResolvedProjectReferencePaths.NearestTargetFramework)
+
+
+ <_ResolvedOutputFiles
+ Include="@(BuiltProjectOutputGroupKeyOutput)"
+ Condition=" '$(IsFSharpDesignTimeProvider)' == 'true' and '%(BuiltProjectOutputGroupKeyOutput->Filename)%(BuiltProjectOutputGroupKeyOutput->Extension)' != 'FSharp.Core.dll' and '%(BuiltProjectOutputGroupKeyOutput->Filename)%(BuiltProjectOutputGroupKeyOutput->Extension)' != 'System.ValueTuple.dll' ">
+ $(TargetFramework)
+
+
+
+ $(FSharpToolsDirectory)/$(FSharpDesignTimeProtocol)/%(_ResolvedOutputFiles.NearestTargetFramework)/%(_ResolvedOutputFiles.FileName)%(_ResolvedOutputFiles.Extension)
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ <_MappedSourceRoot Remove="@(_MappedSourceRoot)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ <_TopLevelSourceRoot Include="@(SourceRoot)" Condition="'%(SourceRoot.NestedRoot)' == ''">
+ $([MSBuild]::ValueOrDefault('%(Identity)', '').Replace(',', ',,').Replace('=', '=='))
+ $([MSBuild]::ValueOrDefault('%(MappedPath)', '').Replace(',', ',,').Replace('=', '=='))
+
+
+
+
+
+ @(_TopLevelSourceRoot->'%(EscapedKey)=%(EscapedValue)', ','),$(PathMap)
+
+
+
diff --git a/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.Overrides.NetSdk.targets b/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.Overrides.NetSdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..c6ebe12fad57c9517d29bc0800550f86493da256
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.Overrides.NetSdk.targets
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.Targets b/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.Targets
new file mode 100644
index 0000000000000000000000000000000000000000..f60596d7ac53e3122ad6593f761b0f9fa8ba56a3
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/Microsoft.FSharp.Targets
@@ -0,0 +1,543 @@
+
+
+
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+ $(MSBuildThisFileDirectory)FSharp.Build.dll
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+
+ .fs
+ F#
+ Managed
+ $(Optimize)
+ Software\Microsoft\Microsoft SDKs\$(TargetFrameworkIdentifier)
+
+ RootNamespace
+ false
+ $(Prefer32Bit)
+
+
+
+
+
+ true
+
+
+
+
+
+
+ false
+ true
+
+
+ $(FSharpPrefer64BitTools)
+
+ $(Fsc_NetFramework_ToolPath)
+ $(Fsc_NetFramework_AnyCpu_ToolExe)
+ $(Fsc_NetFramework_PlatformSpecific_ToolExe)
+
+
+
+
+
+ $(Fsc_Dotnet_ToolPath)
+ $(Fsc_Dotnet_ToolExe)
+ "$(Fsc_Dotnet_DotnetFscCompilerPath)"
+
+
+
+
+ false
+ true
+
+
+
+
+
+
+
+
+ false
+ true
+
+
+
+
+
+ <_Temporary Remove="@(_Temporary)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_Temporary Remove="@(_Temporary)" />
+
+
+
+
+
+
+
+
+ <_DebugSymbolsIntermediatePathTemporary Include="$(PdbFile)"/>
+
+ <_DebugSymbolsIntermediatePath Include="@(_DebugSymbolsIntermediatePathTemporary->'%(RootDir)%(Directory)%(Filename).pdb')"/>
+
+
+
+ _ComputeNonExistentFileProperty
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <__Sources Remove="@(__Sources)" />
+ <__Sources Include="@(Compile->WithMetadataValue('CompileOrder', 'CompileFirst'))" />
+ <__Sources Include="@(CompileBefore)" />
+ <__Sources Include="@(Compile->WithMetadataValue('CompileOrder', 'CompileBefore'))" />
+ <__Sources Include="@(Compile->WithMetadataValue('CompileOrder', ''))" />
+ <__Sources Include="@(Compile->WithMetadataValue('CompileOrder', 'CompileAfter'))" />
+ <__Sources Include="@(CompileAfter)" />
+ <__Sources Include="@(Compile->WithMetadataValue('CompileOrder', 'CompileLast'))" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ --simpleresolution $(OtherFlags)
+ $(OtherFlags)
+
+
+
+
+
+
+
+
+
+ <_CoreCompileResourceInputs Remove="@(_CoreCompileResourceInputs)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(AdditionalSourcesText)
+ namespace Microsoft.BuildSettings
+ [<System.Runtime.Versioning.TargetFrameworkAttribute("$(TargetFrameworkMoniker)", FrameworkDisplayName="$(TargetFrameworkMonikerDisplayName)")>]
+ do ()
+
+
+
+
+
+
+
+ CompileBefore
+ <_FsGeneratedTfmAttributesSource Include="$(TargetFrameworkMonikerAssemblyAttributesPath)" />
+
+
+
+
+
+
+ <_OldRootSdkLocation>$(MSBuildProgramFiles32)\Reference Assemblies\Microsoft\FSharp
+
+ $(VsInstallRoot)\Common7\IDE\CommonExtensions\Microsoft\FSharpSdk
+
+ <_CoreRelativeSuffix>.NETCore\$(TargetFSharpCoreVersion)\FSharp.Core.dll
+ <_FrameworkRelativeSuffix>.NETFramework\v4.0\$(TargetFSharpCoreVersion)\FSharp.Core.dll
+ <_PortableRelativeSuffix>.NETPortable\$(TargetFSharpCoreVersion)\FSharp.Core.dll
+
+
+ <_OldCoreSdkPath>$(_OldRootSdkLocation)\$(_CoreRelativeSuffix)
+ <_NewCoreSdkPath>$(NewFSharpSdkLocation)\$(_CoreRelativeSuffix)
+
+
+ <_OldFrameworkSdkPath>$(_OldRootSdkLocation)\$(_FrameworkRelativeSuffix)
+ <_NewFrameworkSdkPath>$(NewFSharpSdkLocation)\$(_FrameworkRelativeSuffix)
+
+
+ <_OldPortableSdkPath>$(_OldRootSdkLocation)\$(_PortableRelativeSuffix)
+ <_NewPortableSdkPath>$(NewFSharpSdkLocation)\$(_PortableRelativeSuffix)
+
+
+
+
+
+ $(_NewCoreSdkPath)
+
+
+
+
+ $(_NewFrameworkSdkPath)
+
+
+
+
+ $(_NewPortableSdkPath)
+
+
+
+
+
+
+ <_OldRefAssemTPLocation>Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.3.0.0\Type Providers\FSharp.Data.TypeProviders.dll
+ <_OldSdkTPLocationPrefix>$(MSBuildProgramFiles32)\Microsoft SDKs\F#
+ <_OldSdkTPLocationSuffix>Framework\v4.0\FSharp.Data.TypeProviders.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/FSharp/Microsoft.NET.StringTools.dll b/dotnet/sdk/8.0.402/FSharp/Microsoft.NET.StringTools.dll
new file mode 100644
index 0000000000000000000000000000000000000000..36388eef857dcabc529ac4d5527ed3c84c1bfc0e
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/Microsoft.NET.StringTools.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/Microsoft.Portable.FSharp.Targets b/dotnet/sdk/8.0.402/FSharp/Microsoft.Portable.FSharp.Targets
new file mode 100644
index 0000000000000000000000000000000000000000..9558cac605f303f71210cbfc07b21647b8b5e20b
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/Microsoft.Portable.FSharp.Targets
@@ -0,0 +1,23 @@
+
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/FSharp/System.CodeDom.dll b/dotnet/sdk/8.0.402/FSharp/System.CodeDom.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a7ae85a2e771c398e275141ec174d7fad277fb36
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/System.CodeDom.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/System.Configuration.ConfigurationManager.dll b/dotnet/sdk/8.0.402/FSharp/System.Configuration.ConfigurationManager.dll
new file mode 100644
index 0000000000000000000000000000000000000000..70ccc0c920962bc598b6f99ae9b9e24ddb535e79
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/System.Configuration.ConfigurationManager.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:42596913c711b32bfd8fe4ce6588cc50d0d354be73076b1c6aabe3798364aea1
+size 1062400
diff --git a/dotnet/sdk/8.0.402/FSharp/System.Diagnostics.EventLog.dll b/dotnet/sdk/8.0.402/FSharp/System.Diagnostics.EventLog.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6ccc3393066c0b0b7ae6ac9f7b09178c5c7e8174
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/System.Diagnostics.EventLog.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/System.Resources.Extensions.dll b/dotnet/sdk/8.0.402/FSharp/System.Resources.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2e3d410a8c48901d767c7c4b2cb4d77fc9bcbcfe
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/System.Resources.Extensions.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/System.Security.Cryptography.Pkcs.dll b/dotnet/sdk/8.0.402/FSharp/System.Security.Cryptography.Pkcs.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2ae928e89f0875a76acc029feea32e1fd5b4db07
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/System.Security.Cryptography.Pkcs.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/System.Security.Cryptography.ProtectedData.dll b/dotnet/sdk/8.0.402/FSharp/System.Security.Cryptography.ProtectedData.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b2838846daab434b3c3c30a2f7ac126996f62504
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/System.Security.Cryptography.ProtectedData.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/System.Security.Cryptography.Xml.dll b/dotnet/sdk/8.0.402/FSharp/System.Security.Cryptography.Xml.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5141a860fe268a8a9aaab99591e7ef449ceb2e0b
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/System.Security.Cryptography.Xml.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/cs/FSharp.Build.resources.dll b/dotnet/sdk/8.0.402/FSharp/cs/FSharp.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..047907456e9c75423ece063439f3677689aed58f
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/cs/FSharp.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/cs/FSharp.Compiler.Interactive.Settings.resources.dll b/dotnet/sdk/8.0.402/FSharp/cs/FSharp.Compiler.Interactive.Settings.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..98f071b09f2facec156bc940136c93ccbf3df519
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/cs/FSharp.Compiler.Interactive.Settings.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/cs/FSharp.Compiler.Service.resources.dll b/dotnet/sdk/8.0.402/FSharp/cs/FSharp.Compiler.Service.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..09599ad60d1a461d9aeaef4dc7f9a3ec6d0c010b
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/cs/FSharp.Compiler.Service.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/cs/FSharp.Core.resources.dll b/dotnet/sdk/8.0.402/FSharp/cs/FSharp.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2091e1684323a6b10b0f894c19bd060ba9dedaef
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/cs/FSharp.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/cs/FSharp.DependencyManager.Nuget.resources.dll b/dotnet/sdk/8.0.402/FSharp/cs/FSharp.DependencyManager.Nuget.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ba3f5c4d752a4e9e281eec8ed8070ae3c8cd61f3
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/cs/FSharp.DependencyManager.Nuget.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/de/FSharp.Build.resources.dll b/dotnet/sdk/8.0.402/FSharp/de/FSharp.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d84bdf2fe97822326b0385bc11293e3df611c3a0
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/de/FSharp.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/de/FSharp.Compiler.Interactive.Settings.resources.dll b/dotnet/sdk/8.0.402/FSharp/de/FSharp.Compiler.Interactive.Settings.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1bdd261a307eebbb44a306b70490345088bb6a7b
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/de/FSharp.Compiler.Interactive.Settings.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/de/FSharp.Compiler.Service.resources.dll b/dotnet/sdk/8.0.402/FSharp/de/FSharp.Compiler.Service.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..87d1a3dfb1d9daf2588177d02e10a56a36bfec4a
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/de/FSharp.Compiler.Service.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/de/FSharp.Core.resources.dll b/dotnet/sdk/8.0.402/FSharp/de/FSharp.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0c1b8087b5c58db7869b156e5e97b5a510d30fe5
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/de/FSharp.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/de/FSharp.DependencyManager.Nuget.resources.dll b/dotnet/sdk/8.0.402/FSharp/de/FSharp.DependencyManager.Nuget.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..986d17baaeb4108f70bd9f8bd96f0bac580d2b82
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/de/FSharp.DependencyManager.Nuget.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/default.win32manifest b/dotnet/sdk/8.0.402/FSharp/default.win32manifest
new file mode 100644
index 0000000000000000000000000000000000000000..f96b1d6b3fa078c224681c663f485501b44f10c1
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/default.win32manifest
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/FSharp/es/FSharp.Build.resources.dll b/dotnet/sdk/8.0.402/FSharp/es/FSharp.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2c106451e55c348ceaaaeecd7e9665984292ef3d
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/es/FSharp.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/es/FSharp.Compiler.Interactive.Settings.resources.dll b/dotnet/sdk/8.0.402/FSharp/es/FSharp.Compiler.Interactive.Settings.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..05e9b4f14ec0b8227f36fd42cf1e30d5b63cbba0
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/es/FSharp.Compiler.Interactive.Settings.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/es/FSharp.Compiler.Service.resources.dll b/dotnet/sdk/8.0.402/FSharp/es/FSharp.Compiler.Service.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..424b5eeaf4ab9d17b037c6b6a45c9f9117b26c8a
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/es/FSharp.Compiler.Service.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/es/FSharp.Core.resources.dll b/dotnet/sdk/8.0.402/FSharp/es/FSharp.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b03a87bf3597709117056c51cb4928aab66dd2dc
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/es/FSharp.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/es/FSharp.DependencyManager.Nuget.resources.dll b/dotnet/sdk/8.0.402/FSharp/es/FSharp.DependencyManager.Nuget.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..469ea6b9ad8adbfe1cc7e4fd29d04d648faa08f4
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/es/FSharp.DependencyManager.Nuget.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/fr/FSharp.Build.resources.dll b/dotnet/sdk/8.0.402/FSharp/fr/FSharp.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..201b56718e690a91370d5a68753f039ebdd612c0
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/fr/FSharp.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/fr/FSharp.Compiler.Interactive.Settings.resources.dll b/dotnet/sdk/8.0.402/FSharp/fr/FSharp.Compiler.Interactive.Settings.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c4d39f349281b69eae3beab29d635e16db7281e2
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/fr/FSharp.Compiler.Interactive.Settings.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/fr/FSharp.Compiler.Service.resources.dll b/dotnet/sdk/8.0.402/FSharp/fr/FSharp.Compiler.Service.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2b9dc317f572d59b4049ff395bedc3761e694659
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/fr/FSharp.Compiler.Service.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/fr/FSharp.Core.resources.dll b/dotnet/sdk/8.0.402/FSharp/fr/FSharp.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3254b396d59a0513c9c67a80d48a2b1fca053967
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/fr/FSharp.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/fr/FSharp.DependencyManager.Nuget.resources.dll b/dotnet/sdk/8.0.402/FSharp/fr/FSharp.DependencyManager.Nuget.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0901c91048fa9488d9e069e450c887f08c983628
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/fr/FSharp.DependencyManager.Nuget.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/fsc.deps.json b/dotnet/sdk/8.0.402/FSharp/fsc.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..96540fc148f812bcba0d201e55723a42bd975e21
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/fsc.deps.json
@@ -0,0 +1,520 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "tool_fsc/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.Build.Tasks.Core": "17.11.4",
+ "Microsoft.Build.Utilities.Core": "17.11.4",
+ "Microsoft.DiaSymReader.Pdb2Pdb": "1.1.0-beta2-19575-01",
+ "Microsoft.DotNet.XliffTasks": "1.0.0-beta.23475.1",
+ "Microsoft.FSharp.Compiler": "12.8.400-beta.24351.2",
+ "Microsoft.Net.Compilers.Toolset": "4.11.0-3.24365.8"
+ },
+ "runtime": {}
+ },
+ "Microsoft.Build.Framework/17.11.4": {
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.Framework.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.Build.Tasks.Core/17.11.4": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.Build.Utilities.Core": "17.11.4",
+ "Microsoft.NET.StringTools": "17.11.4",
+ "System.CodeDom": "8.0.0",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Configuration.ConfigurationManager": "8.0.0",
+ "System.Resources.Extensions": "8.0.0",
+ "System.Security.Cryptography.Pkcs": "8.0.0",
+ "System.Security.Cryptography.Xml": "8.0.1"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.Tasks.Core.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.Build.Utilities.Core/17.11.4": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.NET.StringTools": "17.11.4",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Configuration.ConfigurationManager": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.Utilities.Core.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {},
+ "Microsoft.DotNet.XliffTasks/1.0.0-beta.23475.1": {},
+ "Microsoft.FSharp.Compiler/12.8.400-beta.24351.2": {
+ "runtime": {
+ "lib/net8.0/FSharp.Build.dll": {
+ "assemblyVersion": "12.8.400.0",
+ "fileVersion": "12.804.24.35102"
+ },
+ "lib/net8.0/FSharp.Compiler.Interactive.Settings.dll": {
+ "assemblyVersion": "12.8.400.0",
+ "fileVersion": "12.804.24.35102"
+ },
+ "lib/net8.0/FSharp.Compiler.Service.dll": {
+ "assemblyVersion": "43.8.400.0",
+ "fileVersion": "43.804.24.35102"
+ },
+ "lib/net8.0/FSharp.Core.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.4.24.35102"
+ },
+ "lib/net8.0/FSharp.DependencyManager.Nuget.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.35102"
+ },
+ "lib/net8.0/fsc.dll": {
+ "assemblyVersion": "12.8.400.0",
+ "fileVersion": "12.804.24.35102"
+ },
+ "lib/net8.0/fsi.dll": {
+ "assemblyVersion": "12.8.400.0",
+ "fileVersion": "12.804.24.35102"
+ }
+ },
+ "resources": {
+ "lib/net8.0/cs/FSharp.Build.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/cs/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/cs/FSharp.Compiler.Service.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/cs/FSharp.Core.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/cs/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/de/FSharp.Build.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/de/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/de/FSharp.Compiler.Service.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/de/FSharp.Core.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/de/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/es/FSharp.Build.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/es/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/es/FSharp.Compiler.Service.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/es/FSharp.Core.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/es/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/fr/FSharp.Build.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/fr/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/fr/FSharp.Compiler.Service.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/fr/FSharp.Core.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/fr/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/it/FSharp.Build.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/it/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/it/FSharp.Compiler.Service.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/it/FSharp.Core.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/it/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/ja/FSharp.Build.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ja/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ja/FSharp.Compiler.Service.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ja/FSharp.Core.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ja/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ko/FSharp.Build.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/ko/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/ko/FSharp.Compiler.Service.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/ko/FSharp.Core.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/ko/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/pl/FSharp.Build.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pl/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pl/FSharp.Compiler.Service.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pl/FSharp.Core.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pl/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pt-BR/FSharp.Build.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/pt-BR/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/pt-BR/FSharp.Compiler.Service.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/pt-BR/FSharp.Core.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/pt-BR/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/ru/FSharp.Build.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/ru/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/ru/FSharp.Compiler.Service.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/ru/FSharp.Core.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/ru/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/tr/FSharp.Build.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/tr/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/tr/FSharp.Compiler.Service.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/tr/FSharp.Core.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/tr/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/zh-Hans/FSharp.Build.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hans/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hans/FSharp.Compiler.Service.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hans/FSharp.Core.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hans/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hant/FSharp.Build.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/net8.0/zh-Hant/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/net8.0/zh-Hant/FSharp.Compiler.Service.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/net8.0/zh-Hant/FSharp.Core.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/net8.0/zh-Hant/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24365.8": {},
+ "Microsoft.NET.StringTools/17.11.4": {
+ "runtime": {
+ "lib/net8.0/Microsoft.NET.StringTools.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "System.CodeDom/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.CodeDom.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Collections.Immutable/8.0.0": {},
+ "System.Configuration.ConfigurationManager/8.0.0": {
+ "dependencies": {
+ "System.Diagnostics.EventLog": "8.0.0",
+ "System.Security.Cryptography.ProtectedData": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.Configuration.ConfigurationManager.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Diagnostics.EventLog/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.Diagnostics.EventLog.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "0.0.0.0"
+ },
+ "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Formats.Asn1/8.0.0": {},
+ "System.Resources.Extensions/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.Resources.Extensions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Security.Cryptography.Pkcs/8.0.0": {
+ "dependencies": {
+ "System.Formats.Asn1": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Security.Cryptography.ProtectedData/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.Security.Cryptography.ProtectedData.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Security.Cryptography.Xml/8.0.1": {
+ "dependencies": {
+ "System.Security.Cryptography.Pkcs": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.Security.Cryptography.Xml.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.524.21615"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "tool_fsc/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.Build.Framework/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-u28uDihlqxtt8h2dL1ZJOZ7TRkxBK+HGr+3FgQpILVo7Q7gErkw8mYW9R+RM5PtxvZTdYb/4MWDL66vdIsANBQ==",
+ "path": "microsoft.build.framework/17.11.4",
+ "hashPath": "microsoft.build.framework.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.Build.Tasks.Core/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-i3a0+1fuIxr3XgqpVBD2gnPRmZNOgYrPZs9sZViQH1HnjCrgxOpTZtdsXV+G7OyO4q05S5nfAQdSHUxNjnoE4A==",
+ "path": "microsoft.build.tasks.core/17.11.4",
+ "hashPath": "microsoft.build.tasks.core.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.Build.Utilities.Core/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-b2CEJMgVuv5fkhaR6TXjgocIa6YQbseowRj15q3/IyH343EPr+CrxXAZs6Xp6uZDE8A3ynsLPlufFUMkjUl37A==",
+ "path": "microsoft.build.utilities.core/17.11.4",
+ "hashPath": "microsoft.build.utilities.core.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kY6eTNkeWLHvfOjg97Q7tgQKrPpX+Y3fR6fS4nyfpgFLHBxHriLBR4v3e9t71it91gIMEeKUqOqrFJ7Pj48eHA==",
+ "path": "microsoft.diasymreader.pdb2pdb/1.1.0-beta2-19575-01",
+ "hashPath": "microsoft.diasymreader.pdb2pdb.1.1.0-beta2-19575-01.nupkg.sha512"
+ },
+ "Microsoft.DotNet.XliffTasks/1.0.0-beta.23475.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZsVfWaPacITS006a49PPf35ZyzxWEUTUu4FBU6GhT882cs4Ow7ryvjq6yh82nGdXCi4XMjoUm5vl7XDsUW90QQ==",
+ "path": "microsoft.dotnet.xlifftasks/1.0.0-beta.23475.1",
+ "hashPath": "microsoft.dotnet.xlifftasks.1.0.0-beta.23475.1.nupkg.sha512"
+ },
+ "Microsoft.FSharp.Compiler/12.8.400-beta.24351.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-NUf/eYanrGFm7n7OHxjiCDdbvVXLqMwZdrXoqMTu13NQynD3Ku2C5ZMK+h3xE5rszaKSbHKgFki/D9SDofnGJA==",
+ "path": "microsoft.fsharp.compiler/12.8.400-beta.24351.2",
+ "hashPath": "microsoft.fsharp.compiler.12.8.400-beta.24351.2.nupkg.sha512"
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24365.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fvKVAMRbXJpDUvURL6CNmMcgVhzq3pSg5Uc0X0LUHQXaVpFy6sXITjt8xm6vtIkYdusvmHfO6JW48KBDk8/xjw==",
+ "path": "microsoft.net.compilers.toolset/4.11.0-3.24365.8",
+ "hashPath": "microsoft.net.compilers.toolset.4.11.0-3.24365.8.nupkg.sha512"
+ },
+ "Microsoft.NET.StringTools/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mudqUHhNpeqIdJoUx2YDWZO/I9uEDYVowan89R6wsomfnUJQk6HteoQTlNjZDixhT2B4IXMkMtgZtoceIjLRmA==",
+ "path": "microsoft.net.stringtools/17.11.4",
+ "hashPath": "microsoft.net.stringtools.17.11.4.nupkg.sha512"
+ },
+ "System.CodeDom/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-WTlRjL6KWIMr/pAaq3rYqh0TJlzpouaQ/W1eelssHgtlwHAH25jXTkUphTYx9HaIIf7XA6qs/0+YhtLEQRkJ+Q==",
+ "path": "system.codedom/8.0.0",
+ "hashPath": "system.codedom.8.0.0.nupkg.sha512"
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "path": "system.collections.immutable/8.0.0",
+ "hashPath": "system.collections.immutable.8.0.0.nupkg.sha512"
+ },
+ "System.Configuration.ConfigurationManager/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==",
+ "path": "system.configuration.configurationmanager/8.0.0",
+ "hashPath": "system.configuration.configurationmanager.8.0.0.nupkg.sha512"
+ },
+ "System.Diagnostics.EventLog/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==",
+ "path": "system.diagnostics.eventlog/8.0.0",
+ "hashPath": "system.diagnostics.eventlog.8.0.0.nupkg.sha512"
+ },
+ "System.Formats.Asn1/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AJukBuLoe3QeAF+mfaRKQb2dgyrvt340iMBHYv+VdBzCUM06IxGlvl0o/uPOS7lHnXPN6u8fFRHSHudx5aTi8w==",
+ "path": "system.formats.asn1/8.0.0",
+ "hashPath": "system.formats.asn1.8.0.0.nupkg.sha512"
+ },
+ "System.Resources.Extensions/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-psnQ6GRQOvt+evda5C4nD5EuV49mz2Tv0DD2JDVDEbE/TKoMukxSkGJcsBJ0pajpPuFRr67syFYlkJ4Wj6A5Zw==",
+ "path": "system.resources.extensions/8.0.0",
+ "hashPath": "system.resources.extensions.8.0.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Pkcs/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ULmp3xoOwNYjOYp4JZ2NK/6NdTgiN1GQXzVVN1njQ7LOZ0d0B9vyMnhyqbIi9Qw4JXj1JgCsitkTShboHRx7Eg==",
+ "path": "system.security.cryptography.pkcs/8.0.0",
+ "hashPath": "system.security.cryptography.pkcs.8.0.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.ProtectedData/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==",
+ "path": "system.security.cryptography.protecteddata/8.0.0",
+ "hashPath": "system.security.cryptography.protecteddata.8.0.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Xml/8.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-hqu2ztecOf3BYg5q1R7QcyliX9L7r3mfsWtaRitAxcezH8hyZMB7zCmhi186hsUZXk1KxsAHXwyPEW+xvUED6g==",
+ "path": "system.security.cryptography.xml/8.0.1",
+ "hashPath": "system.security.cryptography.xml.8.0.1.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/FSharp/fsc.dll b/dotnet/sdk/8.0.402/FSharp/fsc.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d4699c24975fd454be3d94b009d652a4d4714ba5
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/fsc.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/fsc.runtimeconfig.json b/dotnet/sdk/8.0.402/FSharp/fsc.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..ab8b469eef3f25e68214b0561bafdaca87c93992
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/fsc.runtimeconfig.json
@@ -0,0 +1,14 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ },
+ "configProperties": {
+ "System.GC.Server": true,
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/FSharp/fsi.deps.json b/dotnet/sdk/8.0.402/FSharp/fsi.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..96540fc148f812bcba0d201e55723a42bd975e21
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/fsi.deps.json
@@ -0,0 +1,520 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "tool_fsc/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.Build.Tasks.Core": "17.11.4",
+ "Microsoft.Build.Utilities.Core": "17.11.4",
+ "Microsoft.DiaSymReader.Pdb2Pdb": "1.1.0-beta2-19575-01",
+ "Microsoft.DotNet.XliffTasks": "1.0.0-beta.23475.1",
+ "Microsoft.FSharp.Compiler": "12.8.400-beta.24351.2",
+ "Microsoft.Net.Compilers.Toolset": "4.11.0-3.24365.8"
+ },
+ "runtime": {}
+ },
+ "Microsoft.Build.Framework/17.11.4": {
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.Framework.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.Build.Tasks.Core/17.11.4": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.Build.Utilities.Core": "17.11.4",
+ "Microsoft.NET.StringTools": "17.11.4",
+ "System.CodeDom": "8.0.0",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Configuration.ConfigurationManager": "8.0.0",
+ "System.Resources.Extensions": "8.0.0",
+ "System.Security.Cryptography.Pkcs": "8.0.0",
+ "System.Security.Cryptography.Xml": "8.0.1"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.Tasks.Core.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.Build.Utilities.Core/17.11.4": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.NET.StringTools": "17.11.4",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Configuration.ConfigurationManager": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.Utilities.Core.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {},
+ "Microsoft.DotNet.XliffTasks/1.0.0-beta.23475.1": {},
+ "Microsoft.FSharp.Compiler/12.8.400-beta.24351.2": {
+ "runtime": {
+ "lib/net8.0/FSharp.Build.dll": {
+ "assemblyVersion": "12.8.400.0",
+ "fileVersion": "12.804.24.35102"
+ },
+ "lib/net8.0/FSharp.Compiler.Interactive.Settings.dll": {
+ "assemblyVersion": "12.8.400.0",
+ "fileVersion": "12.804.24.35102"
+ },
+ "lib/net8.0/FSharp.Compiler.Service.dll": {
+ "assemblyVersion": "43.8.400.0",
+ "fileVersion": "43.804.24.35102"
+ },
+ "lib/net8.0/FSharp.Core.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.4.24.35102"
+ },
+ "lib/net8.0/FSharp.DependencyManager.Nuget.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.35102"
+ },
+ "lib/net8.0/fsc.dll": {
+ "assemblyVersion": "12.8.400.0",
+ "fileVersion": "12.804.24.35102"
+ },
+ "lib/net8.0/fsi.dll": {
+ "assemblyVersion": "12.8.400.0",
+ "fileVersion": "12.804.24.35102"
+ }
+ },
+ "resources": {
+ "lib/net8.0/cs/FSharp.Build.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/cs/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/cs/FSharp.Compiler.Service.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/cs/FSharp.Core.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/cs/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/de/FSharp.Build.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/de/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/de/FSharp.Compiler.Service.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/de/FSharp.Core.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/de/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/es/FSharp.Build.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/es/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/es/FSharp.Compiler.Service.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/es/FSharp.Core.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/es/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/fr/FSharp.Build.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/fr/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/fr/FSharp.Compiler.Service.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/fr/FSharp.Core.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/fr/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/it/FSharp.Build.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/it/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/it/FSharp.Compiler.Service.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/it/FSharp.Core.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/it/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/ja/FSharp.Build.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ja/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ja/FSharp.Compiler.Service.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ja/FSharp.Core.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ja/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ko/FSharp.Build.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/ko/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/ko/FSharp.Compiler.Service.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/ko/FSharp.Core.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/ko/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/pl/FSharp.Build.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pl/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pl/FSharp.Compiler.Service.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pl/FSharp.Core.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pl/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pt-BR/FSharp.Build.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/pt-BR/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/pt-BR/FSharp.Compiler.Service.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/pt-BR/FSharp.Core.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/pt-BR/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/ru/FSharp.Build.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/ru/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/ru/FSharp.Compiler.Service.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/ru/FSharp.Core.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/ru/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/tr/FSharp.Build.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/tr/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/tr/FSharp.Compiler.Service.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/tr/FSharp.Core.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/tr/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/zh-Hans/FSharp.Build.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hans/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hans/FSharp.Compiler.Service.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hans/FSharp.Core.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hans/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hant/FSharp.Build.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/net8.0/zh-Hant/FSharp.Compiler.Interactive.Settings.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/net8.0/zh-Hant/FSharp.Compiler.Service.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/net8.0/zh-Hant/FSharp.Core.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/net8.0/zh-Hant/FSharp.DependencyManager.Nuget.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24365.8": {},
+ "Microsoft.NET.StringTools/17.11.4": {
+ "runtime": {
+ "lib/net8.0/Microsoft.NET.StringTools.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "System.CodeDom/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.CodeDom.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Collections.Immutable/8.0.0": {},
+ "System.Configuration.ConfigurationManager/8.0.0": {
+ "dependencies": {
+ "System.Diagnostics.EventLog": "8.0.0",
+ "System.Security.Cryptography.ProtectedData": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.Configuration.ConfigurationManager.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Diagnostics.EventLog/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.Diagnostics.EventLog.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "0.0.0.0"
+ },
+ "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Formats.Asn1/8.0.0": {},
+ "System.Resources.Extensions/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.Resources.Extensions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Security.Cryptography.Pkcs/8.0.0": {
+ "dependencies": {
+ "System.Formats.Asn1": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Security.Cryptography.ProtectedData/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.Security.Cryptography.ProtectedData.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Security.Cryptography.Xml/8.0.1": {
+ "dependencies": {
+ "System.Security.Cryptography.Pkcs": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.Security.Cryptography.Xml.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.524.21615"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "tool_fsc/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.Build.Framework/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-u28uDihlqxtt8h2dL1ZJOZ7TRkxBK+HGr+3FgQpILVo7Q7gErkw8mYW9R+RM5PtxvZTdYb/4MWDL66vdIsANBQ==",
+ "path": "microsoft.build.framework/17.11.4",
+ "hashPath": "microsoft.build.framework.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.Build.Tasks.Core/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-i3a0+1fuIxr3XgqpVBD2gnPRmZNOgYrPZs9sZViQH1HnjCrgxOpTZtdsXV+G7OyO4q05S5nfAQdSHUxNjnoE4A==",
+ "path": "microsoft.build.tasks.core/17.11.4",
+ "hashPath": "microsoft.build.tasks.core.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.Build.Utilities.Core/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-b2CEJMgVuv5fkhaR6TXjgocIa6YQbseowRj15q3/IyH343EPr+CrxXAZs6Xp6uZDE8A3ynsLPlufFUMkjUl37A==",
+ "path": "microsoft.build.utilities.core/17.11.4",
+ "hashPath": "microsoft.build.utilities.core.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kY6eTNkeWLHvfOjg97Q7tgQKrPpX+Y3fR6fS4nyfpgFLHBxHriLBR4v3e9t71it91gIMEeKUqOqrFJ7Pj48eHA==",
+ "path": "microsoft.diasymreader.pdb2pdb/1.1.0-beta2-19575-01",
+ "hashPath": "microsoft.diasymreader.pdb2pdb.1.1.0-beta2-19575-01.nupkg.sha512"
+ },
+ "Microsoft.DotNet.XliffTasks/1.0.0-beta.23475.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZsVfWaPacITS006a49PPf35ZyzxWEUTUu4FBU6GhT882cs4Ow7ryvjq6yh82nGdXCi4XMjoUm5vl7XDsUW90QQ==",
+ "path": "microsoft.dotnet.xlifftasks/1.0.0-beta.23475.1",
+ "hashPath": "microsoft.dotnet.xlifftasks.1.0.0-beta.23475.1.nupkg.sha512"
+ },
+ "Microsoft.FSharp.Compiler/12.8.400-beta.24351.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-NUf/eYanrGFm7n7OHxjiCDdbvVXLqMwZdrXoqMTu13NQynD3Ku2C5ZMK+h3xE5rszaKSbHKgFki/D9SDofnGJA==",
+ "path": "microsoft.fsharp.compiler/12.8.400-beta.24351.2",
+ "hashPath": "microsoft.fsharp.compiler.12.8.400-beta.24351.2.nupkg.sha512"
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24365.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fvKVAMRbXJpDUvURL6CNmMcgVhzq3pSg5Uc0X0LUHQXaVpFy6sXITjt8xm6vtIkYdusvmHfO6JW48KBDk8/xjw==",
+ "path": "microsoft.net.compilers.toolset/4.11.0-3.24365.8",
+ "hashPath": "microsoft.net.compilers.toolset.4.11.0-3.24365.8.nupkg.sha512"
+ },
+ "Microsoft.NET.StringTools/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mudqUHhNpeqIdJoUx2YDWZO/I9uEDYVowan89R6wsomfnUJQk6HteoQTlNjZDixhT2B4IXMkMtgZtoceIjLRmA==",
+ "path": "microsoft.net.stringtools/17.11.4",
+ "hashPath": "microsoft.net.stringtools.17.11.4.nupkg.sha512"
+ },
+ "System.CodeDom/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-WTlRjL6KWIMr/pAaq3rYqh0TJlzpouaQ/W1eelssHgtlwHAH25jXTkUphTYx9HaIIf7XA6qs/0+YhtLEQRkJ+Q==",
+ "path": "system.codedom/8.0.0",
+ "hashPath": "system.codedom.8.0.0.nupkg.sha512"
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "path": "system.collections.immutable/8.0.0",
+ "hashPath": "system.collections.immutable.8.0.0.nupkg.sha512"
+ },
+ "System.Configuration.ConfigurationManager/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==",
+ "path": "system.configuration.configurationmanager/8.0.0",
+ "hashPath": "system.configuration.configurationmanager.8.0.0.nupkg.sha512"
+ },
+ "System.Diagnostics.EventLog/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==",
+ "path": "system.diagnostics.eventlog/8.0.0",
+ "hashPath": "system.diagnostics.eventlog.8.0.0.nupkg.sha512"
+ },
+ "System.Formats.Asn1/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AJukBuLoe3QeAF+mfaRKQb2dgyrvt340iMBHYv+VdBzCUM06IxGlvl0o/uPOS7lHnXPN6u8fFRHSHudx5aTi8w==",
+ "path": "system.formats.asn1/8.0.0",
+ "hashPath": "system.formats.asn1.8.0.0.nupkg.sha512"
+ },
+ "System.Resources.Extensions/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-psnQ6GRQOvt+evda5C4nD5EuV49mz2Tv0DD2JDVDEbE/TKoMukxSkGJcsBJ0pajpPuFRr67syFYlkJ4Wj6A5Zw==",
+ "path": "system.resources.extensions/8.0.0",
+ "hashPath": "system.resources.extensions.8.0.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Pkcs/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ULmp3xoOwNYjOYp4JZ2NK/6NdTgiN1GQXzVVN1njQ7LOZ0d0B9vyMnhyqbIi9Qw4JXj1JgCsitkTShboHRx7Eg==",
+ "path": "system.security.cryptography.pkcs/8.0.0",
+ "hashPath": "system.security.cryptography.pkcs.8.0.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.ProtectedData/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==",
+ "path": "system.security.cryptography.protecteddata/8.0.0",
+ "hashPath": "system.security.cryptography.protecteddata.8.0.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Xml/8.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-hqu2ztecOf3BYg5q1R7QcyliX9L7r3mfsWtaRitAxcezH8hyZMB7zCmhi186hsUZXk1KxsAHXwyPEW+xvUED6g==",
+ "path": "system.security.cryptography.xml/8.0.1",
+ "hashPath": "system.security.cryptography.xml.8.0.1.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/FSharp/fsi.dll b/dotnet/sdk/8.0.402/FSharp/fsi.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ec74b3ed38707b1f49d3e942839e698615cbc1b5
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/fsi.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/fsi.runtimeconfig.json b/dotnet/sdk/8.0.402/FSharp/fsi.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..ab8b469eef3f25e68214b0561bafdaca87c93992
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/fsi.runtimeconfig.json
@@ -0,0 +1,14 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ },
+ "configProperties": {
+ "System.GC.Server": true,
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/FSharp/it/FSharp.Build.resources.dll b/dotnet/sdk/8.0.402/FSharp/it/FSharp.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..409830e3ce5d6e5c3bed713942abdda918fda6c9
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/it/FSharp.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/it/FSharp.Compiler.Interactive.Settings.resources.dll b/dotnet/sdk/8.0.402/FSharp/it/FSharp.Compiler.Interactive.Settings.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..60aaa74a3c7e38faf842f182179950cc4b2c11c1
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/it/FSharp.Compiler.Interactive.Settings.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/it/FSharp.Compiler.Service.resources.dll b/dotnet/sdk/8.0.402/FSharp/it/FSharp.Compiler.Service.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b041b9cc9b3bd96a5624a60c9e1f624577c71d58
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/it/FSharp.Compiler.Service.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/it/FSharp.Core.resources.dll b/dotnet/sdk/8.0.402/FSharp/it/FSharp.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c17a56fb8f76aadad15816e2bd22eda582dcdbf9
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/it/FSharp.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/it/FSharp.DependencyManager.Nuget.resources.dll b/dotnet/sdk/8.0.402/FSharp/it/FSharp.DependencyManager.Nuget.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..508eec6cce189aa7279c9dcadb1fd75c096aebce
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/it/FSharp.DependencyManager.Nuget.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ja/FSharp.Build.resources.dll b/dotnet/sdk/8.0.402/FSharp/ja/FSharp.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..db11dd48b4f908775117ca68d254264878bef077
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ja/FSharp.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ja/FSharp.Compiler.Interactive.Settings.resources.dll b/dotnet/sdk/8.0.402/FSharp/ja/FSharp.Compiler.Interactive.Settings.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7c107a3687fea23801162ec056333abd747d9d82
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ja/FSharp.Compiler.Interactive.Settings.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ja/FSharp.Compiler.Service.resources.dll b/dotnet/sdk/8.0.402/FSharp/ja/FSharp.Compiler.Service.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f637ed97e0920c99297656ff44e975a538c3e8d6
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ja/FSharp.Compiler.Service.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ja/FSharp.Core.resources.dll b/dotnet/sdk/8.0.402/FSharp/ja/FSharp.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..be771f4df80b2ac4ff4e4a8d65c64c1f20fd35ec
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ja/FSharp.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ja/FSharp.DependencyManager.Nuget.resources.dll b/dotnet/sdk/8.0.402/FSharp/ja/FSharp.DependencyManager.Nuget.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..71dc15f68c36999f35af2841540c4f8389ba25f2
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ja/FSharp.DependencyManager.Nuget.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ko/FSharp.Build.resources.dll b/dotnet/sdk/8.0.402/FSharp/ko/FSharp.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4bc69c43a01ce66648d7cb434099cb390f602f8c
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ko/FSharp.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ko/FSharp.Compiler.Interactive.Settings.resources.dll b/dotnet/sdk/8.0.402/FSharp/ko/FSharp.Compiler.Interactive.Settings.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..628691e464544936975e5417fc9f2c37b8134a55
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ko/FSharp.Compiler.Interactive.Settings.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ko/FSharp.Compiler.Service.resources.dll b/dotnet/sdk/8.0.402/FSharp/ko/FSharp.Compiler.Service.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ab2427c5e726fb68e07b0e871c485dbb3269b69e
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ko/FSharp.Compiler.Service.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ko/FSharp.Core.resources.dll b/dotnet/sdk/8.0.402/FSharp/ko/FSharp.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0bfce741c3f5ec8802d569a1294dc16ee5181a8e
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ko/FSharp.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ko/FSharp.DependencyManager.Nuget.resources.dll b/dotnet/sdk/8.0.402/FSharp/ko/FSharp.DependencyManager.Nuget.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1f3ceccdb9b8f22a00a4f8b9e47b64104397c9e2
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ko/FSharp.DependencyManager.Nuget.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/library-packs/FSharp.Core.8.0.400.nupkg b/dotnet/sdk/8.0.402/FSharp/library-packs/FSharp.Core.8.0.400.nupkg
new file mode 100644
index 0000000000000000000000000000000000000000..3b3223c4044d446ebc9fc8fb288d279f7ce76e46
--- /dev/null
+++ b/dotnet/sdk/8.0.402/FSharp/library-packs/FSharp.Core.8.0.400.nupkg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:42b81d4593a90978640196f0e6d049abe843fab1832f7f45ac71c1747e7e590f
+size 2842144
diff --git a/dotnet/sdk/8.0.402/FSharp/pl/FSharp.Build.resources.dll b/dotnet/sdk/8.0.402/FSharp/pl/FSharp.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f286d76bcf7b63031093b2bbae71698c15c156f2
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/pl/FSharp.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/pl/FSharp.Compiler.Interactive.Settings.resources.dll b/dotnet/sdk/8.0.402/FSharp/pl/FSharp.Compiler.Interactive.Settings.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9df359080c84c5830fd8a0897aad63ba36b0978a
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/pl/FSharp.Compiler.Interactive.Settings.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/pl/FSharp.Compiler.Service.resources.dll b/dotnet/sdk/8.0.402/FSharp/pl/FSharp.Compiler.Service.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a6dac9a0d77e9d43a1ff5b502cc8b3ef04d82fb1
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/pl/FSharp.Compiler.Service.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/pl/FSharp.Core.resources.dll b/dotnet/sdk/8.0.402/FSharp/pl/FSharp.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..195c8626c95438a32043edc6f090f6eaf5be592b
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/pl/FSharp.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/pl/FSharp.DependencyManager.Nuget.resources.dll b/dotnet/sdk/8.0.402/FSharp/pl/FSharp.DependencyManager.Nuget.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..75ba85122eaf11bc8c2320cb57dfccc6ec47de7e
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/pl/FSharp.DependencyManager.Nuget.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.Build.resources.dll b/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..76403494accb698ee17096425d8e6370fecbf320
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.Compiler.Interactive.Settings.resources.dll b/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.Compiler.Interactive.Settings.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3689ac7c38e7eda155f05540dc4ba785a4278dff
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.Compiler.Interactive.Settings.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.Compiler.Service.resources.dll b/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.Compiler.Service.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2d08247920f54f40a844fd87fd47d47402bd7b1b
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.Compiler.Service.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.Core.resources.dll b/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0904805dedd22f8e806e59331d20f0cf8e9f111b
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.DependencyManager.Nuget.resources.dll b/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.DependencyManager.Nuget.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e9d2191b55e885c3f9896d52322e5b8c161cac0f
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/pt-BR/FSharp.DependencyManager.Nuget.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ru/FSharp.Build.resources.dll b/dotnet/sdk/8.0.402/FSharp/ru/FSharp.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9b6306be612ee4d3f31c5b8b3a3f0dbe09973bf0
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ru/FSharp.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ru/FSharp.Compiler.Interactive.Settings.resources.dll b/dotnet/sdk/8.0.402/FSharp/ru/FSharp.Compiler.Interactive.Settings.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..90ac3400918ac7284ea86c66cc90ffb1cfa7cbb7
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ru/FSharp.Compiler.Interactive.Settings.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ru/FSharp.Compiler.Service.resources.dll b/dotnet/sdk/8.0.402/FSharp/ru/FSharp.Compiler.Service.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3d82d80f993fb79edda1fc9fc700735ba957f881
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ru/FSharp.Compiler.Service.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ru/FSharp.Core.resources.dll b/dotnet/sdk/8.0.402/FSharp/ru/FSharp.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..562dfd45dba1956ee6ae6b4f274393cd585fde15
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ru/FSharp.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/ru/FSharp.DependencyManager.Nuget.resources.dll b/dotnet/sdk/8.0.402/FSharp/ru/FSharp.DependencyManager.Nuget.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..551a15b11200945ffe051c17006bf96eba7af0a5
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/ru/FSharp.DependencyManager.Nuget.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll b/dotnet/sdk/8.0.402/FSharp/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cad384deb1ac9dac3e5cd07b3214be8f790e6892
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll b/dotnet/sdk/8.0.402/FSharp/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll
new file mode 100644
index 0000000000000000000000000000000000000000..054b60d341a7be5c9b6d336d65ead5a02109ae3d
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll b/dotnet/sdk/8.0.402/FSharp/runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4214497bcf07dd475e1801a095b9ac2dee271d27
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/tr/FSharp.Build.resources.dll b/dotnet/sdk/8.0.402/FSharp/tr/FSharp.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..97beb8693aadcd78d1cee41903997f8d91591ae5
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/tr/FSharp.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/tr/FSharp.Compiler.Interactive.Settings.resources.dll b/dotnet/sdk/8.0.402/FSharp/tr/FSharp.Compiler.Interactive.Settings.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a67d99c116cc2c223244716d1d17711bfb7a7e64
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/tr/FSharp.Compiler.Interactive.Settings.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/tr/FSharp.Compiler.Service.resources.dll b/dotnet/sdk/8.0.402/FSharp/tr/FSharp.Compiler.Service.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e16944bbadb598929ebe70a6d80abb73784448af
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/tr/FSharp.Compiler.Service.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/tr/FSharp.Core.resources.dll b/dotnet/sdk/8.0.402/FSharp/tr/FSharp.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cfb7fc1588395e7d8ea78dea3e31be1907969428
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/tr/FSharp.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/tr/FSharp.DependencyManager.Nuget.resources.dll b/dotnet/sdk/8.0.402/FSharp/tr/FSharp.DependencyManager.Nuget.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5664787be593187c14fe46379657425017165a6b
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/tr/FSharp.DependencyManager.Nuget.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.Build.resources.dll b/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8a5951f4def04333b593d2b07f6b18af2d57f4e6
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.Compiler.Interactive.Settings.resources.dll b/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.Compiler.Interactive.Settings.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c1697229b2ea08ea60287cccc53aefc059a8994f
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.Compiler.Interactive.Settings.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.Compiler.Service.resources.dll b/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.Compiler.Service.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ce9a75d6b475a220171ca053094c50f69d8e0410
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.Compiler.Service.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.Core.resources.dll b/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..72ecf5a26e58d0ec55e04080b50ae0e96a918231
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.DependencyManager.Nuget.resources.dll b/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.DependencyManager.Nuget.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e267b0ae3afab1ada179def74a644528c886bfb3
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/zh-Hans/FSharp.DependencyManager.Nuget.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.Build.resources.dll b/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5995e36157a3d90518d6e5c360cec2a5671fb815
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.Compiler.Interactive.Settings.resources.dll b/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.Compiler.Interactive.Settings.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7dd3a052196dd0cf783aae9653048c8daa4a6741
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.Compiler.Interactive.Settings.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.Compiler.Service.resources.dll b/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.Compiler.Service.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e9edd00559db2beac1f72ebf7d46ae851d78d028
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.Compiler.Service.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.Core.resources.dll b/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0d89a8164d02d0cd71a2937ebdd2afc08ff480ea
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.DependencyManager.Nuget.resources.dll b/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.DependencyManager.Nuget.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3ced2c91a0b21204c0a745f17d0a47caa0c96c78
Binary files /dev/null and b/dotnet/sdk/8.0.402/FSharp/zh-Hant/FSharp.DependencyManager.Nuget.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/MSBuild.dll b/dotnet/sdk/8.0.402/MSBuild.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ea65b7d500cf804ffa784b721f4a4d896efc5c90
Binary files /dev/null and b/dotnet/sdk/8.0.402/MSBuild.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Build.NuGetSdkResolver.dll b/dotnet/sdk/8.0.402/Microsoft.Build.NuGetSdkResolver.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ff0737995da041699c5aa770bcb62a456b810ba0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Build.NuGetSdkResolver.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Build.Utilities.Core.dll b/dotnet/sdk/8.0.402/Microsoft.Build.Utilities.Core.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f93ac6b303a849b8e74ec40820589df6b4379587
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Build.Utilities.Core.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Build.dll b/dotnet/sdk/8.0.402/Microsoft.Build.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8382550e4522d4a4eebced927ae9c96bf998d6a1
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft.Build.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:caec3e817d076406dbe1dbb8e00ab2a39baef4a7ec0f9d518214b15057a232d5
+size 5334016
diff --git a/dotnet/sdk/8.0.402/Microsoft.CSharp.CurrentVersion.targets b/dotnet/sdk/8.0.402/Microsoft.CSharp.CurrentVersion.targets
new file mode 100644
index 0000000000000000000000000000000000000000..23602667ba3460b9b9ade31d2331c19285dc9d1a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft.CSharp.CurrentVersion.targets
@@ -0,0 +1,372 @@
+
+
+
+
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+ $(MSBuildExtensionsPath)\v$(MSBuildToolsVersion)\Custom.Before.Microsoft.CSharp.targets
+ $(MSBuildExtensionsPath)\v$(MSBuildToolsVersion)\Custom.After.Microsoft.CSharp.targets
+
+
+
+
+
+ .cs
+ C#
+ Managed
+ true
+ true
+ true
+ true
+ true
+ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ Properties
+
+
+
+
+
+ File
+
+
+ BrowseObject
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_Temporary Remove="@(_Temporary)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_Temporary Remove="@(_Temporary)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ <_DebugSymbolsIntermediatePathTemporary Include="$(PdbFile)"/>
+
+ <_DebugSymbolsIntermediatePath Include="@(_DebugSymbolsIntermediatePathTemporary->'%(RootDir)%(Directory)%(Filename).pdb')"/>
+
+
+
+ $(CoreCompileDependsOn);_ComputeNonExistentFileProperty;ResolveCodeAnalysisRuleSet
+ true
+
+
+
+
+
+
+ $(NoWarn);1701;1702
+
+
+
+
+ $(NoWarn);2008
+
+
+
+
+
+
+
+
+
+
+ $(AppConfig)
+
+
+ $(IntermediateOutputPath)$(TargetName).compile.pdb
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ $(RoslynTargetsPath)\Microsoft.CSharp.Core.targets
+
+
+
+
+
+
+
+ $(MSBuildExtensionsPath)\Microsoft\VisualStudio\Managed\Microsoft.CSharp.DesignTime.targets
+
+
+
+
+
+
+
+
+
+
+
+// <autogenerated />
+using System%3b
+using System.Reflection%3b
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute("$(TargetFrameworkMoniker)", FrameworkDisplayName = "$(TargetFrameworkMonikerDisplayName)")]
+
+
+
+
+
+ true
+
+ true
+ true
+
+ $([System.Globalization.CultureInfo]::CurrentUICulture.Name)
+
+
+
+
+
+ <_ExplicitReference Include="$(FrameworkPathOverride)\mscorlib.dll" />
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Microsoft.Common.CrossTargeting.targets b/dotnet/sdk/8.0.402/Microsoft.Common.CrossTargeting.targets
new file mode 100644
index 0000000000000000000000000000000000000000..ed36eb29ab92a0a116bcb969af47b9b03b610831
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft.Common.CrossTargeting.targets
@@ -0,0 +1,263 @@
+
+
+
+
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ThisProjectBuildMetadata Include="$(MSBuildProjectFullPath)">
+ @(_TargetFrameworkInfo)
+ @(_TargetFrameworkInfo->'%(TargetFrameworkMonikers)')
+ @(_TargetFrameworkInfo->'%(TargetPlatformMonikers)')
+ $(_AdditionalPropertiesFromProject)
+ false
+ @(_TargetFrameworkInfo->'%(IsRidAgnostic)')
+
+
+ false
+ $(Platform)
+ $(Platforms)
+
+
+
+
+
+
+
+ <_TargetFramework Include="$(TargetFrameworks)" />
+
+ <_TargetFrameworkNormalized Include="@(_TargetFramework->Trim()->Distinct())" />
+ <_InnerBuildProjects Include="$(MSBuildProjectFile)">
+ TargetFramework=%(_TargetFrameworkNormalized.Identity)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Build
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([MSBuild]::IsRunningFromVisualStudio())
+ $([MSBuild]::GetToolsDirectory32())\..\..\..\Common7\IDE\CommonExtensions\Microsoft\NuGet\NuGet.targets
+ $(MSBuildToolsPath)\NuGet.targets
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ false
+
+ true
+
+
+
+
+
+ true
+
+
+
+
+ <_DirectoryBuildTargetsFile Condition="'$(_DirectoryBuildTargetsFile)' == ''">Directory.Build.targets
+ <_DirectoryBuildTargetsBasePath Condition="'$(_DirectoryBuildTargetsBasePath)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), '$(_DirectoryBuildTargetsFile)'))
+ $([System.IO.Path]::Combine('$(_DirectoryBuildTargetsBasePath)', '$(_DirectoryBuildTargetsFile)'))
+
+
+
+
+
+ false
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Microsoft.Common.Test.targets b/dotnet/sdk/8.0.402/Microsoft.Common.Test.targets
new file mode 100644
index 0000000000000000000000000000000000000000..f6762a1b7c9c72bbbb87f07a08ff73db5ce76910
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft.Common.Test.targets
@@ -0,0 +1,25 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Microsoft.Common.targets b/dotnet/sdk/8.0.402/Microsoft.Common.targets
new file mode 100644
index 0000000000000000000000000000000000000000..71b284b30d4e01a586109885f433442b96021abc
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft.Common.targets
@@ -0,0 +1,64 @@
+
+
+
+
+ $(MSBuildToolsPath)\Microsoft.Common.CurrentVersion.targets
+
+
+
+
+
+
+
+ false
+
+ true
+
+
+
+
+
+ true
+
+
+
+
+ <_DirectoryBuildTargetsFile Condition="'$(_DirectoryBuildTargetsFile)' == ''">Directory.Build.targets
+ <_DirectoryBuildTargetsBasePath Condition="'$(_DirectoryBuildTargetsBasePath)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), '$(_DirectoryBuildTargetsFile)'))
+ $([System.IO.Path]::Combine('$(_DirectoryBuildTargetsBasePath)', '$(_DirectoryBuildTargetsFile)'))
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Microsoft.DotNet.Cli.Utils.dll b/dotnet/sdk/8.0.402/Microsoft.DotNet.Cli.Utils.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f1941fd8333b656c4d3f89c32535d827e9451bd7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.DotNet.Cli.Utils.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.DotNet.InternalAbstractions.dll b/dotnet/sdk/8.0.402/Microsoft.DotNet.InternalAbstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..149ee7c08c1315d2daa3dea8677a791950a3660a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.DotNet.InternalAbstractions.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Extensions.Configuration.Abstractions.dll b/dotnet/sdk/8.0.402/Microsoft.Extensions.Configuration.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..77563def39a785b4117c05544e7c51b4a448f92f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Extensions.Configuration.Abstractions.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Extensions.Configuration.Binder.dll b/dotnet/sdk/8.0.402/Microsoft.Extensions.Configuration.Binder.dll
new file mode 100644
index 0000000000000000000000000000000000000000..be0ea92594807a24806be4fd37404298a5b67874
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Extensions.Configuration.Binder.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Extensions.Configuration.dll b/dotnet/sdk/8.0.402/Microsoft.Extensions.Configuration.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8453ebdd2f8e6d581059423e1ac6e81596979f08
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Extensions.Configuration.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Extensions.DependencyInjection.dll b/dotnet/sdk/8.0.402/Microsoft.Extensions.DependencyInjection.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f4837761e18bb008b7282299194d3d71078ca579
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Extensions.DependencyInjection.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Extensions.DependencyModel.dll b/dotnet/sdk/8.0.402/Microsoft.Extensions.DependencyModel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f152c8bb7761e7d1923be2a48d81ae117d43625a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Extensions.DependencyModel.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Extensions.FileSystemGlobbing.dll b/dotnet/sdk/8.0.402/Microsoft.Extensions.FileSystemGlobbing.dll
new file mode 100644
index 0000000000000000000000000000000000000000..55fb9aa8f2d8976aa464e39b1a8575693bf12789
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Extensions.FileSystemGlobbing.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Extensions.Logging.Abstractions.dll b/dotnet/sdk/8.0.402/Microsoft.Extensions.Logging.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..89e9266305aa8f779213fa359a50f4590c7180bb
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Extensions.Logging.Abstractions.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Extensions.Logging.Configuration.dll b/dotnet/sdk/8.0.402/Microsoft.Extensions.Logging.Configuration.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d3ee5bf1239c1c7f1069d7ce7d9bee59f650c614
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Extensions.Logging.Configuration.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Extensions.Logging.dll b/dotnet/sdk/8.0.402/Microsoft.Extensions.Logging.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5450c2e03231e1885769d0e96f40bfe4e9660b91
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Extensions.Logging.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Extensions.Options.ConfigurationExtensions.dll b/dotnet/sdk/8.0.402/Microsoft.Extensions.Options.ConfigurationExtensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7c4dbe587cd20cc9beb196be360f7c8d570fef11
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Extensions.Options.ConfigurationExtensions.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Extensions.Options.dll b/dotnet/sdk/8.0.402/Microsoft.Extensions.Options.dll
new file mode 100644
index 0000000000000000000000000000000000000000..754f18df2089f9b5b5973a731c0311be8b6eee2b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Extensions.Options.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Extensions.Primitives.dll b/dotnet/sdk/8.0.402/Microsoft.Extensions.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6384e689c3002a655b0e537fee1eeb8901cadb83
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Extensions.Primitives.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.Managed.After.targets b/dotnet/sdk/8.0.402/Microsoft.Managed.After.targets
new file mode 100644
index 0000000000000000000000000000000000000000..de6ef533e6d4ce95ec84a0f86ea42ad1d5d1fb0b
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft.Managed.After.targets
@@ -0,0 +1,89 @@
+
+
+
+
+
+ TargetFramework
+ TargetFrameworks
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ <_MainReferenceTargetForBuild Condition="'$(BuildProjectReferences)' == '' or '$(BuildProjectReferences)' == 'true'">.projectReferenceTargetsOrDefaultTargets
+ <_MainReferenceTargetForBuild Condition="'$(_MainReferenceTargetForBuild)' == ''">GetTargetPath
+
+ $(_MainReferenceTargetForBuild);GetNativeManifest;$(_RecursiveTargetForContentCopying);$(ProjectReferenceTargetsForBuild)
+
+
+ <_MainReferenceTargetForPublish Condition="'$(NoBuild)' == 'true'">GetTargetPath
+ <_MainReferenceTargetForPublish Condition="'$(NoBuild)' != 'true'">$(_MainReferenceTargetForBuild)
+ GetTargetFrameworks;$(_MainReferenceTargetForPublish);GetNativeManifest;GetCopyToPublishDirectoryItems;$(ProjectReferenceTargetsForPublish)
+
+
+ $(ProjectReferenceTargetsForBuild);$(ProjectReferenceTargetsForPublish)
+ $(ProjectReferenceTargetsForRebuild);$(ProjectReferenceTargetsForPublish)
+
+ GetCopyToPublishDirectoryItems;$(ProjectReferenceTargetsForGetCopyToPublishDirectoryItems)
+
+
+ .default;$(ProjectReferenceTargetsForBuild)
+
+
+ Clean;$(ProjectReferenceTargetsForClean)
+ $(ProjectReferenceTargetsForClean);$(ProjectReferenceTargetsForBuild);$(ProjectReferenceTargetsForRebuild)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Microsoft.Managed.Before.targets b/dotnet/sdk/8.0.402/Microsoft.Managed.Before.targets
new file mode 100644
index 0000000000000000000000000000000000000000..4ed32040dbffe65d91f2fa2ff3f630c1d655a8a2
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft.Managed.Before.targets
@@ -0,0 +1,24 @@
+
+
+
+
+
+ true
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Microsoft.NET.HostModel.dll b/dotnet/sdk/8.0.402/Microsoft.NET.HostModel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..75963ff35f45d52d88d8ebf3470c70aa95f0ac74
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.NET.HostModel.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.NET.Sdk.WorkloadManifestReader.dll b/dotnet/sdk/8.0.402/Microsoft.NET.Sdk.WorkloadManifestReader.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5c376d0b90daaebc11312e87a219f19b837cd619
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.NET.Sdk.WorkloadManifestReader.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.NETCoreSdk.BundledCliTools.props b/dotnet/sdk/8.0.402/Microsoft.NETCoreSdk.BundledCliTools.props
new file mode 100644
index 0000000000000000000000000000000000000000..d830bd875cde9db8817437693bc22dcab4487ac3
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft.NETCoreSdk.BundledCliTools.props
@@ -0,0 +1,16 @@
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Microsoft.NETCoreSdk.BundledMSBuildInformation.props b/dotnet/sdk/8.0.402/Microsoft.NETCoreSdk.BundledMSBuildInformation.props
new file mode 100644
index 0000000000000000000000000000000000000000..3ecff1ed1147c788d4493d93ae8940b34a6f085d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft.NETCoreSdk.BundledMSBuildInformation.props
@@ -0,0 +1,19 @@
+
+
+
+ 17.9.5
+ 17.8.5
+ <_MSBuildVersionMajorMinor>$([System.Version]::Parse('$(MSBuildVersion)').ToString(2))
+ <_IsDisjointMSBuildVersion>$([MSBuild]::VersionGreaterThan('$(_MSBuildVersionMajorMinor)', '17.8'))
+
+
diff --git a/dotnet/sdk/8.0.402/Microsoft.NETCoreSdk.BundledVersions.props b/dotnet/sdk/8.0.402/Microsoft.NETCoreSdk.BundledVersions.props
new file mode 100644
index 0000000000000000000000000000000000000000..bef7133d0ee01d81dd395ff53336033f946891c7
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft.NETCoreSdk.BundledVersions.props
@@ -0,0 +1,755 @@
+
+
+
+ $([MSBuild]::NormalizePath('$(MSBuildThisFileDirectory)../../'))
+ $([MSBuild]::EnsureTrailingSlash('$(NetCoreRoot)'))packs
+
+ <_NetFrameworkHostedCompilersVersion>4.11.0-3.24365.8
+ 8.0
+ 8.0
+ 8.0.8
+ 2.1
+ 2.1.0
+ 8.0.8-servicing.24366.12
+ $(MSBuildThisFileDirectory)RuntimeIdentifierGraph.json
+ 8.0.402
+ linux-x64
+ linux-x64
+ <_NETCoreSdkIsPreview>false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_KnownRuntimeIdentiferPlatforms Include="any;aot;freebsd;illumos;solaris;unix;any;aot;freebsd;illumos;solaris;unix;any;aot;freebsd;illumos;solaris;unix;any;aot;freebsd;illumos;solaris;unix;any;aot;freebsd;illumos;solaris;unix;any;aot;freebsd;illumos;solaris;unix" />
+ <_ExcludedKnownRuntimeIdentiferPlatforms Include="rhel.6;tizen.4.0.0;tizen.5.0.0;rhel.6;tizen.4.0.0;tizen.5.0.0;rhel.6;tizen.4.0.0;tizen.5.0.0;rhel.6;tizen.4.0.0;tizen.5.0.0;rhel.6;tizen.4.0.0;tizen.5.0.0;rhel.6;tizen.4.0.0;tizen.5.0.0" />
+
+
diff --git a/dotnet/sdk/8.0.402/Microsoft.NETFramework.targets b/dotnet/sdk/8.0.402/Microsoft.NETFramework.targets
new file mode 100644
index 0000000000000000000000000000000000000000..d1f03fd53dfb363474fa795ee62d27e2febdc498
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft.NETFramework.targets
@@ -0,0 +1,23 @@
+
+
+
+
+ $(MSBuildToolsPath)\Microsoft.NETFramework.CurrentVersion.targets
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Abstractions.dll b/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9c84b9d588dde17fd85fa6115cf9edc3b11b46f7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Abstractions.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Cli.dll b/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Cli.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4e09aa010d35ddd189a8ba627cf19d86e196711a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Cli.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:85db3c9b853d64568ab50b766bcbf4205133f56f8703cf2013be66482fa79ae2
+size 1192960
diff --git a/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Core.Contracts.dll b/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Core.Contracts.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3ace1d618783a1780c9395894166d337e487584d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Core.Contracts.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Edge.dll b/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Edge.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b488cc436550c0f9d678d40584ef8c239ea968c4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Edge.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.dll b/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4c8a8fc5f91ebf11cfcdfa7700da9a42fb086970
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Utils.dll b/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Utils.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c669a96661dfb05e848ab3b3db22eed99ec625e5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.TemplateEngine.Utils.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.TemplateSearch.Common.dll b/dotnet/sdk/8.0.402/Microsoft.TemplateSearch.Common.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c1e6e20cf3586de2df9419df276bb56f54d7552d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.TemplateSearch.Common.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.TestPlatform.Build.dll b/dotnet/sdk/8.0.402/Microsoft.TestPlatform.Build.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9568d1a7b4f6c81afe958c5bd52c0d06221d8f24
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.TestPlatform.Build.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.TestPlatform.CoreUtilities.dll b/dotnet/sdk/8.0.402/Microsoft.TestPlatform.CoreUtilities.dll
new file mode 100644
index 0000000000000000000000000000000000000000..070f07d24f5fc18f3cbaf766825c810698b8f28d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.TestPlatform.CoreUtilities.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.TestPlatform.CrossPlatEngine.dll b/dotnet/sdk/8.0.402/Microsoft.TestPlatform.CrossPlatEngine.dll
new file mode 100644
index 0000000000000000000000000000000000000000..588d2f1864414248100c678afcfd98b6d1b8746d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.TestPlatform.CrossPlatEngine.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.dll b/dotnet/sdk/8.0.402/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b2dcf43aa7440f070886ec1927d59f0fabab912b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.VisualBasic.CrossTargeting.targets b/dotnet/sdk/8.0.402/Microsoft.VisualBasic.CrossTargeting.targets
new file mode 100644
index 0000000000000000000000000000000000000000..d4c34275574ede7a71874938063d810a65a038d8
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft.VisualBasic.CrossTargeting.targets
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+ $(MSBuildExtensionsPath)\Microsoft\VisualStudio\Managed\Microsoft.VisualBasic.DesignTime.targets
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Microsoft.VisualStudio.TestPlatform.Client.dll b/dotnet/sdk/8.0.402/Microsoft.VisualStudio.TestPlatform.Client.dll
new file mode 100644
index 0000000000000000000000000000000000000000..08c34cbedd6c71e504581ef2632edb27b64ea5db
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.VisualStudio.TestPlatform.Client.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft.VisualStudioVersion.v11.Common.props b/dotnet/sdk/8.0.402/Microsoft.VisualStudioVersion.v11.Common.props
new file mode 100644
index 0000000000000000000000000000000000000000..d415f2119bec70a9ec7c3061eee1433280532bc6
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft.VisualStudioVersion.v11.Common.props
@@ -0,0 +1,19 @@
+
+
+
+
+ 11.0
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Microsoft.Win32.Msi.dll b/dotnet/sdk/8.0.402/Microsoft.Win32.Msi.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8a75fcfdc06cdec33dd0e17e93369f92b4636b0b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft.Win32.Msi.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.ConflictResolution.targets b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.ConflictResolution.targets
new file mode 100644
index 0000000000000000000000000000000000000000..ba2c38fe205d07ef97af5e2c2b5e881997754b2f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.ConflictResolution.targets
@@ -0,0 +1,52 @@
+
+
+
+
+
+ <_HandlePackageFileConflictsAfter>ResolveNuGetPackageAssets
+
+
+ <_HandlePackageFileConflictsBefore>ResolveAssemblyReferences
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets
new file mode 100644
index 0000000000000000000000000000000000000000..ea61d7fc66ca8253a7ea47439945fda40883f51d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.NETFramework.targets
@@ -0,0 +1,146 @@
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ <_CandidateNETStandardReferences Include="@(Reference);@(_ResolvedProjectReferencePaths)" />
+ <_InboxNETStandardFolders Include="$(TargetFrameworkDirectory)" />
+
+
+
+
+ true
+
+
+
+
+
+
+ true
+
+
+
+
+
+ <_RunGetDependsOnNETStandard Condition="'$(DependsOnNETStandard)' == '' AND '$(NETStandardInbox)' != 'true'">true
+
+ <_RunGetDependsOnNETStandard Condition="'$(DependsOnNETStandard)' == '' AND '$(_TargetFrameworkVersionWithoutV)' == '4.7.1'">true
+
+
+
+
+
+
+
+
+ <_UsingOldSDK Condition="'$(UsingMicrosoftNETSdk)' != 'true' AND ('$(TargetFramework)' != '' OR '$(TargetFrameworks)' != '')">true
+
+
+
+
+
+ <_NETStandardLibraryNETFrameworkLib Include="$(MSBuildThisFileDirectory)\net471\lib\*.dll" Condition="'$(DependsOnNETStandard)' == 'true'"/>
+
+
+
+
+ <_NETStandardLibraryNETFrameworkLib Condition="'$(_TargetFrameworkVersionWithoutV)' >= '4.7'"
+ Include="$(MSBuildThisFileDirectory)net47\lib\*.dll" />
+ <_NETStandardLibraryNETFrameworkLib Condition="'$(_TargetFrameworkVersionWithoutV)' >= '4.6.2'"
+ Include="$(MSBuildThisFileDirectory)net462\lib\*.dll"
+ Exclude="@(_NETStandardLibraryNETFrameworkLib->'$(MSBuildThisFileDirectory)net462\lib\%(FileName).dll')" />
+ <_NETStandardLibraryNETFrameworkLib Condition="'$(_TargetFrameworkVersionWithoutV)' >= '4.6.1'"
+ Include="$(MSBuildThisFileDirectory)net461\lib\*.dll"
+ Exclude="@(_NETStandardLibraryNETFrameworkLib->'$(MSBuildThisFileDirectory)net461\lib\%(FileName).dll')" />
+
+
+
+
+
+
+
+
+ <_UpdatedReference Remove="@(_UpdatedReference)" />
+
+
+
+
+
+
+
+
+
+
+ <_UpdatedReference Remove="@(_UpdatedReference)" />
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.targets b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.targets
new file mode 100644
index 0000000000000000000000000000000000000000..690d881733d5cab6372fb44ef79f061b7bd39de1
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.Build.Extensions.targets
@@ -0,0 +1,28 @@
+
+
+
+
+ <_TargetFrameworkVersionWithoutV>$(TargetFrameworkVersion.TrimStart('vV'))
+
+ $(MSBuildThisFileDirectory)\tools\net8.0\Microsoft.NET.Build.Extensions.Tasks.dll
+ $(MSBuildThisFileDirectory)\tools\net472\Microsoft.NET.Build.Extensions.Tasks.dll
+
+
+ true
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.DefaultPackageConflictOverrides.targets b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.DefaultPackageConflictOverrides.targets
new file mode 100644
index 0000000000000000000000000000000000000000..0f5560419fa84430af5d06a7dcd354f24cd05e88
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/Microsoft.NET.DefaultPackageConflictOverrides.targets
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+ Microsoft.CSharp|4.4.0;
+ Microsoft.Win32.Primitives|4.3.0;
+ Microsoft.Win32.Registry|4.4.0;
+ runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple|4.3.0;
+ runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ System.AppContext|4.3.0;
+ System.Buffers|4.4.0;
+ System.Collections|4.3.0;
+ System.Collections.Concurrent|4.3.0;
+ System.Collections.Immutable|1.4.0;
+ System.Collections.NonGeneric|4.3.0;
+ System.Collections.Specialized|4.3.0;
+ System.ComponentModel|4.3.0;
+ System.ComponentModel.EventBasedAsync|4.3.0;
+ System.ComponentModel.Primitives|4.3.0;
+ System.ComponentModel.TypeConverter|4.3.0;
+ System.Console|4.3.0;
+ System.Data.Common|4.3.0;
+ System.Diagnostics.Contracts|4.3.0;
+ System.Diagnostics.Debug|4.3.0;
+ System.Diagnostics.DiagnosticSource|4.4.0;
+ System.Diagnostics.FileVersionInfo|4.3.0;
+ System.Diagnostics.Process|4.3.0;
+ System.Diagnostics.StackTrace|4.3.0;
+ System.Diagnostics.TextWriterTraceListener|4.3.0;
+ System.Diagnostics.Tools|4.3.0;
+ System.Diagnostics.TraceSource|4.3.0;
+ System.Diagnostics.Tracing|4.3.0;
+ System.Dynamic.Runtime|4.3.0;
+ System.Globalization|4.3.0;
+ System.Globalization.Calendars|4.3.0;
+ System.Globalization.Extensions|4.3.0;
+ System.IO|4.3.0;
+ System.IO.Compression|4.3.0;
+ System.IO.Compression.ZipFile|4.3.0;
+ System.IO.FileSystem|4.3.0;
+ System.IO.FileSystem.AccessControl|4.4.0;
+ System.IO.FileSystem.DriveInfo|4.3.0;
+ System.IO.FileSystem.Primitives|4.3.0;
+ System.IO.FileSystem.Watcher|4.3.0;
+ System.IO.IsolatedStorage|4.3.0;
+ System.IO.MemoryMappedFiles|4.3.0;
+ System.IO.Pipes|4.3.0;
+ System.IO.UnmanagedMemoryStream|4.3.0;
+ System.Linq|4.3.0;
+ System.Linq.Expressions|4.3.0;
+ System.Linq.Queryable|4.3.0;
+ System.Net.Http|4.3.0;
+ System.Net.NameResolution|4.3.0;
+ System.Net.Primitives|4.3.0;
+ System.Net.Requests|4.3.0;
+ System.Net.Security|4.3.0;
+ System.Net.Sockets|4.3.0;
+ System.Net.WebHeaderCollection|4.3.0;
+ System.ObjectModel|4.3.0;
+ System.Private.DataContractSerialization|4.3.0;
+ System.Reflection|4.3.0;
+ System.Reflection.Emit|4.3.0;
+ System.Reflection.Emit.ILGeneration|4.3.0;
+ System.Reflection.Emit.Lightweight|4.3.0;
+ System.Reflection.Extensions|4.3.0;
+ System.Reflection.Metadata|1.5.0;
+ System.Reflection.Primitives|4.3.0;
+ System.Reflection.TypeExtensions|4.3.0;
+ System.Resources.ResourceManager|4.3.0;
+ System.Runtime|4.3.0;
+ System.Runtime.Extensions|4.3.0;
+ System.Runtime.Handles|4.3.0;
+ System.Runtime.InteropServices|4.3.0;
+ System.Runtime.InteropServices.RuntimeInformation|4.3.0;
+ System.Runtime.Loader|4.3.0;
+ System.Runtime.Numerics|4.3.0;
+ System.Runtime.Serialization.Formatters|4.3.0;
+ System.Runtime.Serialization.Json|4.3.0;
+ System.Runtime.Serialization.Primitives|4.3.0;
+ System.Security.AccessControl|4.4.0;
+ System.Security.Claims|4.3.0;
+ System.Security.Cryptography.Algorithms|4.3.0;
+ System.Security.Cryptography.Cng|4.4.0;
+ System.Security.Cryptography.Csp|4.3.0;
+ System.Security.Cryptography.Encoding|4.3.0;
+ System.Security.Cryptography.OpenSsl|4.4.0;
+ System.Security.Cryptography.Primitives|4.3.0;
+ System.Security.Cryptography.X509Certificates|4.3.0;
+ System.Security.Cryptography.Xml|4.4.0;
+ System.Security.Principal|4.3.0;
+ System.Security.Principal.Windows|4.4.0;
+ System.Text.Encoding|4.3.0;
+ System.Text.Encoding.Extensions|4.3.0;
+ System.Text.RegularExpressions|4.3.0;
+ System.Threading|4.3.0;
+ System.Threading.Overlapped|4.3.0;
+ System.Threading.Tasks|4.3.0;
+ System.Threading.Tasks.Extensions|4.3.0;
+ System.Threading.Tasks.Parallel|4.3.0;
+ System.Threading.Thread|4.3.0;
+ System.Threading.ThreadPool|4.3.0;
+ System.Threading.Timer|4.3.0;
+ System.ValueTuple|4.3.0;
+ System.Xml.ReaderWriter|4.3.0;
+ System.Xml.XDocument|4.3.0;
+ System.Xml.XmlDocument|4.3.0;
+ System.Xml.XmlSerializer|4.3.0;
+ System.Xml.XPath|4.3.0;
+ System.Xml.XPath.XDocument|4.3.0;
+
+
+
+
+ Microsoft.Win32.Primitives|4.3.0;
+ System.AppContext|4.3.0;
+ System.Collections|4.3.0;
+ System.Collections.Concurrent|4.3.0;
+ System.Collections.Immutable|1.4.0;
+ System.Collections.NonGeneric|4.3.0;
+ System.Collections.Specialized|4.3.0;
+ System.ComponentModel|4.3.0;
+ System.ComponentModel.EventBasedAsync|4.3.0;
+ System.ComponentModel.Primitives|4.3.0;
+ System.ComponentModel.TypeConverter|4.3.0;
+ System.Console|4.3.0;
+ System.Data.Common|4.3.0;
+ System.Diagnostics.Contracts|4.3.0;
+ System.Diagnostics.Debug|4.3.0;
+ System.Diagnostics.FileVersionInfo|4.3.0;
+ System.Diagnostics.Process|4.3.0;
+ System.Diagnostics.StackTrace|4.3.0;
+ System.Diagnostics.TextWriterTraceListener|4.3.0;
+ System.Diagnostics.Tools|4.3.0;
+ System.Diagnostics.TraceSource|4.3.0;
+ System.Diagnostics.Tracing|4.3.0;
+ System.Dynamic.Runtime|4.3.0;
+ System.Globalization|4.3.0;
+ System.Globalization.Calendars|4.3.0;
+ System.Globalization.Extensions|4.3.0;
+ System.IO|4.3.0;
+ System.IO.Compression|4.3.0;
+ System.IO.Compression.ZipFile|4.3.0;
+ System.IO.FileSystem|4.3.0;
+ System.IO.FileSystem.DriveInfo|4.3.0;
+ System.IO.FileSystem.Primitives|4.3.0;
+ System.IO.FileSystem.Watcher|4.3.0;
+ System.IO.IsolatedStorage|4.3.0;
+ System.IO.MemoryMappedFiles|4.3.0;
+ System.IO.Pipes|4.3.0;
+ System.IO.UnmanagedMemoryStream|4.3.0;
+ System.Linq|4.3.0;
+ System.Linq.Expressions|4.3.0;
+ System.Linq.Queryable|4.3.0;
+ System.Net.Http|4.3.0;
+ System.Net.NameResolution|4.3.0;
+ System.Net.Primitives|4.3.0;
+ System.Net.Requests|4.3.0;
+ System.Net.Security|4.3.0;
+ System.Net.Sockets|4.3.0;
+ System.Net.WebHeaderCollection|4.3.0;
+ System.ObjectModel|4.3.0;
+ System.Private.DataContractSerialization|4.3.0;
+ System.Reflection|4.3.0;
+ System.Reflection.Emit|4.3.0;
+ System.Reflection.Emit.ILGeneration|4.3.0;
+ System.Reflection.Emit.Lightweight|4.3.0;
+ System.Reflection.Extensions|4.3.0;
+ System.Reflection.Primitives|4.3.0;
+ System.Reflection.TypeExtensions|4.3.0;
+ System.Resources.ResourceManager|4.3.0;
+ System.Runtime|4.3.0;
+ System.Runtime.Extensions|4.3.0;
+ System.Runtime.Handles|4.3.0;
+ System.Runtime.InteropServices|4.3.0;
+ System.Runtime.InteropServices.RuntimeInformation|4.3.0;
+ System.Runtime.Loader|4.3.0;
+ System.Runtime.Numerics|4.3.0;
+ System.Runtime.Serialization.Formatters|4.3.0;
+ System.Runtime.Serialization.Json|4.3.0;
+ System.Runtime.Serialization.Primitives|4.3.0;
+ System.Security.AccessControl|4.4.0;
+ System.Security.Claims|4.3.0;
+ System.Security.Cryptography.Algorithms|4.3.0;
+ System.Security.Cryptography.Csp|4.3.0;
+ System.Security.Cryptography.Encoding|4.3.0;
+ System.Security.Cryptography.Primitives|4.3.0;
+ System.Security.Cryptography.X509Certificates|4.3.0;
+ System.Security.Cryptography.Xml|4.4.0;
+ System.Security.Principal|4.3.0;
+ System.Security.Principal.Windows|4.4.0;
+ System.Text.Encoding|4.3.0;
+ System.Text.Encoding.Extensions|4.3.0;
+ System.Text.RegularExpressions|4.3.0;
+ System.Threading|4.3.0;
+ System.Threading.Overlapped|4.3.0;
+ System.Threading.Tasks|4.3.0;
+ System.Threading.Tasks.Extensions|4.3.0;
+ System.Threading.Tasks.Parallel|4.3.0;
+ System.Threading.Thread|4.3.0;
+ System.Threading.ThreadPool|4.3.0;
+ System.Threading.Timer|4.3.0;
+ System.ValueTuple|4.3.0;
+ System.Xml.ReaderWriter|4.3.0;
+ System.Xml.XDocument|4.3.0;
+ System.Xml.XmlDocument|4.3.0;
+ System.Xml.XmlSerializer|4.3.0;
+ System.Xml.XPath|4.3.0;
+ System.Xml.XPath.XDocument|4.3.0;
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/Microsoft.Win32.Primitives.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/Microsoft.Win32.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8b69a69bc7386681c06c1c89020ae8ccb11e19ae
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/Microsoft.Win32.Primitives.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.AppContext.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.AppContext.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4ccc058f3999c0f581348c6fed59688ebbdce2c0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.AppContext.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.Concurrent.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.Concurrent.dll
new file mode 100644
index 0000000000000000000000000000000000000000..26f10d174753ef8308626f7ce37ea6d920fc9b6b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.Concurrent.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.NonGeneric.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.NonGeneric.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9da235aef1ae7fd994e44b35fd66d8b584a171d5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.NonGeneric.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.Specialized.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.Specialized.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fbd4fc7a25ea3301da536543dd15aca16c3f6150
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.Specialized.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.dll
new file mode 100644
index 0000000000000000000000000000000000000000..72ac2059f7ae3ac3222cc6703881721db5b1e07c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Collections.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.EventBasedAsync.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.EventBasedAsync.dll
new file mode 100644
index 0000000000000000000000000000000000000000..37742d475238ae8f5727c73142fc5d8d1e90c404
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.EventBasedAsync.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.Primitives.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b0c4b683ac068d9552c2fb048cfd9226c762da1f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.Primitives.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.TypeConverter.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.TypeConverter.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fb42b4494ea61ff03e837e572f4ef7f275e3f73b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.TypeConverter.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8e2d8297527cc39cdd7200eac4936ed05044b8dc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ComponentModel.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Console.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Console.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fe61bccd8dbbc6c23b468472adad37f94bc79f06
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Console.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Data.Common.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Data.Common.dll
new file mode 100644
index 0000000000000000000000000000000000000000..05e3481bb71da9d421b0cf25ac3c3e95f39a8f10
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Data.Common.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Contracts.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Contracts.dll
new file mode 100644
index 0000000000000000000000000000000000000000..98f40ebc676aa39a40d9b332c4b4705b5600a92a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Contracts.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Debug.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Debug.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a51c0cfa46cc4c3fc504d3daf3c19173276a0ca9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Debug.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.FileVersionInfo.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.FileVersionInfo.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3c203b00ca714521944247e2c1838115105a4801
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.FileVersionInfo.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Process.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Process.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b537e62c1cd8b258333b069b86fa8f318a47b205
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Process.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.StackTrace.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.StackTrace.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5dfaad67e404a858a904226db7c6d11a92d281a3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.StackTrace.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.TextWriterTraceListener.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.TextWriterTraceListener.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a5720da26be14570b88ca971033b768c4101ad25
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.TextWriterTraceListener.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Tools.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Tools.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bd9deaed0739dbfc864f2d9717ee81622b9ebf5a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Tools.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.TraceSource.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.TraceSource.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5474eb2a639d6511aec7b299eb3d499080b8a2d6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.TraceSource.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Tracing.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Tracing.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5b8b2b42db93dfa9b042996ab49240421c99647d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Diagnostics.Tracing.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Drawing.Primitives.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Drawing.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1eeacc4c699bec64aa892a31c5d942f5549cd619
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Drawing.Primitives.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Dynamic.Runtime.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Dynamic.Runtime.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d34b388c03e2ada7a7d234347de1f51eaa692df4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Dynamic.Runtime.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Globalization.Calendars.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Globalization.Calendars.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4a198bc14d6c36c222ec70daf75109c9e9c8fd00
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Globalization.Calendars.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Globalization.Extensions.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Globalization.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..99f9e4afe7685b7909b109d017c49fd22274567f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Globalization.Extensions.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Globalization.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Globalization.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dd3d2e303aa81d8f79af137c4b8c9a04e073e6fd
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Globalization.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.Compression.ZipFile.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.Compression.ZipFile.dll
new file mode 100644
index 0000000000000000000000000000000000000000..345acbddb562b973cd9abe06d23861d882394a39
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.Compression.ZipFile.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.Compression.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.Compression.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ebbb503e8f7b5d1211448c206c394eec809cbcd9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.Compression.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.DriveInfo.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.DriveInfo.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5c5939892005b154b94156c2a922e1b09a1a854c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.DriveInfo.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.Primitives.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..de4c49fc9f79b2a4caf09186e0690bc177eb0913
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.Primitives.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.Watcher.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.Watcher.dll
new file mode 100644
index 0000000000000000000000000000000000000000..228d60be71e528bc8989e3cc147a2566b2a72d78
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.Watcher.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6934080d372607d349e2f275fc157cf5a37ecd36
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.FileSystem.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.IsolatedStorage.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.IsolatedStorage.dll
new file mode 100644
index 0000000000000000000000000000000000000000..356e123c91a772323b0beba957a7892d70f52180
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.IsolatedStorage.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.MemoryMappedFiles.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.MemoryMappedFiles.dll
new file mode 100644
index 0000000000000000000000000000000000000000..add3b2965a6e6f58556856473f4382629645749b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.MemoryMappedFiles.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.Pipes.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.Pipes.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e5690c468bfef094872c4b168db3b3e3bc3025a6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.Pipes.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.UnmanagedMemoryStream.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.UnmanagedMemoryStream.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cdd7427dc91918a39cec00cd8b7fa70319b047ec
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.UnmanagedMemoryStream.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e9eb534a33298a27df7a757160595d7a62ac4123
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.IO.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.Expressions.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.Expressions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..63b570c89020e75adcd22f5b6c46e1fa66081309
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.Expressions.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.Parallel.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.Parallel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d8d097ee02ef6ad288000376c1c3f436a9752b7f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.Parallel.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.Queryable.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.Queryable.dll
new file mode 100644
index 0000000000000000000000000000000000000000..404bbe2162cdb9ca851b8da55268a8e19d7203df
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.Queryable.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.dll
new file mode 100644
index 0000000000000000000000000000000000000000..42cd93b460dc67dd2d3ca0b977791914d2b79537
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Linq.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Http.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Http.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1c5c6fd374c8e5728bd9aceb997ad9181e8f0d09
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Http.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.NameResolution.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.NameResolution.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e8a65c06b38a142b8ae0d427ef3d25c66924406c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.NameResolution.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.NetworkInformation.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.NetworkInformation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..543a6cfebdc08c05a7217cd83c650c17a51564f7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.NetworkInformation.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Ping.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Ping.dll
new file mode 100644
index 0000000000000000000000000000000000000000..eeb4666c20389e92cd1029b0c3beb89dc52d3192
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Ping.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Primitives.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8a929ae801f089287861f3c0036e96d197f85694
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Primitives.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Requests.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Requests.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5cf38f84d4eb6a331f028a654f2442865c8c5dc6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Requests.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Security.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Security.dll
new file mode 100644
index 0000000000000000000000000000000000000000..eacb8a18fcd43c236f5815949512527e18612d6f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Security.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Sockets.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Sockets.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9716795eeb1428673b26a1e8c60c2de07958a943
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.Sockets.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.WebHeaderCollection.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.WebHeaderCollection.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0238e690130e6218ec286e1ceab24bb2ce22086f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.WebHeaderCollection.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.WebSockets.Client.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.WebSockets.Client.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3275912c8c2e3a105f86c593988287ea31993450
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.WebSockets.Client.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.WebSockets.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.WebSockets.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7a74189753e31b141644fd586a0607975d5c42b8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Net.WebSockets.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ObjectModel.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ObjectModel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..37e11894e633751c30154fbb1dd703569a0560a5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ObjectModel.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Reflection.Extensions.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Reflection.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6d12687c90344ead3300e6ba03aafcfcf3f6fd75
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Reflection.Extensions.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Reflection.Primitives.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Reflection.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2c160e9f6ec9e9c09ca3625d3918dd03afd2b887
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Reflection.Primitives.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Reflection.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Reflection.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ec0b3d230b296df18d03e43f0d684bfe58aace03
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Reflection.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Resources.Reader.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Resources.Reader.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a34c6936d2292bdf63f5c12922e19bf495b56540
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Resources.Reader.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Resources.ResourceManager.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Resources.ResourceManager.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c4a14ceea0bab100966fc590fee6ff0c13ddcf15
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Resources.ResourceManager.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Resources.Writer.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Resources.Writer.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0ce294688c7498fec8a5de8c871a03b9c3d739b8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Resources.Writer.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.CompilerServices.VisualC.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.CompilerServices.VisualC.dll
new file mode 100644
index 0000000000000000000000000000000000000000..30a2f814f3ed89d05a99d04ef8b58ed635f6e39d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.CompilerServices.VisualC.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Extensions.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..eb0e80b14cc4f2688144fe75d43c4ebfccb91643
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Extensions.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Handles.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Handles.dll
new file mode 100644
index 0000000000000000000000000000000000000000..37f15ff035762e3c7e83d35ece0902491a82d5ab
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Handles.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.InteropServices.RuntimeInformation.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c3e0c7118eda9548a4a496d102dc39c830ce95e6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.InteropServices.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.InteropServices.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ab5442952cdeceeaee28adba834c85af0b9868be
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.InteropServices.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Numerics.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Numerics.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3202cd9b1f34c327535adcaa13e633aa1c008fc5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Numerics.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Formatters.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Formatters.dll
new file mode 100644
index 0000000000000000000000000000000000000000..06b548054fb90be3ae59fb75450b092faec24d2b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Formatters.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Json.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Json.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1f30098f05fad5f31f02df6c17338eeaaab5840e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Json.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Primitives.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..19a6dd21d05c813f1789948f214383bf5c6d3427
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Primitives.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Xml.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Xml.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3a839e24401818cb0a91169969f8d4d3c87c61f9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.Serialization.Xml.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.dll
new file mode 100644
index 0000000000000000000000000000000000000000..344ee77a8e9c88ba14b095be1a08371afd7b4d05
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Runtime.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Claims.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Claims.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9cb6423355f5ad9e88095141f85e2b4e143dae79
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Claims.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Algorithms.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Algorithms.dll
new file mode 100644
index 0000000000000000000000000000000000000000..01b7bb5b3c2362c854e3345f1369a219ee460d22
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Algorithms.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Csp.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Csp.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d7721e716e0f9307559b5ca25cbb65c5acfe5f61
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Csp.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Encoding.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Encoding.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f5886141085ef2f0a30a81d1c1be332d2b65dc0e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Encoding.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Primitives.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..35a21ef6e9274895a5d5384f6292dfa24f25e43b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.Primitives.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.X509Certificates.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.X509Certificates.dll
new file mode 100644
index 0000000000000000000000000000000000000000..53d05b220482b781f4f26a2c47f46cebd138845b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Cryptography.X509Certificates.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Principal.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Principal.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6d7c2ba7c19250724611019418b49e228770eba4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.Principal.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.SecureString.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.SecureString.dll
new file mode 100644
index 0000000000000000000000000000000000000000..355a050dd15c622bb2d5172469914b078b01e4fe
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Security.SecureString.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Text.Encoding.Extensions.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Text.Encoding.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4f2b83dce8e4893e7ef3268841d30b7d7efceade
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Text.Encoding.Extensions.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Text.Encoding.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Text.Encoding.dll
new file mode 100644
index 0000000000000000000000000000000000000000..557551f37c8c94438f5f0fe9412da122916d2955
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Text.Encoding.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Text.RegularExpressions.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Text.RegularExpressions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1a64a17cc62dcd76f45a733dcd829d6b7a6d6ed5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Text.RegularExpressions.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Overlapped.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Overlapped.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5d7e7b7cdb338e8eb244139bf52f2e56ec64b3ac
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Overlapped.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Tasks.Parallel.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Tasks.Parallel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c4df330cc91b83c6dd75cb7fab815ed8a9c626a8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Tasks.Parallel.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Tasks.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..25999be8cb34bcdb44cf47fa2219340d53828f89
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Thread.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Thread.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9b7da65e5255243510b84a1bb9a996351e7ee57e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Thread.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.ThreadPool.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.ThreadPool.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9405b8fcaf83bfc7bb124c00cf31ca7be0ee7221
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.ThreadPool.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Timer.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Timer.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c9eae71c8e9276176b6ded7a85055fb62f204d1a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.Timer.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.dll
new file mode 100644
index 0000000000000000000000000000000000000000..deae2be716b5ab8f32e917625878d839067ca082
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Threading.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ValueTuple.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ValueTuple.dll
new file mode 100644
index 0000000000000000000000000000000000000000..502f8cd4773c79550c5fbf72c43dae126b1babe2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.ValueTuple.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.ReaderWriter.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.ReaderWriter.dll
new file mode 100644
index 0000000000000000000000000000000000000000..24df9a0fba5107568e69b2e3a10761cef8ab064a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.ReaderWriter.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XDocument.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cbbc4f0b64d3563a9940345b0d549d8a561f0664
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XDocument.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XPath.XDocument.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XPath.XDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0830ed180c3938d41b8445e8a5e66ca3ac8c30f6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XPath.XDocument.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XPath.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XPath.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8327f2e8349b5441e925a3df1b22645878523305
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XPath.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XmlDocument.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XmlDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4f044b1d4fee84d365b06c6fe40ff69537634e73
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XmlDocument.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XmlSerializer.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XmlSerializer.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7b47de889a3ff9222e64713349c76aaa4dc8ea57
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/System.Xml.XmlSerializer.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/netfx.force.conflicts.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/netfx.force.conflicts.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4d5e7adf649a66156cdb948bb501e6ab1492f6c4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/netfx.force.conflicts.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/netstandard.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/netstandard.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1f1ab22caa4b935f74e18660b85cc19e38d0ef35
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net461/lib/netstandard.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net462/lib/System.Runtime.InteropServices.RuntimeInformation.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net462/lib/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c8d62f4f92da7d8cf43e831aec6630137e8d9267
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net462/lib/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net47/lib/System.Runtime.InteropServices.RuntimeInformation.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net47/lib/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2eed08f555d5a8592cc192433c0acc2cc5973d9c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net47/lib/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net47/lib/System.Security.Cryptography.Algorithms.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net47/lib/System.Security.Cryptography.Algorithms.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1698db68809c1fa718baef30c271625edd61e239
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net47/lib/System.Security.Cryptography.Algorithms.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net47/lib/System.ValueTuple.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net47/lib/System.ValueTuple.dll
new file mode 100644
index 0000000000000000000000000000000000000000..808f2c2b0fa0fc5bcad2fe0301357cc34b303ba4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net47/lib/System.ValueTuple.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/_._ b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/_._
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Data.Common.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Data.Common.dll
new file mode 100644
index 0000000000000000000000000000000000000000..198fd3e8c161fdcc31b308fa092b345e46b1607e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Data.Common.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Diagnostics.StackTrace.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Diagnostics.StackTrace.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0a4be4925d8723b07c2c621e60f7fb00d94fea13
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Diagnostics.StackTrace.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Diagnostics.Tracing.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Diagnostics.Tracing.dll
new file mode 100644
index 0000000000000000000000000000000000000000..97d8b117612bfd0e3a88eb351aeefa69df717a41
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Diagnostics.Tracing.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Globalization.Extensions.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Globalization.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5e6f83c7fae08f6ca4f6f77df2be5c613e63c829
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Globalization.Extensions.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.IO.Compression.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.IO.Compression.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c32157c5cdbe4b43311c0f0db8cdb0782ff4acc5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.IO.Compression.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Net.Http.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Net.Http.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e935b3b6e0bef934962404808fb7b6c3a78d05a7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Net.Http.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Net.Sockets.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Net.Sockets.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b8d0bbb92c3b3fca0b342c59bbf5369e57af9e72
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Net.Sockets.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Runtime.Serialization.Primitives.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Runtime.Serialization.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a1b1537eeeb818bf8197bae89745d8e290fb6850
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Runtime.Serialization.Primitives.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Security.Cryptography.Algorithms.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Security.Cryptography.Algorithms.dll
new file mode 100644
index 0000000000000000000000000000000000000000..71241422f133a8d9e8b3ad02ca5905cffddbe97f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Security.Cryptography.Algorithms.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Security.SecureString.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Security.SecureString.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1db0169d26e3d8a97e4c7351aab66ab575779a07
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Security.SecureString.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Threading.Overlapped.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Threading.Overlapped.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f43c3134b21df156428262feda4fa8353de9fc96
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Threading.Overlapped.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Xml.XPath.XDocument.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Xml.XPath.XDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..445d51a457f2140d5243abec80c00e531c3f58f3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/System.Xml.XPath.XDocument.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/netfx.force.conflicts.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/netfx.force.conflicts.dll
new file mode 100644
index 0000000000000000000000000000000000000000..72b08ab849bd15efd59b4ce828daa60f2f391be2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/net471/lib/netfx.force.conflicts.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/Microsoft.NET.Build.Extensions.Tasks.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/Microsoft.NET.Build.Extensions.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..680a58ca63ec9f22b35a3ae4a30e7a97cc69b9dc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/Microsoft.NET.Build.Extensions.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/cs/Microsoft.NET.Build.Extensions.Tasks.resources.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/cs/Microsoft.NET.Build.Extensions.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7d415cea6bbce5ccf280295207a645ccac4bfddc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/cs/Microsoft.NET.Build.Extensions.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/de/Microsoft.NET.Build.Extensions.Tasks.resources.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/de/Microsoft.NET.Build.Extensions.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a06d31bc4a8f0638b7c73bf239d03bc0f589a5e4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/de/Microsoft.NET.Build.Extensions.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/es/Microsoft.NET.Build.Extensions.Tasks.resources.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/es/Microsoft.NET.Build.Extensions.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e31a32f316f0bf8dd0234e4d74dfaef8d2bef3f3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/es/Microsoft.NET.Build.Extensions.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/fr/Microsoft.NET.Build.Extensions.Tasks.resources.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/fr/Microsoft.NET.Build.Extensions.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4c141ece68cdae4c6db9434b611187afd09fd4c2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/fr/Microsoft.NET.Build.Extensions.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/it/Microsoft.NET.Build.Extensions.Tasks.resources.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/it/Microsoft.NET.Build.Extensions.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b2f420cb117c6da2f84ae9d16f7cde8bde43149f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/it/Microsoft.NET.Build.Extensions.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/ja/Microsoft.NET.Build.Extensions.Tasks.resources.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/ja/Microsoft.NET.Build.Extensions.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4ba1f2125ca5214849feb5be18a7702dc035e927
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/ja/Microsoft.NET.Build.Extensions.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/ko/Microsoft.NET.Build.Extensions.Tasks.resources.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/ko/Microsoft.NET.Build.Extensions.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2ec1cec97fbf39d72d15c739531f1c53272e9cb2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/ko/Microsoft.NET.Build.Extensions.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/pl/Microsoft.NET.Build.Extensions.Tasks.resources.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/pl/Microsoft.NET.Build.Extensions.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0ef6e8ee7f6d5aff82433c7eddbee3ac7ff34a9c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/pl/Microsoft.NET.Build.Extensions.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/pt-BR/Microsoft.NET.Build.Extensions.Tasks.resources.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/pt-BR/Microsoft.NET.Build.Extensions.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ae88735cd7da42829b003127bcdf7a1f16a445ca
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/pt-BR/Microsoft.NET.Build.Extensions.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/ru/Microsoft.NET.Build.Extensions.Tasks.resources.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/ru/Microsoft.NET.Build.Extensions.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4049e72d0e6c43ee1550301dac1f8f5213ab5d72
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/ru/Microsoft.NET.Build.Extensions.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/tr/Microsoft.NET.Build.Extensions.Tasks.resources.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/tr/Microsoft.NET.Build.Extensions.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7b06a8a0846177b2f42641c434c3cf8eb2513b0c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/tr/Microsoft.NET.Build.Extensions.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/zh-Hans/Microsoft.NET.Build.Extensions.Tasks.resources.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/zh-Hans/Microsoft.NET.Build.Extensions.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6eb225ad5f51befec6fb3e47801f9047e79d4deb
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/zh-Hans/Microsoft.NET.Build.Extensions.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/zh-Hant/Microsoft.NET.Build.Extensions.Tasks.resources.dll b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/zh-Hant/Microsoft.NET.Build.Extensions.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e5539483161801855fc2acbc0e0c74b127247ffa
Binary files /dev/null and b/dotnet/sdk/8.0.402/Microsoft/Microsoft.NET.Build.Extensions/tools/net8.0/zh-Hant/Microsoft.NET.Build.Extensions.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/NETCoreSdkRuntimeIdentifierChain.txt b/dotnet/sdk/8.0.402/NETCoreSdkRuntimeIdentifierChain.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6dea54d0aa2d1f18347c93c0b0290d82fde8cb17
--- /dev/null
+++ b/dotnet/sdk/8.0.402/NETCoreSdkRuntimeIdentifierChain.txt
@@ -0,0 +1,6 @@
+linux-x64
+linux
+unix-x64
+unix
+any
+base
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/NuGet.Build.Tasks.Console.runtimeconfig.json b/dotnet/sdk/8.0.402/NuGet.Build.Tasks.Console.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..8963dd83384d70d2c183236cbcce3c118d19ffa3
--- /dev/null
+++ b/dotnet/sdk/8.0.402/NuGet.Build.Tasks.Console.runtimeconfig.json
@@ -0,0 +1,15 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "rollForward": "LatestMajor",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ },
+ "configProperties": {
+ "System.GC.Server": true,
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/NuGet.Build.Tasks.dll b/dotnet/sdk/8.0.402/NuGet.Build.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3870dfb70ee329943167146c0c9582f1cf6e0a71
Binary files /dev/null and b/dotnet/sdk/8.0.402/NuGet.Build.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/NuGet.CommandLine.XPlat.deps.json b/dotnet/sdk/8.0.402/NuGet.CommandLine.XPlat.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..8165bf47c7cbed359a7126e27940f35570e1b3b5
--- /dev/null
+++ b/dotnet/sdk/8.0.402/NuGet.CommandLine.XPlat.deps.json
@@ -0,0 +1,3334 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "NuGet.CommandLine.XPlat.deps.json/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.Build": "17.11.4",
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.Build.NuGetSdkResolver": "6.11.1-rc.2",
+ "Microsoft.Build.Runtime": "17.11.4",
+ "Microsoft.Build.Tasks.Core": "17.11.4",
+ "Microsoft.Build.Utilities.Core": "17.11.4",
+ "Microsoft.CodeAnalysis.CSharp.CodeStyle": "4.11.0-3.24365.8",
+ "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0-preview.23614.1",
+ "Microsoft.CodeAnalysis.VisualBasic.CodeStyle": "4.11.0-3.24365.8",
+ "Microsoft.DiaSymReader.Pdb2Pdb": "1.1.0-beta2-19575-01",
+ "Microsoft.DotNet.Cli": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.XliffTasks": "1.0.0-beta.23475.1",
+ "Microsoft.FSharp.Compiler": "12.8.400-beta.24351.2",
+ "Microsoft.NET.Sdk.Razor.SourceGenerators.Transport": "9.0.0-preview.24420.1",
+ "Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver": "8.0.402-servicing.24466.16",
+ "Microsoft.NET.StringTools": "17.11.4",
+ "Microsoft.Net.Compilers.Toolset": "4.11.0-3.24365.8",
+ "Microsoft.TestPlatform.Build": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.CLI": "17.11.0-release-24352-05",
+ "NuGet.Build.Tasks": "6.11.1-rc.2",
+ "NuGet.Build.Tasks.Console": "6.11.1-rc.2",
+ "NuGet.Common": "6.11.1-rc.2",
+ "NuGet.Localization": "6.11.1-rc.2",
+ "NuGet.ProjectModel": "6.11.1-rc.2",
+ "System.CodeDom": "8.0.0",
+ "System.Resources.Extensions": "8.0.0",
+ "System.Security.Cryptography.ProtectedData": "8.0.0",
+ "System.Text.Encoding.CodePages": "8.0.0",
+ "dotnet-format": "8.3.536002",
+ "tool_msbuild": "8.0.402-servicing.24466.16",
+ "tool_nuget": "8.0.402-servicing.24466.16",
+ "dotnet": "8.0.402.0"
+ },
+ "runtime": {}
+ },
+ "dotnet-format/8.3.536002": {},
+ "Microsoft.ApplicationInsights/2.21.0": {
+ "dependencies": {
+ "System.Diagnostics.DiagnosticSource": "5.0.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.ApplicationInsights.dll": {
+ "assemblyVersion": "2.21.0.429",
+ "fileVersion": "2.21.0.429"
+ }
+ }
+ },
+ "Microsoft.AspNetCore.DeveloperCertificates.XPlat/8.0.8-servicing.24369.8": {
+ "runtime": {
+ "lib/net8.0/Microsoft.AspNetCore.DeveloperCertificates.XPlat.dll": {
+ "assemblyVersion": "8.0.8.0",
+ "fileVersion": "8.0.824.36908"
+ }
+ }
+ },
+ "Microsoft.Build/17.11.4": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.NET.StringTools": "17.11.4",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Configuration.ConfigurationManager": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0",
+ "System.Reflection.MetadataLoadContext": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.Build.Framework/17.11.4": {
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.Framework.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.Build.Localization/17.11.4-preview-24406-09": {
+ "resources": {
+ "lib/netstandard1.3/cs/MSBuild.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard1.3/cs/Microsoft.Build.Tasks.Core.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard1.3/cs/Microsoft.Build.Utilities.Core.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard1.3/cs/Microsoft.Build.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard1.3/de/MSBuild.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard1.3/de/Microsoft.Build.Tasks.Core.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard1.3/de/Microsoft.Build.Utilities.Core.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard1.3/de/Microsoft.Build.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard1.3/es/MSBuild.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard1.3/es/Microsoft.Build.Tasks.Core.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard1.3/es/Microsoft.Build.Utilities.Core.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard1.3/es/Microsoft.Build.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard1.3/fr/MSBuild.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard1.3/fr/Microsoft.Build.Tasks.Core.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard1.3/fr/Microsoft.Build.Utilities.Core.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard1.3/fr/Microsoft.Build.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard1.3/it/MSBuild.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard1.3/it/Microsoft.Build.Tasks.Core.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard1.3/it/Microsoft.Build.Utilities.Core.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard1.3/it/Microsoft.Build.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard1.3/ja/MSBuild.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard1.3/ja/Microsoft.Build.Tasks.Core.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard1.3/ja/Microsoft.Build.Utilities.Core.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard1.3/ja/Microsoft.Build.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard1.3/ko/MSBuild.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard1.3/ko/Microsoft.Build.Tasks.Core.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard1.3/ko/Microsoft.Build.Utilities.Core.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard1.3/ko/Microsoft.Build.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard1.3/pl/MSBuild.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard1.3/pl/Microsoft.Build.Tasks.Core.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard1.3/pl/Microsoft.Build.Utilities.Core.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard1.3/pl/Microsoft.Build.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard1.3/pt-BR/MSBuild.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard1.3/pt-BR/Microsoft.Build.Tasks.Core.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard1.3/pt-BR/Microsoft.Build.Utilities.Core.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard1.3/pt-BR/Microsoft.Build.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard1.3/ru/MSBuild.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard1.3/ru/Microsoft.Build.Tasks.Core.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard1.3/ru/Microsoft.Build.Utilities.Core.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard1.3/ru/Microsoft.Build.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard1.3/tr/MSBuild.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard1.3/tr/Microsoft.Build.Tasks.Core.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard1.3/tr/Microsoft.Build.Utilities.Core.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard1.3/tr/Microsoft.Build.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard1.3/zh-Hans/MSBuild.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard1.3/zh-Hans/Microsoft.Build.Tasks.Core.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard1.3/zh-Hans/Microsoft.Build.Utilities.Core.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard1.3/zh-Hans/Microsoft.Build.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard1.3/zh-Hant/MSBuild.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard1.3/zh-Hant/Microsoft.Build.Tasks.Core.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard1.3/zh-Hant/Microsoft.Build.Utilities.Core.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard1.3/zh-Hant/Microsoft.Build.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.Build.NuGetSdkResolver/6.11.1-rc.2": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.11.4",
+ "NuGet.Commands": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.NuGetSdkResolver.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "Microsoft.Build.Runtime/17.11.4": {
+ "dependencies": {
+ "Microsoft.Build": "17.11.4",
+ "Microsoft.Build.Tasks.Core": "17.11.4",
+ "System.CodeDom": "8.0.0",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Configuration.ConfigurationManager": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0",
+ "System.Reflection.MetadataLoadContext": "8.0.0",
+ "System.Resources.Extensions": "8.0.0",
+ "System.Security.Cryptography.Pkcs": "8.0.0",
+ "System.Security.Cryptography.Xml": "8.0.1"
+ }
+ },
+ "Microsoft.Build.Tasks.Core/17.11.4": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.Build.Utilities.Core": "17.11.4",
+ "Microsoft.NET.StringTools": "17.11.4",
+ "System.CodeDom": "8.0.0",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Configuration.ConfigurationManager": "8.0.0",
+ "System.Resources.Extensions": "8.0.0",
+ "System.Security.Cryptography.Pkcs": "8.0.0",
+ "System.Security.Cryptography.Xml": "8.0.1"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.Tasks.Core.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.Build.Utilities.Core/17.11.4": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.NET.StringTools": "17.11.4",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Configuration.ConfigurationManager": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.Utilities.Core.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp.CodeStyle/4.11.0-3.24365.8": {},
+ "Microsoft.CodeAnalysis.NetAnalyzers/8.0.0-preview.23614.1": {},
+ "Microsoft.CodeAnalysis.VisualBasic.CodeStyle/4.11.0-3.24365.8": {},
+ "Microsoft.Deployment.DotNet.Releases/2.0.0-preview.1.23463.1": {
+ "dependencies": {
+ "System.Text.Json": "8.0.4"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.Deployment.DotNet.Releases.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.23.46301"
+ }
+ },
+ "resources": {
+ "lib/netstandard2.0/cs/Microsoft.Deployment.DotNet.Releases.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/de/Microsoft.Deployment.DotNet.Releases.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/Microsoft.Deployment.DotNet.Releases.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fr/Microsoft.Deployment.DotNet.Releases.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/it/Microsoft.Deployment.DotNet.Releases.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/ja/Microsoft.Deployment.DotNet.Releases.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ko/Microsoft.Deployment.DotNet.Releases.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/pl/Microsoft.Deployment.DotNet.Releases.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pt-BR/Microsoft.Deployment.DotNet.Releases.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/ru/Microsoft.Deployment.DotNet.Releases.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/tr/Microsoft.Deployment.DotNet.Releases.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/zh-Hans/Microsoft.Deployment.DotNet.Releases.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hant/Microsoft.Deployment.DotNet.Releases.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {},
+ "Microsoft.DotNet.XliffTasks/1.0.0-beta.23475.1": {},
+ "Microsoft.Extensions.Configuration/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Configuration.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Configuration.Binder.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.324.11423"
+ }
+ }
+ },
+ "Microsoft.Extensions.DependencyModel/8.0.1": {
+ "dependencies": {
+ "System.Text.Encodings.Web": "8.0.0",
+ "System.Text.Json": "8.0.4"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.DependencyModel.dll": {
+ "assemblyVersion": "8.0.0.1",
+ "fileVersion": "8.0.724.31311"
+ }
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.FileSystemGlobbing/8.0.0": {
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Logging/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "8.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Options": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Logging.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions/8.0.1": {
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.324.11423"
+ }
+ }
+ },
+ "Microsoft.Extensions.Logging.Configuration/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "8.0.0",
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Configuration.Binder": "8.0.0",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Logging": "8.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Options": "8.0.0",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Logging.Configuration.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Logging.Console/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Logging": "8.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Logging.Configuration": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0",
+ "System.Text.Json": "8.0.4"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Logging.Console.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Options/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Options.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Configuration.Binder": "8.0.0",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Options": "8.0.0",
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Primitives/8.0.0": {
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Primitives.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.FSharp.Compiler/12.8.400-beta.24351.2": {},
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24365.8": {},
+ "Microsoft.NET.HostModel/8.0.8-servicing.24366.12": {
+ "dependencies": {
+ "System.Reflection.Metadata": "8.0.0",
+ "System.Text.Json": "8.0.4"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.NET.HostModel.dll": {
+ "assemblyVersion": "8.0.8.0",
+ "fileVersion": "8.0.824.36612"
+ }
+ }
+ },
+ "Microsoft.NET.Sdk.Razor.SourceGenerators.Transport/9.0.0-preview.24420.1": {},
+ "Microsoft.NET.StringTools/17.11.4": {
+ "runtime": {
+ "lib/net8.0/Microsoft.NET.StringTools.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.NETCore.Platforms/1.1.0": {},
+ "Microsoft.NETCore.Targets/2.1.0": {},
+ "Microsoft.TemplateEngine.Abstractions/8.0.400-preview.24360.3": {
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.1"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TemplateEngine.Abstractions.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.36003"
+ }
+ }
+ },
+ "Microsoft.TemplateEngine.Core/8.0.400-preview.24360.3": {
+ "dependencies": {
+ "Microsoft.TemplateEngine.Abstractions": "8.0.400-preview.24360.3",
+ "Microsoft.TemplateEngine.Core.Contracts": "8.0.400-preview.24360.3",
+ "Microsoft.TemplateEngine.Utils": "8.0.400-preview.24360.3"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TemplateEngine.Core.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.36003"
+ }
+ },
+ "resources": {
+ "lib/netstandard2.0/cs/Microsoft.TemplateEngine.Core.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/de/Microsoft.TemplateEngine.Core.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/Microsoft.TemplateEngine.Core.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fr/Microsoft.TemplateEngine.Core.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/it/Microsoft.TemplateEngine.Core.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/ja/Microsoft.TemplateEngine.Core.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ko/Microsoft.TemplateEngine.Core.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/pl/Microsoft.TemplateEngine.Core.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pt-BR/Microsoft.TemplateEngine.Core.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/ru/Microsoft.TemplateEngine.Core.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/tr/Microsoft.TemplateEngine.Core.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/zh-Hans/Microsoft.TemplateEngine.Core.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hant/Microsoft.TemplateEngine.Core.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.TemplateEngine.Core.Contracts/8.0.400-preview.24360.3": {
+ "dependencies": {
+ "Microsoft.TemplateEngine.Abstractions": "8.0.400-preview.24360.3"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TemplateEngine.Core.Contracts.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.36003"
+ }
+ }
+ },
+ "Microsoft.TemplateEngine.Edge/8.0.400-preview.24360.3": {
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.1",
+ "Microsoft.TemplateEngine.Abstractions": "8.0.400-preview.24360.3",
+ "Microsoft.TemplateEngine.Utils": "8.0.400-preview.24360.3",
+ "Newtonsoft.Json": "13.0.3",
+ "NuGet.Configuration": "6.11.1-rc.2",
+ "NuGet.Credentials": "6.11.1-rc.2",
+ "NuGet.Protocol": "6.11.1-rc.2",
+ "System.IO.Compression": "4.3.0",
+ "System.Runtime.Loader": "4.3.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TemplateEngine.Edge.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.36003"
+ }
+ },
+ "resources": {
+ "lib/netstandard2.0/cs/Microsoft.TemplateEngine.Edge.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/de/Microsoft.TemplateEngine.Edge.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/Microsoft.TemplateEngine.Edge.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fr/Microsoft.TemplateEngine.Edge.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/it/Microsoft.TemplateEngine.Edge.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/ja/Microsoft.TemplateEngine.Edge.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ko/Microsoft.TemplateEngine.Edge.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/pl/Microsoft.TemplateEngine.Edge.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pt-BR/Microsoft.TemplateEngine.Edge.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/ru/Microsoft.TemplateEngine.Edge.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/tr/Microsoft.TemplateEngine.Edge.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/zh-Hans/Microsoft.TemplateEngine.Edge.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hant/Microsoft.TemplateEngine.Edge.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.TemplateEngine.Orchestrator.RunnableProjects/8.0.400-preview.24360.3": {
+ "dependencies": {
+ "Microsoft.TemplateEngine.Core": "8.0.400-preview.24360.3",
+ "Microsoft.TemplateEngine.Core.Contracts": "8.0.400-preview.24360.3",
+ "Newtonsoft.Json": "13.0.3"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.36003"
+ }
+ },
+ "resources": {
+ "lib/netstandard2.0/cs/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/de/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fr/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/it/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/ja/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ko/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/pl/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pt-BR/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/ru/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/tr/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/zh-Hans/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hant/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.TemplateEngine.Utils/8.0.400-preview.24360.3": {
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.1",
+ "Microsoft.TemplateEngine.Abstractions": "8.0.400-preview.24360.3",
+ "Newtonsoft.Json": "13.0.3"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TemplateEngine.Utils.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.36003"
+ }
+ },
+ "resources": {
+ "lib/netstandard2.0/cs/Microsoft.TemplateEngine.Utils.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/de/Microsoft.TemplateEngine.Utils.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/Microsoft.TemplateEngine.Utils.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fr/Microsoft.TemplateEngine.Utils.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/it/Microsoft.TemplateEngine.Utils.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/ja/Microsoft.TemplateEngine.Utils.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ko/Microsoft.TemplateEngine.Utils.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/pl/Microsoft.TemplateEngine.Utils.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pt-BR/Microsoft.TemplateEngine.Utils.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/ru/Microsoft.TemplateEngine.Utils.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/tr/Microsoft.TemplateEngine.Utils.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/zh-Hans/Microsoft.TemplateEngine.Utils.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hant/Microsoft.TemplateEngine.Utils.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.TemplateSearch.Common/8.0.400-preview.24360.3": {
+ "dependencies": {
+ "Microsoft.TemplateEngine.Abstractions": "8.0.400-preview.24360.3",
+ "Newtonsoft.Json": "13.0.3"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TemplateSearch.Common.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.36003"
+ }
+ },
+ "resources": {
+ "lib/netstandard2.0/cs/Microsoft.TemplateSearch.Common.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/de/Microsoft.TemplateSearch.Common.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/Microsoft.TemplateSearch.Common.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fr/Microsoft.TemplateSearch.Common.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/it/Microsoft.TemplateSearch.Common.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/ja/Microsoft.TemplateSearch.Common.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ko/Microsoft.TemplateSearch.Common.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/pl/Microsoft.TemplateSearch.Common.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pt-BR/Microsoft.TemplateSearch.Common.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/ru/Microsoft.TemplateSearch.Common.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/tr/Microsoft.TemplateSearch.Common.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/zh-Hans/Microsoft.TemplateSearch.Common.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hant/Microsoft.TemplateSearch.Common.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.TestPlatform.Build/17.11.0-release-24352-05": {
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TestPlatform.Build.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "17.1100.24.35205"
+ }
+ },
+ "resources": {
+ "lib/netstandard2.0/cs/Microsoft.TestPlatform.Build.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/de/Microsoft.TestPlatform.Build.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/Microsoft.TestPlatform.Build.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fr/Microsoft.TestPlatform.Build.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/it/Microsoft.TestPlatform.Build.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/ja/Microsoft.TestPlatform.Build.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ko/Microsoft.TestPlatform.Build.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/pl/Microsoft.TestPlatform.Build.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pt-BR/Microsoft.TestPlatform.Build.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/ru/Microsoft.TestPlatform.Build.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/tr/Microsoft.TestPlatform.Build.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/zh-Hans/Microsoft.TestPlatform.Build.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hant/Microsoft.TestPlatform.Build.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ },
+ "runtimeTargets": {}
+ },
+ "Microsoft.TestPlatform.CLI/17.11.0-release-24352-05": {},
+ "Microsoft.Windows.CsWin32/0.3.49-beta": {
+ "dependencies": {
+ "Microsoft.Windows.SDK.Win32Docs": "0.1.42-alpha",
+ "Microsoft.Windows.SDK.Win32Metadata": "55.0.45-preview",
+ "Microsoft.Windows.WDK.Win32Metadata": "0.9.9-experimental",
+ "System.Memory": "4.5.5",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ }
+ },
+ "Microsoft.Windows.SDK.Win32Docs/0.1.42-alpha": {},
+ "Microsoft.Windows.SDK.Win32Metadata/55.0.45-preview": {},
+ "Microsoft.Windows.WDK.Win32Metadata/0.9.9-experimental": {
+ "dependencies": {
+ "Microsoft.Windows.SDK.Win32Metadata": "55.0.45-preview"
+ }
+ },
+ "NETStandard.Library/2.0.3": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0"
+ }
+ },
+ "Newtonsoft.Json/13.0.3": {
+ "runtime": {
+ "lib/net6.0/Newtonsoft.Json.dll": {
+ "assemblyVersion": "13.0.0.0",
+ "fileVersion": "13.0.3.27908"
+ }
+ }
+ },
+ "NuGet.Build.Tasks/6.11.1-rc.2": {
+ "dependencies": {
+ "Microsoft.Build.Tasks.Core": "17.11.4",
+ "Microsoft.Build.Utilities.Core": "17.11.4",
+ "NuGet.Commands": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/net8.0/NuGet.Build.Tasks.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ },
+ "runtimeTargets": {}
+ },
+ "NuGet.Build.Tasks.Console/6.11.1-rc.2": {
+ "dependencies": {
+ "Microsoft.Build": "17.11.4",
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.Build.Tasks.Core": "17.11.4",
+ "Microsoft.Build.Utilities.Core": "17.11.4",
+ "NuGet.Build.Tasks": "6.11.1-rc.2"
+ },
+ "runtimeTargets": {}
+ },
+ "NuGet.CommandLine.XPlat/6.11.1-rc.2": {
+ "dependencies": {
+ "Microsoft.Build": "17.11.4",
+ "NuGet.Commands": "6.11.1-rc.2",
+ "System.CommandLine": "2.0.0-beta4.23307.1",
+ "System.Diagnostics.Debug": "4.3.0"
+ },
+ "runtime": {
+ "lib/net8.0/NuGet.CommandLine.XPlat.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Commands/6.11.1-rc.2": {
+ "dependencies": {
+ "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
+ "Microsoft.Extensions.FileSystemGlobbing": "8.0.0",
+ "NuGet.Credentials": "6.11.1-rc.2",
+ "NuGet.ProjectModel": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.Commands.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Common/6.11.1-rc.2": {
+ "dependencies": {
+ "NuGet.Frameworks": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Common.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Configuration/6.11.1-rc.2": {
+ "dependencies": {
+ "NuGet.Common": "6.11.1-rc.2",
+ "System.Security.Cryptography.ProtectedData": "8.0.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Configuration.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Credentials/6.11.1-rc.2": {
+ "dependencies": {
+ "NuGet.Protocol": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.Credentials.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.DependencyResolver.Core/6.11.1-rc.2": {
+ "dependencies": {
+ "NuGet.Configuration": "6.11.1-rc.2",
+ "NuGet.LibraryModel": "6.11.1-rc.2",
+ "NuGet.Protocol": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.DependencyResolver.Core.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Frameworks/6.11.1-rc.2": {
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Frameworks.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.LibraryModel/6.11.1-rc.2": {
+ "dependencies": {
+ "NuGet.Common": "6.11.1-rc.2",
+ "NuGet.Versioning": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/netstandard2.0/NuGet.LibraryModel.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Localization/6.11.1-rc.2": {
+ "resources": {
+ "lib/netstandard2.0/cs/NuGet.Build.Tasks.Console.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/cs/NuGet.Build.Tasks.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/cs/NuGet.CommandLine.XPlat.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/cs/NuGet.Commands.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/cs/NuGet.Common.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/cs/NuGet.Configuration.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/cs/NuGet.Credentials.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/cs/NuGet.DependencyResolver.Core.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/cs/NuGet.Frameworks.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/cs/NuGet.LibraryModel.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/cs/NuGet.Packaging.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/cs/NuGet.ProjectModel.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/cs/NuGet.Protocol.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/cs/NuGet.Versioning.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/de/NuGet.Build.Tasks.Console.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/de/NuGet.Build.Tasks.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/de/NuGet.CommandLine.XPlat.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/de/NuGet.Commands.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/de/NuGet.Common.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/de/NuGet.Configuration.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/de/NuGet.Credentials.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/de/NuGet.DependencyResolver.Core.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/de/NuGet.Frameworks.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/de/NuGet.LibraryModel.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/de/NuGet.Packaging.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/de/NuGet.ProjectModel.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/de/NuGet.Protocol.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/de/NuGet.Versioning.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/NuGet.Build.Tasks.Console.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/es/NuGet.Build.Tasks.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/es/NuGet.CommandLine.XPlat.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/es/NuGet.Commands.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/es/NuGet.Common.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/es/NuGet.Configuration.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/es/NuGet.Credentials.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/es/NuGet.DependencyResolver.Core.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/es/NuGet.Frameworks.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/es/NuGet.LibraryModel.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/es/NuGet.Packaging.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/es/NuGet.ProjectModel.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/es/NuGet.Protocol.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/es/NuGet.Versioning.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fr/NuGet.Build.Tasks.Console.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/fr/NuGet.Build.Tasks.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/fr/NuGet.CommandLine.XPlat.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/fr/NuGet.Commands.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/fr/NuGet.Common.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/fr/NuGet.Configuration.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/fr/NuGet.Credentials.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/fr/NuGet.DependencyResolver.Core.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/fr/NuGet.Frameworks.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/fr/NuGet.LibraryModel.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/fr/NuGet.Packaging.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/fr/NuGet.ProjectModel.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/fr/NuGet.Protocol.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/fr/NuGet.Versioning.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/it/NuGet.Build.Tasks.Console.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/it/NuGet.Build.Tasks.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/it/NuGet.CommandLine.XPlat.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/it/NuGet.Commands.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/it/NuGet.Common.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/it/NuGet.Configuration.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/it/NuGet.Credentials.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/it/NuGet.DependencyResolver.Core.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/it/NuGet.Frameworks.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/it/NuGet.LibraryModel.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/it/NuGet.Packaging.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/it/NuGet.ProjectModel.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/it/NuGet.Protocol.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/it/NuGet.Versioning.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/ja/NuGet.Build.Tasks.Console.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ja/NuGet.Build.Tasks.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ja/NuGet.CommandLine.XPlat.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ja/NuGet.Commands.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ja/NuGet.Common.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ja/NuGet.Configuration.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ja/NuGet.Credentials.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ja/NuGet.DependencyResolver.Core.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ja/NuGet.Frameworks.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ja/NuGet.LibraryModel.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ja/NuGet.Packaging.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ja/NuGet.ProjectModel.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ja/NuGet.Protocol.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ja/NuGet.Versioning.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ko/NuGet.Build.Tasks.Console.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/ko/NuGet.Build.Tasks.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/ko/NuGet.CommandLine.XPlat.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/ko/NuGet.Commands.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/ko/NuGet.Common.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/ko/NuGet.Configuration.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/ko/NuGet.Credentials.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/ko/NuGet.DependencyResolver.Core.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/ko/NuGet.Frameworks.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/ko/NuGet.LibraryModel.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/ko/NuGet.Packaging.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/ko/NuGet.ProjectModel.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/ko/NuGet.Protocol.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/ko/NuGet.Versioning.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/pl/NuGet.Build.Tasks.Console.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pl/NuGet.Build.Tasks.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pl/NuGet.CommandLine.XPlat.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pl/NuGet.Commands.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pl/NuGet.Common.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pl/NuGet.Configuration.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pl/NuGet.Credentials.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pl/NuGet.DependencyResolver.Core.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pl/NuGet.Frameworks.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pl/NuGet.LibraryModel.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pl/NuGet.Packaging.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pl/NuGet.ProjectModel.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pl/NuGet.Protocol.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pl/NuGet.Versioning.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pt-BR/NuGet.Build.Tasks.Console.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/pt-BR/NuGet.Build.Tasks.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/pt-BR/NuGet.CommandLine.XPlat.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/pt-BR/NuGet.Commands.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/pt-BR/NuGet.Common.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/pt-BR/NuGet.Configuration.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/pt-BR/NuGet.Credentials.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/pt-BR/NuGet.DependencyResolver.Core.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/pt-BR/NuGet.Frameworks.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/pt-BR/NuGet.LibraryModel.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/pt-BR/NuGet.Packaging.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/pt-BR/NuGet.ProjectModel.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/pt-BR/NuGet.Protocol.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/pt-BR/NuGet.Versioning.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/ru/NuGet.Build.Tasks.Console.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/ru/NuGet.Build.Tasks.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/ru/NuGet.CommandLine.XPlat.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/ru/NuGet.Commands.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/ru/NuGet.Common.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/ru/NuGet.Configuration.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/ru/NuGet.Credentials.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/ru/NuGet.DependencyResolver.Core.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/ru/NuGet.Frameworks.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/ru/NuGet.LibraryModel.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/ru/NuGet.Packaging.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/ru/NuGet.ProjectModel.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/ru/NuGet.Protocol.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/ru/NuGet.Versioning.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/tr/NuGet.Build.Tasks.Console.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/tr/NuGet.Build.Tasks.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/tr/NuGet.CommandLine.XPlat.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/tr/NuGet.Commands.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/tr/NuGet.Common.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/tr/NuGet.Configuration.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/tr/NuGet.Credentials.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/tr/NuGet.DependencyResolver.Core.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/tr/NuGet.Frameworks.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/tr/NuGet.LibraryModel.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/tr/NuGet.Packaging.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/tr/NuGet.ProjectModel.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/tr/NuGet.Protocol.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/tr/NuGet.Versioning.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/zh-Hans/NuGet.Build.Tasks.Console.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hans/NuGet.Build.Tasks.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hans/NuGet.CommandLine.XPlat.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hans/NuGet.Commands.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hans/NuGet.Common.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hans/NuGet.Configuration.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hans/NuGet.Credentials.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hans/NuGet.DependencyResolver.Core.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hans/NuGet.Frameworks.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hans/NuGet.LibraryModel.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hans/NuGet.Packaging.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hans/NuGet.ProjectModel.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hans/NuGet.Protocol.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hans/NuGet.Versioning.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hant/NuGet.Build.Tasks.Console.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard2.0/zh-Hant/NuGet.Build.Tasks.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard2.0/zh-Hant/NuGet.CommandLine.XPlat.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard2.0/zh-Hant/NuGet.Commands.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard2.0/zh-Hant/NuGet.Common.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard2.0/zh-Hant/NuGet.Configuration.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard2.0/zh-Hant/NuGet.Credentials.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard2.0/zh-Hant/NuGet.DependencyResolver.Core.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard2.0/zh-Hant/NuGet.Frameworks.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard2.0/zh-Hant/NuGet.LibraryModel.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard2.0/zh-Hant/NuGet.Packaging.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard2.0/zh-Hant/NuGet.ProjectModel.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard2.0/zh-Hant/NuGet.Protocol.resources.dll": {
+ "locale": "zh-Hant"
+ },
+ "lib/netstandard2.0/zh-Hant/NuGet.Versioning.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "NuGet.Packaging/6.11.1-rc.2": {
+ "dependencies": {
+ "Newtonsoft.Json": "13.0.3",
+ "NuGet.Configuration": "6.11.1-rc.2",
+ "NuGet.Versioning": "6.11.1-rc.2",
+ "System.Security.Cryptography.Pkcs": "8.0.0"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.Packaging.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.ProjectModel/6.11.1-rc.2": {
+ "dependencies": {
+ "NuGet.DependencyResolver.Core": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.ProjectModel.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Protocol/6.11.1-rc.2": {
+ "dependencies": {
+ "NuGet.Packaging": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.Protocol.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Versioning/6.11.1-rc.2": {
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Versioning.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "runtime.native.System/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0"
+ }
+ },
+ "runtime.native.System.IO.Compression/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0"
+ }
+ },
+ "System.Buffers/4.3.0": {
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.CodeDom/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.CodeDom.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Collections/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Immutable/8.0.0": {},
+ "System.CommandLine/2.0.0-beta4.23307.1": {
+ "runtime": {
+ "lib/net7.0/System.CommandLine.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.23.30701"
+ }
+ },
+ "resources": {
+ "lib/net7.0/cs/System.CommandLine.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net7.0/de/System.CommandLine.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net7.0/es/System.CommandLine.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net7.0/fr/System.CommandLine.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net7.0/it/System.CommandLine.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net7.0/ja/System.CommandLine.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net7.0/ko/System.CommandLine.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net7.0/pl/System.CommandLine.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net7.0/pt-BR/System.CommandLine.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net7.0/ru/System.CommandLine.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net7.0/tr/System.CommandLine.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net7.0/zh-Hans/System.CommandLine.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net7.0/zh-Hant/System.CommandLine.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "System.Configuration.ConfigurationManager/8.0.0": {
+ "dependencies": {
+ "System.Diagnostics.EventLog": "8.0.0",
+ "System.Security.Cryptography.ProtectedData": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.Configuration.ConfigurationManager.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Diagnostics.Debug/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource/5.0.0": {},
+ "System.Diagnostics.EventLog/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.Diagnostics.EventLog.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "0.0.0.0"
+ },
+ "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Diagnostics.Tracing/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Formats.Asn1/8.0.0": {},
+ "System.Globalization/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.Compression/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.Memory/4.5.5": {},
+ "System.Reflection/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0"
+ }
+ },
+ "System.Reflection.MetadataLoadContext/8.0.0": {
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.Reflection.MetadataLoadContext.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Reflection.Primitives/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Resources.Extensions/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.Resources.Extensions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Resources.ResourceManager/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.0.0": {},
+ "System.Runtime.Extensions/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.Loader/4.3.0": {
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Pkcs/8.0.0": {
+ "dependencies": {
+ "System.Formats.Asn1": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Security.Cryptography.ProtectedData/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.Security.Cryptography.ProtectedData.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Security.Cryptography.Xml/8.0.1": {
+ "dependencies": {
+ "System.Security.Cryptography.Pkcs": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.Security.Cryptography.Xml.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.524.21615"
+ }
+ }
+ },
+ "System.ServiceProcess.ServiceController/8.0.0": {
+ "dependencies": {
+ "System.Diagnostics.EventLog": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.ServiceProcess.ServiceController.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net8.0/System.ServiceProcess.ServiceController.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Text.Encoding/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.CodePages/8.0.0": {},
+ "System.Text.Encodings.Web/8.0.0": {},
+ "System.Text.Json/8.0.4": {
+ "dependencies": {
+ "System.Text.Encodings.Web": "8.0.0"
+ }
+ },
+ "System.Threading/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Wcwidth.Sources/1.0.0": {},
+ "Microsoft.DotNet.Cli/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.ApplicationInsights": "2.21.0",
+ "Microsoft.AspNetCore.DeveloperCertificates.XPlat": "8.0.8-servicing.24369.8",
+ "Microsoft.Build": "17.11.4",
+ "Microsoft.Deployment.DotNet.Releases": "2.0.0-preview.1.23463.1",
+ "Microsoft.DotNet.Cli.Sln.Internal": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.Cli.Utils": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.Configurer": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.InternalAbstractions": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.NativeWrapper": "8.0.402-servicing.24466.16",
+ "Microsoft.NET.HostModel": "8.0.8-servicing.24366.12",
+ "Microsoft.TemplateEngine.Cli": "8.0.402-servicing.24466.16",
+ "Microsoft.TemplateEngine.Orchestrator.RunnableProjects": "8.0.400-preview.24360.3",
+ "Microsoft.Win32.Msi": "8.0.402-servicing.24466.16",
+ "Microsoft.Windows.CsWin32": "0.3.49-beta",
+ "NETStandard.Library": "2.0.3",
+ "Newtonsoft.Json": "13.0.3",
+ "System.CommandLine": "2.0.0-beta4.23307.1",
+ "System.ServiceProcess.ServiceController": "8.0.0",
+ "microsoft.dotnet.templateLocator": "8.0.402-servicing.24466.16"
+ },
+ "runtime": {
+ "dotnet.dll": {}
+ },
+ "resources": {
+ "cs/dotnet.resources.dll": {
+ "locale": "cs"
+ },
+ "de/dotnet.resources.dll": {
+ "locale": "de"
+ },
+ "es/dotnet.resources.dll": {
+ "locale": "es"
+ },
+ "fr/dotnet.resources.dll": {
+ "locale": "fr"
+ },
+ "it/dotnet.resources.dll": {
+ "locale": "it"
+ },
+ "ja/dotnet.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/dotnet.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/dotnet.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/dotnet.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/dotnet.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/dotnet.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/dotnet.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/dotnet.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.DotNet.Cli.Sln.Internal/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.DotNet.Cli.Utils": "8.0.402-servicing.24466.16"
+ },
+ "runtime": {
+ "Microsoft.DotNet.Cli.Sln.Internal.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.DotNet.Cli.Sln.Internal.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.DotNet.Cli.Sln.Internal.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.DotNet.Cli.Sln.Internal.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.DotNet.Cli.Sln.Internal.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.DotNet.Cli.Sln.Internal.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.DotNet.Cli.Sln.Internal.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.DotNet.Cli.Sln.Internal.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.DotNet.Cli.Sln.Internal.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.DotNet.Cli.Sln.Internal.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.DotNet.Cli.Sln.Internal.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.DotNet.Cli.Sln.Internal.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.DotNet.Cli.Sln.Internal.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.DotNet.Cli.Sln.Internal.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.DotNet.Cli.Utils/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.Build.Runtime": "17.11.4",
+ "Microsoft.Extensions.DependencyModel": "8.0.1",
+ "NuGet.Frameworks": "6.11.1-rc.2",
+ "NuGet.Packaging": "6.11.1-rc.2",
+ "NuGet.ProjectModel": "6.11.1-rc.2",
+ "NuGet.Versioning": "6.11.1-rc.2",
+ "System.CommandLine": "2.0.0-beta4.23307.1"
+ },
+ "runtime": {
+ "Microsoft.DotNet.Cli.Utils.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.DotNet.Cli.Utils.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.DotNet.Cli.Utils.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.DotNet.Cli.Utils.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.DotNet.Cli.Utils.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.DotNet.Cli.Utils.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.DotNet.Cli.Utils.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.DotNet.Cli.Utils.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.DotNet.Cli.Utils.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.DotNet.Cli.Utils.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.DotNet.Cli.Utils.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.DotNet.Cli.Utils.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.DotNet.Cli.Utils.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.DotNet.Cli.Utils.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.DotNet.Configurer/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.DotNet.Cli.Utils": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.InternalAbstractions": "8.0.402-servicing.24466.16",
+ "NuGet.Common": "6.11.1-rc.2",
+ "NuGet.Configuration": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "Microsoft.DotNet.Configurer.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.DotNet.Configurer.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.DotNet.Configurer.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.DotNet.Configurer.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.DotNet.Configurer.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.DotNet.Configurer.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.DotNet.Configurer.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.DotNet.Configurer.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.DotNet.Configurer.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.DotNet.Configurer.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.DotNet.Configurer.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.DotNet.Configurer.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.DotNet.Configurer.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.DotNet.Configurer.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.DotNet.InternalAbstractions/8.0.402-servicing.24466.16": {
+ "runtime": {
+ "Microsoft.DotNet.InternalAbstractions.dll": {}
+ }
+ },
+ "Microsoft.DotNet.NativeWrapper/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.Deployment.DotNet.Releases": "2.0.0-preview.1.23463.1"
+ },
+ "runtime": {
+ "Microsoft.DotNet.NativeWrapper.dll": {}
+ }
+ },
+ "microsoft.dotnet.templateLocator/8.0.402-servicing.24466.16": {
+ "runtime": {
+ "Microsoft.DotNet.TemplateLocator.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.DotNet.TemplateLocator.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.DotNet.TemplateLocator.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.DotNet.TemplateLocator.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.DotNet.TemplateLocator.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.DotNet.TemplateLocator.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.DotNet.TemplateLocator.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.DotNet.TemplateLocator.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.DotNet.TemplateLocator.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.DotNet.TemplateLocator.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.DotNet.TemplateLocator.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.DotNet.TemplateLocator.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.DotNet.TemplateLocator.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.DotNet.TemplateLocator.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.NET.Sdk.WorkloadManifestReader/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.Deployment.DotNet.Releases": "2.0.0-preview.1.23463.1",
+ "System.Text.Json": "8.0.4"
+ },
+ "runtime": {
+ "Microsoft.NET.Sdk.WorkloadManifestReader.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.DotNet.Cli.Utils": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.NativeWrapper": "8.0.402-servicing.24466.16",
+ "Microsoft.NET.Sdk.WorkloadManifestReader": "8.0.402-servicing.24466.16"
+ },
+ "runtime": {
+ "Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.dll": {}
+ }
+ },
+ "Microsoft.TemplateEngine.Cli/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.DotNet.Cli.Utils": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.Configurer": "8.0.402-servicing.24466.16",
+ "Microsoft.Extensions.Logging.Console": "8.0.0",
+ "Microsoft.TemplateEngine.Edge": "8.0.400-preview.24360.3",
+ "Microsoft.TemplateSearch.Common": "8.0.400-preview.24360.3",
+ "System.CommandLine": "2.0.0-beta4.23307.1",
+ "Wcwidth.Sources": "1.0.0"
+ },
+ "runtime": {
+ "Microsoft.TemplateEngine.Cli.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.TemplateEngine.Cli.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.TemplateEngine.Cli.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.TemplateEngine.Cli.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.TemplateEngine.Cli.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.TemplateEngine.Cli.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.TemplateEngine.Cli.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.TemplateEngine.Cli.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.TemplateEngine.Cli.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.TemplateEngine.Cli.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.TemplateEngine.Cli.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.TemplateEngine.Cli.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.TemplateEngine.Cli.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.TemplateEngine.Cli.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.Win32.Msi/8.0.402-servicing.24466.16": {
+ "runtime": {
+ "Microsoft.Win32.Msi.dll": {}
+ }
+ },
+ "tool_msbuild/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.Build": "17.11.4",
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.Build.Localization": "17.11.4-preview-24406-09",
+ "Microsoft.Build.Runtime": "17.11.4",
+ "Microsoft.Build.Tasks.Core": "17.11.4",
+ "Microsoft.Build.Utilities.Core": "17.11.4",
+ "Microsoft.NET.StringTools": "17.11.4",
+ "System.Resources.Extensions": "8.0.0"
+ },
+ "runtime": {}
+ },
+ "tool_nuget/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "NuGet.CommandLine.XPlat": "6.11.1-rc.2"
+ },
+ "runtime": {}
+ },
+ "dotnet/8.0.402.0": {
+ "runtime": {
+ "dotnet.dll": {
+ "assemblyVersion": "8.0.402.0",
+ "fileVersion": "8.4.224.46616"
+ }
+ },
+ "resources": {
+ "cs/dotnet.resources.dll": {
+ "locale": "cs"
+ },
+ "de/dotnet.resources.dll": {
+ "locale": "de"
+ },
+ "es/dotnet.resources.dll": {
+ "locale": "es"
+ },
+ "fr/dotnet.resources.dll": {
+ "locale": "fr"
+ },
+ "it/dotnet.resources.dll": {
+ "locale": "it"
+ },
+ "ja/dotnet.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/dotnet.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/dotnet.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/dotnet.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/dotnet.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/dotnet.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/dotnet.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/dotnet.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "MSBuild/15.1.0.0": {
+ "runtime": {
+ "MSBuild.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.DotNet.SdkResolver/8.0.402.0": {
+ "runtime": {
+ "Microsoft.DotNet.SdkResolver.dll": {
+ "assemblyVersion": "8.0.402.0",
+ "fileVersion": "8.4.224.46616"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "NuGet.CommandLine.XPlat.deps.json/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "dotnet-format/8.3.536002": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HOEaUi+7nEKAc/Njlb4G8WjRknGW70RLbq0wGx9JMNhNpCr2py4+eWRyy/AcwwbnZpkdrwTLIXzQCdc8V7x57w==",
+ "path": "dotnet-format/8.3.536002",
+ "hashPath": "dotnet-format.8.3.536002.nupkg.sha512"
+ },
+ "Microsoft.ApplicationInsights/2.21.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-btZEDWAFNo9CoYliMCriSMTX3ruRGZTtYw4mo2XyyfLlowFicYVM2Xszi5evDG95QRYV7MbbH3D2RqVwfZlJHw==",
+ "path": "microsoft.applicationinsights/2.21.0",
+ "hashPath": "microsoft.applicationinsights.2.21.0.nupkg.sha512"
+ },
+ "Microsoft.AspNetCore.DeveloperCertificates.XPlat/8.0.8-servicing.24369.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-NynBEGG82wLLOBiqVH8HzzTg0SmzIS7GB41FpjmmIMQcWDxUbLtbfiOzVp4L6ULMnfS8aR51FclTVWJc9VuoKw==",
+ "path": "microsoft.aspnetcore.developercertificates.xplat/8.0.8-servicing.24369.8",
+ "hashPath": "microsoft.aspnetcore.developercertificates.xplat.8.0.8-servicing.24369.8.nupkg.sha512"
+ },
+ "Microsoft.Build/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-UMC7DfeFEHY2GGHHaghybUuUlLaByFHEFudR2PehMgDBuRuLAUePp1iaa4eFtVzepRzMtIbeSCVJCzzX3NV2Gg==",
+ "path": "microsoft.build/17.11.4",
+ "hashPath": "microsoft.build.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.Build.Framework/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-u28uDihlqxtt8h2dL1ZJOZ7TRkxBK+HGr+3FgQpILVo7Q7gErkw8mYW9R+RM5PtxvZTdYb/4MWDL66vdIsANBQ==",
+ "path": "microsoft.build.framework/17.11.4",
+ "hashPath": "microsoft.build.framework.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.Build.Localization/17.11.4-preview-24406-09": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-LSPBAn0N+7mlpffIz6vSBuppLEQacR46vk+0JZTmKiVekDvvOPTh3gi/4ZKckFMdlRhMqaIF3nP7x05YwT5OlQ==",
+ "path": "microsoft.build.localization/17.11.4-preview-24406-09",
+ "hashPath": "microsoft.build.localization.17.11.4-preview-24406-09.nupkg.sha512"
+ },
+ "Microsoft.Build.NuGetSdkResolver/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-uLdfJHcx+wOpK3NuvmfYTQ63+oe2brdGKbA6TPQRjcGLIElqDdU/dsMInS+lHqmQ79rK4fjHSJCEYsBySGTlTg==",
+ "path": "microsoft.build.nugetsdkresolver/6.11.1-rc.2",
+ "hashPath": "microsoft.build.nugetsdkresolver.6.11.1-rc.2.nupkg.sha512"
+ },
+ "Microsoft.Build.Runtime/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1HrDZhz7P2oK7aadN7JzHCZqIf02did4a8i2l9fqaA9EkdQK8sXpepYuOvEGaEdCWS9jToG42ZtomMrKPKxjKA==",
+ "path": "microsoft.build.runtime/17.11.4",
+ "hashPath": "microsoft.build.runtime.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.Build.Tasks.Core/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-i3a0+1fuIxr3XgqpVBD2gnPRmZNOgYrPZs9sZViQH1HnjCrgxOpTZtdsXV+G7OyO4q05S5nfAQdSHUxNjnoE4A==",
+ "path": "microsoft.build.tasks.core/17.11.4",
+ "hashPath": "microsoft.build.tasks.core.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.Build.Utilities.Core/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-b2CEJMgVuv5fkhaR6TXjgocIa6YQbseowRj15q3/IyH343EPr+CrxXAZs6Xp6uZDE8A3ynsLPlufFUMkjUl37A==",
+ "path": "microsoft.build.utilities.core/17.11.4",
+ "hashPath": "microsoft.build.utilities.core.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.CSharp.CodeStyle/4.11.0-3.24365.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-niH7DBMouAo+dMPQ278iWcsom4L2PDI2ozKMzy0VP38hVmX/E6y0OPsYcC+ZflCUQUoprosces56CnQrS4HDbg==",
+ "path": "microsoft.codeanalysis.csharp.codestyle/4.11.0-3.24365.8",
+ "hashPath": "microsoft.codeanalysis.csharp.codestyle.4.11.0-3.24365.8.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.NetAnalyzers/8.0.0-preview.23614.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-2dmbYPDsW+B7bey/TefoHMR41RSQ+kWCkWrrvyJH7mE6IOG4Y2mewWzh+acH+s3ZUMOo5xt0DboBADBgTiBGXg==",
+ "path": "microsoft.codeanalysis.netanalyzers/8.0.0-preview.23614.1",
+ "hashPath": "microsoft.codeanalysis.netanalyzers.8.0.0-preview.23614.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.VisualBasic.CodeStyle/4.11.0-3.24365.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-upFSFF7ZMYeyRrG7zPQsY6qEtuoLejkZyQkuMyFnzh75yiozJpaNx97gI6DYZNVaRjklBzoP05zBMucVnCUm8A==",
+ "path": "microsoft.codeanalysis.visualbasic.codestyle/4.11.0-3.24365.8",
+ "hashPath": "microsoft.codeanalysis.visualbasic.codestyle.4.11.0-3.24365.8.nupkg.sha512"
+ },
+ "Microsoft.Deployment.DotNet.Releases/2.0.0-preview.1.23463.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kFl9hFWzrV1H1KgTHZn0bNRixsxxeK5m2XHMSWsqaWEnMQTbxkLEpS3UHWInf5lpQffnQvt2uVEJAKJ6wjf4Nw==",
+ "path": "microsoft.deployment.dotnet.releases/2.0.0-preview.1.23463.1",
+ "hashPath": "microsoft.deployment.dotnet.releases.2.0.0-preview.1.23463.1.nupkg.sha512"
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kY6eTNkeWLHvfOjg97Q7tgQKrPpX+Y3fR6fS4nyfpgFLHBxHriLBR4v3e9t71it91gIMEeKUqOqrFJ7Pj48eHA==",
+ "path": "microsoft.diasymreader.pdb2pdb/1.1.0-beta2-19575-01",
+ "hashPath": "microsoft.diasymreader.pdb2pdb.1.1.0-beta2-19575-01.nupkg.sha512"
+ },
+ "Microsoft.DotNet.XliffTasks/1.0.0-beta.23475.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZsVfWaPacITS006a49PPf35ZyzxWEUTUu4FBU6GhT882cs4Ow7ryvjq6yh82nGdXCi4XMjoUm5vl7XDsUW90QQ==",
+ "path": "microsoft.dotnet.xlifftasks/1.0.0-beta.23475.1",
+ "hashPath": "microsoft.dotnet.xlifftasks.1.0.0-beta.23475.1.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Configuration/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==",
+ "path": "microsoft.extensions.configuration/8.0.0",
+ "hashPath": "microsoft.extensions.configuration.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Configuration.Abstractions/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==",
+ "path": "microsoft.extensions.configuration.abstractions/8.0.0",
+ "hashPath": "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Configuration.Binder/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mBMoXLsr5s1y2zOHWmKsE9veDcx8h1x/c3rz4baEdQKTeDcmQAPNbB54Pi/lhFO3K431eEq6PFbMgLaa6PHFfA==",
+ "path": "microsoft.extensions.configuration.binder/8.0.0",
+ "hashPath": "microsoft.extensions.configuration.binder.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.DependencyInjection/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-V8S3bsm50ig6JSyrbcJJ8bW2b9QLGouz+G1miK3UTaOWmMtFwNNNzUf4AleyDWUmTrWMLNnFSLEQtxmxgNQnNQ==",
+ "path": "microsoft.extensions.dependencyinjection/8.0.0",
+ "hashPath": "microsoft.extensions.dependencyinjection.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fGLiCRLMYd00JYpClraLjJTNKLmMJPnqxMaiRzEBIIvevlzxz33mXy39Lkd48hu1G+N21S7QpaO5ZzKsI6FRuA==",
+ "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.1",
+ "hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.1.nupkg.sha512"
+ },
+ "Microsoft.Extensions.DependencyModel/8.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5Ou6varcxLBzQ+Agfm0k0pnH7vrEITYlXMDuE6s7ZHlZHz6/G8XJ3iISZDr5rfwfge6RnXJ1+Wc479mMn52vjA==",
+ "path": "microsoft.extensions.dependencymodel/8.0.1",
+ "hashPath": "microsoft.extensions.dependencymodel.8.0.1.nupkg.sha512"
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==",
+ "path": "microsoft.extensions.fileproviders.abstractions/8.0.0",
+ "hashPath": "microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.FileSystemGlobbing/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==",
+ "path": "microsoft.extensions.filesystemglobbing/8.0.0",
+ "hashPath": "microsoft.extensions.filesystemglobbing.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Logging/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-tvRkov9tAJ3xP51LCv3FJ2zINmv1P8Hi8lhhtcKGqM+ImiTCC84uOPEI4z8Cdq2C3o9e+Aa0Gw0rmrsJD77W+w==",
+ "path": "microsoft.extensions.logging/8.0.0",
+ "hashPath": "microsoft.extensions.logging.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Logging.Abstractions/8.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-RIFgaqoaINxkM2KTOw72dmilDmTrYA0ns2KW4lDz4gZ2+o6IQ894CzmdL3StM2oh7QQq44nCWiqKqc4qUI9Jmg==",
+ "path": "microsoft.extensions.logging.abstractions/8.0.1",
+ "hashPath": "microsoft.extensions.logging.abstractions.8.0.1.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Logging.Configuration/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ixXXV0G/12g6MXK65TLngYN9V5hQQRuV+fZi882WIoVJT7h5JvoYoxTEwCgdqwLjSneqh1O+66gM8sMr9z/rsQ==",
+ "path": "microsoft.extensions.logging.configuration/8.0.0",
+ "hashPath": "microsoft.extensions.logging.configuration.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Logging.Console/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-e+48o7DztoYog+PY430lPxrM4mm3PbA6qucvQtUDDwVo4MO+ejMw7YGc/o2rnxbxj4isPxdfKFzTxvXMwAz83A==",
+ "path": "microsoft.extensions.logging.console/8.0.0",
+ "hashPath": "microsoft.extensions.logging.console.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Options/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JOVOfqpnqlVLUzINQ2fox8evY2SKLYJ3BV8QDe/Jyp21u1T7r45x/R/5QdteURMR5r01GxeJSBBUOCOyaNXA3g==",
+ "path": "microsoft.extensions.options/8.0.0",
+ "hashPath": "microsoft.extensions.options.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==",
+ "path": "microsoft.extensions.options.configurationextensions/8.0.0",
+ "hashPath": "microsoft.extensions.options.configurationextensions.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Primitives/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==",
+ "path": "microsoft.extensions.primitives/8.0.0",
+ "hashPath": "microsoft.extensions.primitives.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.FSharp.Compiler/12.8.400-beta.24351.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-NUf/eYanrGFm7n7OHxjiCDdbvVXLqMwZdrXoqMTu13NQynD3Ku2C5ZMK+h3xE5rszaKSbHKgFki/D9SDofnGJA==",
+ "path": "microsoft.fsharp.compiler/12.8.400-beta.24351.2",
+ "hashPath": "microsoft.fsharp.compiler.12.8.400-beta.24351.2.nupkg.sha512"
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24365.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fvKVAMRbXJpDUvURL6CNmMcgVhzq3pSg5Uc0X0LUHQXaVpFy6sXITjt8xm6vtIkYdusvmHfO6JW48KBDk8/xjw==",
+ "path": "microsoft.net.compilers.toolset/4.11.0-3.24365.8",
+ "hashPath": "microsoft.net.compilers.toolset.4.11.0-3.24365.8.nupkg.sha512"
+ },
+ "Microsoft.NET.HostModel/8.0.8-servicing.24366.12": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-6mvrxgAodQrAEjuVoZw3Tbpg2y6Yy8b6OpalVUvZocs0ADgD/uJAJqs73XEyk4kX8Dv/s1VBumPCRiKBPk2Jgw==",
+ "path": "microsoft.net.hostmodel/8.0.8-servicing.24366.12",
+ "hashPath": "microsoft.net.hostmodel.8.0.8-servicing.24366.12.nupkg.sha512"
+ },
+ "Microsoft.NET.Sdk.Razor.SourceGenerators.Transport/9.0.0-preview.24420.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+dF3UHv9G/+OMlkcWA5hqTOul10dNugPPTUFi13YxH/QNcEReE00lmvmsCnKx9Ecide58ewlfaUxKhcYRNTugg==",
+ "path": "microsoft.net.sdk.razor.sourcegenerators.transport/9.0.0-preview.24420.1",
+ "hashPath": "microsoft.net.sdk.razor.sourcegenerators.transport.9.0.0-preview.24420.1.nupkg.sha512"
+ },
+ "Microsoft.NET.StringTools/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mudqUHhNpeqIdJoUx2YDWZO/I9uEDYVowan89R6wsomfnUJQk6HteoQTlNjZDixhT2B4IXMkMtgZtoceIjLRmA==",
+ "path": "microsoft.net.stringtools/17.11.4",
+ "hashPath": "microsoft.net.stringtools.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.NETCore.Platforms/1.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
+ "path": "microsoft.netcore.platforms/1.1.0",
+ "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
+ },
+ "Microsoft.NETCore.Targets/2.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-x188gIZXOwFXkPXyGavEcPGcR6RGvjFOES2QzskN4gERZjWPN34qhRsZVMC0CLJfQLGSButarcgWxPPM4vmg0w==",
+ "path": "microsoft.netcore.targets/2.1.0",
+ "hashPath": "microsoft.netcore.targets.2.1.0.nupkg.sha512"
+ },
+ "Microsoft.TemplateEngine.Abstractions/8.0.400-preview.24360.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-X3hvdZWNPKMb684/fUdBUHr+8UgUy2VyYXcQD16fQk/IKVsn6u5NGwNlb8OsrJEQbjAY+AclWJ7gUbvUyVHYrg==",
+ "path": "microsoft.templateengine.abstractions/8.0.400-preview.24360.3",
+ "hashPath": "microsoft.templateengine.abstractions.8.0.400-preview.24360.3.nupkg.sha512"
+ },
+ "Microsoft.TemplateEngine.Core/8.0.400-preview.24360.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-uebod1Ovaj8eHq/t4UBuSHAJ7r3ZKJ06e5T5L9JI3MoSAMlKr5DPFlOACunHnSI/K7FPdai6vr0rMdZY1QJWGw==",
+ "path": "microsoft.templateengine.core/8.0.400-preview.24360.3",
+ "hashPath": "microsoft.templateengine.core.8.0.400-preview.24360.3.nupkg.sha512"
+ },
+ "Microsoft.TemplateEngine.Core.Contracts/8.0.400-preview.24360.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-e5PFmBS0mu8489828k9Z/wCqN0u/R4DKgYTj33MjzXWrxUz1ETtAv9KVqWvSjwsW2Qwr4rSZCuiqPIkinfT4lA==",
+ "path": "microsoft.templateengine.core.contracts/8.0.400-preview.24360.3",
+ "hashPath": "microsoft.templateengine.core.contracts.8.0.400-preview.24360.3.nupkg.sha512"
+ },
+ "Microsoft.TemplateEngine.Edge/8.0.400-preview.24360.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-4xJBZeNVR7OrcCQA45sVBywDEvKlYitxOQ9jRP22JdHsd18iPsSxkHYrZ1B7kf5EFD8FarOmx55PBDCViSvbDw==",
+ "path": "microsoft.templateengine.edge/8.0.400-preview.24360.3",
+ "hashPath": "microsoft.templateengine.edge.8.0.400-preview.24360.3.nupkg.sha512"
+ },
+ "Microsoft.TemplateEngine.Orchestrator.RunnableProjects/8.0.400-preview.24360.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-I1V5dcPJTB701/FAQyJqpikEBWaGGvOlhLY5ebySLws7ZjczN09QcPB0AQMcNbv6YFLGJEYZZIWLvZ4E1VRKXA==",
+ "path": "microsoft.templateengine.orchestrator.runnableprojects/8.0.400-preview.24360.3",
+ "hashPath": "microsoft.templateengine.orchestrator.runnableprojects.8.0.400-preview.24360.3.nupkg.sha512"
+ },
+ "Microsoft.TemplateEngine.Utils/8.0.400-preview.24360.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-IY/DhCsDH5JDW7bu9Hq/tcWhf/2Jxd+wpFZtt0HXHmLaTJgVa1t4agJlPrJV3MCeWkeUpOoaj4YkgiDJPCaJdQ==",
+ "path": "microsoft.templateengine.utils/8.0.400-preview.24360.3",
+ "hashPath": "microsoft.templateengine.utils.8.0.400-preview.24360.3.nupkg.sha512"
+ },
+ "Microsoft.TemplateSearch.Common/8.0.400-preview.24360.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-stZV6XtRCum1EXp9XOR7QMsxjSxz/mDP8yYYwN0subtqJVMT54g6A18aAHhKHR3zcmlkITa12WzTdpXw6JuImw==",
+ "path": "microsoft.templatesearch.common/8.0.400-preview.24360.3",
+ "hashPath": "microsoft.templatesearch.common.8.0.400-preview.24360.3.nupkg.sha512"
+ },
+ "Microsoft.TestPlatform.Build/17.11.0-release-24352-05": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-NPjQbUwEZvu7hM0Svl7OquhxJpAPW3tiYkhkojr7DeU7RIjCXpYO8/v38EqGN1B0V+Y9jEzBuHOtrwuqWFG8GQ==",
+ "path": "microsoft.testplatform.build/17.11.0-release-24352-05",
+ "hashPath": "microsoft.testplatform.build.17.11.0-release-24352-05.nupkg.sha512"
+ },
+ "Microsoft.TestPlatform.CLI/17.11.0-release-24352-05": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-G0HxY9N24NAqwtwQERRfGq0ll2fewx4LlP65Veb56FUR/0oV2bsK4D7uifYz+6DIoPp3V72NDW44G4/asIziHg==",
+ "path": "microsoft.testplatform.cli/17.11.0-release-24352-05",
+ "hashPath": "microsoft.testplatform.cli.17.11.0-release-24352-05.nupkg.sha512"
+ },
+ "Microsoft.Windows.CsWin32/0.3.49-beta": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-/iAXplVDKESFyLz/MShuVYVx62YFvFePpq3qrzREl8KScQqG6Z2kV7r9UJTjQS1g+hfy3V+e4m1x9lsu24YNSg==",
+ "path": "microsoft.windows.cswin32/0.3.49-beta",
+ "hashPath": "microsoft.windows.cswin32.0.3.49-beta.nupkg.sha512"
+ },
+ "Microsoft.Windows.SDK.Win32Docs/0.1.42-alpha": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Z/9po23gUA9aoukirh2ItMU2ZS9++Js9Gdds9fu5yuMojDrmArvY2y+tq9985tR3cxFxpZO1O35Wjfo0khj5HA==",
+ "path": "microsoft.windows.sdk.win32docs/0.1.42-alpha",
+ "hashPath": "microsoft.windows.sdk.win32docs.0.1.42-alpha.nupkg.sha512"
+ },
+ "Microsoft.Windows.SDK.Win32Metadata/55.0.45-preview": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-2i1kVIk8rMuMCYtoeYeWbmCRLqNgb63Berac3Gv+J/pjp0oucopasKgLQNslryhsgBl4xex9ENhJX2MXEW5vdA==",
+ "path": "microsoft.windows.sdk.win32metadata/55.0.45-preview",
+ "hashPath": "microsoft.windows.sdk.win32metadata.55.0.45-preview.nupkg.sha512"
+ },
+ "Microsoft.Windows.WDK.Win32Metadata/0.9.9-experimental": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-cncPlxLqR25mFOuvpxZPgXgJqRmXyV5eTULj/9w8AQvO/c1xJDEapohRsWkYaia7hCR/EwEzBHr7RU9u93T03w==",
+ "path": "microsoft.windows.wdk.win32metadata/0.9.9-experimental",
+ "hashPath": "microsoft.windows.wdk.win32metadata.0.9.9-experimental.nupkg.sha512"
+ },
+ "NETStandard.Library/2.0.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==",
+ "path": "netstandard.library/2.0.3",
+ "hashPath": "netstandard.library.2.0.3.nupkg.sha512"
+ },
+ "Newtonsoft.Json/13.0.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
+ "path": "newtonsoft.json/13.0.3",
+ "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
+ },
+ "NuGet.Build.Tasks/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-lWlF4oIFSzuXuWx/ztybJKVe85lMTSzBRqUw18suXHbQ2JMmeUU06kP7Sb3Ggi2c+duB5kAVeFxhy0gNROXjbw==",
+ "path": "nuget.build.tasks/6.11.1-rc.2",
+ "hashPath": "nuget.build.tasks.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Build.Tasks.Console/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+T0SsDZ0n84WwQAQwSwBPID9jRSMJyJg7CpdozvgyZNeH3lH4DgVQXgTR0BKvkwjYuF3oXczCF2D6xWqtLQ8Nw==",
+ "path": "nuget.build.tasks.console/6.11.1-rc.2",
+ "hashPath": "nuget.build.tasks.console.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.CommandLine.XPlat/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Id8IkAN3C5uM656vLsYbMkKXQHGQN8Zgco01/9g8AabIWvQc4DTkIXP3owtVMb6jzCCYXmp/tWU1tadoohengQ==",
+ "path": "nuget.commandline.xplat/6.11.1-rc.2",
+ "hashPath": "nuget.commandline.xplat.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Commands/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yeXe0dkVIxaiUjrVSJIXpyM1ZAAgG99usbbtJbTGBXBDtRUkS/sJdgjEufob26Y9ayBkxkatDKmiqPfnT/wCtg==",
+ "path": "nuget.commands/6.11.1-rc.2",
+ "hashPath": "nuget.commands.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Common/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-t/o+SJ5ZTMowggXRvaWc1cGT73eLyRUTZEK0WL1JIC5IHjd1oZnPX9bCIH6tUiXG2GwxoGx5xPyCRiazPfZ81A==",
+ "path": "nuget.common/6.11.1-rc.2",
+ "hashPath": "nuget.common.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Configuration/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Sn87k19VGoOPLk2HlKk3eQBZyGfzrxUEoSVOJZRYz+4gOwgwT/IHplVJZ2A3KgdF/oJh2Za3ElZ9LKtD7AaimQ==",
+ "path": "nuget.configuration/6.11.1-rc.2",
+ "hashPath": "nuget.configuration.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Credentials/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-2SMqlEN0wACZmv1zMDI1aLQ9py10XvmU94q5jLqrLgAA3fn0cPnpd7k1UiUZykZ7tP6/eCPVkKE/zZWqUZksoQ==",
+ "path": "nuget.credentials/6.11.1-rc.2",
+ "hashPath": "nuget.credentials.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.DependencyResolver.Core/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-KovFNhmC/UclHESmWkfIGqx+3e74jb0DF9pGMgXyku1Wz+Ro+95TRLICM31v3ic2xKytP5HONB91t9JPpR87og==",
+ "path": "nuget.dependencyresolver.core/6.11.1-rc.2",
+ "hashPath": "nuget.dependencyresolver.core.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Frameworks/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mOAT+L1Ae3tOLFVbB5T1bzjLzz6xUPcHiX3PZHVE+WMH02TrvixsZBhz1fNpoPMUwGrvaENqx9NkmMUWqReMDw==",
+ "path": "nuget.frameworks/6.11.1-rc.2",
+ "hashPath": "nuget.frameworks.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.LibraryModel/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ks666K1wnI/a4aqfEOUy/IFwWCUcwkt44o2VjUpt8tt/wcVukCXPmdAFavdTReGHI3LziiBoi84ngs+LpCK6/g==",
+ "path": "nuget.librarymodel/6.11.1-rc.2",
+ "hashPath": "nuget.librarymodel.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Localization/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-e1U93UQv2Pto5T1BsFFOpjlJFL6s7a8VlJ7HYqBPG7V5OxU9f4wm7v2vEyXaUHrcVz91FGrdxbFDpLEpMdX9QQ==",
+ "path": "nuget.localization/6.11.1-rc.2",
+ "hashPath": "nuget.localization.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Packaging/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-lmAU57eyjvdGzm2z5DoedYqT7dwBsf5tDey1lJCe9mf/I7DiExDdNxpp1EeUQ6zfsrr0JxHJfRccbCEYm5elXA==",
+ "path": "nuget.packaging/6.11.1-rc.2",
+ "hashPath": "nuget.packaging.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.ProjectModel/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-29O6/7MQgDcI9qp8+Mb6ODuqNfTLMGjGPtguiX2OKdwxeLYuxIDK3wS/4W99ASPQZVKyRR85PJL30Iinn7Zixw==",
+ "path": "nuget.projectmodel/6.11.1-rc.2",
+ "hashPath": "nuget.projectmodel.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Protocol/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HRbZwJ+feiG4FH39A8rB+uahDfn38MLzZebLpItkYO4Nl7gjNzRUyHKlqNpzeLtY3OfBu2d3cywKQeHG11pLTQ==",
+ "path": "nuget.protocol/6.11.1-rc.2",
+ "hashPath": "nuget.protocol.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Versioning/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-IBaspwPk8dI6wfC4n7SaGSUOwYZ8QUhmzJoh7ukBPgL4S9nZ3NPLT3SXuewYHy7hs4MuPpqZIE6uQ/CM5ulzvA==",
+ "path": "nuget.versioning/6.11.1-rc.2",
+ "hashPath": "nuget.versioning.6.11.1-rc.2.nupkg.sha512"
+ },
+ "runtime.native.System/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "path": "runtime.native.system/4.3.0",
+ "hashPath": "runtime.native.system.4.3.0.nupkg.sha512"
+ },
+ "runtime.native.System.IO.Compression/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+ "path": "runtime.native.system.io.compression/4.3.0",
+ "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512"
+ },
+ "System.Buffers/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "path": "system.buffers/4.3.0",
+ "hashPath": "system.buffers.4.3.0.nupkg.sha512"
+ },
+ "System.CodeDom/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-WTlRjL6KWIMr/pAaq3rYqh0TJlzpouaQ/W1eelssHgtlwHAH25jXTkUphTYx9HaIIf7XA6qs/0+YhtLEQRkJ+Q==",
+ "path": "system.codedom/8.0.0",
+ "hashPath": "system.codedom.8.0.0.nupkg.sha512"
+ },
+ "System.Collections/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "path": "system.collections/4.3.0",
+ "hashPath": "system.collections.4.3.0.nupkg.sha512"
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "path": "system.collections.immutable/8.0.0",
+ "hashPath": "system.collections.immutable.8.0.0.nupkg.sha512"
+ },
+ "System.CommandLine/2.0.0-beta4.23307.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-L9AshOole+4UHIUZJ6qxFAzLtO1kUc5FB/JRVV+jypq3DopJWkFr2+WUqGDdehnKuF6PLo6XNJb2HjpK8LE4UQ==",
+ "path": "system.commandline/2.0.0-beta4.23307.1",
+ "hashPath": "system.commandline.2.0.0-beta4.23307.1.nupkg.sha512"
+ },
+ "System.Configuration.ConfigurationManager/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==",
+ "path": "system.configuration.configurationmanager/8.0.0",
+ "hashPath": "system.configuration.configurationmanager.8.0.0.nupkg.sha512"
+ },
+ "System.Diagnostics.Debug/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "path": "system.diagnostics.debug/4.3.0",
+ "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512"
+ },
+ "System.Diagnostics.DiagnosticSource/5.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-tCQTzPsGZh/A9LhhA6zrqCRV4hOHsK90/G7q3Khxmn6tnB1PuNU0cRaKANP2AWcF9bn0zsuOoZOSrHuJk6oNBA==",
+ "path": "system.diagnostics.diagnosticsource/5.0.0",
+ "hashPath": "system.diagnostics.diagnosticsource.5.0.0.nupkg.sha512"
+ },
+ "System.Diagnostics.EventLog/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==",
+ "path": "system.diagnostics.eventlog/8.0.0",
+ "hashPath": "system.diagnostics.eventlog.8.0.0.nupkg.sha512"
+ },
+ "System.Diagnostics.Tracing/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "path": "system.diagnostics.tracing/4.3.0",
+ "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512"
+ },
+ "System.Formats.Asn1/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AJukBuLoe3QeAF+mfaRKQb2dgyrvt340iMBHYv+VdBzCUM06IxGlvl0o/uPOS7lHnXPN6u8fFRHSHudx5aTi8w==",
+ "path": "system.formats.asn1/8.0.0",
+ "hashPath": "system.formats.asn1.8.0.0.nupkg.sha512"
+ },
+ "System.Globalization/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "path": "system.globalization/4.3.0",
+ "hashPath": "system.globalization.4.3.0.nupkg.sha512"
+ },
+ "System.IO/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "path": "system.io/4.3.0",
+ "hashPath": "system.io.4.3.0.nupkg.sha512"
+ },
+ "System.IO.Compression/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "path": "system.io.compression/4.3.0",
+ "hashPath": "system.io.compression.4.3.0.nupkg.sha512"
+ },
+ "System.Memory/4.5.5": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
+ "path": "system.memory/4.5.5",
+ "hashPath": "system.memory.4.5.5.nupkg.sha512"
+ },
+ "System.Reflection/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "path": "system.reflection/4.3.0",
+ "hashPath": "system.reflection.4.3.0.nupkg.sha512"
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+ "path": "system.reflection.metadata/8.0.0",
+ "hashPath": "system.reflection.metadata.8.0.0.nupkg.sha512"
+ },
+ "System.Reflection.MetadataLoadContext/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-SZxrQ4sQYnIcdwiO3G/lHZopbPYQ2lW0ioT4JezgccWUrKaKbHLJbAGZaDfkYjWcta1pWssAo3MOXLsR0ie4tQ==",
+ "path": "system.reflection.metadataloadcontext/8.0.0",
+ "hashPath": "system.reflection.metadataloadcontext.8.0.0.nupkg.sha512"
+ },
+ "System.Reflection.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "path": "system.reflection.primitives/4.3.0",
+ "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
+ },
+ "System.Resources.Extensions/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-psnQ6GRQOvt+evda5C4nD5EuV49mz2Tv0DD2JDVDEbE/TKoMukxSkGJcsBJ0pajpPuFRr67syFYlkJ4Wj6A5Zw==",
+ "path": "system.resources.extensions/8.0.0",
+ "hashPath": "system.resources.extensions.8.0.0.nupkg.sha512"
+ },
+ "System.Resources.ResourceManager/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "path": "system.resources.resourcemanager/4.3.0",
+ "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "path": "system.runtime/4.3.0",
+ "hashPath": "system.runtime.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==",
+ "path": "system.runtime.compilerservices.unsafe/6.0.0",
+ "hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512"
+ },
+ "System.Runtime.Extensions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "path": "system.runtime.extensions/4.3.0",
+ "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.Handles/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "path": "system.runtime.handles/4.3.0",
+ "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.InteropServices/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "path": "system.runtime.interopservices/4.3.0",
+ "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.Loader/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==",
+ "path": "system.runtime.loader/4.3.0",
+ "hashPath": "system.runtime.loader.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Pkcs/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ULmp3xoOwNYjOYp4JZ2NK/6NdTgiN1GQXzVVN1njQ7LOZ0d0B9vyMnhyqbIi9Qw4JXj1JgCsitkTShboHRx7Eg==",
+ "path": "system.security.cryptography.pkcs/8.0.0",
+ "hashPath": "system.security.cryptography.pkcs.8.0.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.ProtectedData/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==",
+ "path": "system.security.cryptography.protecteddata/8.0.0",
+ "hashPath": "system.security.cryptography.protecteddata.8.0.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Xml/8.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-hqu2ztecOf3BYg5q1R7QcyliX9L7r3mfsWtaRitAxcezH8hyZMB7zCmhi186hsUZXk1KxsAHXwyPEW+xvUED6g==",
+ "path": "system.security.cryptography.xml/8.0.1",
+ "hashPath": "system.security.cryptography.xml.8.0.1.nupkg.sha512"
+ },
+ "System.ServiceProcess.ServiceController/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-jtYVG3bpw2n/NvNnP2g/JLri0D4UtfusTvLeH6cZPNAEjJXJVGspS3wLgVvjNbm+wjaYkFgsXejMTocV1T5DIQ==",
+ "path": "system.serviceprocess.servicecontroller/8.0.0",
+ "hashPath": "system.serviceprocess.servicecontroller.8.0.0.nupkg.sha512"
+ },
+ "System.Text.Encoding/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "path": "system.text.encoding/4.3.0",
+ "hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
+ },
+ "System.Text.Encoding.CodePages/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-OZIsVplFGaVY90G2SbpgU7EnCoOO5pw1t4ic21dBF3/1omrJFpAGoNAVpPyMVOC90/hvgkGG3VFqR13YgZMQfg==",
+ "path": "system.text.encoding.codepages/8.0.0",
+ "hashPath": "system.text.encoding.codepages.8.0.0.nupkg.sha512"
+ },
+ "System.Text.Encodings.Web/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==",
+ "path": "system.text.encodings.web/8.0.0",
+ "hashPath": "system.text.encodings.web.8.0.0.nupkg.sha512"
+ },
+ "System.Text.Json/8.0.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
+ "path": "system.text.json/8.0.4",
+ "hashPath": "system.text.json.8.0.4.nupkg.sha512"
+ },
+ "System.Threading/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "path": "system.threading/4.3.0",
+ "hashPath": "system.threading.4.3.0.nupkg.sha512"
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "path": "system.threading.tasks/4.3.0",
+ "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
+ },
+ "Wcwidth.Sources/1.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-86tmwfGXRz7GJQXBnoTFoMvqSqd6irfkEkRzQFR54W/nweaR8cUvzY8x++z+B/+eUPSuqD2Ah1iPJHgthy4pzg==",
+ "path": "wcwidth.sources/1.0.0",
+ "hashPath": "wcwidth.sources.1.0.0.nupkg.sha512"
+ },
+ "Microsoft.DotNet.Cli/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.DotNet.Cli.Sln.Internal/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.DotNet.Cli.Utils/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.DotNet.Configurer/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.DotNet.InternalAbstractions/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.DotNet.NativeWrapper/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "microsoft.dotnet.templateLocator/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.NET.Sdk.WorkloadManifestReader/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.TemplateEngine.Cli/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.Win32.Msi/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "tool_msbuild/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "tool_nuget/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "dotnet/8.0.402.0": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "MSBuild/15.1.0.0": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.DotNet.SdkResolver/8.0.402.0": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/NuGet.CommandLine.XPlat.runtimeconfig.json b/dotnet/sdk/8.0.402/NuGet.CommandLine.XPlat.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..1324b30a0847af3aa203b5a473d317efd8671bba
--- /dev/null
+++ b/dotnet/sdk/8.0.402/NuGet.CommandLine.XPlat.runtimeconfig.json
@@ -0,0 +1,13 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ },
+ "configProperties": {
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/NuGet.Common.dll b/dotnet/sdk/8.0.402/NuGet.Common.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3200f279e9e6ec9c13ace8179ebb0b5e99dbc2fb
Binary files /dev/null and b/dotnet/sdk/8.0.402/NuGet.Common.dll differ
diff --git a/dotnet/sdk/8.0.402/NuGet.Credentials.dll b/dotnet/sdk/8.0.402/NuGet.Credentials.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b851bc74393d0b706109d4fdc900eb091dcf4359
Binary files /dev/null and b/dotnet/sdk/8.0.402/NuGet.Credentials.dll differ
diff --git a/dotnet/sdk/8.0.402/NuGet.DependencyResolver.Core.dll b/dotnet/sdk/8.0.402/NuGet.DependencyResolver.Core.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ebe001c20e85060fd4ba8fd53eab6d1394e9c6d4
Binary files /dev/null and b/dotnet/sdk/8.0.402/NuGet.DependencyResolver.Core.dll differ
diff --git a/dotnet/sdk/8.0.402/NuGet.Packaging.dll b/dotnet/sdk/8.0.402/NuGet.Packaging.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d92c517c13719ff094c465c78b84d7afb853f306
--- /dev/null
+++ b/dotnet/sdk/8.0.402/NuGet.Packaging.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:25bab6260e015e2ce509352c6bb698921684dd2feacd10d4da63f140962ec3b5
+size 1690624
diff --git a/dotnet/sdk/8.0.402/NuGet.Protocol.dll b/dotnet/sdk/8.0.402/NuGet.Protocol.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0bb8f89768411951e82cf10760b197622496b793
--- /dev/null
+++ b/dotnet/sdk/8.0.402/NuGet.Protocol.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ce961cbad51eed0c262343ad5ebcded364ee4f9906c049f4fbfb2881025f796c
+size 2048512
diff --git a/dotnet/sdk/8.0.402/NuGet.RestoreEx.targets b/dotnet/sdk/8.0.402/NuGet.RestoreEx.targets
new file mode 100644
index 0000000000000000000000000000000000000000..8007924797404b46b787975b533b5f29dc14a344
--- /dev/null
+++ b/dotnet/sdk/8.0.402/NuGet.RestoreEx.targets
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/NuGet.Versioning.dll b/dotnet/sdk/8.0.402/NuGet.Versioning.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8ad3525d5a88b57ab343928d4b7aec3cc2340f1a
Binary files /dev/null and b/dotnet/sdk/8.0.402/NuGet.Versioning.dll differ
diff --git a/dotnet/sdk/8.0.402/NuGet.targets b/dotnet/sdk/8.0.402/NuGet.targets
new file mode 100644
index 0000000000000000000000000000000000000000..6bb5f4a5100c257934b4e8f894643cc83a597d44
--- /dev/null
+++ b/dotnet/sdk/8.0.402/NuGet.targets
@@ -0,0 +1,1546 @@
+
+
+
+
+
+ true
+
+ NuGet.Build.Tasks.dll
+
+ false
+
+ true
+ true
+
+ false
+
+ WarnAndContinue
+
+ $(BuildInParallel)
+ true
+
+ <_RestoreSolutionFileUsed Condition=" '$(_RestoreSolutionFileUsed)' == '' AND '$(SolutionDir)' != '' AND $(MSBuildProjectFullPath.EndsWith('.metaproj')) == 'true' ">true
+
+ $(MSBuildInteractive)
+
+ true
+
+ true
+
+ <_CentralPackageVersionsEnabled Condition="'$(ManagePackageVersionsCentrally)' == 'true' AND '$(CentralPackageVersionsFileImported)' == 'true'">true
+
+
+
+
+
+ true
+
+ low
+
+ all
+ direct
+
+
+
+
+ <_GenerateRestoreGraphProjectEntryInputProperties>ExcludeRestorePackageImports=true
+
+
+ <_GenerateRestoreGraphProjectEntryInputProperties Condition=" '$(RestoreUseCustomAfterTargets)' == 'true' ">
+ $(_GenerateRestoreGraphProjectEntryInputProperties);
+ NuGetRestoreTargets=$(MSBuildThisFileFullPath);
+ RestoreUseCustomAfterTargets=$(RestoreUseCustomAfterTargets);
+ CustomAfterMicrosoftCommonCrossTargetingTargets=$(MSBuildThisFileFullPath);
+ CustomAfterMicrosoftCommonTargets=$(MSBuildThisFileFullPath);
+
+
+
+ <_GenerateRestoreGraphProjectEntryInputProperties Condition=" '$(_RestoreSolutionFileUsed)' == 'true' ">
+ $(_GenerateRestoreGraphProjectEntryInputProperties);
+ _RestoreSolutionFileUsed=true;
+ SolutionDir=$(SolutionDir);
+ SolutionName=$(SolutionName);
+ SolutionFileName=$(SolutionFileName);
+ SolutionPath=$(SolutionPath);
+ SolutionExt=$(SolutionExt);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ContinueOnError)
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ContinueOnError)
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ContinueOnError)
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_FrameworkReferenceForRestore
+ Include="@(FrameworkReference)"
+ Condition="'%(FrameworkReference.IsTransitiveFrameworkReference)' != 'true'"/>
+
+
+
+
+
+
+
+ $(ContinueOnError)
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ exclusionlist
+
+
+
+
+ <_FilteredRestoreGraphProjectInputItemsTmp
+ Include="@(RestoreGraphProjectInputItems)"
+ Condition=" '%(RestoreGraphProjectInputItems.Extension)' == '.csproj' Or
+ '%(RestoreGraphProjectInputItems.Extension)' == '.vbproj' Or
+ '%(RestoreGraphProjectInputItems.Extension)' == '.fsproj' Or
+ '%(RestoreGraphProjectInputItems.Extension)' == '.nuproj' Or
+ '%(RestoreGraphProjectInputItems.Extension)' == '.proj' Or
+ '%(RestoreGraphProjectInputItems.Extension)' == '.msbuildproj' Or
+ '%(RestoreGraphProjectInputItems.Extension)' == '.vcxproj' " />
+
+
+
+
+ <_FilteredRestoreGraphProjectInputItemsTmp
+ Include="@(RestoreGraphProjectInputItems)"
+ Condition=" '%(RestoreGraphProjectInputItems.Extension)' != '.metaproj'
+ AND '%(RestoreGraphProjectInputItems.Extension)' != '.shproj'
+ AND '%(RestoreGraphProjectInputItems.Extension)' != '.vcxitems'
+ AND '%(RestoreGraphProjectInputItems.Extension)' != '.vdproj'
+ AND '%(RestoreGraphProjectInputItems.Extension)' != '' " />
+
+
+
+
+ <_FilteredRestoreGraphProjectInputItemsTmp
+ Include="@(RestoreGraphProjectInputItems)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_GenerateRestoreGraphProjectEntryInput Include="@(FilteredRestoreGraphProjectInputItems)" Condition=" '$(RestoreRecursive)' != 'true' " />
+ <_GenerateRestoreGraphProjectEntryInput Include="@(_RestoreProjectPathItems)" Condition=" '$(RestoreRecursive)' == 'true' " />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RestoreGraphEntry Include="$([System.Guid]::NewGuid())" Condition=" '$(RestoreProjectStyle)' != 'Unknown' ">
+ RestoreSpec
+ $(MSBuildProjectFullPath)
+
+
+
+
+
+
+
+
+ netcoreapp1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_HasPackageReferenceItems Condition="'@(PackageReference)' != ''">true
+
+
+ <_HasPackageReferenceItems Condition="@(PackageReference->Count()) > 0">true
+
+
+
+
+
+
+
+
+ <_HasPackageReferenceItems />
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ <_RestoreProjectFramework/>
+ <_TargetFrameworkToBeUsed Condition=" '$(_TargetFrameworkOverride)' == '' ">$(TargetFrameworks)
+
+
+
+
+
+
+
+
+ <_RestoreTargetFrameworksOutputFiltered Include="$(_RestoreProjectFramework.Split(';'))" />
+
+
+
+
+
+
+ <_RestoreTargetFrameworkItems Include="$(TargetFrameworks.Split(';'))" />
+
+
+ <_RestoreTargetFrameworkItems Include="$(_TargetFrameworkOverride)" />
+
+
+
+
+
+
+
+ $(SolutionDir)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RestoreSettingsPerFramework Include="$([System.Guid]::NewGuid())">
+ $(RestoreAdditionalProjectSources)
+ $(RestoreAdditionalProjectFallbackFolders)
+ $(RestoreAdditionalProjectFallbackFoldersExcludes)
+
+
+
+
+
+
+
+
+
+ $(MSBuildProjectExtensionsPath)
+
+
+
+
+
+
+
+
+ <_RestoreProjectName>$(MSBuildProjectName)
+ <_RestoreProjectName Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' AND '$(AssemblyName)' != '' ">$(AssemblyName)
+ <_RestoreProjectName Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' AND '$(PackageId)' != '' ">$(PackageId)
+
+
+
+
+ <_RestoreProjectVersion>1.0.0
+ <_RestoreProjectVersion Condition=" '$(Version)' != '' ">$(Version)
+ <_RestoreProjectVersion Condition=" '$(PackageVersion)' != '' ">$(PackageVersion)
+
+
+
+
+ <_RestoreCrossTargeting>true
+
+
+
+
+ <_RestoreSkipContentFileWrite Condition=" '$(TargetFrameworks)' == '' AND '$(TargetFramework)' == '' ">true
+
+
+
+
+ <_RestoreGraphEntry Include="$([System.Guid]::NewGuid())">
+ ProjectSpec
+ $(_RestoreProjectVersion)
+ $(MSBuildProjectFullPath)
+ $(MSBuildProjectFullPath)
+ $(_RestoreProjectName)
+ $(_OutputSources)
+ $(_OutputFallbackFolders)
+ $(_OutputPackagesPath)
+ $(RestoreProjectStyle)
+ $(RestoreOutputAbsolutePath)
+ $(RuntimeIdentifiers);$(RuntimeIdentifier)
+ $(RuntimeSupports)
+ $(_RestoreCrossTargeting)
+ $(RestoreLegacyPackagesDirectory)
+ $(ValidateRuntimeIdentifierCompatibility)
+ $(_RestoreSkipContentFileWrite)
+ $(_OutputConfigFilePaths)
+ $(TreatWarningsAsErrors)
+ $(WarningsAsErrors)
+ $(WarningsNotAsErrors)
+ $(NoWarn)
+ $(RestorePackagesWithLockFile)
+ $(NuGetLockFilePath)
+ $(RestoreLockedMode)
+ <_CentralPackageVersionsEnabled>$(_CentralPackageVersionsEnabled)
+ $(CentralPackageFloatingVersionsEnabled)
+ $(CentralPackageVersionOverrideEnabled)
+ $(CentralPackageTransitivePinningEnabled)
+ $(NuGetAudit)
+ $(NuGetAuditLevel)
+ $(NuGetAuditMode)
+
+
+
+
+
+ <_RestoreGraphEntry Include="$([System.Guid]::NewGuid())">
+ ProjectSpec
+ $(MSBuildProjectFullPath)
+ $(MSBuildProjectFullPath)
+ $(_RestoreProjectName)
+ $(_OutputSources)
+ $(RestoreOutputAbsolutePath)
+ $(_OutputFallbackFolders)
+ $(_OutputPackagesPath)
+ $(_CurrentProjectJsonPath)
+ $(RestoreProjectStyle)
+ $(_OutputConfigFilePaths)
+
+
+
+
+
+ <_RestoreGraphEntry Include="$([System.Guid]::NewGuid())">
+ ProjectSpec
+ $(MSBuildProjectFullPath)
+ $(MSBuildProjectFullPath)
+ $(_RestoreProjectName)
+ $(RestoreProjectStyle)
+ $(MSBuildProjectDirectory)\packages.$(MSBuildProjectName).config
+ $(MSBuildProjectDirectory)\packages.config
+ $(RestorePackagesWithLockFile)
+ $(NuGetLockFilePath)
+ $(RestoreLockedMode)
+ $(_OutputSources)
+ $(SolutionDir)
+ $(_OutputRepositoryPath)
+ $(_OutputConfigFilePaths)
+ $(_OutputPackagesPath)
+ @(_RestoreTargetFrameworksOutputFiltered)
+ $(NuGetAudit)
+ $(NuGetAuditLevel)
+
+
+
+
+
+ <_RestoreGraphEntry Include="$([System.Guid]::NewGuid())">
+ ProjectSpec
+ $(MSBuildProjectFullPath)
+ $(MSBuildProjectFullPath)
+ $(_RestoreProjectName)
+ $(RestoreProjectStyle)
+ @(_RestoreTargetFrameworksOutputFiltered)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RestoreGraphEntry Include="$([System.Guid]::NewGuid())">
+ TargetFrameworkInformation
+ $(MSBuildProjectFullPath)
+ $(PackageTargetFallback)
+ $(AssetTargetFallback)
+ $(TargetFramework)
+ $(TargetFrameworkIdentifier)
+ $(TargetFrameworkVersion)
+ $(TargetFrameworkMoniker)
+ $(TargetFrameworkProfile)
+ $(TargetPlatformMoniker)
+ $(TargetPlatformIdentifier)
+ $(TargetPlatformVersion)
+ $(TargetPlatformMinVersion)
+ $(CLRSupport)
+ $(RuntimeIdentifierGraphPath)
+ $(WindowsTargetPlatformMinVersion)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RestoreProjectPathItems Include="$(_RestoreGraphAbsoluteProjectPaths)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_GenerateRestoreProjectPathWalkOutputs Include="$(MSBuildProjectFullPath)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RestorePackagesPathOverride>$(RestorePackagesPath)
+
+
+
+
+
+
+ <_RestorePackagesPathOverride>$(RestoreRepositoryPath)
+
+
+
+
+
+
+ <_RestoreSourcesOverride>$(RestoreSources)
+
+
+
+
+
+
+ <_RestoreFallbackFoldersOverride>$(RestoreFallbackFolders)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_TargetFrameworkOverride Condition=" '$(TargetFrameworks)' == '' ">$(TargetFramework)
+
+
+
+
+
+
+
+ <_ValidProjectsForRestore Include="$(MSBuildProjectFullPath)" />
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/PortableRuntimeIdentifierGraph.json b/dotnet/sdk/8.0.402/PortableRuntimeIdentifierGraph.json
new file mode 100644
index 0000000000000000000000000000000000000000..59d990f3d44c069c01805fe27c4df68ec266baac
--- /dev/null
+++ b/dotnet/sdk/8.0.402/PortableRuntimeIdentifierGraph.json
@@ -0,0 +1,464 @@
+{
+ "runtimes": {
+ "android": {
+ "#import": [
+ "linux-bionic"
+ ]
+ },
+ "android-arm": {
+ "#import": [
+ "android",
+ "linux-bionic-arm"
+ ]
+ },
+ "android-arm64": {
+ "#import": [
+ "android",
+ "linux-bionic-arm64"
+ ]
+ },
+ "android-x64": {
+ "#import": [
+ "android",
+ "linux-bionic-x64"
+ ]
+ },
+ "android-x86": {
+ "#import": [
+ "android",
+ "linux-bionic-x86"
+ ]
+ },
+ "any": {
+ "#import": [
+ "base"
+ ]
+ },
+ "base": {
+ "#import": []
+ },
+ "browser": {
+ "#import": [
+ "any"
+ ]
+ },
+ "browser-wasm": {
+ "#import": [
+ "browser"
+ ]
+ },
+ "freebsd": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "freebsd-arm64": {
+ "#import": [
+ "freebsd",
+ "unix-arm64"
+ ]
+ },
+ "freebsd-x64": {
+ "#import": [
+ "freebsd",
+ "unix-x64"
+ ]
+ },
+ "illumos": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "illumos-x64": {
+ "#import": [
+ "illumos",
+ "unix-x64"
+ ]
+ },
+ "ios": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "ios-arm": {
+ "#import": [
+ "ios",
+ "unix-arm"
+ ]
+ },
+ "ios-arm64": {
+ "#import": [
+ "ios",
+ "unix-arm64"
+ ]
+ },
+ "ios-x64": {
+ "#import": [
+ "ios",
+ "unix-x64"
+ ]
+ },
+ "ios-x86": {
+ "#import": [
+ "ios",
+ "unix-x86"
+ ]
+ },
+ "iossimulator": {
+ "#import": [
+ "ios"
+ ]
+ },
+ "iossimulator-arm64": {
+ "#import": [
+ "iossimulator",
+ "ios-arm64"
+ ]
+ },
+ "iossimulator-x64": {
+ "#import": [
+ "iossimulator",
+ "ios-x64"
+ ]
+ },
+ "iossimulator-x86": {
+ "#import": [
+ "iossimulator",
+ "ios-x86"
+ ]
+ },
+ "linux": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "linux-arm": {
+ "#import": [
+ "linux",
+ "unix-arm"
+ ]
+ },
+ "linux-arm64": {
+ "#import": [
+ "linux",
+ "unix-arm64"
+ ]
+ },
+ "linux-armel": {
+ "#import": [
+ "linux",
+ "unix-armel"
+ ]
+ },
+ "linux-armv6": {
+ "#import": [
+ "linux",
+ "unix-armv6"
+ ]
+ },
+ "linux-bionic": {
+ "#import": [
+ "linux"
+ ]
+ },
+ "linux-bionic-arm": {
+ "#import": [
+ "linux-bionic",
+ "linux-arm"
+ ]
+ },
+ "linux-bionic-arm64": {
+ "#import": [
+ "linux-bionic",
+ "linux-arm64"
+ ]
+ },
+ "linux-bionic-x64": {
+ "#import": [
+ "linux-bionic",
+ "linux-x64"
+ ]
+ },
+ "linux-bionic-x86": {
+ "#import": [
+ "linux-bionic",
+ "linux-x86"
+ ]
+ },
+ "linux-loongarch64": {
+ "#import": [
+ "linux",
+ "unix-loongarch64"
+ ]
+ },
+ "linux-mips64": {
+ "#import": [
+ "linux",
+ "unix-mips64"
+ ]
+ },
+ "linux-musl": {
+ "#import": [
+ "linux"
+ ]
+ },
+ "linux-musl-arm": {
+ "#import": [
+ "linux-musl",
+ "linux-arm"
+ ]
+ },
+ "linux-musl-arm64": {
+ "#import": [
+ "linux-musl",
+ "linux-arm64"
+ ]
+ },
+ "linux-musl-armel": {
+ "#import": [
+ "linux-musl",
+ "linux-armel"
+ ]
+ },
+ "linux-musl-armv6": {
+ "#import": [
+ "linux-musl",
+ "linux-armv6"
+ ]
+ },
+ "linux-musl-ppc64le": {
+ "#import": [
+ "linux-musl",
+ "linux-ppc64le"
+ ]
+ },
+ "linux-musl-riscv64": {
+ "#import": [
+ "linux-musl",
+ "linux-riscv64"
+ ]
+ },
+ "linux-musl-s390x": {
+ "#import": [
+ "linux-musl",
+ "linux-s390x"
+ ]
+ },
+ "linux-musl-x64": {
+ "#import": [
+ "linux-musl",
+ "linux-x64"
+ ]
+ },
+ "linux-musl-x86": {
+ "#import": [
+ "linux-musl",
+ "linux-x86"
+ ]
+ },
+ "linux-ppc64le": {
+ "#import": [
+ "linux",
+ "unix-ppc64le"
+ ]
+ },
+ "linux-riscv64": {
+ "#import": [
+ "linux",
+ "unix-riscv64"
+ ]
+ },
+ "linux-s390x": {
+ "#import": [
+ "linux",
+ "unix-s390x"
+ ]
+ },
+ "linux-x64": {
+ "#import": [
+ "linux",
+ "unix-x64"
+ ]
+ },
+ "linux-x86": {
+ "#import": [
+ "linux",
+ "unix-x86"
+ ]
+ },
+ "maccatalyst": {
+ "#import": [
+ "ios"
+ ]
+ },
+ "maccatalyst-arm64": {
+ "#import": [
+ "maccatalyst",
+ "ios-arm64"
+ ]
+ },
+ "maccatalyst-x64": {
+ "#import": [
+ "maccatalyst",
+ "ios-x64"
+ ]
+ },
+ "osx": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "osx-arm64": {
+ "#import": [
+ "osx",
+ "unix-arm64"
+ ]
+ },
+ "osx-x64": {
+ "#import": [
+ "osx",
+ "unix-x64"
+ ]
+ },
+ "solaris": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "solaris-x64": {
+ "#import": [
+ "solaris",
+ "unix-x64"
+ ]
+ },
+ "tvos": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "tvos-arm64": {
+ "#import": [
+ "tvos",
+ "unix-arm64"
+ ]
+ },
+ "tvos-x64": {
+ "#import": [
+ "tvos",
+ "unix-x64"
+ ]
+ },
+ "tvossimulator": {
+ "#import": [
+ "tvos"
+ ]
+ },
+ "tvossimulator-arm64": {
+ "#import": [
+ "tvossimulator",
+ "tvos-arm64"
+ ]
+ },
+ "tvossimulator-x64": {
+ "#import": [
+ "tvossimulator",
+ "tvos-x64"
+ ]
+ },
+ "unix": {
+ "#import": [
+ "any"
+ ]
+ },
+ "unix-arm": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "unix-arm64": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "unix-armel": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "unix-armv6": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "unix-loongarch64": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "unix-mips64": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "unix-ppc64le": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "unix-riscv64": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "unix-s390x": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "unix-x64": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "unix-x86": {
+ "#import": [
+ "unix"
+ ]
+ },
+ "wasi": {
+ "#import": [
+ "any"
+ ]
+ },
+ "wasi-wasm": {
+ "#import": [
+ "wasi"
+ ]
+ },
+ "win": {
+ "#import": [
+ "any"
+ ]
+ },
+ "win-arm": {
+ "#import": [
+ "win"
+ ]
+ },
+ "win-arm64": {
+ "#import": [
+ "win"
+ ]
+ },
+ "win-x64": {
+ "#import": [
+ "win"
+ ]
+ },
+ "win-x86": {
+ "#import": [
+ "win"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Roslyn/Microsoft.Build.Tasks.CodeAnalysis.deps.json b/dotnet/sdk/8.0.402/Roslyn/Microsoft.Build.Tasks.CodeAnalysis.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..e337b22c416f7876f25b333247f16f0e7ef1cd51
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Roslyn/Microsoft.Build.Tasks.CodeAnalysis.deps.json
@@ -0,0 +1,324 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "Microsoft.Build.Tasks.CodeAnalysis/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.7.2",
+ "Microsoft.Build.Tasks.Core": "17.7.2",
+ "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0-preview.23468.1",
+ "Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers": "3.3.4-beta1.22504.1",
+ "Microsoft.DotNet.XliffTasks": "9.0.0-beta.24076.5",
+ "Microsoft.Net.Compilers.Toolset": "4.11.0-2.24270.4",
+ "Microsoft.VisualStudio.Threading.Analyzers": "17.10.41",
+ "RichCodeNav.EnvVarDump": "0.1.1643-alpha",
+ "Roslyn.Diagnostics.Analyzers": "3.11.0-beta1.24081.1"
+ },
+ "runtime": {
+ "Microsoft.Build.Tasks.CodeAnalysis.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.Build.Tasks.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.Build.Tasks.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.Build.Tasks.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.Build.Tasks.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.Build.Tasks.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.Build.Tasks.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.Build.Tasks.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.Build.Tasks.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.Build.Tasks.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.Build.Tasks.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.Build.Tasks.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.Build.Tasks.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.Build.Tasks.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.Build.Framework/17.7.2": {
+ "dependencies": {
+ "System.Security.Permissions": "8.0.0"
+ }
+ },
+ "Microsoft.Build.Tasks.Core/17.7.2": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.7.2",
+ "Microsoft.Build.Utilities.Core": "17.7.2",
+ "Microsoft.NET.StringTools": "17.7.2",
+ "Microsoft.VisualStudio.Setup.Configuration.Interop": "3.2.2146",
+ "System.CodeDom": "7.0.0",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Configuration.ConfigurationManager": "8.0.0",
+ "System.Resources.Extensions": "8.0.0",
+ "System.Security.Cryptography.Pkcs": "7.0.2",
+ "System.Security.Cryptography.Xml": "7.0.1",
+ "System.Security.Permissions": "8.0.0"
+ }
+ },
+ "Microsoft.Build.Utilities.Core/17.7.2": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.7.2",
+ "Microsoft.NET.StringTools": "17.7.2",
+ "Microsoft.VisualStudio.Setup.Configuration.Interop": "3.2.2146",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Configuration.ConfigurationManager": "8.0.0",
+ "System.Security.Permissions": "8.0.0"
+ }
+ },
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers/3.11.0-beta1.24081.1": {},
+ "Microsoft.CodeAnalysis.NetAnalyzers/8.0.0-preview.23468.1": {},
+ "Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers/3.3.4-beta1.22504.1": {},
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers/3.11.0-beta1.24081.1": {},
+ "Microsoft.DotNet.XliffTasks/9.0.0-beta.24076.5": {},
+ "Microsoft.Net.Compilers.Toolset/4.11.0-2.24270.4": {},
+ "Microsoft.NET.StringTools/17.7.2": {},
+ "Microsoft.VisualStudio.Setup.Configuration.Interop/3.2.2146": {},
+ "Microsoft.VisualStudio.Threading.Analyzers/17.10.41": {},
+ "RichCodeNav.EnvVarDump/0.1.1643-alpha": {},
+ "Roslyn.Diagnostics.Analyzers/3.11.0-beta1.24081.1": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.11.0-beta1.24081.1",
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers": "3.11.0-beta1.24081.1"
+ }
+ },
+ "System.CodeDom/7.0.0": {},
+ "System.Collections.Immutable/8.0.0": {},
+ "System.Configuration.ConfigurationManager/8.0.0": {
+ "dependencies": {
+ "System.Diagnostics.EventLog": "8.0.0",
+ "System.Security.Cryptography.ProtectedData": "8.0.0"
+ }
+ },
+ "System.Diagnostics.EventLog/8.0.0": {},
+ "System.Formats.Asn1/7.0.0": {},
+ "System.Resources.Extensions/8.0.0": {},
+ "System.Security.Cryptography.Pkcs/7.0.2": {
+ "dependencies": {
+ "System.Formats.Asn1": "7.0.0"
+ }
+ },
+ "System.Security.Cryptography.ProtectedData/8.0.0": {},
+ "System.Security.Cryptography.Xml/7.0.1": {
+ "dependencies": {
+ "System.Security.Cryptography.Pkcs": "7.0.2"
+ }
+ },
+ "System.Security.Permissions/8.0.0": {
+ "dependencies": {
+ "System.Windows.Extensions": "8.0.0"
+ }
+ },
+ "System.Windows.Extensions/8.0.0": {}
+ }
+ },
+ "libraries": {
+ "Microsoft.Build.Tasks.CodeAnalysis/4.11.0-3.24365.8": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.Build.Framework/17.7.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-F+SglYQv6ij5RK4Bmd1X4q01E2ry4M8/huTIZ/1Vk7ZoxdT2J3vmV23cnJZsA/ZLunOTv3B905TU5J1eFmWNPw==",
+ "path": "microsoft.build.framework/17.7.2",
+ "hashPath": "microsoft.build.framework.17.7.2.nupkg.sha512"
+ },
+ "Microsoft.Build.Tasks.Core/17.7.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-CmI+mDQ44GWVv0mxFcGYlvek838kK3PgNvXPo/1/Q5/Tc97tajO611uZAj2wNfwJ1kjsCef2Mza4d+SVSyd3Mg==",
+ "path": "microsoft.build.tasks.core/17.7.2",
+ "hashPath": "microsoft.build.tasks.core.17.7.2.nupkg.sha512"
+ },
+ "Microsoft.Build.Utilities.Core/17.7.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-soXfaIBW904uEP6WTDv7EbiT0vRfBdNIcqOOEOfyy27WEa8DaXVPQJYSlsDGycS7uTnYU8vlROJbbmlCTBL7hg==",
+ "path": "microsoft.build.utilities.core/17.7.2",
+ "hashPath": "microsoft.build.utilities.core.17.7.2.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers/3.11.0-beta1.24081.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-DH6L3rsbjppLrHM2l2/NKbnMaYd0NFHx2pjZaFdrVcRkONrV3i9FHv6Id8Dp6/TmjhXQsJVJJFbhhjkpuP1xxg==",
+ "path": "microsoft.codeanalysis.bannedapianalyzers/3.11.0-beta1.24081.1",
+ "hashPath": "microsoft.codeanalysis.bannedapianalyzers.3.11.0-beta1.24081.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.NetAnalyzers/8.0.0-preview.23468.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZhIvyxmUCqb8OiU/VQfxfuAmIB4lQsjqhMVYKeoyxzSI+d7uR5Pzx3ZKoaIhPizQ15wa4lnyD6wg3TnSJ6P4LA==",
+ "path": "microsoft.codeanalysis.netanalyzers/8.0.0-preview.23468.1",
+ "hashPath": "microsoft.codeanalysis.netanalyzers.8.0.0-preview.23468.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers/3.3.4-beta1.22504.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-2XRlqPAzVke7Sb80+UqaC7o57OwfK+tIr+aIOxrx41RWDMeR2SBUW7kL4sd6hfLFfBNsLo3W5PT+UwfvwPaOzA==",
+ "path": "microsoft.codeanalysis.performancesensitiveanalyzers/3.3.4-beta1.22504.1",
+ "hashPath": "microsoft.codeanalysis.performancesensitiveanalyzers.3.3.4-beta1.22504.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers/3.11.0-beta1.24081.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3bYGBihvoNO0rhCOG1U9O50/4Q8suZ+glHqQLIAcKvnodSnSW+dYWYzTNb1UbS8pUS8nAUfxSFMwuMup/G5DtQ==",
+ "path": "microsoft.codeanalysis.publicapianalyzers/3.11.0-beta1.24081.1",
+ "hashPath": "microsoft.codeanalysis.publicapianalyzers.3.11.0-beta1.24081.1.nupkg.sha512"
+ },
+ "Microsoft.DotNet.XliffTasks/9.0.0-beta.24076.5": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-UCm6/kW8+BMSjIUJv4Ep/HkB9MTj95o9uTt3IGqUclAuAqJDqE25YFzV2qi1CrUtu0RRSIUAv9GTs1O35mZ7/A==",
+ "path": "microsoft.dotnet.xlifftasks/9.0.0-beta.24076.5",
+ "hashPath": "microsoft.dotnet.xlifftasks.9.0.0-beta.24076.5.nupkg.sha512"
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-2.24270.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-niz/TRxQFG2AtC7qFxMQM1hCkBQwaY2Af/VWgWzrz30mx03cNC4QEor8/uKa45il4kwQx2m8z1xGq7CD8REb5g==",
+ "path": "microsoft.net.compilers.toolset/4.11.0-2.24270.4",
+ "hashPath": "microsoft.net.compilers.toolset.4.11.0-2.24270.4.nupkg.sha512"
+ },
+ "Microsoft.NET.StringTools/17.7.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-GDm2qPXJeWR4FSwY90zYZ+Wd0CN4FE+Nu2F57Vu8avatMzNQxV9WaVEBZFKbT4JLhNcXKc0CKBO50oVoRJR5BQ==",
+ "path": "microsoft.net.stringtools/17.7.2",
+ "hashPath": "microsoft.net.stringtools.17.7.2.nupkg.sha512"
+ },
+ "Microsoft.VisualStudio.Setup.Configuration.Interop/3.2.2146": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-gMq8uGy8zTIp0kQGTI45buZC3JOStGJyjGD8gksskk83aQISW65IESErLE/WDT7Bdy+QWbdUi7QyO1LEzUSOFA==",
+ "path": "microsoft.visualstudio.setup.configuration.interop/3.2.2146",
+ "hashPath": "microsoft.visualstudio.setup.configuration.interop.3.2.2146.nupkg.sha512"
+ },
+ "Microsoft.VisualStudio.Threading.Analyzers/17.10.41": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HGRbGrXEdzBXwh/WhjZ8FlAv2xFsgjkUVT/7j/EmOTTVRo35NdlDC4scLCHYv7rO52lLzCjvUy+jb6MhkqDcZw==",
+ "path": "microsoft.visualstudio.threading.analyzers/17.10.41",
+ "hashPath": "microsoft.visualstudio.threading.analyzers.17.10.41.nupkg.sha512"
+ },
+ "RichCodeNav.EnvVarDump/0.1.1643-alpha": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JYCyCxU/KrMUECak2zZoAL+e5lpefBz3Y+qudqUH5n4HLFq+pdju3V0642MWo6WGRtDcAAz7mVdIyfBuqI8DuA==",
+ "path": "richcodenav.envvardump/0.1.1643-alpha",
+ "hashPath": "richcodenav.envvardump.0.1.1643-alpha.nupkg.sha512"
+ },
+ "Roslyn.Diagnostics.Analyzers/3.11.0-beta1.24081.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-reHqZCDKifA+DURcL8jUfYkMGL4FpgNt5LI0uWTS6IpM8kKVbu/kO8byZsqfhBu4wUzT3MBDcoMfzhZPdENIpg==",
+ "path": "roslyn.diagnostics.analyzers/3.11.0-beta1.24081.1",
+ "hashPath": "roslyn.diagnostics.analyzers.3.11.0-beta1.24081.1.nupkg.sha512"
+ },
+ "System.CodeDom/7.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-GLltyqEsE5/3IE+zYRP5sNa1l44qKl9v+bfdMcwg+M9qnQf47wK3H0SUR/T+3N4JEQXF3vV4CSuuo0rsg+nq2A==",
+ "path": "system.codedom/7.0.0",
+ "hashPath": "system.codedom.7.0.0.nupkg.sha512"
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "path": "system.collections.immutable/8.0.0",
+ "hashPath": "system.collections.immutable.8.0.0.nupkg.sha512"
+ },
+ "System.Configuration.ConfigurationManager/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==",
+ "path": "system.configuration.configurationmanager/8.0.0",
+ "hashPath": "system.configuration.configurationmanager.8.0.0.nupkg.sha512"
+ },
+ "System.Diagnostics.EventLog/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==",
+ "path": "system.diagnostics.eventlog/8.0.0",
+ "hashPath": "system.diagnostics.eventlog.8.0.0.nupkg.sha512"
+ },
+ "System.Formats.Asn1/7.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+nfpV0afLmvJW8+pLlHxRjz3oZJw4fkyU9MMEaMhCsHi/SN9bGF9q79ROubDiwTiCHezmK0uCWkPP7tGFP/4yg==",
+ "path": "system.formats.asn1/7.0.0",
+ "hashPath": "system.formats.asn1.7.0.0.nupkg.sha512"
+ },
+ "System.Resources.Extensions/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-psnQ6GRQOvt+evda5C4nD5EuV49mz2Tv0DD2JDVDEbE/TKoMukxSkGJcsBJ0pajpPuFRr67syFYlkJ4Wj6A5Zw==",
+ "path": "system.resources.extensions/8.0.0",
+ "hashPath": "system.resources.extensions.8.0.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Pkcs/7.0.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-xhFNJOcQSWhpiVGLLBQYoxAltQSQVycMkwaX1z7I7oEdT9Wr0HzSM1yeAbfoHaERIYd5s6EpLSOLs2qMchSKlA==",
+ "path": "system.security.cryptography.pkcs/7.0.2",
+ "hashPath": "system.security.cryptography.pkcs.7.0.2.nupkg.sha512"
+ },
+ "System.Security.Cryptography.ProtectedData/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==",
+ "path": "system.security.cryptography.protecteddata/8.0.0",
+ "hashPath": "system.security.cryptography.protecteddata.8.0.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Xml/7.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-MCxBCtH0GrDuvU63ZODwQHQZPchb24pUAX3MfZ6b13qg246ZD10PRdOvay8C9HBPfCXkymUNwFPEegud7ax2zg==",
+ "path": "system.security.cryptography.xml/7.0.1",
+ "hashPath": "system.security.cryptography.xml.7.0.1.nupkg.sha512"
+ },
+ "System.Security.Permissions/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-v/BBylw7XevuAsHXoX9dDUUfmBIcUf7Lkz8K3ZXIKz3YRKpw8YftpSir4n4e/jDTKFoaK37AsC3xnk+GNFI1Ow==",
+ "path": "system.security.permissions/8.0.0",
+ "hashPath": "system.security.permissions.8.0.0.nupkg.sha512"
+ },
+ "System.Windows.Extensions/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Obg3a90MkOw9mYKxrardLpY2u0axDMrSmy4JCdq2cYbelM2cUwmUir5Bomvd1yxmPL9h5LVHU1tuKBZpUjfASg==",
+ "path": "system.windows.extensions/8.0.0",
+ "hashPath": "system.windows.extensions.8.0.0.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Roslyn/Microsoft.Build.Tasks.CodeAnalysis.dll b/dotnet/sdk/8.0.402/Roslyn/Microsoft.Build.Tasks.CodeAnalysis.dll
new file mode 100644
index 0000000000000000000000000000000000000000..97b1df919c903c3f7dba24777d3238a6cfbc70bf
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/Microsoft.Build.Tasks.CodeAnalysis.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/Microsoft.CSharp.Core.targets b/dotnet/sdk/8.0.402/Roslyn/Microsoft.CSharp.Core.targets
new file mode 100644
index 0000000000000000000000000000000000000000..882069dbc590abc904b9ddc76d8d89246eedbeb7
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Roslyn/Microsoft.CSharp.Core.targets
@@ -0,0 +1,202 @@
+
+
+
+
+
+
+
+ <_MaxSupportedLangVersion Condition="('$(TargetFrameworkIdentifier)' != '.NETCoreApp' OR '$(_TargetFrameworkVersionWithoutV)' < '3.0') AND
+ ('$(TargetFrameworkIdentifier)' != '.NETStandard' OR '$(_TargetFrameworkVersionWithoutV)' < '2.1')">7.3
+
+
+ <_MaxSupportedLangVersion Condition="(('$(TargetFrameworkIdentifier)' == '.NETCoreApp' AND '$(_TargetFrameworkVersionWithoutV)' < '5.0') OR
+ ('$(TargetFrameworkIdentifier)' == '.NETStandard' AND '$(_TargetFrameworkVersionWithoutV)' == '2.1')) AND
+ '$(_MaxSupportedLangVersion)' == ''">8.0
+
+
+ <_MaxSupportedLangVersion Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' AND '$(_TargetFrameworkVersionWithoutV)' == '5.0' AND
+ '$(_MaxSupportedLangVersion)' == ''">9.0
+
+
+ <_MaxSupportedLangVersion Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' AND '$(_TargetFrameworkVersionWithoutV)' == '6.0' AND
+ '$(_MaxSupportedLangVersion)' == ''">10.0
+
+
+ <_MaxSupportedLangVersion Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' AND '$(_TargetFrameworkVersionWithoutV)' == '7.0' AND
+ '$(_MaxSupportedLangVersion)' == ''">11.0
+
+
+ <_MaxSupportedLangVersion Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' AND '$(_TargetFrameworkVersionWithoutV)' == '8.0' AND
+ '$(_MaxSupportedLangVersion)' == ''">12.0
+
+ $(_MaxSupportedLangVersion)
+ $(_MaxSupportedLangVersion)
+
+
+
+
+
+ $(NoWarn);1701;1702
+
+
+
+
+ $(NoWarn);2008
+
+
+
+
+ $(AppConfig)
+
+
+ $(IntermediateOutputPath)$(TargetName).compile.pdb
+
+
+
+
+
+
+
+
+ <_CoreCompileResourceInputs Remove="@(_CoreCompileResourceInputs)" />
+
+
+
+
+
+
+
+ -langversion:$(LangVersion)
+ $(CommandLineArgsForDesignTimeEvaluation) -checksumalgorithm:$(ChecksumAlgorithm)
+ $(CommandLineArgsForDesignTimeEvaluation) -define:$(DefineConstants)
+
+
diff --git a/dotnet/sdk/8.0.402/Roslyn/Microsoft.Managed.Core.CurrentVersions.targets b/dotnet/sdk/8.0.402/Roslyn/Microsoft.Managed.Core.CurrentVersions.targets
new file mode 100644
index 0000000000000000000000000000000000000000..325f1ac8fc99e82b1731b6cf69191f20f443be2a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Roslyn/Microsoft.Managed.Core.CurrentVersions.targets
@@ -0,0 +1,5 @@
+
+
+ roslyn4.11
+
+
diff --git a/dotnet/sdk/8.0.402/Roslyn/Microsoft.Managed.Core.targets b/dotnet/sdk/8.0.402/Roslyn/Microsoft.Managed.Core.targets
new file mode 100644
index 0000000000000000000000000000000000000000..c29352522e8b5114943266d34b213c970ce1a798
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Roslyn/Microsoft.Managed.Core.targets
@@ -0,0 +1,354 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ <_SkipAnalyzers>
+ <_ImplicitlySkipAnalyzers>
+
+
+
+
+ <_SkipAnalyzers>true
+
+
+
+
+ <_ImplicitlySkipAnalyzers>true
+ <_SkipAnalyzers>true
+ run-nullable-analysis=never;$(Features)
+
+
+
+
+
+
+
+ <_LastBuildWithSkipAnalyzers>$(IntermediateOutputPath)$(MSBuildProjectFile).BuildWithSkipAnalyzers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_AllDirectoriesAbove Include="@(Compile->GetPathsOfAllDirectoriesAbove())" Condition="'$(DiscoverEditorConfigFiles)' != 'false' or '$(DiscoverGlobalAnalyzerConfigFiles)' != 'false'" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(IntermediateOutputPath)$(MSBuildProjectName).GeneratedMSBuildEditorConfig.editorconfig
+ true
+ <_GeneratedEditorConfigHasItems Condition="'@(CompilerVisibleItemMetadata->Count())' != '0'">true
+ <_GeneratedEditorConfigShouldRun Condition="'$(GenerateMSBuildEditorConfigFile)' == 'true' and ('$(_GeneratedEditorConfigHasItems)' == 'true' or '@(CompilerVisibleProperty->Count())' != '0')">true
+
+
+
+
+
+
+
+ <_GeneratedEditorConfigProperty Include="@(CompilerVisibleProperty)">
+ $(%(CompilerVisibleProperty.Identity))
+
+
+
+ <_GeneratedEditorConfigMetadata Include="@(%(CompilerVisibleItemMetadata.Identity))" Condition="'$(_GeneratedEditorConfigHasItems)' == 'true'">
+ %(Identity)
+ %(CompilerVisibleItemMetadata.MetadataName)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ <_MappedSourceRoot Remove="@(_MappedSourceRoot)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ <_TopLevelSourceRoot Include="@(SourceRoot)" Condition="'%(SourceRoot.NestedRoot)' == ''">
+ $([MSBuild]::ValueOrDefault('%(Identity)', '').Replace(',', ',,').Replace('=', '=='))
+ $([MSBuild]::ValueOrDefault('%(MappedPath)', '').Replace(',', ',,').Replace('=', '=='))
+
+
+
+
+
+ @(_TopLevelSourceRoot->'%(EscapedKey)=%(EscapedValue)', ','),$(PathMap)
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+ $(IntermediateOutputPath)/generated
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Roslyn/Microsoft.VisualBasic.Core.targets b/dotnet/sdk/8.0.402/Roslyn/Microsoft.VisualBasic.Core.targets
new file mode 100644
index 0000000000000000000000000000000000000000..a9611388d9de90a9695e5eafb2e6b41a64288fa9
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Roslyn/Microsoft.VisualBasic.Core.targets
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
+ <_NoWarnings Condition="'$(WarningLevel)' == '0'">true
+ <_NoWarnings Condition="'$(WarningLevel)' == '1'">false
+
+
+
+
+ $(IntermediateOutputPath)$(TargetName).compile.pdb
+
+
+
+
+
+
+
+ <_CoreCompileResourceInputs Remove="@(_CoreCompileResourceInputs)" />
+
+
+
+
+
+
+
+ -langversion:$(LangVersion)
+ $(CommandLineArgsForDesignTimeEvaluation) -checksumalgorithm:$(ChecksumAlgorithm)
+ $(CommandLineArgsForDesignTimeEvaluation) -define:$(FinalDefineConstants)
+
+
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/Microsoft.CodeAnalysis.CSharp.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/Microsoft.CodeAnalysis.CSharp.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cfb2022373a46fbc313eb684dd539f479ed2a5b1
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Roslyn/bincore/Microsoft.CodeAnalysis.CSharp.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b0dcd6195a956d42cf2f097005c638c02bd175858076f02cddb116bf2fb2e3ef
+size 18601984
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/Microsoft.CodeAnalysis.VisualBasic.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/Microsoft.CodeAnalysis.VisualBasic.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2593bfb25256cf2cd7dcb5154dbc0738e4f88e64
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Roslyn/bincore/Microsoft.CodeAnalysis.VisualBasic.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:36af98b20a726a680e17f95ee922729729f2959aa57f0c37bd7ec755ba845d19
+size 13686272
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/Microsoft.CodeAnalysis.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/Microsoft.CodeAnalysis.dll
new file mode 100644
index 0000000000000000000000000000000000000000..983a63527babf08e81829c4446d1c077be6618f1
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Roslyn/bincore/Microsoft.CodeAnalysis.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:627dc542537e24f30f3f10b7233909efde8f3194bc52ffa79553ed77898e4371
+size 8257536
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/VBCSCompiler.deps.json b/dotnet/sdk/8.0.402/Roslyn/bincore/VBCSCompiler.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..ba7e5be33e34b1867c743f57b4729a76fcfcbe1f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Roslyn/bincore/VBCSCompiler.deps.json
@@ -0,0 +1,382 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "VBCSCompiler/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.CSharp": "4.11.0-3.24365.8",
+ "Microsoft.CodeAnalysis.Common": "4.11.0-3.24365.8",
+ "Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler": "4.11.0-3.24365.8",
+ "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0-preview.23468.1",
+ "Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers": "3.3.4-beta1.22504.1",
+ "Microsoft.CodeAnalysis.VisualBasic": "4.11.0-3.24365.8",
+ "Microsoft.DiaSymReader.Native": "17.0.0-beta1.21524.1",
+ "Microsoft.DotNet.XliffTasks": "9.0.0-beta.24076.5",
+ "Microsoft.Net.Compilers.Toolset": "4.11.0-2.24270.4",
+ "Microsoft.VisualStudio.Threading.Analyzers": "17.10.41",
+ "RichCodeNav.EnvVarDump": "0.1.1643-alpha",
+ "Roslyn.Diagnostics.Analyzers": "3.11.0-beta1.24081.1",
+ "Microsoft.CodeAnalysis": "4.11.0.0"
+ },
+ "runtime": {
+ "VBCSCompiler.dll": {}
+ }
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {},
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers/3.11.0-beta1.24081.1": {},
+ "Microsoft.CodeAnalysis.NetAnalyzers/8.0.0-preview.23468.1": {},
+ "Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers/3.3.4-beta1.22504.1": {},
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers/3.11.0-beta1.24081.1": {},
+ "Microsoft.DiaSymReader.Native/17.0.0-beta1.21524.1": {},
+ "Microsoft.DotNet.XliffTasks/9.0.0-beta.24076.5": {},
+ "Microsoft.Net.Compilers.Toolset/4.11.0-2.24270.4": {},
+ "Microsoft.VisualStudio.Threading.Analyzers/17.10.41": {},
+ "RichCodeNav.EnvVarDump/0.1.1643-alpha": {},
+ "Roslyn.Diagnostics.Analyzers/3.11.0-beta1.24081.1": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.11.0-beta1.24081.1",
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers": "3.11.0-beta1.24081.1"
+ }
+ },
+ "System.Collections.Immutable/8.0.0": {},
+ "System.Reflection.Metadata/8.0.0": {
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0"
+ }
+ },
+ "Microsoft.CodeAnalysis.Common/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0"
+ },
+ "runtime": {
+ "Microsoft.CodeAnalysis.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "4.11.0-3.24365.8"
+ },
+ "runtime": {
+ "Microsoft.CodeAnalysis.CSharp.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "4.11.0-3.24365.8"
+ },
+ "runtime": {
+ "Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll": {}
+ }
+ },
+ "Microsoft.CodeAnalysis.VisualBasic/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "4.11.0-3.24365.8"
+ },
+ "runtime": {
+ "Microsoft.CodeAnalysis.VisualBasic.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis/4.11.0.0": {
+ "runtime": {
+ "Microsoft.CodeAnalysis.dll": {
+ "assemblyVersion": "4.11.0.0",
+ "fileVersion": "4.1100.24.36508"
+ }
+ },
+ "resources": {
+ "cs/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "VBCSCompiler/4.11.0-3.24365.8": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==",
+ "path": "microsoft.codeanalysis.analyzers/3.3.4",
+ "hashPath": "microsoft.codeanalysis.analyzers.3.3.4.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers/3.11.0-beta1.24081.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-DH6L3rsbjppLrHM2l2/NKbnMaYd0NFHx2pjZaFdrVcRkONrV3i9FHv6Id8Dp6/TmjhXQsJVJJFbhhjkpuP1xxg==",
+ "path": "microsoft.codeanalysis.bannedapianalyzers/3.11.0-beta1.24081.1",
+ "hashPath": "microsoft.codeanalysis.bannedapianalyzers.3.11.0-beta1.24081.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.NetAnalyzers/8.0.0-preview.23468.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZhIvyxmUCqb8OiU/VQfxfuAmIB4lQsjqhMVYKeoyxzSI+d7uR5Pzx3ZKoaIhPizQ15wa4lnyD6wg3TnSJ6P4LA==",
+ "path": "microsoft.codeanalysis.netanalyzers/8.0.0-preview.23468.1",
+ "hashPath": "microsoft.codeanalysis.netanalyzers.8.0.0-preview.23468.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers/3.3.4-beta1.22504.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-2XRlqPAzVke7Sb80+UqaC7o57OwfK+tIr+aIOxrx41RWDMeR2SBUW7kL4sd6hfLFfBNsLo3W5PT+UwfvwPaOzA==",
+ "path": "microsoft.codeanalysis.performancesensitiveanalyzers/3.3.4-beta1.22504.1",
+ "hashPath": "microsoft.codeanalysis.performancesensitiveanalyzers.3.3.4-beta1.22504.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers/3.11.0-beta1.24081.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3bYGBihvoNO0rhCOG1U9O50/4Q8suZ+glHqQLIAcKvnodSnSW+dYWYzTNb1UbS8pUS8nAUfxSFMwuMup/G5DtQ==",
+ "path": "microsoft.codeanalysis.publicapianalyzers/3.11.0-beta1.24081.1",
+ "hashPath": "microsoft.codeanalysis.publicapianalyzers.3.11.0-beta1.24081.1.nupkg.sha512"
+ },
+ "Microsoft.DiaSymReader.Native/17.0.0-beta1.21524.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bddH6yTHLUhIDC159WqQR1zyoO5HUyLv0kP7O7kAy2kZIlQSKwhdMn80BPbO/zbcMaURLe/7WAtimG5Nq+qevA==",
+ "path": "microsoft.diasymreader.native/17.0.0-beta1.21524.1",
+ "hashPath": "microsoft.diasymreader.native.17.0.0-beta1.21524.1.nupkg.sha512"
+ },
+ "Microsoft.DotNet.XliffTasks/9.0.0-beta.24076.5": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-UCm6/kW8+BMSjIUJv4Ep/HkB9MTj95o9uTt3IGqUclAuAqJDqE25YFzV2qi1CrUtu0RRSIUAv9GTs1O35mZ7/A==",
+ "path": "microsoft.dotnet.xlifftasks/9.0.0-beta.24076.5",
+ "hashPath": "microsoft.dotnet.xlifftasks.9.0.0-beta.24076.5.nupkg.sha512"
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-2.24270.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-niz/TRxQFG2AtC7qFxMQM1hCkBQwaY2Af/VWgWzrz30mx03cNC4QEor8/uKa45il4kwQx2m8z1xGq7CD8REb5g==",
+ "path": "microsoft.net.compilers.toolset/4.11.0-2.24270.4",
+ "hashPath": "microsoft.net.compilers.toolset.4.11.0-2.24270.4.nupkg.sha512"
+ },
+ "Microsoft.VisualStudio.Threading.Analyzers/17.10.41": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HGRbGrXEdzBXwh/WhjZ8FlAv2xFsgjkUVT/7j/EmOTTVRo35NdlDC4scLCHYv7rO52lLzCjvUy+jb6MhkqDcZw==",
+ "path": "microsoft.visualstudio.threading.analyzers/17.10.41",
+ "hashPath": "microsoft.visualstudio.threading.analyzers.17.10.41.nupkg.sha512"
+ },
+ "RichCodeNav.EnvVarDump/0.1.1643-alpha": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JYCyCxU/KrMUECak2zZoAL+e5lpefBz3Y+qudqUH5n4HLFq+pdju3V0642MWo6WGRtDcAAz7mVdIyfBuqI8DuA==",
+ "path": "richcodenav.envvardump/0.1.1643-alpha",
+ "hashPath": "richcodenav.envvardump.0.1.1643-alpha.nupkg.sha512"
+ },
+ "Roslyn.Diagnostics.Analyzers/3.11.0-beta1.24081.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-reHqZCDKifA+DURcL8jUfYkMGL4FpgNt5LI0uWTS6IpM8kKVbu/kO8byZsqfhBu4wUzT3MBDcoMfzhZPdENIpg==",
+ "path": "roslyn.diagnostics.analyzers/3.11.0-beta1.24081.1",
+ "hashPath": "roslyn.diagnostics.analyzers.3.11.0-beta1.24081.1.nupkg.sha512"
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "path": "system.collections.immutable/8.0.0",
+ "hashPath": "system.collections.immutable.8.0.0.nupkg.sha512"
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+ "path": "system.reflection.metadata/8.0.0",
+ "hashPath": "system.reflection.metadata.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.Common/4.11.0-3.24365.8": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.11.0-3.24365.8": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler/4.11.0-3.24365.8": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis.VisualBasic/4.11.0-3.24365.8": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis/4.11.0.0": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/VBCSCompiler.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/VBCSCompiler.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7aaae5a0ea1362474bf1f27233a050cface814bf
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/VBCSCompiler.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/VBCSCompiler.runtimeconfig.json b/dotnet/sdk/8.0.402/Roslyn/bincore/VBCSCompiler.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..9aa63a304dc1748ee2bd375233c3f91fdd803bf8
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Roslyn/bincore/VBCSCompiler.runtimeconfig.json
@@ -0,0 +1,15 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ },
+ "rollForward": "Major",
+ "configProperties": {
+ "System.GC.Server": true,
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/cs/Microsoft.CodeAnalysis.CSharp.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/cs/Microsoft.CodeAnalysis.CSharp.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..989697aaac21442069ac943c537acb4c9e26d602
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/cs/Microsoft.CodeAnalysis.CSharp.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/cs/Microsoft.CodeAnalysis.VisualBasic.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/cs/Microsoft.CodeAnalysis.VisualBasic.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2a6875f34fc5df213e377aeb8c66bc6fb0450f1e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/cs/Microsoft.CodeAnalysis.VisualBasic.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/cs/Microsoft.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/cs/Microsoft.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fee118455c6723aabb549a057cad3becc021b810
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/cs/Microsoft.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/csc.deps.json b/dotnet/sdk/8.0.402/Roslyn/bincore/csc.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..fb1a16465bf34676644c51e4cdf6598c501fa1a2
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Roslyn/bincore/csc.deps.json
@@ -0,0 +1,327 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "csc/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.CSharp": "4.11.0-3.24365.8",
+ "Microsoft.CodeAnalysis.Common": "4.11.0-3.24365.8",
+ "Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler": "4.11.0-3.24365.8",
+ "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0-preview.23468.1",
+ "Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers": "3.3.4-beta1.22504.1",
+ "Microsoft.DiaSymReader.Native": "17.0.0-beta1.21524.1",
+ "Microsoft.DotNet.XliffTasks": "9.0.0-beta.24076.5",
+ "Microsoft.Net.Compilers.Toolset": "4.11.0-2.24270.4",
+ "Microsoft.VisualStudio.Threading.Analyzers": "17.10.41",
+ "RichCodeNav.EnvVarDump": "0.1.1643-alpha",
+ "Roslyn.Diagnostics.Analyzers": "3.11.0-beta1.24081.1",
+ "Microsoft.CodeAnalysis": "4.11.0.0"
+ },
+ "runtime": {
+ "csc.dll": {}
+ }
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {},
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers/3.11.0-beta1.24081.1": {},
+ "Microsoft.CodeAnalysis.NetAnalyzers/8.0.0-preview.23468.1": {},
+ "Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers/3.3.4-beta1.22504.1": {},
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers/3.11.0-beta1.24081.1": {},
+ "Microsoft.DiaSymReader.Native/17.0.0-beta1.21524.1": {},
+ "Microsoft.DotNet.XliffTasks/9.0.0-beta.24076.5": {},
+ "Microsoft.Net.Compilers.Toolset/4.11.0-2.24270.4": {},
+ "Microsoft.VisualStudio.Threading.Analyzers/17.10.41": {},
+ "RichCodeNav.EnvVarDump/0.1.1643-alpha": {},
+ "Roslyn.Diagnostics.Analyzers/3.11.0-beta1.24081.1": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.11.0-beta1.24081.1",
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers": "3.11.0-beta1.24081.1"
+ }
+ },
+ "System.Collections.Immutable/8.0.0": {},
+ "System.Reflection.Metadata/8.0.0": {
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0"
+ }
+ },
+ "Microsoft.CodeAnalysis.Common/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0"
+ },
+ "runtime": {
+ "Microsoft.CodeAnalysis.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "4.11.0-3.24365.8"
+ },
+ "runtime": {
+ "Microsoft.CodeAnalysis.CSharp.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "4.11.0-3.24365.8"
+ },
+ "runtime": {
+ "Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll": {}
+ }
+ },
+ "Microsoft.CodeAnalysis/4.11.0.0": {
+ "runtime": {
+ "Microsoft.CodeAnalysis.dll": {
+ "assemblyVersion": "4.11.0.0",
+ "fileVersion": "4.1100.24.36508"
+ }
+ },
+ "resources": {
+ "cs/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "csc/4.11.0-3.24365.8": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==",
+ "path": "microsoft.codeanalysis.analyzers/3.3.4",
+ "hashPath": "microsoft.codeanalysis.analyzers.3.3.4.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers/3.11.0-beta1.24081.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-DH6L3rsbjppLrHM2l2/NKbnMaYd0NFHx2pjZaFdrVcRkONrV3i9FHv6Id8Dp6/TmjhXQsJVJJFbhhjkpuP1xxg==",
+ "path": "microsoft.codeanalysis.bannedapianalyzers/3.11.0-beta1.24081.1",
+ "hashPath": "microsoft.codeanalysis.bannedapianalyzers.3.11.0-beta1.24081.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.NetAnalyzers/8.0.0-preview.23468.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZhIvyxmUCqb8OiU/VQfxfuAmIB4lQsjqhMVYKeoyxzSI+d7uR5Pzx3ZKoaIhPizQ15wa4lnyD6wg3TnSJ6P4LA==",
+ "path": "microsoft.codeanalysis.netanalyzers/8.0.0-preview.23468.1",
+ "hashPath": "microsoft.codeanalysis.netanalyzers.8.0.0-preview.23468.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers/3.3.4-beta1.22504.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-2XRlqPAzVke7Sb80+UqaC7o57OwfK+tIr+aIOxrx41RWDMeR2SBUW7kL4sd6hfLFfBNsLo3W5PT+UwfvwPaOzA==",
+ "path": "microsoft.codeanalysis.performancesensitiveanalyzers/3.3.4-beta1.22504.1",
+ "hashPath": "microsoft.codeanalysis.performancesensitiveanalyzers.3.3.4-beta1.22504.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers/3.11.0-beta1.24081.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3bYGBihvoNO0rhCOG1U9O50/4Q8suZ+glHqQLIAcKvnodSnSW+dYWYzTNb1UbS8pUS8nAUfxSFMwuMup/G5DtQ==",
+ "path": "microsoft.codeanalysis.publicapianalyzers/3.11.0-beta1.24081.1",
+ "hashPath": "microsoft.codeanalysis.publicapianalyzers.3.11.0-beta1.24081.1.nupkg.sha512"
+ },
+ "Microsoft.DiaSymReader.Native/17.0.0-beta1.21524.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bddH6yTHLUhIDC159WqQR1zyoO5HUyLv0kP7O7kAy2kZIlQSKwhdMn80BPbO/zbcMaURLe/7WAtimG5Nq+qevA==",
+ "path": "microsoft.diasymreader.native/17.0.0-beta1.21524.1",
+ "hashPath": "microsoft.diasymreader.native.17.0.0-beta1.21524.1.nupkg.sha512"
+ },
+ "Microsoft.DotNet.XliffTasks/9.0.0-beta.24076.5": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-UCm6/kW8+BMSjIUJv4Ep/HkB9MTj95o9uTt3IGqUclAuAqJDqE25YFzV2qi1CrUtu0RRSIUAv9GTs1O35mZ7/A==",
+ "path": "microsoft.dotnet.xlifftasks/9.0.0-beta.24076.5",
+ "hashPath": "microsoft.dotnet.xlifftasks.9.0.0-beta.24076.5.nupkg.sha512"
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-2.24270.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-niz/TRxQFG2AtC7qFxMQM1hCkBQwaY2Af/VWgWzrz30mx03cNC4QEor8/uKa45il4kwQx2m8z1xGq7CD8REb5g==",
+ "path": "microsoft.net.compilers.toolset/4.11.0-2.24270.4",
+ "hashPath": "microsoft.net.compilers.toolset.4.11.0-2.24270.4.nupkg.sha512"
+ },
+ "Microsoft.VisualStudio.Threading.Analyzers/17.10.41": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HGRbGrXEdzBXwh/WhjZ8FlAv2xFsgjkUVT/7j/EmOTTVRo35NdlDC4scLCHYv7rO52lLzCjvUy+jb6MhkqDcZw==",
+ "path": "microsoft.visualstudio.threading.analyzers/17.10.41",
+ "hashPath": "microsoft.visualstudio.threading.analyzers.17.10.41.nupkg.sha512"
+ },
+ "RichCodeNav.EnvVarDump/0.1.1643-alpha": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JYCyCxU/KrMUECak2zZoAL+e5lpefBz3Y+qudqUH5n4HLFq+pdju3V0642MWo6WGRtDcAAz7mVdIyfBuqI8DuA==",
+ "path": "richcodenav.envvardump/0.1.1643-alpha",
+ "hashPath": "richcodenav.envvardump.0.1.1643-alpha.nupkg.sha512"
+ },
+ "Roslyn.Diagnostics.Analyzers/3.11.0-beta1.24081.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-reHqZCDKifA+DURcL8jUfYkMGL4FpgNt5LI0uWTS6IpM8kKVbu/kO8byZsqfhBu4wUzT3MBDcoMfzhZPdENIpg==",
+ "path": "roslyn.diagnostics.analyzers/3.11.0-beta1.24081.1",
+ "hashPath": "roslyn.diagnostics.analyzers.3.11.0-beta1.24081.1.nupkg.sha512"
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "path": "system.collections.immutable/8.0.0",
+ "hashPath": "system.collections.immutable.8.0.0.nupkg.sha512"
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+ "path": "system.reflection.metadata/8.0.0",
+ "hashPath": "system.reflection.metadata.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.Common/4.11.0-3.24365.8": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.11.0-3.24365.8": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler/4.11.0-3.24365.8": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis/4.11.0.0": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/csc.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/csc.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2388d5f9852f955f70b670a286681e768ba45f88
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/csc.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/csc.runtimeconfig.json b/dotnet/sdk/8.0.402/Roslyn/bincore/csc.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..9aa63a304dc1748ee2bd375233c3f91fdd803bf8
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Roslyn/bincore/csc.runtimeconfig.json
@@ -0,0 +1,15 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ },
+ "rollForward": "Major",
+ "configProperties": {
+ "System.GC.Server": true,
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/de/Microsoft.CodeAnalysis.CSharp.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/de/Microsoft.CodeAnalysis.CSharp.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bd342b52c39b88787fbc1bc19c00599fdea36fbd
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/de/Microsoft.CodeAnalysis.CSharp.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/de/Microsoft.CodeAnalysis.VisualBasic.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/de/Microsoft.CodeAnalysis.VisualBasic.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f0bb232e858378691253efedbb4a5ddad76165cc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/de/Microsoft.CodeAnalysis.VisualBasic.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/de/Microsoft.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/de/Microsoft.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..faad4d96f9bb393cd05f11b4cde9967747342902
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/de/Microsoft.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/es/Microsoft.CodeAnalysis.CSharp.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/es/Microsoft.CodeAnalysis.CSharp.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..30253d0324521f27ab9778af232346f5a075d3b5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/es/Microsoft.CodeAnalysis.CSharp.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/es/Microsoft.CodeAnalysis.VisualBasic.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/es/Microsoft.CodeAnalysis.VisualBasic.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7b7a4fbe6f925b2261996f527ed4eaaea7f69fb9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/es/Microsoft.CodeAnalysis.VisualBasic.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/es/Microsoft.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/es/Microsoft.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..675763aa560fdb78a37316a20e6cf48c17475dca
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/es/Microsoft.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/fr/Microsoft.CodeAnalysis.CSharp.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/fr/Microsoft.CodeAnalysis.CSharp.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dbeba9a34277954b91d1699410de53b02864f605
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/fr/Microsoft.CodeAnalysis.CSharp.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/fr/Microsoft.CodeAnalysis.VisualBasic.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/fr/Microsoft.CodeAnalysis.VisualBasic.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..222efa09772c2f3117115dddaf0442f02a6d7dc7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/fr/Microsoft.CodeAnalysis.VisualBasic.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/fr/Microsoft.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/fr/Microsoft.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c2e90e26a2165dbc4aac95ca003f297ef73e6bda
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/fr/Microsoft.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/it/Microsoft.CodeAnalysis.CSharp.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/it/Microsoft.CodeAnalysis.CSharp.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..10f9ecfc0cfa59d5f9dae0ab68edf0ea2970a4a9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/it/Microsoft.CodeAnalysis.CSharp.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/it/Microsoft.CodeAnalysis.VisualBasic.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/it/Microsoft.CodeAnalysis.VisualBasic.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ffcf6fd6becf3a0621a4fc7af040f4c079d7062f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/it/Microsoft.CodeAnalysis.VisualBasic.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/it/Microsoft.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/it/Microsoft.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..92a6512cc8ba4ce90b3c209eaf9796e06649d5ab
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/it/Microsoft.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/ja/Microsoft.CodeAnalysis.CSharp.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/ja/Microsoft.CodeAnalysis.CSharp.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d5b18b7b0c8d45ee927e1a990e7b2a59f8f73795
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/ja/Microsoft.CodeAnalysis.CSharp.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/ja/Microsoft.CodeAnalysis.VisualBasic.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/ja/Microsoft.CodeAnalysis.VisualBasic.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..49741386755e8e3c5eefc5b736f0ab9907d883a7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/ja/Microsoft.CodeAnalysis.VisualBasic.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/ja/Microsoft.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/ja/Microsoft.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1f5133ef60b994770451758aacdc7cae6c3cff1e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/ja/Microsoft.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/ko/Microsoft.CodeAnalysis.CSharp.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/ko/Microsoft.CodeAnalysis.CSharp.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..62120ebd5590392e3de1070238590d90849cd9ea
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/ko/Microsoft.CodeAnalysis.CSharp.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/ko/Microsoft.CodeAnalysis.VisualBasic.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/ko/Microsoft.CodeAnalysis.VisualBasic.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c154602e097f09e1b585fdb72410cb554a5b75c5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/ko/Microsoft.CodeAnalysis.VisualBasic.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/ko/Microsoft.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/ko/Microsoft.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9a33fb2d2e8538aba6465d9a1ed59ca254a9de92
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/ko/Microsoft.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/pl/Microsoft.CodeAnalysis.CSharp.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/pl/Microsoft.CodeAnalysis.CSharp.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b56cdb7b18d47b2cdb1a4e9215d09ead8f381bf1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/pl/Microsoft.CodeAnalysis.CSharp.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/pl/Microsoft.CodeAnalysis.VisualBasic.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/pl/Microsoft.CodeAnalysis.VisualBasic.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1dd09bc2830d38103ef9bd91239b4cd411fa91d9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/pl/Microsoft.CodeAnalysis.VisualBasic.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/pl/Microsoft.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/pl/Microsoft.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ca955e406e0b883cb5dfd23c1607540d2b6a46cd
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/pl/Microsoft.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..86c479d6b28f9823bd047a1d6b2348f3b8c9a8c1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.VisualBasic.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.VisualBasic.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5ca7fb28c403e89cb844eea71ec88987add92611
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.VisualBasic.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fae083893433f501618b6952b6fe989be8ae5b28
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/pt-BR/Microsoft.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/ru/Microsoft.CodeAnalysis.CSharp.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/ru/Microsoft.CodeAnalysis.CSharp.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..15b8118564b070e285b8b4f448857a4fb129fa28
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/ru/Microsoft.CodeAnalysis.CSharp.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/ru/Microsoft.CodeAnalysis.VisualBasic.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/ru/Microsoft.CodeAnalysis.VisualBasic.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..89494e0a7271a344bdcb31bc2e429dcf36cff912
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/ru/Microsoft.CodeAnalysis.VisualBasic.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/ru/Microsoft.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/ru/Microsoft.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1a65aa416537e67bf26c17415c23d55283d1642c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/ru/Microsoft.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/tr/Microsoft.CodeAnalysis.CSharp.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/tr/Microsoft.CodeAnalysis.CSharp.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..61dbc15d252e091f8d74930f5bf6ea10df1e6587
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/tr/Microsoft.CodeAnalysis.CSharp.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/tr/Microsoft.CodeAnalysis.VisualBasic.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/tr/Microsoft.CodeAnalysis.VisualBasic.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b6b81973f9c6f624f24beee7d58887291e022573
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/tr/Microsoft.CodeAnalysis.VisualBasic.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/tr/Microsoft.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/tr/Microsoft.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4dc703743af0382d1fde7917c15314f49d9ec311
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/tr/Microsoft.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/vbc.deps.json b/dotnet/sdk/8.0.402/Roslyn/bincore/vbc.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..f87a1934d28065baf3107b839585272e04cfae8b
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Roslyn/bincore/vbc.deps.json
@@ -0,0 +1,327 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "vbc/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "4.11.0-3.24365.8",
+ "Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler": "4.11.0-3.24365.8",
+ "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0-preview.23468.1",
+ "Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers": "3.3.4-beta1.22504.1",
+ "Microsoft.CodeAnalysis.VisualBasic": "4.11.0-3.24365.8",
+ "Microsoft.DiaSymReader.Native": "17.0.0-beta1.21524.1",
+ "Microsoft.DotNet.XliffTasks": "9.0.0-beta.24076.5",
+ "Microsoft.Net.Compilers.Toolset": "4.11.0-2.24270.4",
+ "Microsoft.VisualStudio.Threading.Analyzers": "17.10.41",
+ "RichCodeNav.EnvVarDump": "0.1.1643-alpha",
+ "Roslyn.Diagnostics.Analyzers": "3.11.0-beta1.24081.1",
+ "Microsoft.CodeAnalysis": "4.11.0.0"
+ },
+ "runtime": {
+ "vbc.dll": {}
+ }
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {},
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers/3.11.0-beta1.24081.1": {},
+ "Microsoft.CodeAnalysis.NetAnalyzers/8.0.0-preview.23468.1": {},
+ "Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers/3.3.4-beta1.22504.1": {},
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers/3.11.0-beta1.24081.1": {},
+ "Microsoft.DiaSymReader.Native/17.0.0-beta1.21524.1": {},
+ "Microsoft.DotNet.XliffTasks/9.0.0-beta.24076.5": {},
+ "Microsoft.Net.Compilers.Toolset/4.11.0-2.24270.4": {},
+ "Microsoft.VisualStudio.Threading.Analyzers/17.10.41": {},
+ "RichCodeNav.EnvVarDump/0.1.1643-alpha": {},
+ "Roslyn.Diagnostics.Analyzers/3.11.0-beta1.24081.1": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.11.0-beta1.24081.1",
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers": "3.11.0-beta1.24081.1"
+ }
+ },
+ "System.Collections.Immutable/8.0.0": {},
+ "System.Reflection.Metadata/8.0.0": {
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0"
+ }
+ },
+ "Microsoft.CodeAnalysis.Common/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0"
+ },
+ "runtime": {
+ "Microsoft.CodeAnalysis.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "4.11.0-3.24365.8"
+ },
+ "runtime": {
+ "Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll": {}
+ }
+ },
+ "Microsoft.CodeAnalysis.VisualBasic/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "4.11.0-3.24365.8"
+ },
+ "runtime": {
+ "Microsoft.CodeAnalysis.VisualBasic.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis/4.11.0.0": {
+ "runtime": {
+ "Microsoft.CodeAnalysis.dll": {
+ "assemblyVersion": "4.11.0.0",
+ "fileVersion": "4.1100.24.36508"
+ }
+ },
+ "resources": {
+ "cs/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "vbc/4.11.0-3.24365.8": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==",
+ "path": "microsoft.codeanalysis.analyzers/3.3.4",
+ "hashPath": "microsoft.codeanalysis.analyzers.3.3.4.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers/3.11.0-beta1.24081.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-DH6L3rsbjppLrHM2l2/NKbnMaYd0NFHx2pjZaFdrVcRkONrV3i9FHv6Id8Dp6/TmjhXQsJVJJFbhhjkpuP1xxg==",
+ "path": "microsoft.codeanalysis.bannedapianalyzers/3.11.0-beta1.24081.1",
+ "hashPath": "microsoft.codeanalysis.bannedapianalyzers.3.11.0-beta1.24081.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.NetAnalyzers/8.0.0-preview.23468.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZhIvyxmUCqb8OiU/VQfxfuAmIB4lQsjqhMVYKeoyxzSI+d7uR5Pzx3ZKoaIhPizQ15wa4lnyD6wg3TnSJ6P4LA==",
+ "path": "microsoft.codeanalysis.netanalyzers/8.0.0-preview.23468.1",
+ "hashPath": "microsoft.codeanalysis.netanalyzers.8.0.0-preview.23468.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers/3.3.4-beta1.22504.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-2XRlqPAzVke7Sb80+UqaC7o57OwfK+tIr+aIOxrx41RWDMeR2SBUW7kL4sd6hfLFfBNsLo3W5PT+UwfvwPaOzA==",
+ "path": "microsoft.codeanalysis.performancesensitiveanalyzers/3.3.4-beta1.22504.1",
+ "hashPath": "microsoft.codeanalysis.performancesensitiveanalyzers.3.3.4-beta1.22504.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers/3.11.0-beta1.24081.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3bYGBihvoNO0rhCOG1U9O50/4Q8suZ+glHqQLIAcKvnodSnSW+dYWYzTNb1UbS8pUS8nAUfxSFMwuMup/G5DtQ==",
+ "path": "microsoft.codeanalysis.publicapianalyzers/3.11.0-beta1.24081.1",
+ "hashPath": "microsoft.codeanalysis.publicapianalyzers.3.11.0-beta1.24081.1.nupkg.sha512"
+ },
+ "Microsoft.DiaSymReader.Native/17.0.0-beta1.21524.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bddH6yTHLUhIDC159WqQR1zyoO5HUyLv0kP7O7kAy2kZIlQSKwhdMn80BPbO/zbcMaURLe/7WAtimG5Nq+qevA==",
+ "path": "microsoft.diasymreader.native/17.0.0-beta1.21524.1",
+ "hashPath": "microsoft.diasymreader.native.17.0.0-beta1.21524.1.nupkg.sha512"
+ },
+ "Microsoft.DotNet.XliffTasks/9.0.0-beta.24076.5": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-UCm6/kW8+BMSjIUJv4Ep/HkB9MTj95o9uTt3IGqUclAuAqJDqE25YFzV2qi1CrUtu0RRSIUAv9GTs1O35mZ7/A==",
+ "path": "microsoft.dotnet.xlifftasks/9.0.0-beta.24076.5",
+ "hashPath": "microsoft.dotnet.xlifftasks.9.0.0-beta.24076.5.nupkg.sha512"
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-2.24270.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-niz/TRxQFG2AtC7qFxMQM1hCkBQwaY2Af/VWgWzrz30mx03cNC4QEor8/uKa45il4kwQx2m8z1xGq7CD8REb5g==",
+ "path": "microsoft.net.compilers.toolset/4.11.0-2.24270.4",
+ "hashPath": "microsoft.net.compilers.toolset.4.11.0-2.24270.4.nupkg.sha512"
+ },
+ "Microsoft.VisualStudio.Threading.Analyzers/17.10.41": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HGRbGrXEdzBXwh/WhjZ8FlAv2xFsgjkUVT/7j/EmOTTVRo35NdlDC4scLCHYv7rO52lLzCjvUy+jb6MhkqDcZw==",
+ "path": "microsoft.visualstudio.threading.analyzers/17.10.41",
+ "hashPath": "microsoft.visualstudio.threading.analyzers.17.10.41.nupkg.sha512"
+ },
+ "RichCodeNav.EnvVarDump/0.1.1643-alpha": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JYCyCxU/KrMUECak2zZoAL+e5lpefBz3Y+qudqUH5n4HLFq+pdju3V0642MWo6WGRtDcAAz7mVdIyfBuqI8DuA==",
+ "path": "richcodenav.envvardump/0.1.1643-alpha",
+ "hashPath": "richcodenav.envvardump.0.1.1643-alpha.nupkg.sha512"
+ },
+ "Roslyn.Diagnostics.Analyzers/3.11.0-beta1.24081.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-reHqZCDKifA+DURcL8jUfYkMGL4FpgNt5LI0uWTS6IpM8kKVbu/kO8byZsqfhBu4wUzT3MBDcoMfzhZPdENIpg==",
+ "path": "roslyn.diagnostics.analyzers/3.11.0-beta1.24081.1",
+ "hashPath": "roslyn.diagnostics.analyzers.3.11.0-beta1.24081.1.nupkg.sha512"
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "path": "system.collections.immutable/8.0.0",
+ "hashPath": "system.collections.immutable.8.0.0.nupkg.sha512"
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+ "path": "system.reflection.metadata/8.0.0",
+ "hashPath": "system.reflection.metadata.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.Common/4.11.0-3.24365.8": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler/4.11.0-3.24365.8": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis.VisualBasic/4.11.0-3.24365.8": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis/4.11.0.0": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/vbc.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/vbc.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8aef407719434c8ff4fb93704a2b0bcd4b6a7c8c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/vbc.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/vbc.runtimeconfig.json b/dotnet/sdk/8.0.402/Roslyn/bincore/vbc.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..9aa63a304dc1748ee2bd375233c3f91fdd803bf8
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Roslyn/bincore/vbc.runtimeconfig.json
@@ -0,0 +1,15 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ },
+ "rollForward": "Major",
+ "configProperties": {
+ "System.GC.Server": true,
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bcabf678251bfec3ffce8ee4a5b56d7edcd81b0a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..14adc6c5be6655c7d6b9208822dc2fc23df73ddc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..af64762a8d8743cb4296f382b689c98f474e310f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hans/Microsoft.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..070f33dcde2cb47981e8f40647147bfa863fc57e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1f4a8de92c568043d8040790e6eaeabf0523ed04
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a3a7e63bc91e136bcbb0d457bc2356a01f50c82f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/bincore/zh-Hant/Microsoft.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/cs/Microsoft.Build.Tasks.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/cs/Microsoft.Build.Tasks.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6ac316aa54e19b3242757fff0a0d8472919af3b1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/cs/Microsoft.Build.Tasks.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/de/Microsoft.Build.Tasks.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/de/Microsoft.Build.Tasks.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f3382093b0d636bacf22dcd6fd1d7b2421dc737c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/de/Microsoft.Build.Tasks.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/es/Microsoft.Build.Tasks.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/es/Microsoft.Build.Tasks.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..46ccfe4c88d69c9e967213dc69c8013479405926
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/es/Microsoft.Build.Tasks.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/fr/Microsoft.Build.Tasks.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/fr/Microsoft.Build.Tasks.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fc99609300f23985d40bcc2eb13fbbe1b9ad8c89
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/fr/Microsoft.Build.Tasks.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/it/Microsoft.Build.Tasks.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/it/Microsoft.Build.Tasks.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e3024f4a6667c4aef29de3be4f70bf0e50a601ee
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/it/Microsoft.Build.Tasks.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/ja/Microsoft.Build.Tasks.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/ja/Microsoft.Build.Tasks.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..424c0861763dd00b44c44cc13fc5dffd86b7e72a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/ja/Microsoft.Build.Tasks.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/ko/Microsoft.Build.Tasks.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/ko/Microsoft.Build.Tasks.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b5cfe111358b12741a66085c863607566c0dc5e4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/ko/Microsoft.Build.Tasks.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/pl/Microsoft.Build.Tasks.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/pl/Microsoft.Build.Tasks.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..648b14c18010443000ce73b7c62c310175ec9b1f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/pl/Microsoft.Build.Tasks.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/pt-BR/Microsoft.Build.Tasks.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/pt-BR/Microsoft.Build.Tasks.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8c0a47fea4a3fead9d054ac5a9bbc539e09bfb2b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/pt-BR/Microsoft.Build.Tasks.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/ru/Microsoft.Build.Tasks.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/ru/Microsoft.Build.Tasks.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f3700f3037fb5934ebeb151fd8e1012c7766d9cb
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/ru/Microsoft.Build.Tasks.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/tr/Microsoft.Build.Tasks.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/tr/Microsoft.Build.Tasks.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..30b26342cb88172ee40484b5a20df7552cac1661
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/tr/Microsoft.Build.Tasks.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/zh-Hans/Microsoft.Build.Tasks.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/zh-Hans/Microsoft.Build.Tasks.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ad80cd7589b37e1cace62fe749c660f97b8ac2c0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/zh-Hans/Microsoft.Build.Tasks.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Roslyn/zh-Hant/Microsoft.Build.Tasks.CodeAnalysis.resources.dll b/dotnet/sdk/8.0.402/Roslyn/zh-Hant/Microsoft.Build.Tasks.CodeAnalysis.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..97ddbd610edd5b7a76734c0375b82ad7a5cd35fe
Binary files /dev/null and b/dotnet/sdk/8.0.402/Roslyn/zh-Hant/Microsoft.Build.Tasks.CodeAnalysis.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/SDKPrecomputedAssemblyReferences.cache b/dotnet/sdk/8.0.402/SDKPrecomputedAssemblyReferences.cache
new file mode 100644
index 0000000000000000000000000000000000000000..dd8d81b5b0528ef2cb342015764b38fd8b211499
--- /dev/null
+++ b/dotnet/sdk/8.0.402/SDKPrecomputedAssemblyReferences.cache
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5d97a96355de5adef04a4a068fb85b3765b6d729bff8a7a7bb403420eb558d10
+size 1984925
diff --git a/dotnet/sdk/8.0.402/Sdks/FSharp.NET.Sdk/Sdk/Sdk.OnRestore.targets b/dotnet/sdk/8.0.402/Sdks/FSharp.NET.Sdk/Sdk/Sdk.OnRestore.targets
new file mode 100644
index 0000000000000000000000000000000000000000..adb127d0b1eba83b99409b01f30cf0e6dc114f23
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/FSharp.NET.Sdk/Sdk/Sdk.OnRestore.targets
@@ -0,0 +1,16 @@
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+
+
+
+ $(MSBuildExtensionsPath)\Microsoft\VisualStudio\Managed\Microsoft.FSharp.DesignTime.targets
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/FSharp.NET.Sdk/Sdk/Sdk.props b/dotnet/sdk/8.0.402/Sdks/FSharp.NET.Sdk/Sdk/Sdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..15fcb79dedd3642fd4d356ae21917d3c499aec41
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/FSharp.NET.Sdk/Sdk/Sdk.props
@@ -0,0 +1,13 @@
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+ false
+
+
+ {6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/FSharp.NET.Sdk/Sdk/Sdk.targets b/dotnet/sdk/8.0.402/Sdks/FSharp.NET.Sdk/Sdk/Sdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..794531934913acc9315ec2a2907ed48310c8250d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/FSharp.NET.Sdk/Sdk/Sdk.targets
@@ -0,0 +1,39 @@
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(MSBuildThisFileDirectory)Sdk.OnRestore.targets
+
+
+ $(FSharpLanguageTargets)
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/build/Microsoft.Build.Tasks.Git.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/build/Microsoft.Build.Tasks.Git.props
new file mode 100644
index 0000000000000000000000000000000000000000..c5a58185fa27b33709ec3b3c6855d1556b36ba56
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/build/Microsoft.Build.Tasks.Git.props
@@ -0,0 +1,7 @@
+
+
+
+ $(MSBuildThisFileDirectory)..\tools\net472\Microsoft.Build.Tasks.Git.dll
+ $(MSBuildThisFileDirectory)..\tools\core\Microsoft.Build.Tasks.Git.dll
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/build/Microsoft.Build.Tasks.Git.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/build/Microsoft.Build.Tasks.Git.targets
new file mode 100644
index 0000000000000000000000000000000000000000..2f690402796a5142f2af81d1fce14d5626743ee9
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/build/Microsoft.Build.Tasks.Git.targets
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+ local
+
+
+
+
+
+
+
+
+
+
+
+
+
+ git
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/buildMultiTargeting/Microsoft.Build.Tasks.Git.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/buildMultiTargeting/Microsoft.Build.Tasks.Git.props
new file mode 100644
index 0000000000000000000000000000000000000000..83490ca49ccc609d480d3ec771cb70f107d54072
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/buildMultiTargeting/Microsoft.Build.Tasks.Git.props
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/buildMultiTargeting/Microsoft.Build.Tasks.Git.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/buildMultiTargeting/Microsoft.Build.Tasks.Git.targets
new file mode 100644
index 0000000000000000000000000000000000000000..54933eae71b6d9f4ff28f994d1aa586b3342a9b0
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/buildMultiTargeting/Microsoft.Build.Tasks.Git.targets
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/Microsoft.Build.Tasks.Git.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/Microsoft.Build.Tasks.Git.dll
new file mode 100644
index 0000000000000000000000000000000000000000..28af5be47206988f34d19522945b31d4d9cab168
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/Microsoft.Build.Tasks.Git.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/cs/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/cs/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..07a955755b83acc6266ef522e4099ede77529241
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/cs/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/de/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/de/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5997782930a74e08f69771c3f953f7a9352664dc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/de/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/es/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/es/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3db066d97635f9eb88f9610fc28b131d5b87714c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/es/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/fr/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/fr/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1b73000e4366e7329152c8f5cab164116da7fea0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/fr/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/it/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/it/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b611cd4fba8f6037702340c030e4e96bff6481f9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/it/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/ja/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/ja/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fa2b031728c286ce824d0f3b3d6b6e3096e9d659
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/ja/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/ko/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/ko/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e4ffc4158fc646768049c3f26193f54e6ffa6b6b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/ko/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/pl/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/pl/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..da5e74ec1802a77a11c882e670feb79ae4b527fa
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/pl/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/pt-BR/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/pt-BR/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..10375f6e1eb13470c1cabcffcd6a42d49e7ce482
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/pt-BR/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/ru/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/ru/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..07ba6f1f9460c2fe2c10df6e9eea776bf6ad8367
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/ru/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/tr/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/tr/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8a540fef9003156e5af1cb467d5cb7ea096705b7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/tr/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/zh-Hans/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/zh-Hans/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2022e4aabefd8ddc4f88cde1714138ea91ec019a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/zh-Hans/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/zh-Hant/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/zh-Hant/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3424784929a64b4e72328ae8185f105febca786b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/core/zh-Hant/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/Microsoft.Build.Tasks.Git.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/Microsoft.Build.Tasks.Git.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2c01eb2a8510621b651b5d7cb42d404ffc2f8b8a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/Microsoft.Build.Tasks.Git.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/System.Collections.Immutable.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/System.Collections.Immutable.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0167fd9892f914c210ff728679457cc1bfa75cb9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/System.Collections.Immutable.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/cs/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/cs/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..62a0c96468b3e7560e44b927e3f75c354c14f7ce
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/cs/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/de/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/de/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c2aa96c0a5ba3c2ac3e5f30e82c31905fb7a660e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/de/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/es/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/es/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ae6d9a403aba0df98bda8b45320af94e4adb1ef6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/es/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/fr/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/fr/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..48018dbcf0f38e27c32ab3cfa61be222182118cc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/fr/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/it/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/it/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..08f065ba772cd122a6b7f2f2c79eb4aa9c7310e6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/it/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/ja/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/ja/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..23bb178bbece1d58f89bb4fa0a73cf6a57cfc862
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/ja/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/ko/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/ko/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a09c67921f624877aedaeab5c14871f72370a58a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/ko/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/pl/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/pl/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..df8f0c800880500dcc35f0734f3a6c5f5da7d2ae
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/pl/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/pt-BR/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/pt-BR/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7d90df57bd54b840c702d51b5ae1b4edc0b14fb1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/pt-BR/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/ru/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/ru/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ebf89ac51ce6220666c61797f0bafcd4e550a187
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/ru/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/tr/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/tr/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..db096d79c2677a1d06f8ec4c843d4be7d80cc04d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/tr/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/zh-Hans/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/zh-Hans/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8f5d7a07a5937a7b9d7434e15a9c87d293e886e3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/zh-Hans/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/zh-Hant/Microsoft.Build.Tasks.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/zh-Hant/Microsoft.Build.Tasks.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3c720593967778554a0ccc9aab43d2611652e92e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.Build.Tasks.Git/tools/net472/zh-Hant/Microsoft.Build.Tasks.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Docker.Sdk/Sdk/Sdk.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.Docker.Sdk/Sdk/Sdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..96da47897b0060c96c8b7d41cd2799040d1ac0e2
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.Docker.Sdk/Sdk/Sdk.props
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+
+
+
+ Debug
+ AnyCPU
+ bin\$(Configuration)\
+ DockerCompose
+ true
+ false
+ false
+ None
+
+
+
+ false
+ true
+ true
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.Docker.Sdk/Sdk/Sdk.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.Docker.Sdk/Sdk/Sdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..62a4e80943c8b3c400f8dd791e8c09019ee0e93c
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.Docker.Sdk/Sdk/Sdk.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildThisFileFullPath)
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/Sdk/Sdk.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/Sdk/Sdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..dc9d3fdf8514c302139897a27ca203d368dc0edb
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/Sdk/Sdk.props
@@ -0,0 +1,28 @@
+
+
+
+ true
+
+
+
+ <_BlazorWebAssemblyPropsFile Condition="'$(_BlazorWebAssemblyPropsFile)' == ''">$(MSBuildThisFileDirectory)..\targets\Microsoft.NET.Sdk.BlazorWebAssembly.Current.props
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/Sdk/Sdk.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/Sdk/Sdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..08a0e5ea439ca185707cf40bd27bcc5d24e3f960
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/Sdk/Sdk.targets
@@ -0,0 +1,20 @@
+
+
+
+
+ <_BlazorWebAssemblyTargetsFile Condition="'$(_BlazorWebAssemblyTargetsFile)' == ''">$(MSBuildThisFileDirectory)..\targets\Microsoft.NET.Sdk.BlazorWebAssembly.Current.targets
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/BlazorWasm.web.config b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/BlazorWasm.web.config
new file mode 100644
index 0000000000000000000000000000000000000000..c47fc1fcee2843ef7f6ce180b0cff73d1927b31a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/BlazorWasm.web.config
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.5_0.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.5_0.targets
new file mode 100644
index 0000000000000000000000000000000000000000..5f230e9503e6a33ab959f09464c0881383bd7d50
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.5_0.targets
@@ -0,0 +1,702 @@
+
+
+
+ true
+
+
+ true
+
+
+
+
+
+
+ $(MSBuildThisFileDirectory)..\
+ <_BlazorWebAssemblySdkTasksTFM Condition=" '$(MSBuildRuntimeType)' == 'Core'">net8.0
+ <_BlazorWebAssemblySdkTasksTFM Condition=" '$(MSBuildRuntimeType)' != 'Core'">net472
+ <_BlazorWebAssemblySdkTasksAssembly>$(BlazorWebAssemblySdkDirectoryRoot)tools\$(_BlazorWebAssemblySdkTasksTFM)\Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.dll
+ <_BlazorWebAssemblySdkToolAssembly>$(BlazorWebAssemblySdkDirectoryRoot)tools\net8.0\Microsoft.NET.Sdk.BlazorWebAssembly.Tool.dll
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+
+
+ false
+ false
+ true
+ false
+ false
+ false
+
+ /
+ true
+
+
+ false
+ false
+ false
+ false
+ true
+
+
+ false
+
+
+ <_BlazorOutputPath>wwwroot\_framework\
+
+ <_TargetingNET60OrLater Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' AND $([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '6.0'))">true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_DotNetJsItem Include="@(ReferenceCopyLocalPaths)" Condition="'%(ReferenceCopyLocalPaths.DestinationSubPath)' == 'dotnet.js' AND '%(ReferenceCopyLocalPaths.AssetType)' == 'native'" />
+
+
+
+ <_DotNetJsVersion>%(_DotNetJsItem.NuGetPackageVersion)
+ <_BlazorDotnetJsFileName>dotnet.$(_DotNetJsVersion).js
+ <_BlazorDotNetJsFilePath>$(IntermediateOutputPath)$(_BlazorDotnetJsFileName)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_BlazorSatelliteAssemblyCacheFile>$(IntermediateOutputPath)blazor.satelliteasm.props
+
+ $(OutputPath)$(PublishDirName)\
+
+ <_BlazorWebAssemblyLoadAllGlobalizationData>$(BlazorWebAssemblyLoadAllGlobalizationData)
+ <_BlazorWebAssemblyLoadAllGlobalizationData Condition="'$(_BlazorWebAssemblyLoadAllGlobalizationData)' == ''">false
+
+
+
+ <_BlazorJSFile Include="$(BlazorWebAssemblyJSPath)" />
+ <_BlazorJSFile Include="$(BlazorWebAssemblyJSMapPath)" Condition="Exists('$(BlazorWebAssemblyJSMapPath)')" />
+
+ <_BlazorConfigFile Include="wwwroot\appsettings*.json" />
+
+
+
+
+
+
+
+
+
+
+ <_BlazorCopyLocalPath
+ Include="@(ReferenceCopyLocalPaths)"
+ Exclude="@(ReferenceSatellitePaths)"/>
+
+ <_BlazorCopyLocalPath Include="@(IntermediateSatelliteAssembliesWithTargetPath)">
+ %(IntermediateSatelliteAssembliesWithTargetPath.Culture)\
+
+
+ <_BlazorOutputWithTargetPath Include="
+ @(_BlazorCopyLocalPath);
+ @(IntermediateAssembly);
+ @(_DebugSymbolsIntermediatePath);
+ @(_BlazorJSFile)" />
+
+ <_BlazorOutputWithTargetPath Include="@(ReferenceSatellitePaths)">
+ $([System.String]::Copy('%(ReferenceSatellitePaths.DestinationSubDirectory)').Trim('\').Trim('/'))
+
+
+
+
+
+
+
+
+
+
+ <_BlazorOutputWithTargetPath
+ Include="@(_BlazorReadSatelliteAssembly)"
+ Exclude="@(_BlazorOutputWithTargetPath)"
+ Condition="'@(_BlazorReadSatelliteAssembly->Count())' != '0'" />
+
+
+ <_BlazorOutputWithTargetPath
+ TargetPath="$(_BlazorOutputPath)%(_BlazorOutputWithTargetPath.DestinationSubDirectory)%(FileName)%(Extension)"
+ Condition="'%(__BlazorOutputWithTargetPath.TargetPath)' == ''" />
+
+
+
+
+
+ <_BlazorBuildGZipCompressDirectory>$(IntermediateOutputPath)build-gz\
+
+
+
+
+ <_GzipFileToCompressForBuild
+ Include="@(ReferenceCopyLocalPaths)"
+ RelativePath="$(_BlazorOutputPath)%(ReferenceCopyLocalPaths.DestinationSubDirectory)%(FileName)%(Extension)"
+ Condition="'%(Extension)' == '.dll' or '%(ReferenceCopyLocalPaths.AssetType)' == 'native'" />
+
+
+
+
+
+
+
+
+
+ <_BlazorWriteSatelliteAssembly Include="@(_BlazorOutputWithTargetPath->HasMetadata('Culture'))" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _BlazorWasmPrepareForRun;
+ $(PrepareForRunDependsOn)
+
+
+
+ $(GetCurrentProjectStaticWebAssetsDependsOn);
+ _BlazorWasmReplaceBundle;
+ _BlazorWasmPrepareForRun;
+
+
+
+ $(GetCurrentProjectStaticWebAssetsV2DependsOn);
+ _UpdateBlazorWasmStaticWebAssetsForV2;
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CurrentWasmProjectStaticWebAssets Include="@(_ThisProjectStaticWebAssets)" Condition="'%(SourceId)' == '$(PackageId)'" />
+ <_CurrentWasmProjectStaticWebAssets>
+
+ Build
+
+ <_ThisProjectStaticWebAssets Remove="@(_CurrentWasmProjectStaticWebAssets)" />
+ <_ThisProjectStaticWebAssets Include="@(_CurrentWasmProjectStaticWebAssets)" />
+
+
+
+
+
+ <_BlazorBuildBootJsonPath>$(IntermediateOutputPath)blazor.boot.json
+ <_BlazorOutputContent>@(_BlazorOutputWithHash)
+ <_BlazorWebAssemblyLoadAllGlobalizationData Condition="'$(BlazorWebAssemblyLoadAllGlobalizationData)' == ''">false
+
+
+
+
+
+
+
+
+
+
+
+ <_BlazorWebAssemblyStaticWebAsset Include="$(_BlazorBuildBootJsonPath)">
+ $(PackageId)
+
+ $([MSBuild]::NormalizeDirectory('$(TargetDir)wwwroot\'))
+ $(StaticWebAssetBasePath)
+ _framework/blazor.boot.json
+ Never
+
+
+ <_BlazorWebAssemblyStaticWebAsset Include="@(_BlazorOutputWithHash)">
+ $(PackageId)
+
+ $([MSBuild]::NormalizeDirectory('$(TargetDir)wwwroot\'))
+ $(StaticWebAssetBasePath)
+ $([System.String]::Copy('%(_BlazorOutputWithHash.TargetPath)').Replace('\','/').Substring(8))
+ Never
+
+
+ <_BlazorWebAssemblyStaticWebAsset Include="@(_BlazorBuildGZipCompressedFile)">
+ $(PackageId)
+
+ $([MSBuild]::NormalizeDirectory('$(TargetDir)wwwroot\'))
+ $(StaticWebAssetBasePath)
+ $([System.String]::Copy('%(_BlazorBuildGZipCompressedFile.RelativePath)').Replace('\','/').Substring(8))
+ Never
+
+
+
+ <_ExternalStaticWebAsset Include="@(_BlazorWebAssemblyStaticWebAsset)" SourceType="Generated" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_BlazorTypeGranularTrimmerDescriptorFile>$(IntermediateOutputPath)typegranularity.trimmerdescriptor.xml
+
+
+
+ <_BlazorTypeGranularAssembly
+ Include="@(ManagedAssemblyToLink)"
+ Condition="'%(Extension)' == '.dll' AND $([System.String]::Copy('%(Filename)').StartsWith('Microsoft.AspNetCore.'))">
+ false
+ all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_BlazorPublishOutputPath Condition="'$(StaticWebAssetBasePath)' != '/'">wwwroot\$(StaticWebAssetBasePath.Replace('/', '\').Trim('\'))\
+ <_BlazorPublishOutputPath Condition="'$(StaticWebAssetBasePath)' == '/'">wwwroot\
+ <_BlazorFrameworkPublishPath>$(_BlazorPublishOutputPath)_framework\
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_BlazorPublishBootResource
+ Include="@(ResolvedFileToPublish)"
+ Condition="$([System.String]::Copy('%(RelativePath)').Replace('\','/').StartsWith($(_BlazorFrameworkPublishPath.Replace('\', '/')))) AND '%(Extension)' != '.a'" />
+
+
+
+
+
+
+
+ <_BlazorOutputContent>@(_BlazorPublishBootResourceWithHash)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CompressedFileOutputPath>$(IntermediateOutputPath)compress\
+ <_BlazorWebAssemblyBrotliIncremental>true
+
+
+
+ <_FileToCompress
+ Include="@(ResolvedFileToPublish)"
+ Condition="$([System.String]::Copy('%(ResolvedFileToPublish.RelativePath)').Replace('\','/').StartsWith('wwwroot/'))" />
+
+
+
+
+
+
+
+ <_DotNetHostDirectory>$(NetCoreRoot)
+ <_DotNetHostFileName>dotnet
+ <_DotNetHostFileName Condition="'$(OS)' == 'Windows_NT'">dotnet.exe
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_PublishingBlazorWasmProject>true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(RelativePath)
+ PreserveNewest
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.6_0.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.6_0.targets
new file mode 100644
index 0000000000000000000000000000000000000000..d8558c7f766d8f9c1b365fc1d1bf4e5b1fbaf1ed
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.6_0.targets
@@ -0,0 +1,177 @@
+
+
+
+
+ true
+
+
+ true
+
+
+ _GatherBlazorFilesToPublish;$(WasmNestedPublishAppDependsOn)
+
+
+
+
+
+
+ $(MSBuildThisFileDirectory)..\
+ <_BlazorWebAssemblySdkTasksTFM Condition=" '$(MSBuildRuntimeType)' == 'Core'">net8.0
+ <_BlazorWebAssemblySdkTasksTFM Condition=" '$(MSBuildRuntimeType)' != 'Core'">net472
+ <_BlazorWebAssemblySdkTasksAssembly>$(BlazorWebAssemblySdkDirectoryRoot)tools\$(_BlazorWebAssemblySdkTasksTFM)\Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.dll
+ <_BlazorWebAssemblySdkToolAssembly>$(BlazorWebAssemblySdkDirectoryRoot)tools\net8.0\Microsoft.NET.Sdk.BlazorWebAssembly.Tool.dll
+
+
+
+
+
+
+ true
+ true
+
+
+ false
+ false
+ true
+ false
+ false
+ false
+ <_AggressiveAttributeTrimming Condition="'$(_AggressiveAttributeTrimming)' == ''">true
+ false
+ true
+
+ <_TargetingNET80OrLater>$([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0'))
+ true
+ false
+ false
+
+
+ false
+
+
+ false
+
+ true
+ true
+
+
+
+
+
+ $(ResolveStaticWebAssetsInputsDependsOn);
+ _ResolveBlazorWasmOutputs;
+
+
+
+ $(GenerateBuildWasmBootJsonDependsOn);
+ GenerateBuildBlazorBootExtensionJson;
+
+
+
+ $(GeneratePublishWasmBootJsonDependsOn);
+ GeneratePublishBlazorBootExtensionJson;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_BlazorJSFile Include="$(BlazorWebAssemblyJSPath)" />
+ <_BlazorJSFile Include="$(BlazorWebAssemblyJSMapPath)" Condition="Exists('$(BlazorWebAssemblyJSMapPath)')" />
+ <_BlazorJsFile>
+ _framework/%(Filename)%(Extension)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_BlazorBuildBootExtensionJsonPath>$(IntermediateOutputPath)blazor.build.boot-extension.json
+
+
+
+
+
+
+
+
+
+
+
+
+ <_BlazorPublishBootExtensionJsonPath>$(IntermediateOutputPath)blazor.publish.boot-extension.json
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.props
new file mode 100644
index 0000000000000000000000000000000000000000..9f5441b1ff3cbf02c601d5ddd94ad9895ad0f639
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.props
@@ -0,0 +1,41 @@
+
+
+
+ exe
+
+ browser-wasm
+ false
+ false
+
+
+ true
+ partial
+ false
+
+
+ false
+
+
+ Root
+ $(StaticWebAssetsAdditionalPublishProperties);_PublishingBlazorWasmProject=true
+ $(StaticWebAssetsAdditionalEmbeddedPublishProperties);_PublishingBlazorWasmProject=true
+
+ ComputeFilesToPublish;GetCurrentProjectEmbeddedPublishStaticWebAssetItems
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.targets
new file mode 100644
index 0000000000000000000000000000000000000000..e378652934398d8ff040def3916c44a12d29c199
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.Current.targets
@@ -0,0 +1,53 @@
+
+
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+ <_BlazorTargetingNET60OrLater Condition=" '$(TargetFrameworkIdentifier)' == '.NETCoreApp' AND $([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '6.0')) ">true
+ <_BlazorWebAssemblyVersionedTargetsFile Condition="'$(_BlazorWebAssemblyVersionedTargetsFile)' == '' And '$(_BlazorTargetingNET60OrLater)' == 'true'">$(MSBuildThisFileDirectory)..\targets\Microsoft.NET.Sdk.BlazorWebAssembly.6_0.targets
+ <_BlazorWebAssemblyVersionedTargetsFile Condition="'$(_BlazorWebAssemblyVersionedTargetsFile)' == ''">$(MSBuildThisFileDirectory)..\targets\Microsoft.NET.Sdk.BlazorWebAssembly.5_0.targets
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.ServiceWorkerAssetsManifest.5_0.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.ServiceWorkerAssetsManifest.5_0.targets
new file mode 100644
index 0000000000000000000000000000000000000000..4ed0d8398bb36e47c6313a8b6c116dd5661ca18c
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.ServiceWorkerAssetsManifest.5_0.targets
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+ <_ServiceWorkerAssetsManifestIntermediateOutputPath Condition="'$([System.IO.Path]::IsPathRooted($(BaseIntermediateOutputPath)))' == 'true'">obj\$(Configuration)\$(TargetFramework)\$(ServiceWorkerAssetsManifest)
+ <_ServiceWorkerAssetsManifestIntermediateOutputPath Condition="'$([System.IO.Path]::IsPathRooted($(BaseIntermediateOutputPath)))' != 'true'">$(IntermediateOutputPath)$(ServiceWorkerAssetsManifest)
+ <_ServiceWorkerAssetsManifestFullPath>$([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)/$(_ServiceWorkerAssetsManifestIntermediateOutputPath)'))
+
+
+
+ <_ManifestStaticWebAsset Include="$(_ServiceWorkerAssetsManifestFullPath)">
+
+ $(PackageId)
+ $([MSBuild]::NormalizeDirectory('$(TargetDir)wwwroot\'))
+ $(StaticWebAssetBasePath)
+ $(ServiceWorkerAssetsManifest)
+ Never
+
+
+
+ <_ServiceWorkerIntermediateFile Include="@(ServiceWorker->'$(IntermediateOutputPath)serviceworkers\%(Identity)')">
+ %(ServiceWorker.PublishedContent)
+ %(ServiceWorker.Identity)
+ %(ServiceWorker.Identity)
+ %(ServiceWorker.Identity)
+ $([System.String]::Copy('%(ServiceWorker.Identity)').Substring(8))
+
+
+ <_ServiceWorkerStaticWebAsset Include="%(_ServiceWorkerIntermediateFile.FullPath)">
+
+ $(PackageId)
+ $([MSBuild]::NormalizeDirectory('$(TargetDir)wwwroot\'))
+ $(StaticWebAssetBasePath)
+ %(TargetOutputPath)
+ Never
+
+
+
+
+
+
+
+
+
+
+ <_ServiceWorkItem Include="@(StaticWebAsset)" Exclude="$(_ServiceWorkerAssetsManifestFullPath);@(_ServiceWorkerStaticWebAsset)">
+ $([System.String]::Copy('$([System.String]::Copy('%(StaticWebAsset.BasePath)').TrimEnd('/'))/%(StaticWebAsset.RelativePath)').Replace('\','/').TrimStart('/'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ServiceWorkerAssetsManifestPublishIntermediateOutputPath>$(IntermediateOutputPath)publish-$(ServiceWorkerAssetsManifest)
+
+
+
+ <_ServiceWorkerIntermediatePublishFile Include="$(IntermediateOutputPath)serviceworkers\%(FileName).publish%(Extension)">
+ %(ServiceWorker.PublishedContent)
+ %(ServiceWorker.Identity)
+ %(ServiceWorker.Identity)
+ $(_BlazorPublishOutputPath)$([System.String]::Copy('%(ServiceWorker.Identity)').Substring(8))
+
+
+ <_ServiceWorkerPublishFile Include="@(ResolvedFileToPublish)" Condition="$([System.String]::Copy('%(ResolvedFileToPublish.RelativePath)').Replace('\','/').StartsWith('wwwroot/'))">
+ $([System.String]::Copy('%(ResolvedFileToPublish.RelativePath)').Replace('\','/').TrimStart('/'))
+ $([System.String]::Copy('%(RelativePath)').Replace('\','/').Substring(8))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.ServiceWorkerAssetsManifest.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.ServiceWorkerAssetsManifest.targets
new file mode 100644
index 0000000000000000000000000000000000000000..118710fef547f34bd2fac2204a3743475ba7d134
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/targets/Microsoft.NET.Sdk.BlazorWebAssembly.ServiceWorkerAssetsManifest.targets
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+ $(ResolveStaticWebAssetsInputsDependsOn);_AddServiceWorkerAssets
+ $(GenerateComputedPublishStaticWebAssetsDependsOn);_WritePublishServiceWorkerAssetsManifest
+ $(GenerateComputedBuildStaticWebAssetsDependsOn);_WriteBuildServiceWorkerAssetsManifest
+
+
+
+
+
+
+
+
+
+
+
+ <_PublishServiceWorkerSourcePath>@(ServiceWorker->'%(PublishedContent)')
+ <_PublishServiceWorkerIntermediatePath>$(IntermediateOutputPath)service-worker\$([System.IO.Path]::GetFileName('$(_PublishServiceWorkerSourcePath)'))
+ <_BuildServiceWorkerSourcePath>%(ServiceWorker.Identity)
+ <_BuildServiceWorkerIntermediatePath>$(IntermediateOutputPath)service-worker\@(ServiceWorker->'%(FileName)%(Extension)')
+
+
+
+
+
+
+
+ <_BuildServiceWorker
+ Include="$(_BuildServiceWorkerIntermediatePath)"
+ OriginalItemSpec="$(_BuildServiceWorkerSourcePath)"
+ SourceType="Computed"
+ AssetKind="Build"
+ TargetPath="$(_BuildServiceWorkerSourcePath)"
+ ContentRoot="$(IntermediateOutputPath)service-worker"
+ CopyToOutputDirectory="PreserveNewest"
+ CopyToPublishDirectory="Never"
+ AssetTraitName="BlazorServiceWorker"
+ AssetTraitValue="ServiceWorkerJs" />
+
+
+ <_PublishServiceWorker Include="$(_PublishServiceWorkerIntermediatePath)">
+ @(ServiceWorker->'%(Identity)')
+ $(IntermediateOutputPath)service-worker
+ BlazorServiceWorker
+ ServiceWorkerJs
+ Publish
+ Never
+ PreserveNewest
+ $(_PublishServiceWorkerSourcePath)
+
+
+
+ <_PublishServiceWorkerManifest
+ OriginalItemSpec="$(IntermediateOutputPath)$(ServiceWorkerAssetsManifest)"
+ Include="$(IntermediateOutputPath)$(ServiceWorkerAssetsManifest)"
+ CopyToOutputDirectory="Never"
+ AssetKind="Publish"
+ TargetPath="wwwroot\$(ServiceWorkerAssetsManifest)"
+ AssetTraitName="BlazorServiceWorker"
+ AssetTraitValue="ServiceWorkerManifest" />
+
+
+ <_BuildServiceWorkerManifest
+ OriginalItemSpec="$(IntermediateOutputPath)$(ServiceWorkerAssetsManifest).build"
+ Include="$(IntermediateOutputPath)$(ServiceWorkerAssetsManifest).build"
+ CopyToOutputDirectory="PreserveNewest"
+ CopyToPublishDirectory="Never"
+ AssetKind="Build"
+ ContentRoot="$(OutputPath)wwwroot\"
+ TargetPath="wwwroot\$(ServiceWorkerAssetsManifest)"
+ AssetTraitName="BlazorServiceWorker"
+ AssetTraitValue="ServiceWorkerManifest" />
+
+
+
+
+
+
+
+
+
+
+
+
+ <_BuildAssetsForManifestCandidate Include="@(StaticWebAsset)" Condition="'%(StaticWebAsset.AssetTraitName)' != 'BlazorServiceWorker' and '%(AssetRole)' != 'Alternative' and Exists('%(Identity)')" />
+ <_BuildAssetsForManifestCandidate Include="@(StaticWebAsset->'%(OriginalItemSpec)')" Condition="'%(StaticWebAsset.AssetTraitName)' != 'BlazorServiceWorker' and '%(AssetRole)' != 'Alternative' and !Exists('%(Identity)')" />
+
+
+
+
+
+
+
+
+
+
+
+ <_BuildServiceWorkItem Include="@(_BuildAssetsForManifestWithTargetPath)">
+ %(_BuildAssetsForManifestWithTargetPath.TargetPath)
+
+ <_BuildServiceWorkerFile Include="@(StaticWebAsset)" Condition="'%(AssetKind)' == 'Build' And '%(StaticWebAsset.AssetTraitName)' == 'BlazorServiceWorker' And '%(StaticWebAsset.AssetTraitValue)' == 'ServiceWorkerJs'" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_PublishAssetsForManifestCandidate Include="@(StaticWebAsset)" Condition="'%(StaticWebAsset.AssetTraitName)' != 'BlazorServiceWorker' and '%(AssetRole)' != 'Alternative'" />
+
+
+
+
+
+
+
+
+
+
+
+ <_ServiceWorkItem Include="@(_PublishAssetsForManifestWithTargetPath)">
+ %(_PublishAssetsForManifestWithTargetPath.TargetPath)
+
+ <_PublishServiceWorkerFile Include="@(StaticWebAsset)" Condition="'%(AssetKind)' == 'Publish' And '%(StaticWebAsset.AssetTraitName)' == 'BlazorServiceWorker' And '%(StaticWebAsset.AssetTraitValue)' == 'ServiceWorkerJs'" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net472/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net472/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0f1e5ee2a36094f64a62348c7f4a6c73aeae7524
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net472/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net472/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.dll.config b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net472/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.dll.config
new file mode 100644
index 0000000000000000000000000000000000000000..6a549e828aa8b159dc82507a217e77e7e6741fe7
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net472/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.dll.config
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8aa02a5f52b856452d01e2003791145a0d73d57a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/Microsoft.NET.Sdk.BlazorWebAssembly.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/Microsoft.NET.Sdk.BlazorWebAssembly.Tool.deps.json b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/Microsoft.NET.Sdk.BlazorWebAssembly.Tool.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..bf10e1a363fb236a373dec2f0f0588591e6f61ea
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/Microsoft.NET.Sdk.BlazorWebAssembly.Tool.deps.json
@@ -0,0 +1,109 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "Microsoft.NET.Sdk.BlazorWebAssembly.Tool/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.DiaSymReader.Pdb2Pdb": "1.1.0-beta2-19575-01",
+ "Microsoft.DotNet.XliffTasks": "1.0.0-beta.23475.1",
+ "Microsoft.Net.Compilers.Toolset": "4.11.0-3.24365.8",
+ "System.CommandLine": "2.0.0-beta4.23307.1"
+ },
+ "runtime": {
+ "Microsoft.NET.Sdk.BlazorWebAssembly.Tool.dll": {}
+ }
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {},
+ "Microsoft.DotNet.XliffTasks/1.0.0-beta.23475.1": {},
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24365.8": {},
+ "System.CommandLine/2.0.0-beta4.23307.1": {
+ "runtime": {
+ "lib/net7.0/System.CommandLine.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.23.30701"
+ }
+ },
+ "resources": {
+ "lib/net7.0/cs/System.CommandLine.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net7.0/de/System.CommandLine.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net7.0/es/System.CommandLine.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net7.0/fr/System.CommandLine.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net7.0/it/System.CommandLine.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net7.0/ja/System.CommandLine.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net7.0/ko/System.CommandLine.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net7.0/pl/System.CommandLine.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net7.0/pt-BR/System.CommandLine.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net7.0/ru/System.CommandLine.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net7.0/tr/System.CommandLine.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net7.0/zh-Hans/System.CommandLine.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net7.0/zh-Hant/System.CommandLine.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.NET.Sdk.BlazorWebAssembly.Tool/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kY6eTNkeWLHvfOjg97Q7tgQKrPpX+Y3fR6fS4nyfpgFLHBxHriLBR4v3e9t71it91gIMEeKUqOqrFJ7Pj48eHA==",
+ "path": "microsoft.diasymreader.pdb2pdb/1.1.0-beta2-19575-01",
+ "hashPath": "microsoft.diasymreader.pdb2pdb.1.1.0-beta2-19575-01.nupkg.sha512"
+ },
+ "Microsoft.DotNet.XliffTasks/1.0.0-beta.23475.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZsVfWaPacITS006a49PPf35ZyzxWEUTUu4FBU6GhT882cs4Ow7ryvjq6yh82nGdXCi4XMjoUm5vl7XDsUW90QQ==",
+ "path": "microsoft.dotnet.xlifftasks/1.0.0-beta.23475.1",
+ "hashPath": "microsoft.dotnet.xlifftasks.1.0.0-beta.23475.1.nupkg.sha512"
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24365.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fvKVAMRbXJpDUvURL6CNmMcgVhzq3pSg5Uc0X0LUHQXaVpFy6sXITjt8xm6vtIkYdusvmHfO6JW48KBDk8/xjw==",
+ "path": "microsoft.net.compilers.toolset/4.11.0-3.24365.8",
+ "hashPath": "microsoft.net.compilers.toolset.4.11.0-3.24365.8.nupkg.sha512"
+ },
+ "System.CommandLine/2.0.0-beta4.23307.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-L9AshOole+4UHIUZJ6qxFAzLtO1kUc5FB/JRVV+jypq3DopJWkFr2+WUqGDdehnKuF6PLo6XNJb2HjpK8LE4UQ==",
+ "path": "system.commandline/2.0.0-beta4.23307.1",
+ "hashPath": "system.commandline.2.0.0-beta4.23307.1.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/Microsoft.NET.Sdk.BlazorWebAssembly.Tool.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/Microsoft.NET.Sdk.BlazorWebAssembly.Tool.dll
new file mode 100644
index 0000000000000000000000000000000000000000..15575799c888667faada692ab74d62fcfb5cf153
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/Microsoft.NET.Sdk.BlazorWebAssembly.Tool.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/Microsoft.NET.Sdk.BlazorWebAssembly.Tool.runtimeconfig.json b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/Microsoft.NET.Sdk.BlazorWebAssembly.Tool.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..76473da3f1bbd1ae7ec038346cb1e7e8cb50cb10
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/Microsoft.NET.Sdk.BlazorWebAssembly.Tool.runtimeconfig.json
@@ -0,0 +1,14 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ },
+ "rollForwardOnNoCandidateFx": 2,
+ "configProperties": {
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/System.CommandLine.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/System.CommandLine.dll
new file mode 100644
index 0000000000000000000000000000000000000000..86416273483416376a387be26d7171f9fd7e37cd
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.BlazorWebAssembly/tools/net8.0/System.CommandLine.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/Sdk/Sdk.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/Sdk/Sdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..ba33af099dac08fc0a5ced4b7fc4f13886257e8d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/Sdk/Sdk.props
@@ -0,0 +1,21 @@
+
+
+
+
+ true
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/Sdk/Sdk.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/Sdk/Sdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..15d875cf19a4abc5069d7d10190f387c17e8e21d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/Sdk/Sdk.targets
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/ComputeTargets/Microsoft.NET.Sdk.Publish.ComputeFiles.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/ComputeTargets/Microsoft.NET.Sdk.Publish.ComputeFiles.targets
new file mode 100644
index 0000000000000000000000000000000000000000..0b129886e87f791a82713f171acdaee62d1cef20
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/ComputeTargets/Microsoft.NET.Sdk.Publish.ComputeFiles.targets
@@ -0,0 +1,62 @@
+
+
+
+
+
+ <_DotNetPublishComputeFiles>
+ _DetermineProjectType;
+
+
+
+
+
+
+
+
+
+
+ <_IsAspNetCoreProject Condition="%(ProjectCapability.Identity) == 'AspNetCore'">true
+ <_PublishProjectType Condition="'$(_PublishProjectType)' == '' and '$(_IsAspNetCoreProject)' == 'true' ">AspNetCore
+ <_PublishProjectType Condition="'$(_PublishProjectType)' == '' and '$(WebJobName)' != '' and '$(WebJobType)' != ''">WebJob
+ <_PublishProjectType Condition="'$(_PublishProjectType)' == '' ">Console
+
+
+
+
+
+
+
+
+
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_WebProjectGeneratedContent Include="wwwroot\**" Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder);@(_ContentIncludedByDefault)" />
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/CopyTargets/Microsoft.NET.Sdk.Publish.CopyFiles.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/CopyTargets/Microsoft.NET.Sdk.Publish.CopyFiles.targets
new file mode 100644
index 0000000000000000000000000000000000000000..ecd828834db48382f64fa1628929e49edf7f4ab9
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/CopyTargets/Microsoft.NET.Sdk.Publish.CopyFiles.targets
@@ -0,0 +1,156 @@
+
+
+
+
+ <_DotNetPublishCopyFiles>
+ _RemoveExcludeFiles;
+ _DeletePublishIntermediateOutputPath;
+ _CopyFilesToPublishIntermediateOutputPath;
+ _CopyAspNetCoreFilesToIntermediateOutputPath;
+ _CopyWebJobFilesToIntermediateOutputPath;
+ _CopyConsoleFilesToIntermediateOutputPath;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_PublishTempFiles Include="$(PublishIntermediateOutputPath)**\*.*" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CopyAspNetCoreFilesToIntermediateOutputPathDependsOn>
+ $(_CopyAspNetCoreFilesToIntermediateOutputPathDependsOn);
+ _PrepareForAspNetCoreProjectSystemPublish;
+ Publish;
+
+
+
+
+
+
+
+
+
+
+
+ $(PublishIntermediateOutputPath)
+ $(PublishConfiguration)
+
+
+
+
+
+
+
+ <_CopyWebJobFilesToIntermediateOutputPathDependsOn>
+ $(_CopyWebJobFilesToIntermediateOutputPathDependsOn);
+ _PrepareForWebJobPublish;
+ Publish;
+
+
+
+
+
+
+
+
+
+
+
+ $(PublishIntermediateOutputPath)\app_data\Jobs\$(WebJobType)\$(WebJobName)\
+ $(PublishConfiguration)
+
+
+
+
+
+
+
+ <_CopyConsoleFilesToIntermediateOutputPathDependsOn>
+ $(_CopyConsoleFilesToIntermediateOutputPathDependsOn);
+ _PrepareForConsolePublish;
+ Publish;
+
+
+
+
+
+
+
+
+
+
+
+ $(PublishIntermediateOutputPath)
+ $(PublishConfiguration)
+
+
+
+
+
+
+
+
+
+ False
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/CopyTargets/Microsoft.NET.Sdk.Publish.FilterFiles.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/CopyTargets/Microsoft.NET.Sdk.Publish.FilterFiles.targets
new file mode 100644
index 0000000000000000000000000000000000000000..16e8726df48a2ccb0b8f95435eddd4d530b419f9
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/CopyTargets/Microsoft.NET.Sdk.Publish.FilterFiles.targets
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+ Never
+
+
+
+ Never
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/DotNetCLIToolTargets/Microsoft.NET.Sdk.DotNetCLITool.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/DotNetCLIToolTargets/Microsoft.NET.Sdk.DotNetCLITool.targets
new file mode 100644
index 0000000000000000000000000000000000000000..c303232a71eb7cc9f280ee0d0e7f682ab1a365a2
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/DotNetCLIToolTargets/Microsoft.NET.Sdk.DotNetCLITool.targets
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+ <_IsAspNetCoreProject Condition="%(ProjectCapability.Identity) == 'AspNetCore'">true
+
+
+
+
+
+
+ <_DotNetCLIPrePublishDependsOn>
+ _InitProjectCapabilityProperties;
+ _AspNetCoreProjectSystemPrePublish;
+
+
+
+
+
+
+
+ <_AspNetCoreProjectSystemPrePublishDependsOn>
+ BeforePublish;
+ $(_DotNetPublishComputeFiles);
+
+
+
+
+
+
+
+
+ <_DotNetCLIPostPublishDependsOn>
+ _InitProjectCapabilityProperties;
+ _AspNetCoreProjectSystemPostPublish;
+ _OtherNetProjectPostPublish;
+ AfterPublish;
+
+
+
+
+
+
+
+
+ <_AspNetCoreProjectSystemPostPublishDependsOn>
+ _InitPublishIntermediateOutputPath;
+ $(_DotNetPublishTransformFiles);
+ _PublishFiles;
+
+
+
+
+
+
+
+
+ <_OtherNetProjectPostPublishDependsOn>
+ _InitPublishIntermediateOutputPath;
+ _PublishFiles;
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(PublishDirFullPath)
+
+
+
+
+ <_PublishFilesDependsOn>
+ $(_DotNetPublishFiles);
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/Microsoft.NET.Sdk.Publish.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/Microsoft.NET.Sdk.Publish.props
new file mode 100644
index 0000000000000000000000000000000000000000..05f722be12de569433862d5b27c3304db15bfb98
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/Microsoft.NET.Sdk.Publish.props
@@ -0,0 +1,18 @@
+
+
+
+
+ true
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/Microsoft.NET.Sdk.Publish.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/Microsoft.NET.Sdk.Publish.targets
new file mode 100644
index 0000000000000000000000000000000000000000..4211c6762bb026ba797fd10d5b45171564c2d707
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/Microsoft.NET.Sdk.Publish.targets
@@ -0,0 +1,198 @@
+
+
+
+
+
+
+
+
+ true
+ <_PublishTaskFramework Condition=" '$(MSBuildRuntimeType)' == 'Core'">net8.0
+ <_PublishTaskFramework Condition=" '$(_PublishTaskFramework)' == ''">net472
+ <_PublishTasksDir Condition=" '$(_PublishTasksDir)'=='' ">$(MSBuildThisFileDirectory)..\tools\$(_PublishTaskFramework)\
+ <_PublishTaskAssemblyFullPath Condition=" '$(_PublishTaskAssemblyFullPath)'=='' ">$(_PublishTasksDir)Microsoft.NET.Sdk.Publish.Tasks.dll
+ <_CopyTargetsDir Condition=" '$(_CopyTargetsDir)' == ''">$(MSBuildThisFileDirectory)CopyTargets\
+ <_TransformTargetsDir Condition=" '$(_TransformTargetsDir)' == ''">$(MSBuildThisFileDirectory)TransformTargets\
+ <_ComputeTargetsDir Condition=" '$(_ComputeTargetsDir)'=='' ">$(MSBuildThisFileDirectory)ComputeTargets\
+ <_PublishTargetsDir Condition=" '$(_PublishTargetsDir)'=='' ">$(MSBuildThisFileDirectory)PublishTargets\
+ <_DotNetCLIToolTargetsDir Condition=" '$(_DotNetCLIToolTargetsDir)'=='' ">$(MSBuildThisFileDirectory)DotNetCLIToolTargets\
+ <_PublishProfilesDir Condition=" '$(_PublishProfilesDir)'=='' ">$(MSBuildThisFileDirectory)PublishProfiles\
+
+ false
+ false
+
+
+
+
+
+
+
+
+ Default
+ $([System.IO.Path]::GetFileNameWithoutExtension($(PublishProfile)))
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ $(WebPublishMethod)
+
+ MSDeployPackage
+
+
+ Docker
+
+
+ $(LastUsedBuildConfiguration)
+ $(Configuration)
+ <_PublishConfigurationPath Condition="'$(_PublishConfigurationPath)' == '' And '$(PublishConfiguration)' != ''">$(PublishConfiguration)\
+
+ <_TargetFrameworkPath Condition="'$(_TargetFrameworkPath)' == '' And '$(TargetFramework)' != ''">$(TargetFramework)\
+ <_RuntimeIdentifierPath Condition="'$(_RuntimeIdentifierPath)' == '' And '$(RuntimeIdentifier)' != '' ">$(RuntimeIdentifier)\
+
+ $(MSBuildProjectDirectory)\$(BaseIntermediateOutputPath)
+ $(BaseIntermediateOutputPath)\
+
+ $([System.IO.Path]::GetFullPath($(BaseIntermediateOutputPath)$(_PublishConfigurationPath)$(_TargetFrameworkPath)$(_RuntimeIdentifierPath)PubTmp\))
+ $(PublishIntermediateTempPath)Out\
+ obj/Docker/publish/
+
+ EFSQLScripts
+
+
+ partial
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforePublish;
+ CorePublish;
+ AfterPublish;
+
+
+
+
+
+
+
+
+ $(_DotNetPublishComputeFiles);
+ $(_DotNetPublishCopyFiles);
+ $(_DotNetPublishTransformFiles);
+ $(_DotNetPublishFiles);
+
+
+
+
+
+
+ %(GlobalPropertiesToRemove);WebPublishProfileFile
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/Default.pubxml b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/Default.pubxml
new file mode 100644
index 0000000000000000000000000000000000000000..658f1db3004718878a3d8e170e9f119ff40173d8
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/Default.pubxml
@@ -0,0 +1,12 @@
+
+
+
+
+ FileSystem
+ $(OutputPath)publish\
+ False
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultContainer.pubxml b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultContainer.pubxml
new file mode 100644
index 0000000000000000000000000000000000000000..f2972f8df81d82ddf3f31cda7a6c90f97ba184e9
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultContainer.pubxml
@@ -0,0 +1,6 @@
+
+
+
+ Container
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultMSDeploy.pubxml b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultMSDeploy.pubxml
new file mode 100644
index 0000000000000000000000000000000000000000..6373b7c3a5e094509eb1a493aeea559398eadfff
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultMSDeploy.pubxml
@@ -0,0 +1,11 @@
+
+
+
+ MSDeploy
+ Release
+ Any CPU
+ True
+ WMSVC
+ True
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultMSDeployPackage.pubxml b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultMSDeployPackage.pubxml
new file mode 100644
index 0000000000000000000000000000000000000000..3603faa0678419dc5050544e2b4c75d994a1d269
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultMSDeployPackage.pubxml
@@ -0,0 +1,10 @@
+
+
+
+ Package
+ Release
+ Any CPU
+ $(OutputPath)Publish\MSDeployPackage.zip
+ Default Web Site
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultZipDeploy.pubxml b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultZipDeploy.pubxml
new file mode 100644
index 0000000000000000000000000000000000000000..a510aa0651ce2805a84571afca40f0a7c2e96099
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishProfiles/DefaultZipDeploy.pubxml
@@ -0,0 +1,13 @@
+
+
+
+
+ ZipDeploy
+ AzureWebSite
+ Release
+ Any CPU
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.Container.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.Container.targets
new file mode 100644
index 0000000000000000000000000000000000000000..68e59a942fad713be2145ba7763f8a5dec5621a4
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.Container.targets
@@ -0,0 +1,17 @@
+
+
+
+
+ <_DotNetPublishFiles>
+ PublishContainer;
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.Docker.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.Docker.targets
new file mode 100644
index 0000000000000000000000000000000000000000..248427ab9eb46edcb2b2552cefe5217a1171e6a8
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.Docker.targets
@@ -0,0 +1,52 @@
+
+
+
+
+
+ <_DotNetPublishFiles>
+ DockerPublish;
+
+
+
+
+
+
+ $(DockerPublishDependsOn);
+ _InitDockerComposeBuildSource;
+ DockerComposeBuild;
+
+
+
+
+
+
+
+
+
+ $(PublishIntermediateOutputPath)
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.FileSystem.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.FileSystem.targets
new file mode 100644
index 0000000000000000000000000000000000000000..c4ed61e12d5b63a868f28ff37cfdec36f957f1bf
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.FileSystem.targets
@@ -0,0 +1,101 @@
+
+
+
+
+
+ <_DotNetPublishFiles>
+ FileSystemPublish;
+
+
+
+
+
+
+ $(FileSystemPublishDependsOn);
+ _DeleteDestinationFilesIfSpecified;
+ _CopyEntityFrameworkScripts;
+ _GatherFilesFromPublishIntermediateOutputPath;
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(PublishUrl)\
+
+
+
+ <_DestinationFiles Include="$(PublishUrl)**\*" />
+
+
+
+
+
+
+
+
+
+
+
+
+ <_PublishIntermediateOutputPathFiles Include="$(PublishIntermediateOutputPath)**\*.*" />
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.Kudu.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.Kudu.targets
new file mode 100644
index 0000000000000000000000000000000000000000..f804631ac1894da4c4c8e0edf10b57ef152b86d0
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.Kudu.targets
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+ <_DotNetPublishFiles>
+ KuduPublish;
+
+
+
+
+
+
+ $(KuduPublishDependsOn);
+
+
+
+
+
+
+
+
+
+ https://{0}.scm.azurewebsites.net/api/{1}
+ false
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets
new file mode 100644
index 0000000000000000000000000000000000000000..13d78e458a0e761a5fa39eaa03075b11f9c6f839
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeploy.targets
@@ -0,0 +1,375 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_DotNetPublishFiles>
+ MSDeployPublish;
+
+
+
+
+
+
+ $(MSDeployPublishDependsOn);
+ _PrepareForMsDeployPublish;
+ _CreateManifestFiles;
+ _CreateParameterFiles;
+
+
+
+
+
+
+
+
+
+ manifest
+ $(_MsDeploySourceManifestPath)
+
+ auto
+
+
+ AppPoolExtension;ContentExtension;CertificateExtension
+ 10
+ 2000
+ false
+ false
+ true
+
+ false
+ true
+ Basic
+
+ WMSVC
+
+ true
+ <_UseWMSVC>false
+ <_UseWMSVC Condition="'$(MSDeployPublishMethod)'=='WMSVC'">true
+ <_UseRemoteAgent>false
+ <_UseRemoteAgent Condition="'$(MSDeployPublishMethod)'=='RemoteAgent'">true
+
+
+ <_MSDeployUserAgentSource>CmdLine
+ <_MSDeployUserAgent>VS$(_MSDeployUserAgentSource)
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(MSDeployPublishSourceRoot)
+
+
+
+
+ $(MSDeployPublishDestinationRoot)
+ $(MsDeployServiceUrl)
+ $(UserName)
+ $(Password)
+ $(DeployEncryptKey)
+ False
+ $(AuthType)
+
+
+
+
+
+
+ WebConfigEncryptProvider
+ $(MSDeployWebConfigEncryptProvider)
+
+
+
+
+
+
+
+
+ <_EnableRuleListItems Condition="'$(SkipExtraFilesOnServer)' == 'true'" Include="DoNotDeleteRule" />
+ <_EnableRuleListItems Condition="'$(EnableMSDeployAppOffline)' == 'true'" Include="AppOffline" />
+ <_EnableRuleListItems Condition="'$(MSDeployEnableWebConfigEncryptRule)' == 'true'" Include="EncryptWebConfig" />
+
+
+
+ <_EnableRuleList>@(_EnableRuleListItems)
+
+
+
+
+
+
+
+
+
+
+ <_MsDeploySourceManifestPath Condition="'$(_MsDeploySourceManifestPath)' == ''">$(PublishIntermediateTempPath)$(MSBuildProjectName).SourceManifest.xml
+ <_MSDeployParametersFilePath Condition="'$(_MSDeployParametersFilePath)' == ''">$(PublishIntermediateTempPath)$(MSBuildProjectName).Parameters.xml
+
+
+
+ <_PublishConfigFiles Include="$(_MsDeploySourceManifestPath);$(_MSDeployParametersFilePath)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(PublishIntermediateOutputPath)
+
+
+
+
+
+ %(_EFSQLScripts.Identity)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ProviderPath
+ IisApp
+ $(PublishIntermediateOutputPath)
+
+ $(DeployIisAppPath)
+ $(DeployIisAppPath)
+ IisApp
+
+ false
+
+
+
+
+
+ ProviderPath
+ dbfullsql
+ %(_EFSQLScripts.Identity)
+
+ %(_EFSQLScripts.ConnectionString)
+ %(_EFSQLScripts.ConnectionString)
+ dbfullsql
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(_ImportedMSDeployDeclareParameters.DefaultValue)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeployPackage.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeployPackage.targets
new file mode 100644
index 0000000000000000000000000000000000000000..d33edd744e2b53d3ee9f62b78253ce17937982d2
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeployPackage.targets
@@ -0,0 +1,325 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_DotNetPublishFiles>
+ MSDeployPackagePublish;
+
+
+
+
+
+
+ $(MSDeployPackagePublishDependsOn);
+ _InitMSDeployPackageProperties;
+ _PrepareForMsDeployPublish;
+ _CreateManifestFiles;
+ _CreateParameterFiles;
+ _CreateMSDeployScript;
+
+
+
+
+
+
+ manifest
+ $(_MsDeploySourceManifestPath)
+
+ Package
+ $(PackageLocation)
+ 2
+
+ AppPoolExtension;ContentExtension;CertificateExtension
+
+ <_MSDeployUserAgentSource>CmdLine
+ <_MSDeployUserAgent>VS$(_MSDeployUserAgentSource)
+
+ true
+
+
+
+
+
+
+ $(MSDeployPublishSourceRoot)
+
+
+
+
+ $(MSDeployPublishDestinationRoot)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(MSBuildProjectName).zip
+ $(DesktopBuildPackageLocation)
+ $(OutputPath)
+ $(PackageLocation)\
+ $(PackageLocation)$(DefaultPackageFileName)
+ Default Web Site
+ True
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_destinationFolder Condition="'$(_destinationFolder)' == ''">$([System.IO.Path]::GetDirectoryName($(PackageLocation)))\
+ <_MsDeploySourceManifestPath Condition="'$(_MsDeploySourceManifestPath)' == ''">$(_destinationFolder)$(MSBuildProjectName).SourceManifest.xml
+ <_MSDeployParametersFilePath Condition="'$(_MSDeployParametersFilePath)' == ''">$(_destinationFolder)$(MSBuildProjectName).Parameters.xml
+ <_MSDeploySetParametersFilePath Condition="'$(_MSDeploySetParametersFilePath)' == ''">$(_destinationFolder)$(MSBuildProjectName).SetParameters.xml
+ <_MSDeployScriptFilePath Condition="'$(_MSDeployScriptFilePath)' == ''">$(_destinationFolder)$(MSBuildProjectName).deploy.cmd
+ <_MSDeployReadMeFilePath Condition="'$(_MSDeployReadMeFilePath)' == ''">$(_destinationFolder)$(MSBuildProjectName).deploy-readme.txt
+
+
+
+ <_PublishConfigFiles Include="$(_MsDeploySourceManifestPath);$(_MSDeployParametersFilePath);$(_MSDeploySetParametersFilePath);$(_MSDeployScriptFilePath);$(_MSDeployReadMeFilePath)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(PublishIntermediateOutputPath)
+
+
+
+
+
+ %(_EFSQLScripts.Identity)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ProviderPath
+ IisApp
+ $(PublishIntermediateOutputPath)
+
+ $(DeployIisAppPath)
+ $(DeployIisAppPath)
+ IisApp
+
+ false
+
+
+
+
+
+ ProviderPath
+ dbfullsql
+ %(_EFSQLScripts.Identity)
+
+ %(_EFSQLScripts.ConnectionString)
+ %(_EFSQLScripts.ConnectionString)
+ dbfullsql
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(_ImportedMSDeployDeclareParameters.DefaultValue)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Unknown
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.ZipDeploy.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.ZipDeploy.targets
new file mode 100644
index 0000000000000000000000000000000000000000..523560464f0123ccb59ec9fa4f88b29c4dd8db6e
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.ZipDeploy.targets
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+ <_DotNetPublishFiles>
+ ZipDeploy;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WebSdk
+ WebSdk_VisualStudio_$(VisualStudioVersion)
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/TransformTargets/Microsoft.NET.Sdk.Publish.TransformFiles.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/TransformTargets/Microsoft.NET.Sdk.Publish.TransformFiles.targets
new file mode 100644
index 0000000000000000000000000000000000000000..495f78aa0d636bd4917e01a143f058b1b1ac5c68
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/TransformTargets/Microsoft.NET.Sdk.Publish.TransformFiles.targets
@@ -0,0 +1,257 @@
+
+
+
+
+
+
+
+
+
+
+
+ <_DotNetPublishTransformFiles>
+ _TransformWebConfig;
+ _TransformXml;
+ _TransformAppSettings;
+ _GenerateEFSQLScripts;
+ _GenerateRunCommandFile;
+
+
+
+
+
+
+
+ <_IsAspNetCoreProject Condition=" %(ProjectCapability.Identity) == 'AspNetCore' ">true
+ <_UseAppHost Condition=" '$(_UseAppHost)' == '' ">$(UseAppHost)
+ <_UseAppHost Condition=" '$(_UseAppHost)' == '' ">$(SelfContained)
+ <_UseAppHost Condition=" '$(_UseAppHost)' == '' Or '$(RuntimeIdentifier)' == '' ">false
+ <_ExecutableExtension Condition=" '$(_ExecutableExtension)' == '' And $(RuntimeIdentifier.StartsWith('win')) ">.exe
+ <_TransformWebConfigForAzure Condition=" '$(PublishProvider)' == 'AzureWebSite' Or '$(WEBSITE_SITE_NAME)' != '' Or '$(DOTNET_CONFIGURE_AZURE)' == 'true' Or '$(DOTNET_CONFIGURE_AZURE)' == '1' ">true
+
+
+
+
+
+
+
+
+
+
+
+ <_IsAspNetCoreProject Condition="%(ProjectCapability.Identity) == 'AspNetCore'">true
+ true
+
+ false
+ <_WebConfigTransformCompleted Condition="'$(_IsAspNetCoreProject)' == 'true'
+ And '$(IsTransformWebConfigDisabled)' != 'true'
+ And '$(IsWebConfigTransformDisabled)' != 'true'
+ And '$(PublishIISAssets)' != 'false'">true
+ <_WebConfigTransformCompleted Condition="'$(_WebConfigTransformCompleted)' == ''">false
+ $(_WebConfigTransformCompleted)
+
+
+
+ $([System.IO.Path]::GetFileNameWithoutExtension($(WebPublishProfileFile)))
+ $([System.IO.Path]::GetDirectoryName($(WebPublishProfileFile)))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_IsAspNetCoreProject Condition="%(ProjectCapability.Identity) == 'AspNetCore'">true
+
+
+
+
+
+
+
+
+
+ <_IsAspNetCoreProject Condition="%(ProjectCapability.Identity) == 'AspNetCore'">true
+ <_EFPublishDirectory Condition="'$(CopyEFSQLScriptsToOutputFolder)' == 'true'">$(PublishIntermediateOutputPath)
+ <_EFPublishDirectory Condition="'$(_EFPublishDirectory)' == ''">$(PublishIntermediateTempPath)
+
+
+
+
+
+
+
+
+
+
+
+
+ <_IsWebJobProject Condition=" '$(_IsWebJobProject)' == '' And '$(WebJobName)' != '' And '$(WebJobType)' != '' ">true
+ <_UseAppHost Condition=" '$(_UseAppHost)' == '' ">$(UseAppHost)
+ <_UseAppHost Condition=" '$(_UseAppHost)' == '' ">$(SelfContained)
+ <_UseAppHost Condition=" '$(_UseAppHost)' == '' Or '$(RuntimeIdentifier)' == '' ">false
+ <_ExecutableExtension Condition=" '$(_ExecutableExtension)' == '' And $(RuntimeIdentifier.StartsWith('win')) ">.exe
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/TransformTargets/Transforms/EnvironmentNoLocation.transform b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/TransformTargets/Transforms/EnvironmentNoLocation.transform
new file mode 100644
index 0000000000000000000000000000000000000000..74c1f90077faf790b9c48a966607881bb40f8d6d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/TransformTargets/Transforms/EnvironmentNoLocation.transform
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/TransformTargets/Transforms/EnvironmentWithLocation.transform b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/TransformTargets/Transforms/EnvironmentWithLocation.transform
new file mode 100644
index 0000000000000000000000000000000000000000..71e6677a28f08cc9f11bf1efde0245eaff080582
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/targets/TransformTargets/Transforms/EnvironmentWithLocation.transform
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Bcl.AsyncInterfaces.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Bcl.AsyncInterfaces.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6031ba1e94835abd1d276b9700394dbafeb2b46c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Bcl.AsyncInterfaces.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.NET.Sdk.Publish.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.NET.Sdk.Publish.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9b7bd3c345dd65407e92c33946f6adaa257aa94d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.NET.Sdk.Publish.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.NET.Sdk.Publish.Tasks.dll.config b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.NET.Sdk.Publish.Tasks.dll.config
new file mode 100644
index 0000000000000000000000000000000000000000..abefd168663a897dc0b53832f71a022e75af4f0a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.NET.Sdk.Publish.Tasks.dll.config
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.Delegation.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.Delegation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2eca088d9e5e05e6e8230cc4158528b5acf3a2d7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.Delegation.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.Deployment.Tracing.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.Deployment.Tracing.dll
new file mode 100644
index 0000000000000000000000000000000000000000..88b80ce407ed701a01199f71b5f9b6b9f67373d3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.Deployment.Tracing.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.Deployment.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.Deployment.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7de40fb85527ac9ea8571519accf95950555901d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.Deployment.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:05ca24cd90cf46e95b8564d72eedae00f2976ccd68b3029ca9779e810251427c
+size 1525632
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.XmlTransform.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.XmlTransform.dll
new file mode 100644
index 0000000000000000000000000000000000000000..119899cdeec5fecee52f41ea25359d5404ac7ae7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/Microsoft.Web.XmlTransform.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Buffers.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Buffers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f2d83c51416e90dbc31154545b16df3b3f7a7909
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Buffers.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Memory.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Memory.dll
new file mode 100644
index 0000000000000000000000000000000000000000..46171997966f26bda11e58586c51b2817bde5cca
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Memory.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Numerics.Vectors.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Numerics.Vectors.dll
new file mode 100644
index 0000000000000000000000000000000000000000..08659724d4f8534ee97a543e93dd6d3c702fcd15
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Numerics.Vectors.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Runtime.CompilerServices.Unsafe.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c5ba4e4047a15b3adc61340c781307d9c6e89413
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Security.Cryptography.ProtectedData.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Security.Cryptography.ProtectedData.dll
new file mode 100644
index 0000000000000000000000000000000000000000..47ce37d4c6108d78d286fd517e6982fc16fad395
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Security.Cryptography.ProtectedData.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Text.Encodings.Web.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Text.Encodings.Web.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3d16c7e9d86d760e037853648c40c16a1ac9860d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Text.Encodings.Web.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Text.Json.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Text.Json.dll
new file mode 100644
index 0000000000000000000000000000000000000000..81822f3947cf5b01545340aa0a61a6657ff4bf76
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Text.Json.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Threading.Tasks.Extensions.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..eeec92852705946904d0e2fa0443d454075781f5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.Threading.Tasks.Extensions.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.ValueTuple.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.ValueTuple.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4ce28fdeac6da139573ed0ff356c2df510692cee
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/System.ValueTuple.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/cs/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/cs/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..952a66d71fe043e2fca0c7fa5ab64b1c532272fc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/cs/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/de/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/de/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..11ef28798b1a307335c0176bd47acbe88468e13c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/de/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/es/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/es/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..42e7e144cf171f48f2fecd45d7b8e2bb08900e22
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/es/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/fr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/fr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0307db531873d7649a2592e2569fe99b4104514d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/fr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/it/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/it/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d50fe5b3e42d6881a445d51d29670bfddf168676
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/it/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ja/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ja/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b78e915b8e69c444a5f05264a451ed089e31d4b3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ja/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ko/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ko/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..218218e7746a7d62531e42cba2e472532dc6dbd0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ko/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/pl/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/pl/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c3d986ff31c93f61d47b4731a2e7812b840b3c29
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/pl/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/pt-BR/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/pt-BR/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5bab6bcbf4023709b85f89e8ff9f459f425710f4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/pt-BR/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ru/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ru/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..87e53c7fa14faf48534703f47f0201cf629dc605
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/ru/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/tr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/tr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3323d626abf66937cd97cb069032f184d2289fba
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/tr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/zh-Hans/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/zh-Hans/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f4b00a7568eae71b7f13385c31a94443371e981b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/zh-Hans/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/zh-Hant/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/zh-Hant/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8cdb12d4627ee2c1b3e5375c56d4c42dd54cce4c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net472/zh-Hant/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/Microsoft.NET.Sdk.Publish.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/Microsoft.NET.Sdk.Publish.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cd1eae95cffd8a9d3fdf6d85f3e21a4948af5c77
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/Microsoft.NET.Sdk.Publish.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/Microsoft.Web.XmlTransform.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/Microsoft.Web.XmlTransform.dll
new file mode 100644
index 0000000000000000000000000000000000000000..554f3926c6298c9041cf662d0d5f1e8b95af5c21
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/Microsoft.Web.XmlTransform.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/System.Security.Cryptography.ProtectedData.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/System.Security.Cryptography.ProtectedData.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b2838846daab434b3c3c30a2f7ac126996f62504
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/System.Security.Cryptography.ProtectedData.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/cs/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/cs/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ab33f05823158c4b285b8fd36873a5f325374626
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/cs/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/de/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/de/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7f4690c5604085e313baf73b056d6c8f61f54e4d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/de/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/es/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/es/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2ccd0bffac736d81e2c54c74b1f778540f1cab1b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/es/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/fr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/fr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e9db71083525f7e60cabbb713eaacdf4e5d59907
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/fr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/it/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/it/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..12511601723be9f2857bc5e7350b13d4f458eb45
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/it/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/ja/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/ja/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..11055fdb54f4e60f104dca267df1a3625c944e3f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/ja/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/ko/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/ko/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7d19ad0df09d3031f8e54bd48082c2a577255c9c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/ko/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/pl/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/pl/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8fe9b84b0639004b3e9876e15249df4e56b0e1e2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/pl/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/pt-BR/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/pt-BR/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..955d571f8b8d578f28be5586fc1b8855f67b9246
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/pt-BR/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/ru/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/ru/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6cab5308413fe8d14d3b42556f1e95c39db5fa19
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/ru/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/tr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/tr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d2fc8e876ab7a3a48e6c82aabc0e9fc94584ed27
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/tr/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/zh-Hans/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/zh-Hans/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..631a0a530905caa94b41d009405e143fa2ad2b3c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/zh-Hans/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/zh-Hant/Microsoft.NET.Sdk.Publish.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/zh-Hant/Microsoft.NET.Sdk.Publish.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9684db0e51da2ddd495ebc0d512d4abf692bfaaa
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Publish/tools/net8.0/zh-Hant/Microsoft.NET.Sdk.Publish.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/Sdk/Sdk.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/Sdk/Sdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..7a0d51ee5625bfc3eb4825d63fd63560558f1e04
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/Sdk/Sdk.props
@@ -0,0 +1,27 @@
+
+
+
+
+ <_RazorSdkImportsMicrosoftNetSdk Condition="'$(UsingMicrosoftNETSdk)' != 'true'">true
+ <_RazorSdkImportsMicrosoftNetSdkStaticWebAssets Condition="'$(UsingMicrosoftNETSdkStaticWebAssets)' != 'true'">true
+
+
+
+
+
+
+ $(MSBuildThisFileDirectory)..\targets\Sdk.Razor.CurrentVersion.props
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/Sdk/Sdk.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/Sdk/Sdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..efc64983df9baa8ac25832ff51b15501d11c0dd7
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/Sdk/Sdk.targets
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+ $(MSBuildThisFileDirectory)..\targets\Sdk.Razor.CurrentVersion.targets
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.AspNetCore.Razor.Utilities.Shared.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.AspNetCore.Razor.Utilities.Shared.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2916e26dc76a9040e26e6b9b411eb5692e415cf1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.AspNetCore.Razor.Utilities.Shared.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.AspNetCore.Razor.Utilities.Shared.xml b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.AspNetCore.Razor.Utilities.Shared.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c2f3551b95f6bef4e44cd080e77c434de7b46c51
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.AspNetCore.Razor.Utilities.Shared.xml
@@ -0,0 +1,837 @@
+
+
+
+ Microsoft.AspNetCore.Razor.Utilities.Shared
+
+
+
+
+ Reserved to be used by the compiler for tracking metadata.
+ This class should not be used by developers in source code.
+ This dummy class is required to compile records when targeting .NET Standard
+
+
+
+
+ Indicates that compiler support for a particular feature is required for the location where this attribute is applied.
+
+
+
+
+ The name of the compiler feature.
+
+
+
+
+ If true, the compiler can choose to allow access to the location where this attribute is applied if it does not understand .
+
+
+
+ Indicates which arguments to a method involving an interpolated string handler should be passed to that handler.
+
+
+ Initializes a new instance of the class.
+ The name of the argument that should be passed to the handler.
+ The empty string may be used as the name of the receiver in an instance method.
+
+
+ Initializes a new instance of the class.
+ The names of the arguments that should be passed to the handler.
+ The empty string may be used as the name of the receiver in an instance method.
+
+
+ Gets the names of the arguments that should be passed to the handler.
+ The empty string may be used as the name of the receiver in an instance method.
+
+
+ Indicates the attributed type is to be used as an interpolated string handler.
+
+
+ Initializes the .
+
+
+ Specifies that a type has required members or that a member is required.
+
+
+
+ Represents a heap-based, array-backed output sink into which data can be written.
+
+
+
+
+ Creates an instance of an , in which data can be written to,
+ with the default initial capacity.
+
+
+
+
+ Creates an instance of an , in which data can be written to,
+ with an initial capacity specified.
+
+ The minimum capacity with which to initialize the underlying buffer.
+
+ Thrown when is not positive (i.e. less than or equal to 0).
+
+
+
+
+ Returns the data written to the underlying buffer so far, as a .
+
+
+
+
+ Returns the data written to the underlying buffer so far, as a .
+
+
+
+
+ Returns the amount of data written to the underlying buffer so far.
+
+
+
+
+ Returns the total amount of space within the underlying buffer.
+
+
+
+
+ Returns the amount of space available that can still be written into without forcing the underlying buffer to grow.
+
+
+
+
+ Clears the data written to the underlying buffer.
+
+
+
+ You must reset or clear the before trying to re-use it.
+
+
+ The method is faster since it only sets to zero the writer's index
+ while the method additionally zeroes the content of the underlying buffer.
+
+
+
+
+
+
+ Resets the data written to the underlying buffer without zeroing its content.
+
+
+
+ You must reset or clear the before trying to re-use it.
+
+
+ If you reset the writer using the method, the underlying buffer will not be cleared.
+
+
+
+
+
+
+ Notifies that amount of data was written to the output /
+
+
+ Thrown when is negative.
+
+
+ Thrown when attempting to advance past the end of the underlying buffer.
+
+
+ You must request a new buffer after calling Advance to continue writing more data and cannot write to a previously acquired buffer.
+
+
+
+
+ Returns a to write to that is at least the requested length (specified by ).
+ If no is provided (or it's equal to 0
), some non-empty buffer is returned.
+
+
+ Thrown when is negative.
+
+
+
+ This will never return an empty .
+
+
+ There is no guarantee that successive calls will return the same buffer or the same-sized buffer.
+
+
+ You must request a new buffer after calling Advance to continue writing more data and cannot write to a previously acquired buffer.
+
+
+ If you reset the writer using the method, this method may return a non-cleared .
+
+
+ If you clear the writer using the method, this method will return a with its content zeroed.
+
+
+
+
+
+ Returns a to write to that is at least the requested length (specified by ).
+ If no is provided (or it's equal to 0
), some non-empty buffer is returned.
+
+
+ Thrown when is negative.
+
+
+
+ This will never return an empty .
+
+
+ There is no guarantee that successive calls will return the same buffer or the same-sized buffer.
+
+
+ You must request a new buffer after calling Advance to continue writing more data and cannot write to a previously acquired buffer.
+
+
+ If you reset the writer using the method, this method may return a non-cleared .
+
+
+ If you clear the writer using the method, this method will return a with its content zeroed.
+
+
+
+
+
+ that uses .
+
+
+
+
+ Deconstructs a into out variables. Provides support
+ for assignment like
+
+ var (k,v) = kvp;
+
+
+
+
+
+ extension methods
+
+
+
+
+ Returns an empty array if the input array is null (default)
+
+
+
+
+ Returns the current contents as an and sets
+ the collection to a zero length array.
+
+
+ If equals
+ , the internal array will be extracted
+ as an without copying the contents. Otherwise, the
+ contents will be copied into a new array. The collection will then be set to a
+ zero-length array.
+
+ An immutable array.
+
+
+
+ Returns an that contains no duplicates from the array
+ and returns the most recent copy of each item.
+
+
+
+
+ Executes a binary search over an array, but allows the caller to decide what constitutes a match
+
+ Type of the elements in the array
+ Type of the argument to pass to the comparer
+ The array to search
+ An argument to pass to the comparison function
+ A comparison function that evaluates an item in the array. Return 0 if the item is a match,
+ or -1 if the item indicates a successful match will be found in the left branch, or 1 if the item indicates a successful
+ match will be found in the right branch.
+ The index of the element found
+
+
+ Represent a type can be used to index a collection either from the start or the end.
+
+ Index is used by the C# compiler to support the new index syntax
+
+ int[] someArray = new int[5] { 1, 2, 3, 4, 5 } ;
+ int lastElement = someArray[^1]; // lastElement = 5
+
+
+
+
+ Construct an Index using a value and indicating if the index is from the start or from the end.
+ The index value. it has to be zero or positive number.
+ Indicating if the index is from the start or from the end.
+
+ If the Index constructed from the end, index value 1 means pointing at the last element and index value 0 means pointing at beyond last element.
+
+
+
+ Create an Index pointing at first element.
+
+
+ Create an Index pointing at beyond last element.
+
+
+ Create an Index from the start at the position indicated by the value.
+ The index value from the start.
+
+
+ Create an Index from the end at the position indicated by the value.
+ The index value from the end.
+
+
+ Returns the index value.
+
+
+ Indicates whether the index is from the start or the end.
+
+
+ Calculate the offset from the start using the giving collection length.
+ The length of the collection that the Index will be used with. length has to be a positive value
+
+ For performance reason, we don't validate the input length parameter and the returned offset value against negative values.
+ we don't validate either the returned offset is greater than the input length.
+ It is expected Index will be used with collections which always have non negative length/count. If the returned offset is negative and
+ then used to index a collection will get out of range exception which will be same affect as the validation.
+
+
+
+ Indicates whether the current Index object is equal to another object of the same type.
+ An object to compare with this object
+
+
+ Indicates whether the current Index object is equal to another Index object.
+ An object to compare with this object
+
+
+ Returns the hash code for this instance.
+
+
+ Converts integer number to an Index.
+
+
+ Converts the value of the current Index object to its equivalent string representation.
+
+
+ Specifies that null is allowed as an input even if the corresponding type disallows it.
+
+
+ Specifies that null is disallowed as an input even if the corresponding type allows it.
+
+
+ Specifies that an output may be null even if the corresponding type disallows it.
+
+
+ Specifies that an output will not be null even if the corresponding type allows it. Specifies that an input argument was not null when the call returns.
+
+
+ Specifies that when a method returns , the parameter may be null even if the corresponding type disallows it.
+
+
+ Initializes the attribute with the specified return value condition.
+
+ The return value condition. If the method returns this value, the associated parameter may be null.
+
+
+
+ Gets the return value condition.
+
+
+ Specifies that when a method returns , the parameter will not be null even if the corresponding type allows it.
+
+
+ Initializes the attribute with the specified return value condition.
+
+ The return value condition. If the method returns this value, the associated parameter will not be null.
+
+
+
+ Gets the return value condition.
+
+
+ Specifies that the output will be non-null if the named parameter is non-null.
+
+
+ Initializes the attribute with the associated parameter name.
+
+ The associated parameter name. The output will be non-null if the argument to the parameter specified is non-null.
+
+
+
+ Gets the associated parameter name.
+
+
+ Applied to a method that will never return under any circumstance.
+
+
+ Specifies that the method will not return if the associated Boolean parameter is passed the specified value.
+
+
+ Initializes the attribute with the specified parameter value.
+
+ The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to
+ the associated parameter matches this value.
+
+
+
+ Gets the condition parameter value.
+
+
+ Specifies that the method or property will ensure that the listed field and property members have not-null values.
+
+
+ Initializes the attribute with a field or property member.
+
+ The field or property member that is promised to be not-null.
+
+
+
+ Initializes the attribute with the list of field and property members.
+
+ The list of field and property members that are promised to be not-null.
+
+
+
+ Gets field or property member names.
+
+
+ Specifies that the method or property will ensure that the listed field and property members have not-null values when returning with the specified return value condition.
+
+
+ Initializes the attribute with the specified return value condition and a field or property member.
+
+ The return value condition. If the method returns this value, the associated parameter will not be null.
+
+
+ The field or property member that is promised to be not-null.
+
+
+
+ Initializes the attribute with the specified return value condition and list of field and property members.
+
+ The return value condition. If the method returns this value, the associated parameter will not be null.
+
+
+ The list of field and property members that are promised to be not-null.
+
+
+
+ Gets the return value condition.
+
+
+ Gets field or property member names.
+
+
+
+ Specifies that this constructor sets all required members for the current type, and callers
+ do not need to set any required members themselves.
+
+
+
+ Represent a range has start and end indexes.
+
+ Range is used by the C# compiler to support the range syntax.
+
+ int[] someArray = new int[5] { 1, 2, 3, 4, 5 };
+ int[] subArray1 = someArray[0..2]; // { 1, 2 }
+ int[] subArray2 = someArray[1..^0]; // { 2, 3, 4, 5 }
+
+
+
+
+ Represent the inclusive start index of the Range.
+
+
+ Represent the exclusive end index of the Range.
+
+
+ Construct a Range object using the start and end indexes.
+ Represent the inclusive start index of the range.
+ Represent the exclusive end index of the range.
+
+
+ Indicates whether the current Range object is equal to another object of the same type.
+ An object to compare with this object
+
+
+ Indicates whether the current Range object is equal to another Range object.
+ An object to compare with this object
+
+
+ Returns the hash code for this instance.
+
+
+ Converts the value of the current Range object to its equivalent string representation.
+
+
+ Create a Range object starting from start index to the end of the collection.
+
+
+ Create a Range object starting from first element in the collection to the end Index.
+
+
+ Create a Range object starting from first element to the end.
+
+
+ Calculate the start offset and length of range object using a collection length.
+ The length of the collection that the range will be used with. length has to be a positive value.
+
+ For performance reason, we don't validate the input length parameter against negative values.
+ It is expected Range will be used with collections which always have non negative length/count.
+ We validate the range is inside the length scope though.
+
+
+
+
+ Can be called at points that are assumed to be unreachable at runtime.
+
+
+
+
+
+ Can be called at points that are assumed to be unreachable at runtime.
+
+
+
+
+
+ Set the 's capacity if it is less than .
+
+
+
+
+ Copies the elements of the to a new array, or returns an
+ empty array if the is null.
+
+
+ On .NET Framework, will create a new empty array for any
+ empty . This method avoids that extra allocation.
+
+
+
+
+ A pool of instances.
+
+
+
+ Instances originating from this pool are intended to be short-lived and are suitable
+ for temporary work. Do not return them as the results of methods or store them in fields.
+
+
+
+
+ A pool of instances.
+
+
+
+ Instances originating from this pool are intended to be short-lived and are suitable
+ for temporary work. Do not return them as the results of methods or store them in fields.
+
+
+
+
+ A pool of instances.
+
+
+
+ Instances originating from this pool are intended to be short-lived and are suitable
+ for temporary work. Do not return them as the results of methods or store them in fields.
+
+
+
+
+ A pool of instances that compares items using default equality.
+
+
+
+ Instances originating from this pool are intended to be short-lived and are suitable
+ for temporary work. Do not return them as the results of methods or store them in fields.
+
+
+
+
+ A pool of instances.
+
+
+
+ Instances originating from this pool are intended to be short-lived and are suitable
+ for temporary work. Do not return them as the results of methods or store them in fields.
+
+
+
+
+ Gets a mutable reference to a stored in a using variable.
+
+
+ This supporting method allows , a non-copyable
+ implementing , to be used with using statements while still allowing them to
+ be passed by reference in calls. The following two calls are equivalent:
+
+
+ using var array = PooledArrayBuilder<T>.Empty;
+
+ // Using the 'Unsafe.AsRef' method
+ Method(ref Unsafe.AsRef(in builder));
+
+ // Using this helper method
+ Method(ref builder.AsRef());
+
+
+ ⚠ Do not move or rename this method without updating the corresponding
+ Razor.Diagnostics.Analyzers\PooledArrayBuilderAsRefAnalyzer.cs.
+
+ The type of element stored in the pooled array builder.
+ A read-only reference to a pooled array builder which is part of a using statement.
+ A mutable reference to the pooled array builder.
+
+
+
+ Wraps a pooled but doesn't allocate it until
+ it's needed. Note: Dispose this to ensure that the pooled array builder is returned
+ to the pool.
+
+ There is significant effort to avoid retrieving the .
+ For very small arrays of length 4 or less, the elements will be stored on the stack. If the array
+ grows larger than 4 elements, a builder will be employed. Afterward, the build will
+ continue to be used, even if the arrays shrinks and has fewer than 4 elements.
+
+
+
+
+ The number of items that can be stored inline.
+
+
+
+
+ A builder to be used as storage after the first time that the number
+ of items exceeds . Once the builder is used,
+ it is still used even if the number of items shrinks below .
+ Essentially, if this field is non-null, it will be used as storage.
+
+
+
+
+ An optional initial capacity for the builder.
+
+
+
+
+ The number of inline elements. Note that this value is only used when is .
+
+
+
+
+ Returns the current contents as an and sets
+ the collection to a zero length array.
+
+
+ If equals , the
+ internal array will be extracted as an without copying
+ the contents. Otherwise, the contents will be copied into a new array. The collection
+ will then be set to a zero-length array.
+
+ An immutable array.
+
+
+
+ This is present to help the JIT inline methods that need to throw
+ a .
+
+
+
+
+ Wraps a pooled but doesn't allocate it until
+ it's needed. Note: Dispose this to ensure that the pooled array builder is returned
+ to the pool.
+
+
+
+
+ Wraps a pooled but doesn't allocate it until
+ it's needed. Note: Dispose this to ensure that the pooled array builder is returned
+ to the pool.
+
+
+
+
+ Wraps a pooled but doesn't allocate it until
+ it's needed. Note: Dispose this to ensure that the pooled set is returned
+ to the pool.
+
+
+
+
+ Wraps a pooled but doesn't allocate it until
+ it's needed. Note: Dispose this to ensure that the pooled list is returned
+ to the pool.
+
+
+
+
+ A pool of instances that compares items using reference equality.
+
+
+
+ Instances originating from this pool are intended to be short-lived and are suitable
+ for temporary work. Do not return them as the results of methods or store them in fields.
+
+
+
+
+ A pool of instances.
+
+
+
+ Instances originating from this pool are intended to be short-lived and are suitable
+ for temporary work. Do not return them as the results of methods or store them in fields.
+
+
+
+
+ A pool of instances.
+
+
+
+ Instances originating from this pool are intended to be short-lived and are suitable
+ for temporary work. Do not return them as the results of methods or store them in fields.
+
+
+
+
+ A pool of instances.
+
+
+
+ Instances originating from this pool are intended to be short-lived and are suitable
+ for temporary work. Do not return them as the results of methods or store them in fields.
+
+
+
+
+ Pooled instances when the key is of type .
+
+
+
+ Instances originating from this pool are intended to be short-lived and are suitable
+ for temporary work. Do not return them as the results of methods or store them in fields.
+
+
+
+
+ A pool of instances that compares strings.
+
+
+
+ Instances originating from this pool are intended to be short-lived and are suitable
+ for temporary work. Do not return them as the results of methods or store them in fields.
+
+
+
+ {0} ('{1}') must be a non-negative and non-zero value.
+
+
+ {0} ('{1}') must be a non-negative and non-zero value.
+
+
+ {0} ('{1}') must be a non-negative value.
+
+
+ {0} ('{1}') must be a non-negative value.
+
+
+ {0} ('{1}') must be a non-zero value.
+
+
+ {0} ('{1}') must be a non-zero value.
+
+
+ {0} ('{1}') must be equal to '{2}'.
+
+
+ {0} ('{1}') must be equal to '{2}'.
+
+
+ {0} ('{1}') must be greater than '{2}'.
+
+
+ {0} ('{1}') must be greater than '{2}'.
+
+
+ {0} ('{1}') must be greater than or equal to '{2}'.
+
+
+ {0} ('{1}') must be greater than or equal to '{2}'.
+
+
+ {0} ('{1}') must be less than '{2}'.
+
+
+ {0} ('{1}') must be less than '{2}'.
+
+
+ {0} ('{1}') must be less than or equal to '{2}'.
+
+
+ {0} ('{1}') must be less than or equal to '{2}'.
+
+
+ {0} ('{1}') must not be equal to '{2}'.
+
+
+ {0} ('{1}') must not be equal to '{2}'.
+
+
+ Cannot advance past the end of the buffer, which has a size of {0}.
+
+
+ Cannot advance past the end of the buffer, which has a size of {0}.
+
+
+ Cannot allocate a buffer of size {0}.
+
+
+ Cannot allocate a buffer of size {0}.
+
+
+ Destination is too short.
+
+
+ Expected condition to be false.
+
+
+ Expected condition to be true.
+
+
+ File='{0}', Line={1}
+
+
+ File='{0}', Line={1}
+
+
+ Non-negative number required.
+
+
+ The value cannot be an empty string.
+
+
+ The value cannot be an empty string or composed entirely of whitespace.
+
+
+ This program location is thought to be unreachable.
+
+
+ Unsupported type: '{0}'.
+
+
+ Unsupported type: '{0}'.
+
+
+
+ Explicitly indicates result is void
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.CodeAnalysis.Razor.Compiler.deps.json b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.CodeAnalysis.Razor.Compiler.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..b0c5747ae14b9a98eb89c558d5f1194012852fee
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.CodeAnalysis.Razor.Compiler.deps.json
@@ -0,0 +1,444 @@
+{
+ "runtimeTarget": {
+ "name": ".NETStandard,Version=v2.0/",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETStandard,Version=v2.0": {},
+ ".NETStandard,Version=v2.0/": {
+ "Microsoft.CodeAnalysis.Razor.Compiler/9.0.0-preview.24420.1": {
+ "dependencies": {
+ "Microsoft.AspNetCore.Razor.Utilities.Shared": "9.0.0-ci",
+ "Microsoft.CodeAnalysis.Analyzers": "3.11.0-beta1.24170.2",
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.11.0-beta1.24170.2",
+ "Microsoft.CodeAnalysis.CSharp": "4.9.2",
+ "Microsoft.DiaSymReader.Pdb2Pdb": "1.1.0-beta2-19575-01",
+ "Microsoft.Net.Compilers.Toolset": "4.11.0-3.24303.3",
+ "NETStandard.Library": "2.0.3",
+ "Roslyn.Diagnostics.Analyzers": "3.11.0-beta1.24170.2"
+ },
+ "runtime": {
+ "Microsoft.CodeAnalysis.Razor.Compiler.dll": {}
+ }
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.11.0-beta1.24170.2": {},
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers/3.11.0-beta1.24170.2": {},
+ "Microsoft.CodeAnalysis.Common/4.9.2": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.11.0-beta1.24170.2",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Memory": "4.5.5",
+ "System.Reflection.Metadata": "8.0.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0",
+ "System.Text.Encoding.CodePages": "8.0.0",
+ "System.Threading.Tasks.Extensions": "4.5.4"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.dll": {
+ "assemblyVersion": "4.9.0.0",
+ "fileVersion": "4.900.224.12906"
+ }
+ },
+ "resources": {
+ "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/de/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/it/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.9.2": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Common": "4.9.2"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.CSharp.dll": {
+ "assemblyVersion": "4.9.0.0",
+ "fileVersion": "4.900.224.12906"
+ }
+ },
+ "resources": {
+ "lib/netstandard2.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/netstandard2.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "de"
+ },
+ "lib/netstandard2.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "es"
+ },
+ "lib/netstandard2.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/netstandard2.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "it"
+ },
+ "lib/netstandard2.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/netstandard2.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/netstandard2.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/netstandard2.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/netstandard2.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/netstandard2.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/netstandard2.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/netstandard2.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers/3.11.0-beta1.24170.2": {},
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {},
+ "Microsoft.Extensions.ObjectPool/8.0.0": {
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.Extensions.ObjectPool.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53112"
+ }
+ }
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24303.3": {},
+ "Microsoft.NETCore.Platforms/1.1.0": {},
+ "NETStandard.Library/2.0.3": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0"
+ }
+ },
+ "Roslyn.Diagnostics.Analyzers/3.11.0-beta1.24170.2": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.11.0-beta1.24170.2",
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers": "3.11.0-beta1.24170.2"
+ }
+ },
+ "System.Buffers/4.5.1": {
+ "runtime": {
+ "lib/netstandard2.0/System.Buffers.dll": {
+ "assemblyVersion": "4.0.3.0",
+ "fileVersion": "4.6.28619.1"
+ }
+ }
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "dependencies": {
+ "System.Memory": "4.5.5",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Collections.Immutable.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Memory/4.5.5": {
+ "dependencies": {
+ "System.Buffers": "4.5.1",
+ "System.Numerics.Vectors": "4.4.0",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Memory.dll": {
+ "assemblyVersion": "4.0.1.2",
+ "fileVersion": "4.6.31308.1"
+ }
+ }
+ },
+ "System.Numerics.Vectors/4.4.0": {
+ "runtime": {
+ "lib/netstandard2.0/System.Numerics.Vectors.dll": {
+ "assemblyVersion": "4.1.3.0",
+ "fileVersion": "4.6.25519.3"
+ }
+ }
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0",
+ "System.Memory": "4.5.5"
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Reflection.Metadata.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.0.0": {
+ "runtime": {
+ "lib/netstandard2.0/System.Runtime.CompilerServices.Unsafe.dll": {
+ "assemblyVersion": "6.0.0.0",
+ "fileVersion": "6.0.21.52210"
+ }
+ }
+ },
+ "System.Text.Encoding.CodePages/8.0.0": {
+ "dependencies": {
+ "System.Memory": "4.5.5",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Text.Encoding.CodePages.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Threading.Tasks.Extensions/4.5.4": {
+ "dependencies": {
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/System.Threading.Tasks.Extensions.dll": {
+ "assemblyVersion": "4.2.0.1",
+ "fileVersion": "4.6.28619.1"
+ }
+ }
+ },
+ "Microsoft.AspNetCore.Razor.Utilities.Shared/9.0.0-ci": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.11.0-beta1.24170.2",
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.11.0-beta1.24170.2",
+ "Microsoft.Extensions.ObjectPool": "8.0.0",
+ "Roslyn.Diagnostics.Analyzers": "3.11.0-beta1.24170.2",
+ "System.Collections.Immutable": "8.0.0"
+ },
+ "runtime": {
+ "Microsoft.AspNetCore.Razor.Utilities.Shared.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.AspNetCore.Razor.Utilities.Shared.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.AspNetCore.Razor.Utilities.Shared.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.AspNetCore.Razor.Utilities.Shared.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.AspNetCore.Razor.Utilities.Shared.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.AspNetCore.Razor.Utilities.Shared.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.AspNetCore.Razor.Utilities.Shared.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.AspNetCore.Razor.Utilities.Shared.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.AspNetCore.Razor.Utilities.Shared.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.AspNetCore.Razor.Utilities.Shared.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.AspNetCore.Razor.Utilities.Shared.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.AspNetCore.Razor.Utilities.Shared.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.AspNetCore.Razor.Utilities.Shared.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.AspNetCore.Razor.Utilities.Shared.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.CodeAnalysis.Razor.Compiler/9.0.0-preview.24420.1": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.11.0-beta1.24170.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-58OuX56/oEFB1iQm1bjKx3ag4Bl9JXlqwnRanHuQykshS42gt9QzXCDKWTk0OPwrG0ArXEwE0aU8z2ggWDOEWA==",
+ "path": "microsoft.codeanalysis.analyzers/3.11.0-beta1.24170.2",
+ "hashPath": "microsoft.codeanalysis.analyzers.3.11.0-beta1.24170.2.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers/3.11.0-beta1.24170.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-RqWeNAx+0Z0mYYp8zhVrgS2VgLYscvgkg8CTHuVjlmKBqWey9shKMy1c8xG3tEYTW6ySTEOT5eR2PKa5ZPw+6w==",
+ "path": "microsoft.codeanalysis.bannedapianalyzers/3.11.0-beta1.24170.2",
+ "hashPath": "microsoft.codeanalysis.bannedapianalyzers.3.11.0-beta1.24170.2.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.Common/4.9.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-M5PThug7b2AdxL7xKmQs50KzAQTl9jENw5jMT3iUt16k+DAFlw1S87juU3UuPs3gvBm8trMBSOEvSFDr31c9Vw==",
+ "path": "microsoft.codeanalysis.common/4.9.2",
+ "hashPath": "microsoft.codeanalysis.common.4.9.2.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.9.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HGIo7E9Mf3exAJbUdYpDFfLoYkSVaHDJXPyusWTYUTBaOPCowGw+Gap5McE1w+K+ryIXre72oiqL88sQHmHBmg==",
+ "path": "microsoft.codeanalysis.csharp/4.9.2",
+ "hashPath": "microsoft.codeanalysis.csharp.4.9.2.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers/3.11.0-beta1.24170.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AsCTZF7qFeKSsdB5/hinZ0crFv9vOtChQo5ZegAD6NeLPw0e0b7lpox32884io9cGTEeaTt38VvAJenhlSoNbg==",
+ "path": "microsoft.codeanalysis.publicapianalyzers/3.11.0-beta1.24170.2",
+ "hashPath": "microsoft.codeanalysis.publicapianalyzers.3.11.0-beta1.24170.2.nupkg.sha512"
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kY6eTNkeWLHvfOjg97Q7tgQKrPpX+Y3fR6fS4nyfpgFLHBxHriLBR4v3e9t71it91gIMEeKUqOqrFJ7Pj48eHA==",
+ "path": "microsoft.diasymreader.pdb2pdb/1.1.0-beta2-19575-01",
+ "hashPath": "microsoft.diasymreader.pdb2pdb.1.1.0-beta2-19575-01.nupkg.sha512"
+ },
+ "Microsoft.Extensions.ObjectPool/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-4pm+XgxSukskwjzDDfSjG4KNUIOdFF2VaqZZDtTzoyQMOVSnlV6ZM8a9aVu5dg9LVZTB//utzSc8fOi0b0Mb2Q==",
+ "path": "microsoft.extensions.objectpool/8.0.0",
+ "hashPath": "microsoft.extensions.objectpool.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24303.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-nFUN46suaEUtZWimwmECbtlz/j1abJrc2OWDF3nYTBn0OG1pdmh0o1WkYAs0MPMv32iNn7rUdwYUGWqjHMbt/A==",
+ "path": "microsoft.net.compilers.toolset/4.11.0-3.24303.3",
+ "hashPath": "microsoft.net.compilers.toolset.4.11.0-3.24303.3.nupkg.sha512"
+ },
+ "Microsoft.NETCore.Platforms/1.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
+ "path": "microsoft.netcore.platforms/1.1.0",
+ "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
+ },
+ "NETStandard.Library/2.0.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==",
+ "path": "netstandard.library/2.0.3",
+ "hashPath": "netstandard.library.2.0.3.nupkg.sha512"
+ },
+ "Roslyn.Diagnostics.Analyzers/3.11.0-beta1.24170.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-YBX2sLqE5q0irOZLojrapee6lg2a//i4I7+KzWU71/DAkHXy0Q4B57rpyhnKUkQQjV9mp8TTE/qQE6Q3JYHA8g==",
+ "path": "roslyn.diagnostics.analyzers/3.11.0-beta1.24170.2",
+ "hashPath": "roslyn.diagnostics.analyzers.3.11.0-beta1.24170.2.nupkg.sha512"
+ },
+ "System.Buffers/4.5.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg==",
+ "path": "system.buffers/4.5.1",
+ "hashPath": "system.buffers.4.5.1.nupkg.sha512"
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "path": "system.collections.immutable/8.0.0",
+ "hashPath": "system.collections.immutable.8.0.0.nupkg.sha512"
+ },
+ "System.Memory/4.5.5": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
+ "path": "system.memory/4.5.5",
+ "hashPath": "system.memory.4.5.5.nupkg.sha512"
+ },
+ "System.Numerics.Vectors/4.4.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-UiLzLW+Lw6HLed1Hcg+8jSRttrbuXv7DANVj0DkL9g6EnnzbL75EB7EWsw5uRbhxd/4YdG8li5XizGWepmG3PQ==",
+ "path": "system.numerics.vectors/4.4.0",
+ "hashPath": "system.numerics.vectors.4.4.0.nupkg.sha512"
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+ "path": "system.reflection.metadata/8.0.0",
+ "hashPath": "system.reflection.metadata.8.0.0.nupkg.sha512"
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==",
+ "path": "system.runtime.compilerservices.unsafe/6.0.0",
+ "hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512"
+ },
+ "System.Text.Encoding.CodePages/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-OZIsVplFGaVY90G2SbpgU7EnCoOO5pw1t4ic21dBF3/1omrJFpAGoNAVpPyMVOC90/hvgkGG3VFqR13YgZMQfg==",
+ "path": "system.text.encoding.codepages/8.0.0",
+ "hashPath": "system.text.encoding.codepages.8.0.0.nupkg.sha512"
+ },
+ "System.Threading.Tasks.Extensions/4.5.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==",
+ "path": "system.threading.tasks.extensions/4.5.4",
+ "hashPath": "system.threading.tasks.extensions.4.5.4.nupkg.sha512"
+ },
+ "Microsoft.AspNetCore.Razor.Utilities.Shared/9.0.0-ci": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.CodeAnalysis.Razor.Compiler.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.CodeAnalysis.Razor.Compiler.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0bc9479213243c96ccaaf76193d4d1571a5a0ef9
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.CodeAnalysis.Razor.Compiler.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ed64baa49e8cc795da8e46daf88c62bef4d7689f595a73bee65d31e7bf6d927b
+size 1353760
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.Extensions.ObjectPool.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.Extensions.ObjectPool.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9dfb9223d1f0d2b095c33ef8e7175b1938c73051
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/Microsoft.Extensions.ObjectPool.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/RazorSourceGenerator.razorencconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/RazorSourceGenerator.razorencconfig
new file mode 100644
index 0000000000000000000000000000000000000000..c8f6abb36574dbb3bc7a2c0bae648fb946ec79df
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/RazorSourceGenerator.razorencconfig
@@ -0,0 +1,2 @@
+is_global = true
+build_property.SuppressRazorSourceGenerator = true
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/System.Collections.Immutable.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/System.Collections.Immutable.dll
new file mode 100644
index 0000000000000000000000000000000000000000..308228874f4790a0915835637dad30b7750fc7e1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/source-generators/System.Collections.Immutable.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.BeforeCommon.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.BeforeCommon.targets
new file mode 100644
index 0000000000000000000000000000000000000000..aca955c5f93a33f9b2522344c8e2e443c120f085
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.BeforeCommon.targets
@@ -0,0 +1,21 @@
+
+
+
+
+
+ true
+
+
+ false
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.CodeGeneration.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.CodeGeneration.targets
new file mode 100644
index 0000000000000000000000000000000000000000..f06db1750d427586ad2f13a2138692807c398296
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.CodeGeneration.targets
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RazorTagHelperInputCache>$(IntermediateOutputPath)$(TargetName).TagHelpers.input.cache
+ <_RazorTagHelperOutputCache>$(IntermediateOutputPath)$(TargetName).TagHelpers.output.cache
+
+
+ <_RazorGenerateInputsHash>
+ <_RazorGenerateInputsHashFile>$(IntermediateOutputPath)$(MSBuildProjectName).RazorCoreGenerate.cache
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RazorGenerateOutput Include="%(RazorGenerateWithTargetPath.GeneratedOutput)" />
+
+
+
+
+
+ _HashRazorGenerateInputs;
+ _ResolveRazorGenerateOutputs;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ResolveRazorCompileInputsDependsOn)
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.Compilation.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.Compilation.targets
new file mode 100644
index 0000000000000000000000000000000000000000..695e5c6f343acdf34e73a1265ed3e23deee58e69
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.Compilation.targets
@@ -0,0 +1,385 @@
+
+
+
+
+
+
+
+ $(NoWarn);1701;1702
+
+
+
+
+ $(NoWarn);2008
+
+
+
+
+ $(AppConfig)
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(Filename)%(Extension)
+ PreserveNewest
+
+
+ %(Filename)%(Extension)
+ PreserveNewest
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @(RazorIntermediateAssembly->'%(Filename)%(Extension)')
+
+ true
+
+
+ @(_RazorDebugSymbolsIntermediatePath->'%(Filename)%(Extension)')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(Filename)%(Extension)
+ PreserveNewest
+
+ true
+
+
+ %(Filename)%(Extension)
+ PreserveNewest
+ true
+
+
+
+
+
+
+
+ _RazorGetCopyToOutputDirectoryItems;
+ $(GetCopyToOutputDirectoryItemsDependsOn)
+
+
+
+ $(BuiltProjectOutputGroupDependsOn);
+ _RazorAddBuiltProjectOutputGroupOutput
+
+
+
+ PrepareForRazorCompile;
+ RazorCoreCompile
+
+
+
+ RazorComponentGenerate;
+ $(CoreCompileDependsOn)
+
+
+
+ RazorGenerateComponentDeclarationDesignTime;
+ $(CoreCompileDependsOn)
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.Component.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.Component.targets
new file mode 100644
index 0000000000000000000000000000000000000000..9b2c850be3e70e1611f3f70e9b2c1bfb74fd1ffd
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.Component.targets
@@ -0,0 +1,300 @@
+
+
+
+
+
+
+
+ $(RazorComponentGenerateDependsOn);
+ RazorComponentGenerateCore
+
+
+
+
+ <_RazorGenerateComponentDeclarationDesignTimeDependsOn>ResolveRazorConfiguration;ResolveRazorComponentInputs;AssignRazorComponentTargetPaths;RazorGenerateComponentDeclaration
+
+
+
+
+ <_RazorComponentInputHash>
+ <_RazorComponentInputCacheFile>$(IntermediateOutputPath)$(MSBuildProjectName).RazorComponent.input.cache
+ <_RazorComponentDeclarationOutputCacheFile>$(IntermediateOutputPath)$(MSBuildProjectName).RazorComponent.output.cache
+
+
+
+
+ <_RazorComponentDeclarationAssembly Include="$(_RazorComponentDeclarationOutputPath)$(TargetName).dll" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RazorComponentDeclaration Include="@(RazorComponentWithTargetPath->'%(GeneratedDeclaration)')">
+ %(Identity)
+
+ <_RazorComponentDefinition Include="%(RazorComponentWithTargetPath.GeneratedOutput)" />
+
+
+
+
+
+ _HashRazorComponentInputs;
+ _ResolveRazorComponentOutputs;
+
+
+
+
+
+
+
+ <_RazorComponentDeclarationSources Include="@(RazorComponentWithTargetPath)">
+ %(RazorComponentWithTargetPath.GeneratedDeclaration)
+
+
+
+
+
+
+
+ <_RazorComponentDeclarationManifest>$(IntermediateOutputPath)$(MSBuildProjectName).RazorComponents.declaration.json
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(NoWarn);1701;1702
+
+
+
+
+ $(NoWarn);2008
+
+
+
+
+ $(AppConfig)
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RazorComponentDeclarationAssemblyFullPath>@(_RazorComponentDeclarationAssembly->Metadata('FullPath'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RazorGenerateComponentDeclaration;
+ RazorCompileComponentDeclaration;
+ RazorGenerateComponentDefinition;
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.Configuration.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.Configuration.targets
new file mode 100644
index 0000000000000000000000000000000000000000..e8f1595d358799dca43b2ae5968232db7459bad9
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.Configuration.targets
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ Microsoft.AspNetCore.Mvc.ApplicationParts.CompiledRazorAssemblyApplicationPartFactory, Microsoft.AspNetCore.Mvc.Razor
+
+
+
+
+ <_Parameter1>$(ProvideApplicationPartFactoryAttributeTypeName)
+
+
+
+
+ <_RazorAssemblyAttribute Include="Microsoft.AspNetCore.Mvc.ApplicationParts.RelatedAssemblyAttribute">
+ <_Parameter1>$(RazorTargetName)
+
+
+
+
+
+
+
+ MVC-3.0
+ Default
+
+
+
+
+
+
+ MVC-3.0;$(CustomRazorExtension)
+
+
+
+
+
+ Microsoft.CodeAnalysis.Razor.Compiler
+ $(RazorSdkDirectoryRoot)tools\Microsoft.CodeAnalysis.Razor.Compiler.dll
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.DesignTime.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.DesignTime.targets
new file mode 100644
index 0000000000000000000000000000000000000000..17bcac37dc0b540f34c52120fbf2f338fd9e75d5
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.DesignTime.targets
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+ $(UpToDateReloadFileTypes);$(RazorUpToDateReloadFileTypes)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ File
+
+
+ File
+
+
+ Project
+
+
+ Project
+
+
+ Project
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.GenerateAssemblyInfo.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.GenerateAssemblyInfo.targets
new file mode 100644
index 0000000000000000000000000000000000000000..192ee25156f1d80be2dc6636f1f52de3567b89ef
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.GenerateAssemblyInfo.targets
@@ -0,0 +1,197 @@
+
+
+
+
+ true
+
+
+ true
+
+
+ $(IntermediateOutputPath)$(MSBuildProjectName).RazorTargetAssemblyInfo.cs
+ <_RazorTargetAssemblyInfoInputsCacheFile>$(IntermediateOutputPath)$(MSBuildProjectName).RazorTargetAssemblyInfo.cache
+
+
+ <_RazorAssemblyInfo>$(IntermediateOutputPath)$(MSBuildProjectName).RazorAssemblyInfo.cs
+ <_RazorAssemblyInfoInputsCacheFile>$(IntermediateOutputPath)$(MSBuildProjectName).RazorAssemblyInfo.cache
+
+
+
+
+ GetRazorTargetAssemblyAttributes;
+ _CreateRazorTargetAssemblyInfoInputsCacheFile;
+ CoreGenerateRazorTargetAssemblyInfo
+
+
+
+ _ResolveMvcAssemblyAttributes;
+ $(GenerateRazorTargetAssemblyInfoDependsOn)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(FileVersion)
+ $(InformationalVersion)
+ $(Description)
+ $(RazorTargetName)
+ $(AssemblyVersion)
+
+
+
+
+ <_Parameter1>$(Company)
+
+
+ <_Parameter1>$(Configuration)
+
+
+ <_Parameter1>$(Copyright)
+
+
+ <_Parameter1>$(Product)
+
+
+ <_Parameter1>$(NeutralLanguage)
+
+
+
+ <_Parameter1>$(RazorAssemblyDescription)
+
+
+ <_Parameter1>$(RazorAssemblyFileVersion)
+
+
+ <_Parameter1>$(RazorAssemblyInformationalVersion)
+
+
+ <_Parameter1>$(RazorAssemblyTitle)
+
+
+ <_Parameter1>$(RazorAssemblyVersion)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(CoreCompileDependsOn);
+ _GenerateRazorAssemblyInfo
+
+
+ <_GenerateRazorAssemblyInfoDependsOn>RazorGetAssemblyAttributes;PrepareForBuild;_CoreGenerateRazorAssemblyInfo
+
+
+ <_GenerateRazorAssemblyInfoDependsOn Condition="'$(_Targeting30OrNewerRazorLangVersion)' == 'true'">
+ _ResolveMvcAssemblyAttributes;
+ $(_GenerateRazorAssemblyInfoDependsOn);
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.MvcApplicationPartsDiscovery.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.MvcApplicationPartsDiscovery.targets
new file mode 100644
index 0000000000000000000000000000000000000000..e2145686b1935da7c81f7320b831af5d209c1d8a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.MvcApplicationPartsDiscovery.targets
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+ true
+
+
+ _DiscoverMvcApplicationParts;
+ $(CoreCompileDependsOn);
+
+
+ <_MvcApplicationPartAttributeGeneratedFile>$(IntermediateOutputPath)$(TargetName).MvcApplicationPartsAssemblyInfo$(DefaultLanguageSourceExtension)
+ <_MvcApplicationPartCacheFile>$(IntermediateOutputPath)$(TargetName).MvcApplicationPartsAssemblyInfo.cache
+
+
+
+
+
+ <_MvcAssemblyName Include="Microsoft.AspNetCore.Mvc" />
+ <_MvcAssemblyName Include="Microsoft.AspNetCore.Mvc.Abstractions" />
+ <_MvcAssemblyName Include="Microsoft.AspNetCore.Mvc.ApiExplorer" />
+ <_MvcAssemblyName Include="Microsoft.AspNetCore.Mvc.Core" />
+ <_MvcAssemblyName Include="Microsoft.AspNetCore.Mvc.Cors" />
+ <_MvcAssemblyName Include="Microsoft.AspNetCore.Mvc.DataAnnotations" />
+ <_MvcAssemblyName Include="Microsoft.AspNetCore.Mvc.Formatters.Json" />
+ <_MvcAssemblyName Include="Microsoft.AspNetCore.Mvc.Formatters.Xml" />
+ <_MvcAssemblyName Include="Microsoft.AspNetCore.Mvc.Localization" />
+ <_MvcAssemblyName Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" />
+ <_MvcAssemblyName Include="Microsoft.AspNetCore.Mvc.Razor" />
+ <_MvcAssemblyName Include="Microsoft.AspNetCore.Mvc.RazorPages" />
+ <_MvcAssemblyName Include="Microsoft.AspNetCore.Mvc.TagHelpers" />
+ <_MvcAssemblyName Include="Microsoft.AspNetCore.Mvc.ViewFeatures" />
+
+
+
+
+
+
+
+ <_MvcApplicationPartAttribute Include="Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute">
+ <_Parameter1>%(_ApplicationPartAssemblyNames.Identity)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.SourceGenerators.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.SourceGenerators.targets
new file mode 100644
index 0000000000000000000000000000000000000000..5b0c9eb056fb5eaf793e0b49b4a873c933e5e07e
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.SourceGenerators.targets
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+ <_RazorSdkSourceGeneratorDirectoryRoot>$(RazorSdkDirectoryRoot)\source-generators\
+ Microsoft.AspNetCore.Mvc.ApplicationParts.ConsolidatedAssemblyApplicationPartFactory, Microsoft.AspNetCore.Mvc.Razor
+
+
+
+ $(_RazorSdkSourceGeneratorDirectoryRoot)RazorSourceGenerator.razorencconfig
+
+
+
+
+
+
+
+ <_RazorAnalyzer Include="$(_RazorSdkSourceGeneratorDirectoryRoot)*.dll" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RazorAdditionalFile Include="@(RazorComponentWithTargetPath)" />
+
+ <_RazorAdditionalFile Include="@(RazorGenerateWithTargetPath)" Condition="'$(RazorCompileOnBuild)' != 'false'" />
+
+
+
+ <_RazorAssemblyAttribute Include="Microsoft.AspNetCore.Mvc.ApplicationParts.ProvideApplicationPartFactoryAttribute">
+ <_Parameter1>$(ProvideApplicationPartFactoryAttributeTypeName)
+
+
+
+
+
+
+
+
+ <_RazorAdditionalFile Remove="@(_RazorAdditionalFile)" />
+ <_RazorAdditionalFile Include="@(_RazorSpecialCharacterWorkaround)" />
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.props
new file mode 100644
index 0000000000000000000000000000000000000000..011670f532c7b4e033c0d4ff707c71c9cd772e13
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Microsoft.NET.Sdk.Razor.props
@@ -0,0 +1,18 @@
+
+
+
+ $(MSBuildThisFileDirectory)Sdk.Razor.CurrentVersion.props
+ $(MSBuildThisFileDirectory)Sdk.Razor.CurrentVersion.targets
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorComponentWithTargetPath.xaml b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorComponentWithTargetPath.xaml
new file mode 100644
index 0000000000000000000000000000000000000000..5584391594bc69e73fd710f4b0ed86c4d402e3bc
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorComponentWithTargetPath.xaml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorConfiguration.xaml b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorConfiguration.xaml
new file mode 100644
index 0000000000000000000000000000000000000000..b52c4638407ef9f7c310525c761ca57ecd5469ec
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorConfiguration.xaml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorExtension.xaml b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorExtension.xaml
new file mode 100644
index 0000000000000000000000000000000000000000..7a6dcd9272a6a40b586d262541666d881c461be5
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorExtension.xaml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorGeneral.xaml b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorGeneral.xaml
new file mode 100644
index 0000000000000000000000000000000000000000..2ef131ec2a204d0a1f26f1662c72444155fa436d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorGeneral.xaml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorGenerateWithTargetPath.xaml b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorGenerateWithTargetPath.xaml
new file mode 100644
index 0000000000000000000000000000000000000000..2540ae6a1919e8850344bef2a9c40f88dc52a817
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Rules/RazorGenerateWithTargetPath.xaml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Sdk.Razor.CurrentVersion.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Sdk.Razor.CurrentVersion.props
new file mode 100644
index 0000000000000000000000000000000000000000..32ab9c2c555b2f2c33da11ce717c9cca83f7a21a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Sdk.Razor.CurrentVersion.props
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+ Implicit
+
+
+ false
+
+
+ .g.cs
+
+
+ .cs;.razor;.resx;.cshtml
+
+
+ $(CustomCollectWatchItems);_RazorSdkCustomCollectWatchItems
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Sdk.Razor.CurrentVersion.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Sdk.Razor.CurrentVersion.targets
new file mode 100644
index 0000000000000000000000000000000000000000..6c08778391bf2dd9a8ab6f5d62e6f9fbdfcb9981
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/targets/Sdk.Razor.CurrentVersion.targets
@@ -0,0 +1,799 @@
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ $(MSBuildThisFileDirectory)..\
+ $(RazorSdkDirectoryRoot)tasks\
+ <_RazorSdkTasksTFM Condition=" '$(MSBuildRuntimeType)' == 'Core'">net8.0
+ <_RazorSdkTasksTFM Condition=" '$(_RazorSdkTasksTFM)' == ''">net472
+ $(RazorSdkBuildTasksDirectoryRoot)$(_RazorSdkTasksTFM)\Microsoft.NET.Sdk.Razor.Tasks.dll
+ <_RazorSdkToolAssembly>$(RazorSdkDirectoryRoot)tools\rzc.dll
+
+
+
+ <_RazorSdkDotNetHostDirectory>$(NetCoreRoot)
+ <_RazorSdkDotNetHostFileName>dotnet
+ <_RazorSdkDotNetHostFileName Condition="'$(OS)' == 'Windows_NT'">dotnet.exe
+
+
+
+
+
+
+ <_TargetingNETCoreApp30OrLater>true
+ <_TargetingNET50OrLater>true
+ <_TargetingNET60OrLater>true
+ <_TargetingNET70OrLater>true
+ <_TargetingNET80OrLater>true
+ true
+ 8.0
+
+
+
+
+ <_TargetingNETCoreApp30OrLater>true
+ <_TargetingNET50OrLater>true
+ <_TargetingNET60OrLater>true
+ <_TargetingNET70OrLater>true
+ true
+ 7.0
+
+
+
+
+ <_TargetingNETCoreApp30OrLater>true
+ <_TargetingNET50OrLater>true
+ <_TargetingNET60OrLater>true
+ true
+ 6.0
+
+
+
+
+ <_TargetingNETCoreApp30OrLater>true
+ <_TargetingNET50OrLater>true
+ false
+ 5.0
+
+
+
+
+ <_TargetingNETCoreApp30OrLater>true
+ false
+ 3.0
+
+
+
+
+ <_TargetingNETStandard21OrLater>true
+
+
+
+
+ <_TargetingNETStandard20OrLater>true
+
+
+
+
+
+
+ 2.1
+
+
+ <_Targeting30OrNewerRazorLangVersion Condition="
+ '$(RazorLangVersion)' == 'Latest' OR
+ '$(RazorLangVersion)' == 'Experimental' OR
+ ('$(RazorLangVersion)' != '' AND '$(RazorLangVersion)' >= '3.0')">true
+
+
+
+
+ <_IsTargetingRazor2X Condition="'$(IsRazorCompilerReferenced)'=='true'">true
+
+
+
+
+
+
+
+
+ ResolveRazorConfiguration;
+ ResolveRazorGenerateInputs;
+ AssignRazorGenerateTargetPaths;
+ _ResolveGeneratedRazorCompileInputs;
+ _CheckForIncorrectMvcConfiguration;
+
+
+
+ $(PrepareForRazorGenerateDependsOn);
+ ResolveAssemblyReferenceRazorGenerateInputs;
+ _CheckForMissingRazorCompiler;
+ ResolveTagHelperRazorGenerateInputs
+
+
+
+ ResolveRazorConfiguration;
+ ResolveRazorComponentInputs;
+ _CheckForIncorrectComponentsConfiguration;
+ AssignRazorComponentTargetPaths;
+
+
+
+ PrepareForRazorGenerate;
+
+
+
+ $(RazorGenerateDependsOn);
+ _CheckForMissingRazorCompiler;
+ RazorCoreGenerate
+
+
+
+ PrepareForRazorComponentGenerate
+
+
+
+ RazorGenerate;
+ ResolveRazorCompileInputs;
+ GenerateRazorTargetAssemblyInfo
+
+
+
+ ResolveRazorEmbeddedResources;
+
+
+
+ $(ResolveScopedCssOutputsDependsOn);
+ ResolveCssScopes;
+
+
+
+ $(DebugSymbolsProjectOutputGroupDependsOn);
+ _RazorAddDebugSymbolsProjectOutputGroupOutput
+
+
+
+ $(PrepareForBuildDependsOn);
+ ResolveRazorGenerateInputs
+
+
+
+ ResolveRazorGenerateInputs;
+ $(GenerateNuspecDependsOn)
+
+
+
+ _RazorPrepareForRun;
+ $(PrepareForRunDependsOn)
+
+
+ <_RazorGenerateComponentDesignTimeDependsOn>
+ ResolveRazorComponentInputs;
+ AssignRazorComponentTargetPaths
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+ $(MvcRazorCompileOnPublish)
+
+
+ true
+
+
+
+
+
+ $(IntermediateOutputPath)Razor\
+
+ <_RazorComponentDeclarationOutputPath Condition="'$(_RazorComponentDeclarationOutputPath)'==''">$(IntermediateOutputPath)RazorDeclaration\
+
+
+ .Views
+
+
+ .Razor
+
+
+ $(TargetName)$(RazorTargetNameSuffix)
+
+
+ false
+ true
+
+ false
+ true
+
+
+ $(PreserveCompilationReferences)
+
+
+ true
+
+
+ $([MSBuild]::EnsureTrailingSlash('$(MvcRazorOutputPath)'))
+
+
+ $(MvcRazorEmbedViewSources)
+ false
+
+
+ $(UseSharedCompilation)
+ true
+
+
+
+
+ <_RazorDebugSymbolsProduced>false
+ <_RazorDebugSymbolsProduced Condition="'$(DebugSymbols)'=='true'">true
+ <_RazorDebugSymbolsProduced Condition="'$(DebugType)'=='none'">false
+ <_RazorDebugSymbolsProduced Condition="'$(DebugType)'=='pdbonly'">true
+ <_RazorDebugSymbolsProduced Condition="'$(DebugType)'=='full'">true
+ <_RazorDebugSymbolsProduced Condition="'$(DebugType)'=='portable'">true
+ <_RazorDebugSymbolsProduced Condition="'$(DebugType)'=='embedded'">false
+
+
+
+
+ RazorSdk
+
+
+
+
+ PrecompilationTool
+
+
+ RazorSdk
+
+ $(RazorCompileToolset)
+ $(RazorCompileToolset)
+
+
+ PrecompilationTool
+
+
+ true
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ <_RazorDebugSymbolsIntermediatePath Condition="'$(_RazorDebugSymbolsProduced)'=='true'" Include="$(IntermediateOutputPath)$(RazorTargetName).pdb" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RazorAssemblyAttribute Include="Microsoft.AspNetCore.Razor.Hosting.RazorLanguageVersionAttribute">
+ <_Parameter1>$(RazorLangVersion)
+
+ <_RazorAssemblyAttribute Include="Microsoft.AspNetCore.Razor.Hosting.RazorConfigurationNameAttribute">
+ <_Parameter1>$(RazorDefaultConfiguration)
+
+ <_RazorAssemblyAttribute Include="Microsoft.AspNetCore.Razor.Hosting.RazorExtensionAssemblyNameAttribute" Condition="'%(ResolvedRazorExtension.AssemblyName)'!=''">
+ <_Parameter1>%(ResolvedRazorExtension.Identity)
+ <_Parameter2>%(ResolvedRazorExtension.AssemblyName)
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MSBuild:RazorGenerateComponentDeclarationDesignTime
+ Never
+
+
+
+
+
+
+
+
+
+
+ $(RazorGenerateIntermediateOutputPath)%(RazorComponentWithTargetPath.TargetPath)$(RazorGenerateOutputFileExtension)
+
+
+
+ $(_RazorComponentDeclarationOutputPath)%(RazorComponentWithTargetPath.TargetPath)$(RazorGenerateOutputFileExtension)
+
+
+
+ component
+
+
+
+
+
+
+
+
+
+
+
+ $(RazorGenerateIntermediateOutputPath)%(RazorGenerateWithTargetPath.TargetPath)$(RazorGenerateOutputFileExtension)
+
+
+
+ mvc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /$([System.String]::Copy('%(RazorGenerateWithTargetPath.TargetPath)').Replace('\','/'))
+ Non-Resx
+ false
+
+
+
+ <_RazorCoreCompileResourceInputs
+ Include="@(RazorEmbeddedResource)"
+ Condition="'%(RazorEmbeddedResource.WithCulture)'=='false' and '%(RazorEmbeddedResource.Type)'=='Non-Resx' " />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(CopyRefAssembliesToPublishDirectory)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([MSBuild]::EnsureTrailingSlash('$(OutDir)'))
+ $([MSBuild]::Escape($([MSBuild]::EnsureTrailingSlash($([System.IO.Path]::GetFullPath('$([System.IO.Path]::Combine('$(MSBuildProjectDirectory)', '$(RazorOutputPath)'))'))))))
+
+ $(RazorTargetDir)$(RazorTargetName).dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(MSBuildExtensionsPath)\Microsoft\VisualStudio\Razor\Microsoft.NET.Sdk.Razor.DesignTime.targets
+ $(MSBuildThisFileDirectory)Microsoft.NET.Sdk.Razor.DesignTime.targets
+
+
+
+
+
+
+ $(RazorUpToDateReloadFileTypes)
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/Microsoft.Bcl.AsyncInterfaces.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/Microsoft.Bcl.AsyncInterfaces.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6031ba1e94835abd1d276b9700394dbafeb2b46c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/Microsoft.Bcl.AsyncInterfaces.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/Microsoft.Extensions.FileSystemGlobbing.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/Microsoft.Extensions.FileSystemGlobbing.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bbeca10f4f48591e532b43b06235c1ae0b48fed6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/Microsoft.Extensions.FileSystemGlobbing.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/Microsoft.NET.Sdk.Razor.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/Microsoft.NET.Sdk.Razor.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ac41d20244c680ce53fe738658b14ed368048ba1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/Microsoft.NET.Sdk.Razor.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/Microsoft.NET.Sdk.Razor.Tasks.dll.config b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/Microsoft.NET.Sdk.Razor.Tasks.dll.config
new file mode 100644
index 0000000000000000000000000000000000000000..6a549e828aa8b159dc82507a217e77e7e6741fe7
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/Microsoft.NET.Sdk.Razor.Tasks.dll.config
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Buffers.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Buffers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f2d83c51416e90dbc31154545b16df3b3f7a7909
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Buffers.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Collections.Immutable.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Collections.Immutable.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ad944dff1cf2f5d8dfa21731223ae29980b2e84c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Collections.Immutable.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Memory.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Memory.dll
new file mode 100644
index 0000000000000000000000000000000000000000..46171997966f26bda11e58586c51b2817bde5cca
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Memory.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Numerics.Vectors.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Numerics.Vectors.dll
new file mode 100644
index 0000000000000000000000000000000000000000..08659724d4f8534ee97a543e93dd6d3c702fcd15
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Numerics.Vectors.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Reflection.Metadata.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Reflection.Metadata.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3abdc4448cebe548d113b77a254af1c68e8ae83d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Reflection.Metadata.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Runtime.CompilerServices.Unsafe.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c5ba4e4047a15b3adc61340c781307d9c6e89413
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Text.Encodings.Web.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Text.Encodings.Web.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3d16c7e9d86d760e037853648c40c16a1ac9860d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Text.Encodings.Web.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Text.Json.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Text.Json.dll
new file mode 100644
index 0000000000000000000000000000000000000000..81822f3947cf5b01545340aa0a61a6657ff4bf76
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Text.Json.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Threading.Tasks.Extensions.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..eeec92852705946904d0e2fa0443d454075781f5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.Threading.Tasks.Extensions.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.ValueTuple.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.ValueTuple.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4ce28fdeac6da139573ed0ff356c2df510692cee
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net472/System.ValueTuple.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll
new file mode 100644
index 0000000000000000000000000000000000000000..55fb9aa8f2d8976aa464e39b1a8575693bf12789
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net8.0/Microsoft.NET.Sdk.Razor.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net8.0/Microsoft.NET.Sdk.Razor.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5dff93e3f9b2f95115584990b131e299d9193bb5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tasks/net8.0/Microsoft.NET.Sdk.Razor.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.AspNetCore.Razor.Utilities.Shared.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.AspNetCore.Razor.Utilities.Shared.dll
new file mode 100644
index 0000000000000000000000000000000000000000..23bcdb008528751ad4dd36d74c26d69678124b05
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.AspNetCore.Razor.Utilities.Shared.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.CodeAnalysis.Razor.Compiler.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.CodeAnalysis.Razor.Compiler.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d0f0d78e5e97cd14dc89ebc73f5d529dd145e9bd
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.CodeAnalysis.Razor.Compiler.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:56a33ad3de3df0d2fea70fa287f305c7bd9f48c6fb7b73f7491430497af8b663
+size 3618304
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.Css.Parser.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.Css.Parser.dll
new file mode 100644
index 0000000000000000000000000000000000000000..372e1f47b5ba81de7f08c636b09b65a2e440342c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.Css.Parser.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.Extensions.ObjectPool.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.Extensions.ObjectPool.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d97054dc5c6efb985b6e4eed764a060d66673061
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Microsoft.Extensions.ObjectPool.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Newtonsoft.Json.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Newtonsoft.Json.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e5751a60681fbf132e15711db5814d0c85e7794e
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/Newtonsoft.Json.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:24d27a63b14b7afe1f090e16b1a983aa891bec0bd0773a3a37b27620b74ac862
+size 1870848
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.deps.json b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..a30a52c9f670e1ef850233ebc3122deba90319ac
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.deps.json
@@ -0,0 +1,263 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "rzc/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal": "9.0.0-preview.24420.1",
+ "Microsoft.CodeAnalysis.CSharp": "4.11.0-3.24365.8",
+ "Microsoft.CodeAnalysis.Razor.Tooling.Internal": "9.0.0-preview.24420.1",
+ "Microsoft.Css.Parser": "1.0.0-20230414.1",
+ "Microsoft.DiaSymReader.Pdb2Pdb": "1.1.0-beta2-19575-01",
+ "Microsoft.Net.Compilers.Toolset": "4.11.0-3.24365.8",
+ "Newtonsoft.Json": "13.0.3"
+ },
+ "runtime": {
+ "rzc.dll": {}
+ }
+ },
+ "Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal/9.0.0-preview.24420.1": {
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.CodeAnalysis.Razor.Compiler.dll": {
+ "assemblyVersion": "9.0.0.0",
+ "fileVersion": "9.0.24.42001"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {},
+ "Microsoft.CodeAnalysis.Common/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.CodeAnalysis.dll": {
+ "assemblyVersion": "4.11.0.0",
+ "fileVersion": "4.1100.24.36508"
+ }
+ },
+ "resources": {
+ "lib/net8.0/cs/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/de/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/es/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/fr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/it/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/ja/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ko/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/pl/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/ru/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/tr/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.11.0-3.24365.8": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.Analyzers": "3.3.4",
+ "Microsoft.CodeAnalysis.Common": "4.11.0-3.24365.8",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.CodeAnalysis.CSharp.dll": {
+ "assemblyVersion": "4.11.0.0",
+ "fileVersion": "4.1100.24.36508"
+ }
+ },
+ "resources": {
+ "lib/net8.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net8.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net8.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net8.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net8.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net8.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net8.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net8.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net8.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net8.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net8.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.Razor.Tooling.Internal/9.0.0-preview.24420.1": {
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.AspNetCore.Razor.Utilities.Shared.dll": {
+ "assemblyVersion": "9.0.0.0",
+ "fileVersion": "9.0.24.42001"
+ },
+ "lib/netstandard2.0/Microsoft.Extensions.ObjectPool.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53112"
+ }
+ }
+ },
+ "Microsoft.Css.Parser/1.0.0-20230414.1": {
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.Css.Parser.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "1.0.0.0"
+ }
+ }
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {},
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24365.8": {},
+ "Newtonsoft.Json/13.0.3": {
+ "runtime": {
+ "lib/net6.0/Newtonsoft.Json.dll": {
+ "assemblyVersion": "13.0.0.0",
+ "fileVersion": "13.0.3.27908"
+ }
+ }
+ },
+ "System.Collections.Immutable/8.0.0": {},
+ "System.Reflection.Metadata/8.0.0": {
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0"
+ }
+ }
+ }
+ },
+ "libraries": {
+ "rzc/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.AspNetCore.Mvc.Razor.Extensions.Tooling.Internal/9.0.0-preview.24420.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-4vRKKFdS1RXQwcIBlVKzJXVh6IvjM8VMIvwuVOtCoBHC583oSmUpALCL9CMO+eDGP+FY9u2wkimVhcxyBXMcmw==",
+ "path": "microsoft.aspnetcore.mvc.razor.extensions.tooling.internal/9.0.0-preview.24420.1",
+ "hashPath": "microsoft.aspnetcore.mvc.razor.extensions.tooling.internal.9.0.0-preview.24420.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.Analyzers/3.3.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g==",
+ "path": "microsoft.codeanalysis.analyzers/3.3.4",
+ "hashPath": "microsoft.codeanalysis.analyzers.3.3.4.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.Common/4.11.0-3.24365.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fF2S4rkNXUdJa/fMqybZj3sLn0RHpin50AKgPtrNVuuz0RBGpidHMlBfbmxGz8YS4iLSxYiuwGIfTFgBaDsijg==",
+ "path": "microsoft.codeanalysis.common/4.11.0-3.24365.8",
+ "hashPath": "microsoft.codeanalysis.common.4.11.0-3.24365.8.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.CSharp/4.11.0-3.24365.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-tbdyTpfUyoWwvxI3lVYaBP9k2OnidQS2ayeRs92M2ocr3yJ4XP681ddaJE2RRSJDtLuDD94GMMTqMhBXIPXGrA==",
+ "path": "microsoft.codeanalysis.csharp/4.11.0-3.24365.8",
+ "hashPath": "microsoft.codeanalysis.csharp.4.11.0-3.24365.8.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.Razor.Tooling.Internal/9.0.0-preview.24420.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+L5Jbvz9E9STlmAE8tB9XBjnn+zeuRsiL4U2w10mxiYp52i2MfQMyXpA8XRZ0Zk68V9bwtwmHuPLIITRq8KK8g==",
+ "path": "microsoft.codeanalysis.razor.tooling.internal/9.0.0-preview.24420.1",
+ "hashPath": "microsoft.codeanalysis.razor.tooling.internal.9.0.0-preview.24420.1.nupkg.sha512"
+ },
+ "Microsoft.Css.Parser/1.0.0-20230414.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mA6Kr0SVr5VwTV/tjl+Fq3lGJzNZ5DFSQX2KIHfQp6ZQnsx8j6/PxpF4WmNkaGAgucbzvgqxZM8eeAs/8huLMg==",
+ "path": "microsoft.css.parser/1.0.0-20230414.1",
+ "hashPath": "microsoft.css.parser.1.0.0-20230414.1.nupkg.sha512"
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kY6eTNkeWLHvfOjg97Q7tgQKrPpX+Y3fR6fS4nyfpgFLHBxHriLBR4v3e9t71it91gIMEeKUqOqrFJ7Pj48eHA==",
+ "path": "microsoft.diasymreader.pdb2pdb/1.1.0-beta2-19575-01",
+ "hashPath": "microsoft.diasymreader.pdb2pdb.1.1.0-beta2-19575-01.nupkg.sha512"
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24365.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fvKVAMRbXJpDUvURL6CNmMcgVhzq3pSg5Uc0X0LUHQXaVpFy6sXITjt8xm6vtIkYdusvmHfO6JW48KBDk8/xjw==",
+ "path": "microsoft.net.compilers.toolset/4.11.0-3.24365.8",
+ "hashPath": "microsoft.net.compilers.toolset.4.11.0-3.24365.8.nupkg.sha512"
+ },
+ "Newtonsoft.Json/13.0.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
+ "path": "newtonsoft.json/13.0.3",
+ "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "path": "system.collections.immutable/8.0.0",
+ "hashPath": "system.collections.immutable.8.0.0.nupkg.sha512"
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+ "path": "system.reflection.metadata/8.0.0",
+ "hashPath": "system.reflection.metadata.8.0.0.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5a3142823013a33b2c4770f293413c7e4c2f9946
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.runtimeconfig.json b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..76473da3f1bbd1ae7ec038346cb1e7e8cb50cb10
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Razor/tools/rzc.runtimeconfig.json
@@ -0,0 +1,14 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ },
+ "rollForwardOnNoCandidateFx": 2,
+ "configProperties": {
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/Sdk/Sdk.StaticWebAssets.StaticAssets.ProjectSystem.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/Sdk/Sdk.StaticWebAssets.StaticAssets.ProjectSystem.props
new file mode 100644
index 0000000000000000000000000000000000000000..cad9082ef3991e8f21dc3a4f54224c4bd5cd89b7
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/Sdk/Sdk.StaticWebAssets.StaticAssets.ProjectSystem.props
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+ <_WebProjectSystemGlobsPropsDefined>true
+
+ $(DefaultItemExcludes);**\node_modules\**;node_modules\**
+ $(DefaultItemExcludes);**\jspm_packages\**;jspm_packages\**
+ $(DefaultItemExcludes);**\bower_components\**;bower_components\**
+ $(DefaultWebContentItemExcludes);wwwroot\**
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ContentIncludedByDefault Include="@(Content)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/Sdk/Sdk.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/Sdk/Sdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..6efb4130624b9d2cda076a1f3eeb7b1643505aa5
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/Sdk/Sdk.props
@@ -0,0 +1,25 @@
+
+
+
+
+ <_StaticWebAssetsSdkImportsMicrosoftNetSdk Condition="'$(UsingMicrosoftNETSdk)' != 'true'">true
+
+
+
+
+
+ $(MSBuildThisFileDirectory)..\targets\Sdk.StaticWebAssets.CurrentVersion.props
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/Sdk/Sdk.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/Sdk/Sdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..50543a6534003fa166f3ea5fb0d17230ad885946
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/Sdk/Sdk.targets
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+ $(MSBuildThisFileDirectory)..\targets\Sdk.StaticWebAssets.CurrentVersion.targets
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.5_0.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.5_0.targets
new file mode 100644
index 0000000000000000000000000000000000000000..58aa30111cf91eecb23eb4a74c5407250a8174b3
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.5_0.targets
@@ -0,0 +1,690 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ResolveStaticWebAssetsInputs;
+ $(GenerateStaticWebAssetsManifestDependsOn)
+ _CreateStaticWebAssetsInputsCacheFile;
+ GenerateStaticWebAssetsPackTargets;
+
+
+
+ ResolveCurrentProjectStaticWebAssetsInputs;
+ $(GetCurrentProjectStaticWebAssetsDependsOn)
+
+
+
+ GenerateStaticWebAssetsManifest;
+ $(PrepareForRunDependsOn);
+
+
+
+ _IncludeGeneratedStaticWebAssetsManifest;
+ $(GetCopyToOutputDirectoryItemsDependsOn);
+
+
+
+ ResolveStaticWebAssetsConfiguration;
+ $(ResolveCurrentProjectStaticWebAssetsInputsDependsOn)
+
+
+
+ ResolveCurrentProjectStaticWebAssetsInputs;
+ ResolveReferencedProjectsStaticWebAssets;
+ $(ResolveStaticWebAssetsInputsDependsOn)
+
+
+
+ PrepareProjectReferences;
+ $(ResolveReferencedProjectsStaticWebAssetsDependsOn)
+
+
+
+ ResolveStaticWebAssetsInputs;
+ $(GenerateStaticWebAssetsPackTargetsDependsOn);
+ _CreateStaticWebAssetsCustomPropsCacheFile;
+
+
+
+ ResolveStaticWebAssetsInputs;
+ IncludeStaticWebAssetPackItems;
+ $(TargetsForTfmSpecificContentInPackage)
+
+
+
+ _RemoveWebRootContentFromPackaging;
+ $(PackDependsOn)
+
+
+
+
+
+ <_StaticWebAssetsIntermediateOutputPath>$(IntermediateOutputPath)staticwebassets\
+
+
+ <_GeneratedStaticWebAssetsInputsCacheFile>$(_StaticWebAssetsIntermediateOutputPath)$(TargetName).StaticWebAssets.Manifest.cache
+ <_GeneratedStaticWebAssetsDevelopmentManifest>$(_StaticWebAssetsIntermediateOutputPath)$(TargetName).StaticWebAssets.xml
+ <_GeneratedStaticWebAssetsPackManifest>$(_StaticWebAssetsIntermediateOutputPath)$(TargetName).pack.json
+
+
+ <_GeneratedStaticWebAssetsCustomPropsCacheFile>$(_StaticWebAssetsIntermediateOutputPath)$(TargetName).StaticWebAssets.Pack.cache
+
+
+ <_GeneratedStaticWebAssetsPropsFile>$(_StaticWebAssetsIntermediateOutputPath)msbuild.$(PackageId).Microsoft.AspNetCore.StaticWebAssets.props
+ <_GeneratedBuildPropsFile>$(_StaticWebAssetsIntermediateOutputPath)msbuild.build.$(PackageId).props
+ <_GeneratedBuildMultitargetingPropsFile>$(_StaticWebAssetsIntermediateOutputPath)msbuild.buildMultiTargeting.$(PackageId).props
+ <_GeneratedBuildTransitivePropsFile>$(_StaticWebAssetsIntermediateOutputPath)msbuild.buildTransitive.$(PackageId).props
+
+
+ <_StaticWebAssetsPropsFileImportPath>Microsoft.AspNetCore.StaticWebAssets.props
+ <_StaticWebAssetsGeneratedBuildPropsFileImportPath>..\build\$(PackageId).props
+ <_StaticWebAssetsGeneratedBuildMultiTargetingPropsFileImportPath>..\buildMultiTargeting\$(PackageId).props
+
+
+
+
+
+
+
+
+
+
+ _content/$(PackageId)
+
+
+
+
+
+
+
+
+
+
+ <_ExternalStaticWebAsset
+ Include="%(StaticWebAsset.Identity)"
+ Condition="'%(SourceType)' != ''">
+ %(StaticWebAsset.BasePath)
+ %(StaticWebAsset.ContentRoot)
+ %(StaticWebAsset.SourceId)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_WebRootFiles Include="@(ContentWithTargetPath)" Condition="$([System.String]::Copy('%(TargetPath)').Replace('\','/').StartsWith('wwwroot/'))" />
+ <_ReferencedStaticWebAssets Include="@(StaticWebAsset)" Condition="'%(SourceType)' != ''" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+ $(TargetName).StaticWebAssets.xml
+ PreserveNewest
+ Never
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_StaticWebAssetsProjectReference Include="@(_MSBuildProjectReferenceExistent)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ThisProjectStaticWebAsset
+ Include="@(Content)"
+ Condition="$([System.String]::Copy('%(Identity)').Replace('\','/').StartsWith('wwwroot/'))">
+
+
+ $([System.String]::Copy('%(Identity)').Substring(8))
+
+
+
+
+
+
+
+ $(PackageId)
+
+ $([MSBuild]::NormalizeDirectory('$(MSBuildProjectDirectory)\wwwroot\'))
+
+ $(StaticWebAssetBasePath)
+
+ %(RelativePath)
+
+
+
+
+
+
+
+
+
+
+
+ <_ThisProjectStaticWebAssets
+ Include="@(StaticWebAsset)"
+ Condition="'%(StaticWebAsset.SourceType)' == ''">
+ Project
+
+
+
+
+
+
+
+
+ <_StaticWebAssetThisProjectConfiguration Include="$(MSBuildProjectFullPath)">
+ 1
+ $(PackageId)
+ Default
+ GetCurrentProjectStaticWebAssetsV2
+ $(StaticWebAssetsAdditionalBuildProperties)
+ $(StaticWebAssetsAdditionalBuildPropertiesToRemove)
+
+
+
+
+
+
+ GetCurrentProjectStaticWebAssets;$(GetCurrentProjectStaticWebAssetsV2DependsOn);
+
+
+
+
+ <_StaticWebAssetUpgradeMetadataToKeep Include="SourceType" />
+ <_StaticWebAssetUpgradeMetadataToKeep Include="SourceId" />
+ <_StaticWebAssetUpgradeMetadataToKeep Include="BasePath" />
+ <_StaticWebAssetUpgradeMetadataToKeep Include="RelativePath" />
+ <_StaticWebAssetUpgradeMetadataToKeep Include="ContentRoot" />
+ <_StaticWebAssetUpgradeMetadataToKeep Include="AssetKind" />
+ <_StaticWebAssetUpgradeMetadataToKeep Include="AssetMode" />
+ <_StaticWebAssetUpgradeMetadataToKeep Include="AssetRole" />
+ <_StaticWebAssetUpgradeMetadataToKeep Include="RelatedAsset" />
+ <_StaticWebAssetUpgradeMetadataToKeep Include="AssetTraitName" />
+ <_StaticWebAssetUpgradeMetadataToKeep Include="AssetTraitValue" />
+ <_StaticWebAssetUpgradeMetadataToKeep Include="CopyToOutputDirectory" />
+ <_StaticWebAssetUpgradeMetadataToKeep Include="CopyToPublishDirectory" />
+ <_StaticWebAssetUpgradeMetadataToKeep Include="OriginalItemSpec" />
+
+ <_ThisProjectStaticWebAssetItems KeepMetadata="@(_StaticWebAssetUpgradeMetadataToKeep)" Include="@(_ThisProjectStaticWebAssets->'%(FullPath)')">
+ StaticWebAsset
+ Project
+ All
+ All
+ Primary
+
+
+
+ Never
+ PreserveNewest
+ %(_ThisProjectStaticWebAssets.Identity)
+
+ <_ThisProjectStaticWebAssetItems Include="$(PackageId)\wwwroot" Condition="Exists('$(MSBuildProjectDirectory)\wwwroot')">
+ StaticWebAssetDiscoveryPattern
+ $(MSBuildProjectDirectory)\wwwroot\
+ $(StaticWebAssetBasePath)
+ $(PackageId)
+ **
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CurrentProjectStaticWebAsset
+ Include="@(StaticWebAsset)"
+ Condition="'%(SourceType)' == ''" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CurrentProjectHasStaticWebAssets Condition="'@(_CurrentProjectStaticWebAsset->Count())' != '0'">true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CurrentProjectStaticWebAsset
+ Include="@(StaticWebAsset)"
+ Condition="'%(SourceType)' == ''" />
+
+
+
+ <_CurrentProjectHasStaticWebAssets Condition="'@(_CurrentProjectStaticWebAsset->Count())' != '0'">true
+
+
+
+
+
+
+
+
+
+ build\Microsoft.AspNetCore.StaticWebAssets.props
+
+
+
+
+ build\$(PackageId).props
+
+
+
+
+ buildMultiTargeting\$(PackageId).props
+
+
+
+
+ buildTransitive\$(PackageId).props
+
+
+
+
+
+ staticwebassets\%(_CurrentProjectStaticWebAsset.RelativePath)
+
+
+
+
+
+
+
+
+
+
+
+ build\Microsoft.AspNetCore.StaticWebAssets.props
+
+
+
+ build\$(PackageId).props
+
+
+
+ buildMultiTargeting\$(PackageId).props
+
+
+
+ buildTransitive\$(PackageId).props
+
+
+ <_PackStaticWebAssetWithTargetPath
+ Include="@(StaticWebAsset)"
+ Condition="'%(SourceType)' == ''">
+ staticwebassets\%(StaticWebAsset.RelativePath)
+
+
+
+
+
+
+
+ <_StaticWebAssetsManifestPaths Include="$(MSBuildProjectName)">
+
+ $(_GeneratedStaticWebAssetsPackManifest)
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ExternalPublishStaticWebAsset
+ Include="%(StaticWebAsset.FullPath)"
+ Condition="'%(SourceType)' != '' AND '%(StaticWebAsset.CopyToPublishDirectory)' != 'Never'">
+
+ PreserveNewest
+ $([MSBuild]::MakeRelative('$(MSBuildProjectDirectory)','$([MSBuild]::NormalizePath('wwwroot\%(BasePath)\%(RelativePath)'))'))
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Compression.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Compression.targets
new file mode 100644
index 0000000000000000000000000000000000000000..d7db765b6789e53b75e58977aa32acdafb32442f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Compression.targets
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+
+
+ $(BuildCompressionFormats);gzip
+ $(PublishCompressionFormats);gzip;brotli
+ false
+ $(CompressionIncludePatterns)
+ $(CompressionExcludePatterns)
+
+
+
+ $(ResolveCompressedFilesDependsOn)
+ $(ResolveCompressedFilesForPublishDependsOn)
+ $(CompressFilesDependsOn)
+ $(CompressFilesForPublishDependsOn)
+
+
+
+
+ $(GenerateComputedBuildStaticWebAssetsDependsOn);
+ _CompressFiles;
+
+
+ $(GenerateComputedPublishStaticWebAssetsDependsOn);
+ _CompressFilesForPublish;
+
+
+ $(StaticWebAssetsPrepareForPublishDependsOn);
+ _CompressFilesForPublish;
+
+
+ $(ResolveStaticWebAssetsInputsDependsOn);
+ _ResolveCompressedFiles;
+
+
+ $(ResolvePublishStaticWebAssetsDependsOn);
+ _ResolveCompressedFilesForPublish;
+
+
+
+
+ <_DotNetHostDirectory>$(NetCoreRoot)
+ <_DotNetHostFileName>dotnet
+ <_DotNetHostFileName Condition="'$(OS)' == 'Windows_NT'">dotnet.exe
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CandidateAssetsForPublish
+ Include="@(StaticWebAsset)"
+ Condition="'%(AssetKind)' != 'Build'" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_GZipCompressedStaticWebAssets Include="@(_CompressedStaticWebAssets)" Condition="'%(AssetTraitName)' == 'Content-Encoding' and '%(AssetTraitValue)' == 'gzip'" />
+ <_BrotliCompressedStaticWebAssets Include="@(_CompressedStaticWebAssets)" Condition="'%(AssetTraitName)' == 'Content-Encoding' and '%(AssetTraitValue)' == 'br'" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_GZipCompressedStaticWebAssetsForPublish Include="@(_CompressedStaticWebAssetsForPublish)" Condition="'%(AssetTraitName)' == 'Content-Encoding' and '%(AssetTraitValue)' == 'gzip'" />
+ <_BrotliCompressedStaticWebAssetsForPublish Include="@(_CompressedStaticWebAssetsForPublish)" Condition="'%(AssetTraitName)' == 'Content-Encoding' and '%(AssetTraitValue)' == 'br'" />
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.CrossTargeting.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.CrossTargeting.targets
new file mode 100644
index 0000000000000000000000000000000000000000..34da594356d623532436fd020fdaca5c76436724
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.CrossTargeting.targets
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ExtendedStaticWebAssetsCrossTargetingProjectConfiguration Include="@(StaticWebAssetsCrossTargetingProjectConfiguration)">
+ $([MSBuild]::GetTargetFrameworkIdentifier('%(StaticWebAssetsCrossTargetingProjectConfiguration.TargetFramework)'))
+ $([MSBuild]::GetTargetFrameworkVersion('%(StaticWebAssetsCrossTargetingProjectConfiguration.TargetFramework)'))
+ $([MSBuild]::GetTargetPlatformIdentifier('%(StaticWebAssetsCrossTargetingProjectConfiguration.TargetFramework)'))
+ $([MSBuild]::GetTargetPlatformVersion('%(StaticWebAssetsCrossTargetingProjectConfiguration.TargetFramework)'))
+
+
+ <_StaticWebAssetsTargetFrameworks Include="%(_ExtendedStaticWebAssetsCrossTargetingProjectConfiguration.TargetFramework)" />
+
+
+
+
+
+
+
+
+
+ <_InnerBuildProjects Remove="@(_InnerBuildProjects)" />
+ <_InnerBuildProjects Include="@(_FilteredConfigurations)" />
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.EmbeddedAssets.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.EmbeddedAssets.targets
new file mode 100644
index 0000000000000000000000000000000000000000..7c6b164c96f22e5a5144893a34e29631b5ac31c4
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.EmbeddedAssets.targets
@@ -0,0 +1,317 @@
+
+
+
+
+
+
+
+ ComputeReferencedStaticWebAssetsPublishManifest;GetCurrentProjectEmbeddedPublishStaticWebAssetItems
+ Build;GetCurrentProjectEmbeddedBuildStaticWebAssetItems
+ $(GetReferencedEmbeddedAssetsProperties);TargetFramework=$(TargetFramework);ResolveEmbeddedStaticWebAssets=false
+ $(StaticWebAssetsAdditionalEmbeddedBuildProperties);TargetFramework=$(TargetFramework);ResolveEmbeddedStaticWebAssets=false
+ $(StaticWebAssetsAdditionalEmbeddedPublishProperties);TargetFramework=$(TargetFramework);ResolveEmbeddedStaticWebAssets=false
+
+
+
+ <_StaticWebAssetThisEmbeddedProjectConfiguration Include="$(MSBuildProjectFullPath)">
+ 2
+ $(PackageId)
+ $(TargetFramework)
+
+ $(GetReferencedEmbeddedAssetsProperties)
+ $(GetReferencedEmbeddedAssetsPropertiesToRemove)
+
+ $(StaticWebAssetsGetEmbeddedBuildAssetsTargets)
+ $(StaticWebAssetsAdditionalEmbeddedBuildProperties)
+ $(StaticWebAssetsAdditionalEmbeddedBuildPropertiesToRemove)
+
+ $(StaticWebAssetsGetEmbeddedPublishAssetsTargets)
+ $(StaticWebAssetsAdditionalEmbeddedPublishProperties)
+ $(StaticWebAssetsAdditionalEmbeddedPublishPropertiesToRemove)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ExtendedStaticWebAssetsCrossTargetingProjectConfiguration Include="@(_StaticWebAssetsCrossTargetingProjectConfiguration)">
+ $([MSBuild]::GetTargetFrameworkIdentifier('%(_StaticWebAssetsCrossTargetingProjectConfiguration.TargetFramework)'))
+ $([MSBuild]::GetTargetFrameworkVersion('%(_StaticWebAssetsCrossTargetingProjectConfiguration.TargetFramework)'))
+ $([MSBuild]::GetTargetPlatformIdentifier('%(_StaticWebAssetsCrossTargetingProjectConfiguration.TargetFramework)'))
+ $([MSBuild]::GetTargetPlatformVersion('%(_StaticWebAssetsCrossTargetingProjectConfiguration.TargetFramework)'))
+
+
+
+
+
+
+
+
+
+ <_StaticWebAssetsEmbeddedProjectAssetConfigurations Condition="'%(Identity)' != ''" KeepMetadata="@(_StaticWebAssetEmbeddedProjectConfigurationCanonicalMetadata)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_StaticWebAssetPackageAsset Include="@(StaticWebAsset)" Condition="'%(StaticWebAsset.SourceType)' == 'Package">
+ $(TargetFramework)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectConfigurationsWithEmbeddedPublishTargets
+ Include="@(_StaticWebAssetsEmbeddedProjectAssetConfigurations)"
+ Condition="'%(_StaticWebAssetsEmbeddedProjectAssetConfigurations.GetEmbeddedPublishAssetsTargets)' != ''" />
+
+
+
+ <_HasProjectsWithStaticWebAssetEmbeddedPublishTargets>false
+ <_HasProjectsWithStaticWebAssetEmbeddedPublishTargets Condition="'@(_ProjectConfigurationsWithEmbeddedPublishTargets)' != ''">true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ShouldReadEmbeddedBuildManifestAndUpdateItemGroup>false
+ <_ShouldReadEmbeddedBuildManifestAndUpdateItemGroup Condition="@(_CachedEmbeddedBuildStaticWebAssets) == '' and @(_CachedEmbeddedBuildStaticWebAssetDiscoveryPatterns) == ''">true
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CachedEmbeddedBuildStaticWebAssetItems Include="@(_CachedEmbeddedBuildReferencedStaticWebAsset)">
+ StaticWebAsset
+
+ <_CachedEmbeddedBuildStaticWebAssetItems Include="@(_CachedEmbeddedBuildStaticWebAssetDiscoveryPatterns)">
+ StaticWebAssetDiscoveryPattern
+
+
+
+
+
+
+
+
+ <_ShouldReadEmbeddedPublishManifestAndUpdateItemGroup>false
+ <_ShouldReadEmbeddedPublishManifestAndUpdateItemGroup Condition="@(_CachedEmbeddedPublishStaticWebAssets) == '' and @(_CachedEmbeddedPublishStaticWebAssetDiscoveryPatterns) == ''">true
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CachedEmbeddedPublishStaticWebassetItems Include="@(_CachedEmbeddedPublishReferencedStaticWebAsset)">
+ StaticWebAsset
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.JSModules.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.JSModules.targets
new file mode 100644
index 0000000000000000000000000000000000000000..b5dee3c60baf709392ce7b85d6acdc26dedec18d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.JSModules.targets
@@ -0,0 +1,246 @@
+
+
+
+
+
+
+
+
+
+
+ true
+
+ $(ResolveStaticWebAssetsInputsDependsOn);
+ _AddJsModulesToStaticWebAssets;
+
+
+
+
+
+
+ $(StaticWebAssetsPrepareForRunDependsOn);
+ _GenerateBuildJsModuleManifest;
+
+
+
+ $(StaticWebAssetsPrepareForPublishDependsOn);
+ _GeneratePublishJsModuleManifest;
+
+
+
+ $(ResolveStaticWebAssetsInputsDependsOn);
+ _AddBuildJsModuleManifest;
+
+
+
+ $(ResolvePublishStaticWebAssetsDependsOn);
+ _AddPublishJsModuleManifest
+
+
+
+
+
+
+
+ <_JSModuleCandidates Include="@(StaticWebAsset)" Condition="'%(SourceType)' == 'Discovered'" />
+
+
+ <_JSFileModuleCandidates Include="@(Content)" />
+ <_JSFileModuleNoneCandidates Include="@(None)" Exclude="@(Content)" />
+ <_JSFileModuleCandidates Include="@(_JSFileModuleNoneCandidates)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ExistingBuildJSModules
+ Include="@(StaticWebAsset)"
+ Condition="'%(StaticWebAsset.AssetTraitName)' == 'JSModule' and '%(StaticWebAsset.AssetTraitValue)' == 'JSLibraryModule' and '%(AssetKind)' != 'Publish'" />
+
+
+
+ <_JSModuleManifestPath>$(IntermediateOutputPath)jsmodules\jsmodules.build.manifest.json
+ $(PackageId).modules.json
+
+
+
+ <_JsModuleBuildManifestCandidate Include="$(IntermediateOutputPath)jsmodules\jsmodules.build.manifest.json">
+ $(JSModuleManifestRelativePath)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ExistingPublishJSModules
+ Include="@(StaticWebAsset)"
+ Condition="'%(StaticWebAsset.AssetTraitName)' == 'JSModule' and '%(StaticWebAsset.AssetTraitValue)' == 'JSLibraryModule' and '%(AssetKind)' != 'Build'" />
+
+
+
+ <_JSModuleManifestPath>$(IntermediateOutputPath)jsmodules\jsmodules.publish.manifest.json
+ $(PackageId).modules.json
+
+
+
+ <_JsModulePublishManifestCandidate Include="$(IntermediateOutputPath)jsmodules\jsmodules.publish.manifest.json">
+ $(JSModuleManifestRelativePath)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Pack.CrossTargeting.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Pack.CrossTargeting.targets
new file mode 100644
index 0000000000000000000000000000000000000000..b5763081ce1b2f63412d02dae2f1a1e13e485d82
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Pack.CrossTargeting.targets
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CrossTargetingIncludeStaticWebAssets;
+ $(GenerateNuspecDependsOn)
+
+
+
+ DispatchToInnerBuilds;$(CrossTargetingIncludeStaticWebAssetsDependsOn);
+
+
+
+
+
+
+
+
+
+ <_StaticWebAssetsTargetFrameworkCandidate Include="$(TargetFrameworks)">
+
+ <_StaticWebAssetTargetFramework Include="@(_StaticWebAssetsTargetFrameworkCandidate->Trim()->Distinct())">
+ $([MSBuild]::GetTargetFrameworkIdentifier(%(_StaticWebAssetsTargetFrameworkCandidate.Identity)))
+ $([MSBuild]::GetTargetFrameworkVersion(%(_StaticWebAssetsTargetFrameworkCandidate.Identity)))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(_ManifestPaths.BuildManifest)
+ %(_ManifestPaths.PackManifest)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Pack.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Pack.targets
new file mode 100644
index 0000000000000000000000000000000000000000..616dbe5fc343aaa436eeb5a9fc3fc32bda52f940
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Pack.targets
@@ -0,0 +1,213 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ IncludeStaticWebAssetsPackItems;
+ $(GenerateNuspecDependsOn);
+
+
+
+ ResolveStaticWebAssetsConfiguration;LoadStaticWebAssetsBuildManifest
+
+
+
+ Build;$(IncludeStaticWebAssetsPackItemsDependsOn);
+
+
+
+
+
+
+
+
+
+
+ build\Microsoft.AspNetCore.StaticWebAssets.props
+
+
+
+ build\$(PackageId).props
+
+
+
+ buildMultiTargeting\$(PackageId).props
+
+
+
+ buildTransitive\$(PackageId).props
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_StaticWebAssetsManifestPaths Include="$(MSBuildProjectName)">
+ $(StaticWebAssetBuildManifestPath)
+ $(StaticWebAssetPackManifestPath)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Publish.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Publish.targets
new file mode 100644
index 0000000000000000000000000000000000000000..6fd9f92380f468ed779d36e6a7832540ac66b1e3
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.Publish.targets
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+
+
+
+
+ <_FinalPublishStaticWebAsset Include="@(StaticWebAsset)" Condition="'%(StaticWebAsset.AssetKind)' != 'Build'" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ShouldLoadBuildManifestAndUpdateAssets>false
+ <_ShouldLoadBuildManifestAndUpdateAssets Condition="@(_CachedBuildStaticWebAssets) == '' and @(_CachedBuildStaticWebAssetDiscoveryPatterns) == ''">true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectConfigurationsWithPublishTargets
+ Include="@(StaticWebAssetProjectConfiguration)"
+ Condition="'%(StaticWebAssetProjectConfiguration.GetPublishAssetsTargets)' != ''" />
+
+
+
+ <_HasProjectsWithStaticWebAssetPublishTargets>false
+ <_HasProjectsWithStaticWebAssetPublishTargets Condition="'@(_ProjectConfigurationsWithPublishTargets)' != ''">true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_StaticWebAssetsPublishPathPrefix>wwwroot
+ <_StaticWebAssetsPublishPathPrefix Condition="'$(StaticWebAssetProjectMode)' == 'Root'">wwwroot/$(StaticWebAssetBasePath)
+
+
+
+
+
+
+
+
+
+
+
+ <_PublishStaticWebAssetsCopyAlways Include="@(_PublishStaticWebAssetsTargetPath)" Condition="'%(CopyToPublishDirectory)' == 'Always'" />
+ <_PublishStaticWebAssetsPreserveNewest Include="@(_PublishStaticWebAssetsTargetPath)" Condition="'%(CopyToPublishDirectory)' == 'PreserveNewest'" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ShouldLoadPublishManifestAndUpdateAssets>false
+ <_ShouldLoadPublishManifestAndUpdateAssets Condition="@(_CachedPublishStaticWebAssets) == '' and @(_CachedPublishStaticWebAssetDiscoveryPatterns) == ''">true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.References.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.References.targets
new file mode 100644
index 0000000000000000000000000000000000000000..d85eacfa706011901f47cc327335ba50717d84bc
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.References.targets
@@ -0,0 +1,187 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_NoneWithTargetPath Remove="@(_CleanupStaticWebAsset->'%(OriginalItemSpec)')" />
+
+
+
+
+
+
+
+ <_StaticWebAssetProjectReference Include="@(_MSBuildProjectReferenceExistent)" Condition="'%(BuildReference)' == 'true' and '@(ProjectReferenceWithConfiguration)' != ''" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ComputeReferencedStaticWebAssetsPublishManifest;GetCurrentProjectPublishStaticWebAssetItems
+ GetCurrentProjectBuildStaticWebAssetItems
+
+
+ <_StaticWebAssetThisProjectConfiguration Include="$(MSBuildProjectFullPath)">
+ 2
+ $(PackageId)
+ $(TargetFramework)
+
+ $(StaticWebAssetsGetBuildAssetsTargets)
+ $(StaticWebAssetsAdditionalBuildProperties)
+ $(StaticWebAssetsAdditionalBuildPropertiesToRemove)
+
+ $(StaticWebAssetsGetPublishAssetsTargets)
+ $(StaticWebAssetsAdditionalPublishProperties)
+ $(StaticWebAssetsAdditionalPublishPropertiesToRemove)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ShouldReadBuildManifestAndUpdateItemGroup>false
+ <_ShouldReadBuildManifestAndUpdateItemGroup Condition="@(_CachedBuildStaticWebAssets) == '' and @(_CachedBuildStaticWebAssetDiscoveryPatterns) == ''">true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CachedBuildStaticWebassetItems Include="@(_CachedBuildReferencedStaticWebAsset)">
+ StaticWebAsset
+
+ <_CachedBuildStaticWebassetItems Include="@(_CachedBuildReferencedStaticWebAssetDiscoveryPatterns)">
+ StaticWebAssetDiscoveryPattern
+
+
+
+
+
+
+
+
+ <_ShouldReadPublishManifestAndUpdateItemGroup>false
+ <_ShouldReadPublishManifestAndUpdateItemGroup Condition="@(_CachedPublishStaticWebAssets) == '' and @(_CachedPublishStaticWebAssetDiscoveryPatterns) == ''">true
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CachedPublishStaticWebassetItems Include="@(_CachedPublishReferencedStaticWebAsset)">
+ StaticWebAsset
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.ScopedCss.5_0.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.ScopedCss.5_0.targets
new file mode 100644
index 0000000000000000000000000000000000000000..2832ca8f1dd49549b52905c1ba88d5d1c0047455
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.ScopedCss.5_0.targets
@@ -0,0 +1,426 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ _PrepareForScopedCss;
+ $(PrepareForRunDependsOn)
+
+
+ <_PrepareForScopedCssDependsOn Condition="'$(DisableScopedCssBundling)' != 'true'">
+ _PrepareForBundling;
+ ResolveStaticWebAssetsInputs;
+ _CollectAllScopedCssAssets;
+ BundleScopedCssFiles;
+ $(_PrepareForScopedCssDependsOn)
+
+
+ <_PrepareForScopedCssDependsOn>
+ _GenerateScopedCssFiles;
+ $(_PrepareForScopedCssDependsOn)
+
+
+
+ $(ResolveCurrentProjectStaticWebAssetsInputsDependsOn);
+ _AddGeneratedScopedCssFiles;
+
+
+
+
+ $(ResolveStaticWebAssetsInputsDependsOn);
+ _AddScopedCssBundles;
+
+
+
+ $(ResolveScopedCssOutputsDependsOn);
+
+
+
+
+
+ $(GetCurrentProjectStaticWebAssetsDependsOn);
+ _AddScopedCssBundles;
+ _AddGeneratedScopedCssFilesForReference;
+
+
+
+ $(GenerateStaticWebAssetsPackTargetsDependsOn);
+ _AddScopedCssBundles;
+ _AddGeneratedScopedCssFilesForReference;
+
+
+
+ $(GetCurrentProjectStaticWebAssetsV2DependsOn);
+ _UpdateScopedCssStaticWebAssetsForV2;
+
+
+
+ <_ScopedCssExtension>.rz.scp.css
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ScopedCssIntermediatePath>$([System.IO.Path]::GetFullPath($(IntermediateOutputPath)scopedcss\))
+
+
+
+ <_ScopedCss Condition="'%(_ScopedCss.Identity)' != ''">
+ $(_ScopedCssIntermediatePath)%(RelativeDir)%(RecursiveDir)%(FileName)$(_ScopedCssExtension)
+
+ <_ScopedCssOutputs Include="%(_ScopedCss.OutputFile)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ScopedCssBundleContentRoot>$(_ScopedCssIntermediatePath)bundle\
+ <_ScopedCssOutputPath>$(_ScopedCssIntermediatePath)bundle\$(PackageId).styles.css
+ <_ScopedCssOutputFullPath>$([System.IO.Path]::Combine('$(MSBuildProjectFileDirectory)', '$(_ScopedCssIntermediatePath)bundle\$(PackageId).styles.css'))
+
+
+ <_ScopedCssProjectBundleContentRoot>$(_ScopedCssIntermediatePath)projectbundle\
+ <_ScopedCssProjectOutputPath>$(_ScopedCssIntermediatePath)projectbundle\$(PackageId).bundle.scp.css
+ <_ScopedCssProjectOutputFullPath>$([System.IO.Path]::Combine('$(MSBuildProjectFileDirectory)', '$(_ScopedCssIntermediatePath)projectbundle\$(PackageId).bundle.scp.css'))
+
+ <_ScopedCssBundleBasePath>/
+ <_ScopedCssBundleBasePath Condition="'$(StaticWebAssetBasePath)' != '_content/$(PackageId)'">$(StaticWebAssetBasePath)
+
+
+
+
+
+
+ <_AppBundleStaticWebAsset Include="$(_ScopedCssOutputPath)" Condition="@(_AllScopedCss) != ''">
+
+ $(PackageId)
+ $(_ScopedCssBundleContentRoot)
+ $(_ScopedCssBundleBasePath)
+ $(PackageId).styles.css
+
+
+
+ <_ProjectBundleStaticWebAsset Include="$(_ScopedCssProjectOutputPath)" Condition="@(_ScopedCss) != ''">
+
+ $(PackageId)
+ $(_ScopedCssProjectBundleContentRoot)
+ $(StaticWebAssetBasePath)
+ $(PackageId).bundle.scp.css
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ExternalStaticWebAsset Include="@(_AppBundleStaticWebAsset)">
+ generated
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_AllScopedCss Include="@(_ScopedCssProjectBundles);@(_DiscoveredScopedCssFiles)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ScopedCssStaticWebAsset Include="%(_ScopedCss.OutputFile)" Condition="@(_ScopedCss) != ''">
+
+ $(PackageId)
+ $(IntermediateOutputPath)scopedcss\
+ $(StaticWebAssetBasePath)
+ $([MSBuild]::MakeRelative('$(_ScopedCssIntermediatePath)','%(_ScopedCss.OutputFile)'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CurrentProjectDiscoveredScopedCssFiles Include="@(_DiscoveredScopedCssFiles)" Condition="'%(SourceType)' == ''" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ExternalPublishStaticWebAsset Include="$(_ScopedCssOutputFullPath)" ExcludeFromSingleFile="true">
+ generated
+ $(PackageId)
+ $(_ScopedCssBundleContentRoot)
+ $(_ScopedCssBundleBasePath)
+ PreserveNewest
+ $([MSBuild]::MakeRelative('$(MSBuildProjectDirectory)',$([MSBuild]::NormalizePath('wwwroot/$(_ScopedCssBundleBasePath)/$(PackageId).styles.css'))))
+
+
+
+
+
+
+
+ <_ExternalPublishStaticWebAsset Include="@(_ScopedCssStaticWebAsset)" ExcludeFromSingleFile="true">
+ generated
+ PreserveNewest
+ $([MSBuild]::MakeRelative('$(MSBuildProjectDirectory)','$([MSBuild]::NormalizePath('wwwroot\%(BasePath)\%(RelativePath)'))'))
+
+
+
+
+
+
+
+
+ <_AppBundleStaticWebAssetIdentity>@(_AppBundleStaticWebAsset)
+ <_ProjectBundleStaticWebAssetIdentity>@(_ProjectBundleStaticWebAsset)
+
+
+
+
+ <_CurrentProjectBundle Include="@(_ThisProjectStaticWebAssets)" Condition="'%(SourceId)' == '$(PackageId)' and '%(_ThisProjectStaticWebAssets.Identity)' == '$(_ProjectBundleStaticWebAssetIdentity)'">
+ Reference
+ Primary
+
+ ScopedCss
+ ProjectBundle
+ Never
+ PreserveNewest
+
+
+ <_ThisProjectStaticWebAssets Remove="@(_CurrentProjectBundle)" />
+ <_ThisProjectStaticWebAssets Include="@(_CurrentProjectBundle)" />
+
+
+ <_CurrentProjectAppBundle Include="@(_ThisProjectStaticWebAssets)" Condition="'%(SourceId)' == '$(PackageId)' and '%(Identity)' == '$(_AppBundleStaticWebAssetIdentity)'">
+ CurrentProject
+ Primary
+
+ ScopedCss
+ ApplicationBundle
+ Never
+ PreserveNewest
+
+
+ <_ThisProjectStaticWebAssets Remove="@(_CurrentProjectAppBundle)" />
+ <_ThisProjectStaticWebAssets Include="@(_CurrentProjectAppBundle)" />
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.ScopedCss.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.ScopedCss.targets
new file mode 100644
index 0000000000000000000000000000000000000000..63b14b1242be2c4c181092a7a4086e23eb6964fe
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.ScopedCss.targets
@@ -0,0 +1,403 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ResolveStaticWebAssetsInputsDependsOn);
+ UpdateLegacyPackageScopedCssBundles;
+ _AddScopedCssBundles;
+
+
+
+ $(GenerateComputedBuildStaticWebAssetsDependsOn);
+ _ResolveBundlingConfiguration;
+ _GenerateScopedCssFiles;
+ BundleScopedCssFiles;
+
+
+
+ $(ResolveScopedCssOutputsDependsOn);
+
+
+
+
+
+
+
+ $(ResolveStaticWebAssetsInputsDependsOn);
+ UpdateLegacyPackageScopedCssBundles;
+ _AddGeneratedScopedCssFiles;
+
+
+
+ _GenerateScopedCssFiles;
+ $(GenerateComputedBuildStaticWebAssetsDependsOn);
+
+
+
+ $(ResolveScopedCssOutputsDependsOn);
+
+
+
+
+
+
+ <_ScopedCssExtension>.rz.scp.css
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ScopedCssIntermediatePath>$([System.IO.Path]::GetFullPath($(IntermediateOutputPath)scopedcss\))
+
+
+
+ <_ScopedCss Condition="'%(_ScopedCss.Identity)' != ''">
+ $(_ScopedCssIntermediatePath)%(RelativeDir)%(RecursiveDir)%(FileName)$(_ScopedCssExtension)
+ %(RelativeDir)%(RecursiveDir)%(FileName)$(_ScopedCssExtension)
+
+ <_ScopedCssOutputs Include="%(_ScopedCss.OutputFile)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ScopedCssIntermediatePath>$([System.IO.Path]::GetFullPath($(IntermediateOutputPath)scopedcss\))
+
+ <_ScopedCssBundleContentRoot>$(_ScopedCssIntermediatePath)bundle\
+ <_ScopedCssOutputPath>$(_ScopedCssIntermediatePath)bundle\$(PackageId).styles.css
+ <_ScopedCssOutputFullPath>$([System.IO.Path]::Combine('$(MSBuildProjectFileDirectory)', '$(_ScopedCssIntermediatePath)bundle\$(PackageId).styles.css'))
+
+
+ <_ScopedCssProjectBundleContentRoot>$(_ScopedCssIntermediatePath)projectbundle\
+ <_ScopedCssProjectOutputPath>$(_ScopedCssIntermediatePath)projectbundle\$(PackageId).bundle.scp.css
+ <_ScopedCssProjectOutputFullPath>$([System.IO.Path]::Combine('$(MSBuildProjectFileDirectory)', '$(_ScopedCssIntermediatePath)projectbundle\$(PackageId).bundle.scp.css'))
+
+ <_ScopedCssBundleBasePath>/
+ <_ScopedCssBundleBasePath Condition="'$(StaticWebAssetBasePath)' != '_content/$(PackageId)'">$(StaticWebAssetBasePath)
+
+
+
+
+
+
+ <_ScopedCssAppBundleStaticWebAsset Include="$(_ScopedCssOutputPath)">
+ $(PackageId).styles.css
+
+ <_ScopedCssProjectBundleStaticWebAsset Include="$(_ScopedCssProjectOutputPath)">
+ $(PackageId).bundle.scp.css
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_AllScopedCss Include="@(_ScopedCssProjectBundles);@(_DiscoveredScopedCssFiles)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ScopedCssCandidateFile Include="%(_ScopedCss.OutputFile)" Condition="@(_ScopedCss) != ''">
+ %(_ScopedCss.RelativePath)
+ %(_ScopedCss.Identity)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CurrentProjectDiscoveredScopedCssFiles Include="@(_DiscoveredScopedCssFiles)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_LegacyOverrides Include="AssetMode" />
+ <_PackageProjectBundleCandidates Include="@(StaticWebAsset)" Condition="'%(SourceType)' == 'Package'" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.SingleTargeting.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.SingleTargeting.targets
new file mode 100644
index 0000000000000000000000000000000000000000..a6ac719efdd7d44252a8167e09935401ec18fd98
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.SingleTargeting.targets
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.props
new file mode 100644
index 0000000000000000000000000000000000000000..709a869f5c90f026f2dc6c98a6267bca30b5e7c0
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.props
@@ -0,0 +1,16 @@
+
+
+
+ $(MSBuildThisFileDirectory)Sdk.StaticWebAssets.CurrentVersion.props
+ $(MSBuildThisFileDirectory)Sdk.StaticWebAssets.CurrentVersion.targets
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.targets
new file mode 100644
index 0000000000000000000000000000000000000000..801df42015cfbad0209b80cba374e774bcc021e5
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Microsoft.NET.Sdk.StaticWebAssets.targets
@@ -0,0 +1,558 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ StaticWebAssetsPrepareForRun;$(PrepareForRunDependsOn)
+
+ $(StaticWebAssetsPrepareForRunDependsOn);GenerateStaticWebAssetsManifest;GenerateComputedBuildStaticWebAssets;CopyStaticWebAssetsToOutputDirectory
+
+
+
+
+ $(GenerateStaticWebAssetsManifestDependsOn);ResolveStaticWebAssetsInputs
+
+ UpdateExistingPackageStaticWebAssets;ResolveProjectStaticWebAssets;ResolveEmbeddedProjectsStaticWebAssets;ResolveReferencedProjectsStaticWebAssets;$(ResolveStaticWebAssetsInputsDependsOn)
+
+ $(GetCopyToOutputDirectoryItemsDependsOn);AddStaticWebAssetsManifest
+
+ LoadStaticWebAssetsBuildManifest;$(CopyStaticWebAssetsToOutputDirectoryDependsOn)
+
+
+
+ $(StaticWebAssetsPrepareForPublishDependsOn);ResolveStaticWebAssetsConfiguration;GenerateStaticWebAssetsPublishManifest;GenerateComputedPublishStaticWebAssets
+
+ ResolveStaticWebAssetsConfiguration;ResolvePublishStaticWebAssets;$(GenerateStaticWebAssetsPublishManifestDependsOn)
+
+
+
+
+
+ $(ComputeReferencedStaticWebAssetsPublishManifestDependsOn);
+ StaticWebAssetsPrepareForPublish;
+
+
+ LoadStaticWebAssetsBuildManifest;ComputeReferencedProjectsEmbeddedPublishAssets;ComputeReferencedProjectsPublishAssets;$(ResolvePublishStaticWebAssetsDependsOn)
+
+ StaticWebAssetsPrepareForPublish;LoadStaticWebAssetsPublishManifest;$(CopyStaticWebAssetsToPublishDirectoryDependsOn)
+
+
+
+
+
+
+
+ <_StaticWebAssetCanonicalMetadata Include="SourceType" />
+ <_StaticWebAssetCanonicalMetadata Include="SourceId" />
+ <_StaticWebAssetCanonicalMetadata Include="BasePath" />
+ <_StaticWebAssetCanonicalMetadata Include="RelativePath" />
+ <_StaticWebAssetCanonicalMetadata Include="ContentRoot" />
+ <_StaticWebAssetCanonicalMetadata Include="AssetKind" />
+ <_StaticWebAssetCanonicalMetadata Include="AssetMode" />
+ <_StaticWebAssetCanonicalMetadata Include="AssetRole" />
+ <_StaticWebAssetCanonicalMetadata Include="AssetMergeSource" />
+ <_StaticWebAssetCanonicalMetadata Include="AssetMergeBehavior" />
+ <_StaticWebAssetCanonicalMetadata Include="RelatedAsset" />
+ <_StaticWebAssetCanonicalMetadata Include="AssetTraitName" />
+ <_StaticWebAssetCanonicalMetadata Include="AssetTraitValue" />
+ <_StaticWebAssetCanonicalMetadata Include="CopyToOutputDirectory" />
+ <_StaticWebAssetCanonicalMetadata Include="CopyToPublishDirectory" />
+ <_StaticWebAssetCanonicalMetadata Include="OriginalItemSpec" />
+
+
+ <_StaticWebAssetDiscoveryPatternCanonicalMetadata Include="Source" />
+ <_StaticWebAssetDiscoveryPatternCanonicalMetadata Include="BasePath" />
+ <_StaticWebAssetDiscoveryPatternCanonicalMetadata Include="ContentRoot" />
+ <_StaticWebAssetDiscoveryPatternCanonicalMetadata Include="Pattern" />
+
+
+ <_StaticWebAssetProjectConfigurationCanonicalMetadata Include="Version" />
+ <_StaticWebAssetProjectConfigurationCanonicalMetadata Include="Source" />
+ <_StaticWebAssetProjectConfigurationCanonicalMetadata Include="TargetFramework" />
+ <_StaticWebAssetProjectConfigurationCanonicalMetadata Include="GetBuildAssetsTargets" />
+ <_StaticWebAssetProjectConfigurationCanonicalMetadata Include="GetPublishAssetsTargets" />
+ <_StaticWebAssetProjectConfigurationCanonicalMetadata Include="AdditionalBuildProperties" />
+ <_StaticWebAssetProjectConfigurationCanonicalMetadata Include="AdditionalBuildPropertiesToRemove" />
+ <_StaticWebAssetProjectConfigurationCanonicalMetadata Include="AdditionalPublishProperties" />
+ <_StaticWebAssetProjectConfigurationCanonicalMetadata Include="AdditionalPublishPropertiesToRemove" />
+
+
+ <_StaticWebAssetEmbeddedProjectConfigurationCanonicalMetadata Include="Version" />
+ <_StaticWebAssetEmbeddedProjectConfigurationCanonicalMetadata Include="Source" />
+ <_StaticWebAssetEmbeddedProjectConfigurationCanonicalMetadata Include="TargetFramework" />
+ <_StaticWebAssetEmbeddedProjectConfigurationCanonicalMetadata Include="GetEmbeddedBuildAssetsTargets" />
+ <_StaticWebAssetEmbeddedProjectConfigurationCanonicalMetadata Include="GetEmbeddedPublishAssetsTargets" />
+ <_StaticWebAssetEmbeddedProjectConfigurationCanonicalMetadata Include="AdditionalEmbeddedBuildProperties" />
+ <_StaticWebAssetEmbeddedProjectConfigurationCanonicalMetadata Include="AdditionalEmbeddedBuildPropertiesToRemove" />
+ <_StaticWebAssetEmbeddedProjectConfigurationCanonicalMetadata Include="AdditionalEmbeddedPublishProperties" />
+ <_StaticWebAssetEmbeddedProjectConfigurationCanonicalMetadata Include="AdditionalEmbeddedPublishPropertiesToRemove" />
+
+
+
+
+
+ _content/$(PackageId)
+ Default
+ Browser
+ Server
+
+
+ <_StaticWebAssetsManifestBase Condition="'$(_StaticWebAssetsManifestBase)' == ''">$(IntermediateOutputPath)
+ $(_StaticWebAssetsManifestBase)staticwebassets.build.json
+ $(_StaticWebAssetsManifestBase)staticwebassets.pack.json
+ $(_StaticWebAssetsManifestBase)staticwebassets.development.json
+ $(_StaticWebAssetsManifestBase)staticwebassets.publish.json
+
+ <_StaticWebAssetsIntermediateOutputPath>$(IntermediateOutputPath)staticwebassets\
+
+
+ <_GeneratedStaticWebAssetsPropsFile>$(_StaticWebAssetsIntermediateOutputPath)msbuild.$(PackageId).Microsoft.AspNetCore.StaticWebAssets.props
+ <_GeneratedBuildPropsFile>$(_StaticWebAssetsIntermediateOutputPath)msbuild.build.$(PackageId).props
+ <_GeneratedBuildMultitargetingPropsFile>$(_StaticWebAssetsIntermediateOutputPath)msbuild.buildMultiTargeting.$(PackageId).props
+ <_GeneratedBuildTransitivePropsFile>$(_StaticWebAssetsIntermediateOutputPath)msbuild.buildTransitive.$(PackageId).props
+
+
+ <_StaticWebAssetsPropsFileImportPath>Microsoft.AspNetCore.StaticWebAssets.props
+ <_StaticWebAssetsGeneratedBuildPropsFileImportPath>..\build\$(PackageId).props
+ <_StaticWebAssetsGeneratedBuildMultiTargetingPropsFileImportPath>..\buildMultiTargeting\$(PackageId).props
+
+ <_CurrentProjectHasStaticWebAssets Condition="'@(_CurrentProjectStaticWebAsset->Count())' != '0'">true
+
+
+
+
+
+
+
+
+
+
+
+
+ <_StaticWebAssetContentRootFolder Include="@(StaticWebAsset->'%(ContentRoot)')" Condition="'%(SourceType)' == 'Computed'" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_BuildStaticWebAssetsCopyAlways Include="@(_BuildStaticWebAssetsTargetPath)" Condition="'%(CopyToOutputDirectory)' == 'Always'" />
+ <_BuildStaticWebAssetsPreserveNewest Include="@(_BuildStaticWebAssetsTargetPath)" Condition="'%(CopyToOutputDirectory)' == 'PreserveNewest'" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(PackageId)
+ $(StaticWebAssetBasePath)
+ $(MSBuildProjectDirectory)\wwwroot\
+ **
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Sdk.StaticWebAssets.CurrentVersion.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Sdk.StaticWebAssets.CurrentVersion.props
new file mode 100644
index 0000000000000000000000000000000000000000..7e784e727b62b3de7f4aa8b5daef7f9b457ea13f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Sdk.StaticWebAssets.CurrentVersion.props
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ true
+
+ true
+
+
+ true
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Sdk.StaticWebAssets.CurrentVersion.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Sdk.StaticWebAssets.CurrentVersion.targets
new file mode 100644
index 0000000000000000000000000000000000000000..d7fd9b53041f88ac18d86030f13f399a31dc52d5
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/targets/Sdk.StaticWebAssets.CurrentVersion.targets
@@ -0,0 +1,127 @@
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+ $(MSBuildThisFileDirectory)..\
+ $(StaticWebAssetsSdkDirectoryRoot)tasks\
+ <_StaticWebAssetsSdkTasksTFM Condition=" '$(MSBuildRuntimeType)' == 'Core'">net8.0
+ <_StaticWebAssetsSdkTasksTFM Condition=" '$(_StaticWebAssetsSdkTasksTFM)' == ''">net472
+ $(StaticWebAssetsSdkBuildTasksDirectoryRoot)$(_StaticWebAssetsSdkTasksTFM)\Microsoft.NET.Sdk.StaticWebAssets.Tasks.dll
+ <_StaticWebAssetsSdkToolAssembly>$(StaticWebAssetsSdkDirectoryRoot)tools\net8.0\Microsoft.NET.Sdk.StaticWebAssets.Tool.dll
+
+
+
+ <_StaticWebAssetsSdkDotNetHostDirectory>$(NetCoreRoot)
+ <_StaticWebAssetsSdkDotNetHostFileName>dotnet
+ <_StaticWebAssetsSdkDotNetHostFileName Condition="'$(OS)' == 'Windows_NT'">dotnet.exe
+
+
+
+
+
+
+
+ <_TargetingNETCoreApp30OrLater>true
+ <_TargetingNET50OrLater>true
+ <_TargetingNET60OrLater>true
+ <_RazorLangVersion Condition="'$(RazorLangVersion)' == '' ">7.0
+
+
+
+
+ <_TargetingNETCoreApp30OrLater>true
+ <_TargetingNET50OrLater>true
+ <_TargetingNET60OrLater>true
+ <_RazorLangVersion Condition="'$(RazorLangVersion)' == '' ">6.0
+
+
+
+
+ <_TargetingNETCoreApp30OrLater>true
+ <_TargetingNET50OrLater>true
+ <_RazorLangVersion Condition="'$(RazorLangVersion)' == '' ">5.0
+
+
+
+
+ <_TargetingNETCoreApp30OrLater>true
+ <_RazorLangVersion Condition="'$(RazorLangVersion)' == '' ">3.0
+
+
+
+
+ <_TargetingNETStandard21OrLater>true
+
+
+
+
+ <_TargetingNETStandard20OrLater>true
+
+
+
+
+
+
+ <_RazorLangVersion Condition="'$(RazorLangVersion)' != ''">$(RazorLangVersion)
+
+
+ <_RazorLangVersion Condition="'$(_RazorLangVersion)' == ''">2.1
+
+
+ <_Targeting30OrNewerRazorLangVersion Condition="
+ '$(_RazorLangVersion)' == 'Latest' OR
+ '$(_RazorLangVersion)' == 'Experimental' OR
+ ('$(_RazorLangVersion)' != '' AND '$(_RazorLangVersion)' >= '3.0')">true
+
+
+ $(_Targeting30OrNewerRazorLangVersion)
+
+ $(_TargetingNET60OrLater)
+
+
+ $(_TargetingNET50OrLater)
+
+ $(_TargetingNET60OrLater)
+
+ $(_TargetingNET60OrLater)
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.Bcl.AsyncInterfaces.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.Bcl.AsyncInterfaces.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6031ba1e94835abd1d276b9700394dbafeb2b46c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.Bcl.AsyncInterfaces.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.Css.Parser.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.Css.Parser.dll
new file mode 100644
index 0000000000000000000000000000000000000000..db69984f7b9d841af6fd0c1a5111fdecc05b27ce
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.Css.Parser.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.Extensions.FileSystemGlobbing.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.Extensions.FileSystemGlobbing.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bbeca10f4f48591e532b43b06235c1ae0b48fed6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.Extensions.FileSystemGlobbing.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.NET.Sdk.StaticWebAssets.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.NET.Sdk.StaticWebAssets.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..115a52e4289c0c52cb935618aff40b348cdad540
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.NET.Sdk.StaticWebAssets.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.NET.Sdk.StaticWebAssets.Tasks.dll.config b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.NET.Sdk.StaticWebAssets.Tasks.dll.config
new file mode 100644
index 0000000000000000000000000000000000000000..6a549e828aa8b159dc82507a217e77e7e6741fe7
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/Microsoft.NET.Sdk.StaticWebAssets.Tasks.dll.config
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Buffers.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Buffers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f2d83c51416e90dbc31154545b16df3b3f7a7909
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Buffers.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Collections.Immutable.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Collections.Immutable.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ad944dff1cf2f5d8dfa21731223ae29980b2e84c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Collections.Immutable.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Memory.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Memory.dll
new file mode 100644
index 0000000000000000000000000000000000000000..46171997966f26bda11e58586c51b2817bde5cca
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Memory.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Numerics.Vectors.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Numerics.Vectors.dll
new file mode 100644
index 0000000000000000000000000000000000000000..08659724d4f8534ee97a543e93dd6d3c702fcd15
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Numerics.Vectors.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Reflection.Metadata.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Reflection.Metadata.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3abdc4448cebe548d113b77a254af1c68e8ae83d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Reflection.Metadata.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Runtime.CompilerServices.Unsafe.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c5ba4e4047a15b3adc61340c781307d9c6e89413
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Text.Encodings.Web.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Text.Encodings.Web.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3d16c7e9d86d760e037853648c40c16a1ac9860d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Text.Encodings.Web.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Text.Json.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Text.Json.dll
new file mode 100644
index 0000000000000000000000000000000000000000..81822f3947cf5b01545340aa0a61a6657ff4bf76
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Text.Json.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Threading.Tasks.Extensions.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..eeec92852705946904d0e2fa0443d454075781f5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.Threading.Tasks.Extensions.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.ValueTuple.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.ValueTuple.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4ce28fdeac6da139573ed0ff356c2df510692cee
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net472/System.ValueTuple.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net8.0/Microsoft.Css.Parser.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net8.0/Microsoft.Css.Parser.dll
new file mode 100644
index 0000000000000000000000000000000000000000..db69984f7b9d841af6fd0c1a5111fdecc05b27ce
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net8.0/Microsoft.Css.Parser.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e5907359325704bdd747ae9f5e557ef68f40b588
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net8.0/Microsoft.NET.Sdk.StaticWebAssets.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net8.0/Microsoft.NET.Sdk.StaticWebAssets.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6e9aac6f4dd86a780e4233324c1f909f9eacfa1a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tasks/net8.0/Microsoft.NET.Sdk.StaticWebAssets.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/net8.0/Microsoft.NET.Sdk.StaticWebAssets.Tool.deps.json b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/net8.0/Microsoft.NET.Sdk.StaticWebAssets.Tool.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..94ed55bdd04e1a300616f1685f78ed185e9edf4f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/net8.0/Microsoft.NET.Sdk.StaticWebAssets.Tool.deps.json
@@ -0,0 +1,109 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "Microsoft.NET.Sdk.StaticWebAssets.Tool/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.DiaSymReader.Pdb2Pdb": "1.1.0-beta2-19575-01",
+ "Microsoft.DotNet.XliffTasks": "1.0.0-beta.23475.1",
+ "Microsoft.Net.Compilers.Toolset": "4.11.0-3.24365.8",
+ "System.CommandLine": "2.0.0-beta4.23307.1"
+ },
+ "runtime": {
+ "Microsoft.NET.Sdk.StaticWebAssets.Tool.dll": {}
+ }
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {},
+ "Microsoft.DotNet.XliffTasks/1.0.0-beta.23475.1": {},
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24365.8": {},
+ "System.CommandLine/2.0.0-beta4.23307.1": {
+ "runtime": {
+ "lib/net7.0/System.CommandLine.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.23.30701"
+ }
+ },
+ "resources": {
+ "lib/net7.0/cs/System.CommandLine.resources.dll": {
+ "locale": "cs"
+ },
+ "lib/net7.0/de/System.CommandLine.resources.dll": {
+ "locale": "de"
+ },
+ "lib/net7.0/es/System.CommandLine.resources.dll": {
+ "locale": "es"
+ },
+ "lib/net7.0/fr/System.CommandLine.resources.dll": {
+ "locale": "fr"
+ },
+ "lib/net7.0/it/System.CommandLine.resources.dll": {
+ "locale": "it"
+ },
+ "lib/net7.0/ja/System.CommandLine.resources.dll": {
+ "locale": "ja"
+ },
+ "lib/net7.0/ko/System.CommandLine.resources.dll": {
+ "locale": "ko"
+ },
+ "lib/net7.0/pl/System.CommandLine.resources.dll": {
+ "locale": "pl"
+ },
+ "lib/net7.0/pt-BR/System.CommandLine.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "lib/net7.0/ru/System.CommandLine.resources.dll": {
+ "locale": "ru"
+ },
+ "lib/net7.0/tr/System.CommandLine.resources.dll": {
+ "locale": "tr"
+ },
+ "lib/net7.0/zh-Hans/System.CommandLine.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "lib/net7.0/zh-Hant/System.CommandLine.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.NET.Sdk.StaticWebAssets.Tool/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kY6eTNkeWLHvfOjg97Q7tgQKrPpX+Y3fR6fS4nyfpgFLHBxHriLBR4v3e9t71it91gIMEeKUqOqrFJ7Pj48eHA==",
+ "path": "microsoft.diasymreader.pdb2pdb/1.1.0-beta2-19575-01",
+ "hashPath": "microsoft.diasymreader.pdb2pdb.1.1.0-beta2-19575-01.nupkg.sha512"
+ },
+ "Microsoft.DotNet.XliffTasks/1.0.0-beta.23475.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZsVfWaPacITS006a49PPf35ZyzxWEUTUu4FBU6GhT882cs4Ow7ryvjq6yh82nGdXCi4XMjoUm5vl7XDsUW90QQ==",
+ "path": "microsoft.dotnet.xlifftasks/1.0.0-beta.23475.1",
+ "hashPath": "microsoft.dotnet.xlifftasks.1.0.0-beta.23475.1.nupkg.sha512"
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24365.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fvKVAMRbXJpDUvURL6CNmMcgVhzq3pSg5Uc0X0LUHQXaVpFy6sXITjt8xm6vtIkYdusvmHfO6JW48KBDk8/xjw==",
+ "path": "microsoft.net.compilers.toolset/4.11.0-3.24365.8",
+ "hashPath": "microsoft.net.compilers.toolset.4.11.0-3.24365.8.nupkg.sha512"
+ },
+ "System.CommandLine/2.0.0-beta4.23307.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-L9AshOole+4UHIUZJ6qxFAzLtO1kUc5FB/JRVV+jypq3DopJWkFr2+WUqGDdehnKuF6PLo6XNJb2HjpK8LE4UQ==",
+ "path": "system.commandline/2.0.0-beta4.23307.1",
+ "hashPath": "system.commandline.2.0.0-beta4.23307.1.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/net8.0/Microsoft.NET.Sdk.StaticWebAssets.Tool.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/net8.0/Microsoft.NET.Sdk.StaticWebAssets.Tool.dll
new file mode 100644
index 0000000000000000000000000000000000000000..030612c5bf55960184bb345dde82427459a7e6b9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/net8.0/Microsoft.NET.Sdk.StaticWebAssets.Tool.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/net8.0/Microsoft.NET.Sdk.StaticWebAssets.Tool.runtimeconfig.json b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/net8.0/Microsoft.NET.Sdk.StaticWebAssets.Tool.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..76473da3f1bbd1ae7ec038346cb1e7e8cb50cb10
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/net8.0/Microsoft.NET.Sdk.StaticWebAssets.Tool.runtimeconfig.json
@@ -0,0 +1,14 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ },
+ "rollForwardOnNoCandidateFx": 2,
+ "configProperties": {
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/net8.0/System.CommandLine.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/net8.0/System.CommandLine.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fe8147b7bcfa4a8da9e52e9084be2e244e47b0d1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.StaticWebAssets/tools/net8.0/System.CommandLine.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/Sdk/Sdk.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/Sdk/Sdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..0785eeb07229aafe2a7bbf65ce219d483f2b8ad8
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/Sdk/Sdk.props
@@ -0,0 +1,21 @@
+
+
+
+
+ true
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/Sdk/Sdk.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/Sdk/Sdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..95ba967d5a69b0d1cae1641d3781e9602f5958cc
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/Sdk/Sdk.targets
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.BeforeCommon.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.BeforeCommon.targets
new file mode 100644
index 0000000000000000000000000000000000000000..db4004ae0a55c0a8b13926ac1ca2c14cbf3a88e9
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.BeforeCommon.targets
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+ true
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.DefaultItems.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.DefaultItems.props
new file mode 100644
index 0000000000000000000000000000000000000000..04962f731afe8152143b2c3180c734a8cdcefffc
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.DefaultItems.props
@@ -0,0 +1,44 @@
+
+
+
+
+
+ <_WebToolingArtifacts Include="$(AppDesignerFolder)\launchSettings*.json;
+ $(AppDesignerFolder)\serviceDependencies*.json;
+ $(AppDesignerFolder)\serviceDependencies.*.json;
+ $(AppDesignerFolder)\ServiceDependencies\**;
+ $(AppDesignerFolder)\PublishProfiles\**"
+ Exclude="$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)"/>
+
+
+
+
+
+
+
+
+
+
+ <_ContentIncludedByDefault Remove="@(_ContentIncludedByDefault)" />
+ <_ContentIncludedByDefault Include="@(Content)" />
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.ProjectSystem.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.ProjectSystem.props
new file mode 100644
index 0000000000000000000000000000000000000000..ef215827f8ad996e1f5c8a316d5ea1da10f6db0a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.ProjectSystem.props
@@ -0,0 +1,31 @@
+
+
+
+
+
+ Exe
+ true
+ full
+ true
+ true
+ false
+ true
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.ProjectSystem.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.ProjectSystem.targets
new file mode 100644
index 0000000000000000000000000000000000000000..e2489302bc7f48b9b92a013b4f230389ba08e89b
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/targets/Microsoft.NET.Sdk.Web.ProjectSystem.targets
@@ -0,0 +1,107 @@
+
+
+
+
+
+
+
+
+ $(MSBuildProjectDirectory)
+ $(MSBuildExtensionsPath)\Microsoft\VisualStudio\Managed.Web\
+ inprocess
+ AspNetCoreModuleV2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+ 1
+
+
+
+
+
+ true
+ true
+
+
+
+
+ $(InterceptorsPreviewNamespaces);Microsoft.AspNetCore.Http.Generated
+
+ $(InterceptorsPreviewNamespaces);Microsoft.Extensions.Configuration.Binder.SourceGeneration
+
+
+
+
+
+
+
+
+ $(LangName)
+ en-us
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BrowseObject
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/tools/net472/Microsoft.NET.Sdk.Web.ProjectSystem.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/tools/net472/Microsoft.NET.Sdk.Web.ProjectSystem.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8267e7cb3c646ff6c57491db94d2e9a13c04686a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/tools/net472/Microsoft.NET.Sdk.Web.ProjectSystem.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/tools/net8.0/Microsoft.NET.Sdk.Web.ProjectSystem.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/tools/net8.0/Microsoft.NET.Sdk.Web.ProjectSystem.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..41648ec40b84eaccce18709e2c2b499d13e20b59
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web.ProjectSystem/tools/net8.0/Microsoft.NET.Sdk.Web.ProjectSystem.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Sdk/Sdk.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Sdk/Sdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..6782e3b0a3901dcfd99bbee85a52814d3ee52b11
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Sdk/Sdk.props
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Sdk/Sdk.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Sdk/Sdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..b0673aaf4155f088d252688d328074265346e8b0
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Sdk/Sdk.targets
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Browser.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Browser.props
new file mode 100644
index 0000000000000000000000000000000000000000..f168868835b7146dc0e7eb03c342c1a84f14be13
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Browser.props
@@ -0,0 +1,16 @@
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Browser.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Browser.targets
new file mode 100644
index 0000000000000000000000000000000000000000..3d74ac3d48cd41d8e0b568c2af17a40c82d52735
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Browser.targets
@@ -0,0 +1,16 @@
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Server.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Server.props
new file mode 100644
index 0000000000000000000000000000000000000000..2a2d5e61c69037ac0cc78bd75c08a6e061a4768e
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Server.props
@@ -0,0 +1,75 @@
+
+
+
+
+ true
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Server.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Server.targets
new file mode 100644
index 0000000000000000000000000000000000000000..3754d78cee6faff64bfe36d3d220c6c688f988d2
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/Targets/Sdk.Server.targets
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Analyzers.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Analyzers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6f21497413b7250d14571452f632b015dec79dd7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Analyzers.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Components.SdkAnalyzers.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Components.SdkAnalyzers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..09134ad65251ec9e03a198f00f4bb5879e1c4a33
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Components.SdkAnalyzers.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Mvc.Analyzers.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Mvc.Analyzers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..86e308bf3b717e07e3d512104d1936caa25ff681
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Mvc.Analyzers.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Mvc.Api.Analyzers.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Mvc.Api.Analyzers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..005245601e99b14fd9eaa973b588235d19bd735d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Mvc.Api.Analyzers.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/tools/net472/Microsoft.NET.Sdk.Web.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/tools/net472/Microsoft.NET.Sdk.Web.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bb73c62ce80558f2c1fa07a6eef9ad289c3d8826
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/tools/net472/Microsoft.NET.Sdk.Web.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/tools/net8.0/Microsoft.NET.Sdk.Web.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/tools/net8.0/Microsoft.NET.Sdk.Web.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..71cf46d4631f47929bacc1996aa8d9aeaf00cec9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Web/tools/net8.0/Microsoft.NET.Sdk.Web.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WebAssembly/Sdk/Sdk.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WebAssembly/Sdk/Sdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..8876f290bfd881130acd772cd3f55521c9ba8ec5
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WebAssembly/Sdk/Sdk.props
@@ -0,0 +1,34 @@
+
+
+
+
+ true
+ true
+
+
+ browser-wasm
+ true
+ true
+ true
+
+
+ false
+
+ <_WasmSdkImportsMicrosoftNETSdkPublish Condition="'$(UsingMicrosoftNETSdkPublish)' != 'true'">true
+ <_WasmSdkImportsMicrosoftNETSdkStaticWebAssets Condition="'$(UsingMicrosoftNETSdkStaticWebAssets)' != 'true'">true
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WebAssembly/Sdk/Sdk.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WebAssembly/Sdk/Sdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..ebe53e8107afe35c7de8734f16a0b77d8cff2e7a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WebAssembly/Sdk/Sdk.targets
@@ -0,0 +1,16 @@
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WebAssembly/tools/net472/Microsoft.NET.Sdk.WebAssembly.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WebAssembly/tools/net472/Microsoft.NET.Sdk.WebAssembly.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..68af5f038d6f0a9c5125c684829483986baefbb7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WebAssembly/tools/net472/Microsoft.NET.Sdk.WebAssembly.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WebAssembly/tools/net8.0/Microsoft.NET.Sdk.WebAssembly.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WebAssembly/tools/net8.0/Microsoft.NET.Sdk.WebAssembly.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b7be229727282791156a98737c4c6d68759cd071
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WebAssembly/tools/net8.0/Microsoft.NET.Sdk.WebAssembly.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/LICENSE.TXT b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/LICENSE.TXT
new file mode 100644
index 0000000000000000000000000000000000000000..9d087925144dbfd9695330920d4b4a88560b342a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/LICENSE.TXT
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright (c) .NET Foundation and Contributors
+
+All rights reserved.
+
+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/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/Sdk/Sdk.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/Sdk/Sdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..e945c50d276d32cb9d6e7fb1497f77233a6b60c7
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/Sdk/Sdk.props
@@ -0,0 +1,38 @@
+
+
+
+
+ <_MicrosoftWindowsDesktopSdkImported>true
+
+
+
+
+ false
+
+
+
+
+
+
+ true
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/Sdk/Sdk.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/Sdk/Sdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..6921ffd7d4d6c2668b34cc9f206f2c23e1b167b8
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/Sdk/Sdk.targets
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/THIRD-PARTY-NOTICES.TXT b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/THIRD-PARTY-NOTICES.TXT
new file mode 100644
index 0000000000000000000000000000000000000000..c122c769f250affaa52a431cb6e6a31b2dc00321
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/THIRD-PARTY-NOTICES.TXT
@@ -0,0 +1,62 @@
+.NET Core uses third-party libraries or other resources that may be
+distributed under licenses different than the .NET Core software.
+
+In the event that we accidentally failed to list a required notice, please
+bring it to our attention. Post an issue or email us:
+
+ dotnet@microsoft.com
+
+The attached notices are provided for information only.
+
+License notice for Zlib
+-----------------------
+
+https://github.com/madler/zlib
+http://zlib.net/zlib_license.html
+
+/* zlib.h -- interface of the 'zlib' general purpose compression library
+ version 1.2.11, January 15th, 2017
+
+ Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
+
+ This software is provided 'as-is', without any express or implied
+ warranty. In no event will the authors be held liable for any damages
+ arising from the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+
+ License notice for Json.NET
+-------------------------------
+
+https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md
+
+The MIT License (MIT)
+
+Copyright (c) 2007 James Newton-King
+
+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.
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.WPF.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.WPF.props
new file mode 100644
index 0000000000000000000000000000000000000000..ca3e02b82b22714757025bb9c07570ef6c9d4065
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.WPF.props
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.WindowsForms.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.WindowsForms.props
new file mode 100644
index 0000000000000000000000000000000000000000..bbc749c394d6ecf366e36c18fc23a1bad8768319
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.WindowsForms.props
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.WindowsForms.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.WindowsForms.targets
new file mode 100644
index 0000000000000000000000000000000000000000..479ce07cfb49282e4df9da9f5d5edb5b3931a2f0
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.WindowsForms.targets
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.props
new file mode 100644
index 0000000000000000000000000000000000000000..99e1edc7da38eadcad80153b2923c70d1a62a531
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.props
@@ -0,0 +1,178 @@
+
+
+
+
+ MSBuild:Compile
+ $(DefaultXamlRuntime)
+ Designer
+
+
+
+ MSBuild:Compile
+ $(DefaultXamlRuntime)
+ Designer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_WpfCommonNetFxReference Include="WindowsBase" />
+ <_WpfCommonNetFxReference Include="PresentationCore" />
+ <_WpfCommonNetFxReference Include="PresentationFramework" />
+
+ <_WpfCommonNetFxReference Include="System.Xaml" Condition="'$(_TargetFrameworkVersionValue)' != '' And '$(_TargetFrameworkVersionValue)' >= '4.0'">
+ 4.0
+
+ <_WpfCommonNetFxReference Include="UIAutomationClient" Condition="'$(_TargetFrameworkVersionValue)' != '' And '$(_TargetFrameworkVersionValue)' >= '4.0'" />
+ <_WpfCommonNetFxReference Include="UIAutomationClientSideProviders" Condition="'$(_TargetFrameworkVersionValue)' != '' And '$(_TargetFrameworkVersionValue)' >= '4.0'" />
+ <_WpfCommonNetFxReference Include="UIAutomationProvider" Condition="'$(_TargetFrameworkVersionValue)' != '' And '$(_TargetFrameworkVersionValue)' >= '4.0'" />
+ <_WpfCommonNetFxReference Include="UIAutomationTypes" Condition="'$(_TargetFrameworkVersionValue)' != '' And '$(_TargetFrameworkVersionValue)' >= '4.0'" />
+
+ <_WpfCommonNetFxReference Include="System.Windows.Controls.Ribbon" Condition="'$(_TargetFrameworkVersionValue)' != '' And '$(_TargetFrameworkVersionValue)' >= '4.5'" />
+
+
+
+
+ <_SDKImplicitReference Include="@(_WpfCommonNetFxReference)"
+ Condition="'$(UseWPF)' == 'true'"/>
+
+ <_SDKImplicitReference Include="System.Windows.Forms"
+ Condition="('$(UseWindowsForms)' == 'true') " />
+
+ <_SDKImplicitReference Include="WindowsFormsIntegration"
+ Condition=" ('$(UseWindowsForms)' == 'true') And ('$(UseWPF)' == 'true') "/>
+
+
+
+
+
+
+
+
+ <_UnsupportedNETCoreAppTargetFramework Include=".NETCoreApp,Version=v1.0" />
+ <_UnsupportedNETCoreAppTargetFramework Include=".NETCoreApp,Version=v1.1" />
+ <_UnsupportedNETCoreAppTargetFramework Include=".NETCoreApp,Version=v2.0" />
+ <_UnsupportedNETCoreAppTargetFramework Include=".NETCoreApp,Version=v2.1" />
+ <_UnsupportedNETCoreAppTargetFramework Include=".NETCoreApp,Version=v2.2" />
+
+
+ <_UnsupportedNETStandardTargetFramework Include="@(SupportedNETStandardTargetFramework)" />
+
+
+ <_UnsupportedNETFrameworkTargetFramework Include=".NETFramework,Version=v2.0" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets
new file mode 100644
index 0000000000000000000000000000000000000000..bdd5f4830730afe80e1554d1df8f203010de33a6
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets
@@ -0,0 +1,165 @@
+
+
+
+ <_MicrosoftNETSdkWindowsDesktop>true
+ true
+ true
+ Wpf
+
+
+
+
+ <_WindowsDesktopSdkTargetFrameworkVersionFloor>3.0
+
+ <_UndefinedTargetFrameworkVersion>0.0
+
+
+
+
+
+ <_TargetFrameworkVersionValue>$([MSBuild]::ValueOrDefault('$(_TargetFrameworkVersionWithoutV)', '$(_UndefinedTargetFrameworkVersion)'))
+
+
+
+
+ <_EnableWindowsDesktopGlobbing Condition=" ('$(EnableDefaultItems)' == 'true') And ('$(UseWPF)' == 'true') And
+ ('$(_TargetFrameworkVersionValue)' != '$(_UndefinedTargetFrameworkVersion)') And
+ ('$(_TargetFrameworkVersionValue)' >= '$(_WindowsDesktopSdkTargetFrameworkVersionFloor)')">true
+ <_EnableWindowsDesktopNetCoreFrameworkReferences Condition="('$(DisableImplicitFrameworkReferences)' != 'true') And
+ ('$(TargetFrameworkIdentifier)' == '.NETCoreApp') And
+ ('$(_TargetFrameworkVersionValue)' != '$(_UndefinedTargetFrameworkVersion)') And
+ ('$(_TargetFrameworkVersionValue)' >= '$(_WindowsDesktopSdkTargetFrameworkVersionFloor)')">true
+ <_EnableWindowsDesktopNETFrameworkImplicitReference Condition="('$(DisableImplicitFrameworkReferences)' != 'true') And
+ ('$(TargetFrameworkIdentifier)' == '.NETFramework') And
+ ('$(_TargetFrameworkVersionValue)' != '$(_UndefinedTargetFrameworkVersion)') And
+ ('$(_TargetFrameworkVersionValue)' >= '$(_WindowsDesktopSdkTargetFrameworkVersionFloor)')">true
+ <_RemoveUnsupportedTargetFrameworksForWindowsDesktop Condition="('$(UseWPF)' == 'true' Or '$(UseWindowsForms)' == 'true') And
+ '$(_TargetFrameworkVersionValue)' != '$(_UndefinedTargetFrameworkVersion)' And
+ '$(_TargetFrameworkVersionValue)' >= '$(_WindowsDesktopSdkTargetFrameworkVersionFloor)'">true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.WinFX.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.WinFX.targets
new file mode 100644
index 0000000000000000000000000000000000000000..a39898eeb240d1dd5e45c4457dfec6b0763de971
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.WinFX.targets
@@ -0,0 +1,957 @@
+
+
+
+ <_PresentationBuildTasksTfm Condition="'$(MSBuildRuntimeType)' == 'Core'">net8.0
+ <_PresentationBuildTasksTfm Condition="'$(MSBuildRuntimeType)' != 'Core'">net472
+ <_PresentationBuildTasksAssembly Condition="'$(_PresentationBuildTasksAssembly)'==''">$([MSBuild]::Unescape($([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\tools\$(_PresentationBuildTasksTfm)\PresentationBuildTasks.dll'))))
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+ None
+
+
+
+
+
+
+ true
+
+ false
+ 1.0.0.0
+ Installed
+ true
+ .g$(DefaultLanguageSourceExtension)
+ 5.1.2600.0
+
+
+ <_RequireMCPass2ForSatelliteAssemblyOnly>false
+ <_RequireMCPass2ForMainAssembly>false
+
+
+
+ true
+ true
+ true
+ true
+
+
+
+
+
+ AssignWinFXEmbeddedResource;
+ $(PrepareResourceNamesDependsOn)
+
+
+
+
+
+
+ MarkupCompilePass1;
+ AfterMarkupCompilePass1;
+ MarkupCompilePass2ForMainAssembly;
+ FileClassification;
+ MainResourcesGeneration;
+ $(PrepareResourcesDependsOn)
+
+
+
+
+
+
+ DesignTimeMarkupCompilation;
+ $(CoreCompileDependsOn)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SatelliteOnlyMarkupCompilePass2;
+ SatelliteResourceGeneration;
+ GenerateResourceWithCultureItem;
+
+
+
+
+
+
+
+
+
+
+
+ $(CompileDependsOn);
+ _AfterCompileWinFXInternal
+
+
+ <_AfterCompileWinFXInternalDependsOn>
+ PrepareResourcesForSatelliteAssemblies;
+ MergeLocalizationDirectives;
+ AfterCompileWinFX
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_IntellisenseOnlyCompile>false
+ <_IntellisenseOnlyCompile Condition="'$(BuildingProject)' != 'true'">true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GenerateTemporaryTargetAssembly;
+ MarkupCompilePass2;
+ AfterMarkupCompilePass2;
+ CleanupTemporaryTargetAssembly
+
+
+ <_CompileTargetNameForLocalType Condition="'$(_CompileTargetNameForLocalType)' == ''">_CompileTemporaryAssembly
+
+ true
+ <_ResolveProjectReferencesTargetName Condition="'$(IncludePackageReferencesDuringMarkupCompilation)' != 'false'">ResolveProjectReferences
+ <_CompileTemporaryAssemblyDependsOn>BuildOnlySettings;ResolveKeySource;$(_ResolveProjectReferencesTargetName);CoreCompile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ParentProjectName>$([System.IO.Path]::GetFileNameWithoutExtension('$(MSBuildProjectFullPath)'))
+ <_ParentProjectExtension>$([System.IO.Path]::GetExtension($(MSBuildProjectFullPath)))
+ <_TemporaryTargetAssemblyProjectNameNoExtension>$([System.String]::Join("_", "$(_ParentProjectName)", "$([System.IO.Path]::GetFileNameWithoutExtension($([System.IO.Path]::GetRandomFileName())))", "wpftmp"))
+ <_TemporaryTargetAssemblyProjectName>$(_TemporaryTargetAssemblyProjectNameNoExtension)$(_ParentProjectExtension)
+
+
+
+
+
+
+
+ <_SourceGeneratedNuGetPropsAndTargets Include="$(MSBuildProjectExtensionsPath)$(_ParentProjectName)$(_ParentProjectExtension).nuget.g.props"/>
+ <_SourceGeneratedNuGetPropsAndTargets Include="$(MSBuildProjectExtensionsPath)$(_ParentProjectName)$(_ParentProjectExtension).nuget.g.targets"/>
+ <_SourceGeneratedNuGetPropsAndTargets Include="$(MSBuildProjectExtensionsPath)$(_ParentProjectName)$(_ParentProjectExtension).nuget.dgspec.json"/>
+
+ <_DestGeneratedNuGetPropsAndTargets Include="$(BaseIntermediateOutputPath)$(_TemporaryTargetAssemblyProjectName).nuget.g.props"/>
+ <_DestGeneratedNuGetPropsAndTargets Include="$(BaseIntermediateOutputPath)$(_TemporaryTargetAssemblyProjectName).nuget.g.targets"/>
+ <_DestGeneratedNuGetPropsAndTargets Include="$(BaseIntermediateOutputPath)$(_TemporaryTargetAssemblyProjectName).nuget.dgspec.json"/>
+
+
+
+
+ <_SourceGeneratedNuGetPropsAndTargets Include="$(MSBuildProjectExtensionsPath)project.assets.json"/>
+ <_SourceGeneratedNuGetPropsAndTargets Include="$(MSBuildProjectExtensionsPath)project.nuget.cache"/>
+
+ <_DestGeneratedNuGetPropsAndTargets Include="$(BaseIntermediateOutputPath)project.assets.json"/>
+ <_DestGeneratedNuGetPropsAndTargets Include="$(BaseIntermediateOutputPath)project.nuget.cache"/>
+
+
+
+
+
+
+
+
+ <_IntermediateOutputPathNoTargetFrameworkOrRID>$(IntermediateOutputPath)
+
+
+
+ <_IntermediateOutputPathNoTargetFrameworkOrRID>$([System.Text.RegularExpressions.Regex]::Replace($(_IntermediateOutputPathNoTargetFrameworkOrRID), "$(RuntimeIdentifier)\\$",, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
+
+
+
+ <_IntermediateOutputPathNoTargetFrameworkOrRID>$([System.Text.RegularExpressions.Regex]::Replace($(_IntermediateOutputPathNoTargetFrameworkOrRID), "$(TargetFramework)\\$",, System.Text.RegularExpressions.RegexOptions.IgnoreCase))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HostInBrowserValidation;
+ GenerateApplicationManifest;
+ ResignApplicationManifest;
+ GenerateDeploymentManifest;
+ SignDeploymentManifest
+
+
+ true
+ $(GenerateManifests)
+
+ false
+
+ Internet
+
+ $(TargetUrl)/$(TargetDeployManifestFileName)
+ $(MSBuildProjectDirectory)\bin\$(Configuration)\$(TargetDeployManifestFileName)
+ -debug "$(StartURL)"
+ $(StartArguments) -DebugSecurityZoneURL "$(DebugSecurityZoneURL)"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ResourceNameInMainAssembly Condition="'$(UICulture)' == ''">$(AssemblyName).g.resources
+ <_ResourceNameInMainAssembly Condition="'$(UICulture)' != ''">$(AssemblyName).unlocalizable.g.resources
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+ Resx
+ false
+ $(IntermediateOutputPath)$(_ResourceNameInMainAssembly)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(UICulture)
+ false
+ Resx
+ true
+ @(_SatelliteResourceFile)
+
+
+
+
+
+
+
+
+
+
+ BuildOnlySettings;
+ PrepareForBuild;
+ ResolveReferences;
+ PrepareResources;
+ ResolveKeySource;
+ PrepareResourcesForSatelliteAssemblies;
+ GenerateSerializationAssemblies;
+ CreateSatelliteAssemblies;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_Temporary Remove="@(_Temporary)" />
+
+
+
+
+
+
+
+
+
+ <_Temporary Remove="@(_Temporary)" />
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/System.Windows.Forms.Analyzers.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/System.Windows.Forms.Analyzers.props
new file mode 100644
index 0000000000000000000000000000000000000000..979bd7cfcdd3b122eb139f744abde82c6315a79b
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/targets/System.Windows.Forms.Analyzers.props
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/PresentationBuildTasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/PresentationBuildTasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..29c8505927212202e2dc3c4277327c5ebd46ac00
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/PresentationBuildTasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Collections.Immutable.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Collections.Immutable.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ad944dff1cf2f5d8dfa21731223ae29980b2e84c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Collections.Immutable.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Memory.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Memory.dll
new file mode 100644
index 0000000000000000000000000000000000000000..46171997966f26bda11e58586c51b2817bde5cca
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Memory.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Numerics.Vectors.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Numerics.Vectors.dll
new file mode 100644
index 0000000000000000000000000000000000000000..08659724d4f8534ee97a543e93dd6d3c702fcd15
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Numerics.Vectors.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Reflection.Metadata.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Reflection.Metadata.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3abdc4448cebe548d113b77a254af1c68e8ae83d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Reflection.Metadata.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Reflection.MetadataLoadContext.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Reflection.MetadataLoadContext.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ec437a1e7b8a455906562afc377138dc2fea3c49
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Reflection.MetadataLoadContext.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Runtime.CompilerServices.Unsafe.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c5ba4e4047a15b3adc61340c781307d9c6e89413
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/cs/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/cs/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d71c5e7e6e88fdcc61ee40fccb307e3a9852275b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/cs/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/de/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/de/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..519a324ac91878ac50021cddfc00fbb2126b7cde
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/de/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/es/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/es/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8e6016ca489e1fc1117ffe34bfdd7c65e0b6e7e1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/es/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/fr/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/fr/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4783fe02b4218dca848aded35677f83ffa6c5a9a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/fr/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/it/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/it/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..adc03db5a80ce18c0f10cf2d23b5b1ac9982311f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/it/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ja/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ja/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f86b1c16d11d3ee29d79d8594fa17f340bc7a9fd
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ja/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ko/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ko/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8f2835e9c37ff32fc63f6f725a3692edba1f0527
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ko/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/pl/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/pl/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2231713c4f068b1507623239613d0d5f02a0e388
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/pl/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/pt-BR/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/pt-BR/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cec7f5ba15782c5f5bfc3f18dd1b076e077e46da
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/pt-BR/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ru/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ru/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..37d4b0c672d0b2ac3ed0982280fdebead0836d66
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/ru/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/tr/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/tr/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1642487aaa8ba9af3d11b2905ba915962629ef97
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/tr/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/zh-Hans/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/zh-Hans/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0aa727335b51aa79e998fdcad0b7509f1b958626
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/zh-Hans/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/zh-Hant/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/zh-Hant/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4f22397ce935fe8cd10d709a5a199be38a614f84
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net472/zh-Hant/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/PresentationBuildTasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/PresentationBuildTasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..df80d72d71af162fbb28d574b9e3da7cb69b0821
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/PresentationBuildTasks.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c0f390934058264d114376e8fb879ffd81d57dd2b5157f722c7c2712952ea02d
+size 1342464
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/System.Reflection.MetadataLoadContext.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/System.Reflection.MetadataLoadContext.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7b1cebeac35c4901c3dddf046141faab513424e3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/System.Reflection.MetadataLoadContext.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/cs/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/cs/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4e005dd5647bde7d04e27fe982472f808e3d132e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/cs/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/de/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/de/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7666a700acff2a2f55bc0042b239ba64eec275c6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/de/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/es/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/es/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f7acc3e9f5fcc5748b10445d006b6ac0da1e9623
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/es/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/fr/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/fr/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a72ae5432e6cdf5f2a63348fca4dc2cfd3825a43
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/fr/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/it/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/it/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..362b675f7c6d626e8d4be936c3577d8e256d6f9b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/it/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/ja/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/ja/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..967c24d74ce76d89516028d07ee3c85371e2c845
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/ja/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/ko/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/ko/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..176c62eb4d53e95db679e1b1e3edae101792f070
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/ko/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/pl/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/pl/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ae6da10e9c9a9e74ff80c91e95b9fd2c474b587d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/pl/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/pt-BR/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/pt-BR/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..da15b495debc128e89eeced705a61578810f3ba5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/pt-BR/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/ru/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/ru/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6c758ffc834999aa847d60c0bccde92987d6d7e4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/ru/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/tr/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/tr/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ff1fd8748b9e593ce63087595d98a42909e0d4ce
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/tr/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/zh-Hans/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/zh-Hans/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ef296e54613522497af23d7ee605dcc06e2f9384
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/zh-Hans/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/zh-Hant/PresentationBuildTasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/zh-Hant/PresentationBuildTasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..107a4da289a8df82e282e1577a4005588542d48f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/tools/net8.0/zh-Hant/PresentationBuildTasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/useSharedDesignerContext.txt b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/useSharedDesignerContext.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/version.txt b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/version.txt
new file mode 100644
index 0000000000000000000000000000000000000000..da24faff9a05064f17d05cd0097913cf34caecc6
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.WindowsDesktop/version.txt
@@ -0,0 +1 @@
+883fc207bb50622d4458ff09ae6a62548783826a
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/Sdk/Sdk.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/Sdk/Sdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..00337826a680eb67e3f5bd3d4d5dbd4de1392a82
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/Sdk/Sdk.props
@@ -0,0 +1,30 @@
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/Sdk/Sdk.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/Sdk/Sdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..0d61a1155a7029b20c3a6d2a5645b8c7f187f21d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/Sdk/Sdk.targets
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/targets/Microsoft.NET.Sdk.Worker.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/targets/Microsoft.NET.Sdk.Worker.props
new file mode 100644
index 0000000000000000000000000000000000000000..155c7163e18e57c314c3178e2566904f3251f765
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/targets/Microsoft.NET.Sdk.Worker.props
@@ -0,0 +1,52 @@
+
+
+
+
+ Exe
+ true
+ pdbonly
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ContentIncludedByDefault Include="@(Content)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/targets/Microsoft.NET.Sdk.Worker.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/targets/Microsoft.NET.Sdk.Worker.targets
new file mode 100644
index 0000000000000000000000000000000000000000..dc41e5a510da0936d2aaa59be50b2d0802c55b4e
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/targets/Microsoft.NET.Sdk.Worker.targets
@@ -0,0 +1,36 @@
+
+
+
+
+ true
+ $(MSBuildProjectDirectory)
+ $(MSBuildExtensionsPath)\Microsoft\VisualStudio\Managed.Worker\
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/tools/net472/Microsoft.NET.Sdk.Worker.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/tools/net472/Microsoft.NET.Sdk.Worker.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f6e7bb9bbd20b7312a270281396eb5ead195b70e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/tools/net472/Microsoft.NET.Sdk.Worker.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/tools/net8.0/Microsoft.NET.Sdk.Worker.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/tools/net8.0/Microsoft.NET.Sdk.Worker.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1fd00fcb0b28601c63dabe58ea0814567370d75e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk.Worker/tools/net8.0/Microsoft.NET.Sdk.Worker.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.AfterCommon.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.AfterCommon.targets
new file mode 100644
index 0000000000000000000000000000000000000000..3d23868f7680f99d7c19bfeb06073e68ad1aaf5c
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.AfterCommon.targets
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.BeforeCommon.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.BeforeCommon.targets
new file mode 100644
index 0000000000000000000000000000000000000000..bf95a7e154e0bcaecfc3df09d3035b87ba8903b5
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.BeforeCommon.targets
@@ -0,0 +1,14 @@
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.NuGet.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.NuGet.targets
new file mode 100644
index 0000000000000000000000000000000000000000..3ef9822d6238b4cbf80f0946745035882b9c34a5
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.NuGet.targets
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..d1aa024f800ec5cbf0973d2e83479934f1b86d9a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.props
@@ -0,0 +1,51 @@
+
+
+
+
+ <_AfterSdkPublishDependsOn Condition="'$(_IsAspNetCoreProject)' == 'true'">AfterPublish
+ <_AfterSdkPublishDependsOn Condition="'$(_IsAspNetCoreProject)' != 'true'">Publish
+
+
+
+
+
+
+ true
+
+
+ true
+
+ $(CustomAfterDirectoryBuildProps);$(MSBuildThisFileDirectory)UseArtifactsOutputPath.props
+
+
+
+ $(ProjectExtensionsPathForSpecifiedProject)
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..e7d0156c4d385fe95e6fe573debca9a2bb00eb19
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.targets
@@ -0,0 +1,66 @@
+
+
+
+
+
+ true
+
+
+
+
+
+
+ $(MSBuildToolsPath)\Microsoft.CSharp.targets
+ $(MSBuildToolsPath)\Microsoft.VisualBasic.targets
+ $(MSBuildThisFileDirectory)..\targets\Microsoft.NET.Sdk.FSharpTargetsShim.targets
+
+
+ $(MSBuildToolsPath)\Microsoft.Common.targets
+
+
+
+
+
+
+
+
+
+
+
+
+ $(MSBuildThisFileDirectory)..\..\NuGet.Build.Tasks.Pack\buildCrossTargeting\NuGet.Build.Tasks.Pack.targets
+ $(MSBuildThisFileDirectory)..\..\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets
+ true
+
+
+
+
+
+
+ <_ContainersTargetsDir Condition=" '$(_ContainersTargetsDir)'=='' ">$(MSBuildThisFileDirectory)..\..\..\Containers\build\
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/UseArtifactsOutputPath.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/UseArtifactsOutputPath.props
new file mode 100644
index 0000000000000000000000000000000000000000..b628579679d87d5ef3f3333723eb1a4549c08069
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/Sdk/UseArtifactsOutputPath.props
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+ true
+ $(MSBuildProjectName)
+
+
+
+ $(ArtifactsPath)\obj\$(ArtifactsProjectName)\
+ $(ArtifactsPath)\obj\
+
+
+
+
+ <_ArtifactsPathSetEarly>true
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d2ca7174d5cc48912994b2b7b3c6750c870fb14d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.CSharp.NetAnalyzers.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.NetAnalyzers.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.NetAnalyzers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a5763cb6dfa280556d14c3af4a8ca8ccfc061e71
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.NetAnalyzers.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5717ba641176c42342da069359dd5be1b1edaca4ade23717deb3fd406ff2dca5
+size 2423456
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b9de3d30f4a3791bf655ede69e691e5d791e4f6e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/Microsoft.CodeAnalysis.VisualBasic.NetAnalyzers.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/Microsoft.CodeAnalysis.NetAnalyzers.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/Microsoft.CodeAnalysis.NetAnalyzers.props
new file mode 100644
index 0000000000000000000000000000000000000000..33980438054cb3d455e612fd200fcaad83d796de
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/Microsoft.CodeAnalysis.NetAnalyzers.props
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+ <_NETAnalyzersSDKAssemblyVersion>8.0.0
+
+
+
+
+ CA1000;CA1001;CA1002;CA1003;CA1005;CA1008;CA1010;CA1012;CA1014;CA1016;CA1017;CA1018;CA1019;CA1021;CA1024;CA1027;CA1028;CA1030;CA1031;CA1032;CA1033;CA1034;CA1036;CA1040;CA1041;CA1043;CA1044;CA1045;CA1046;CA1047;CA1050;CA1051;CA1052;CA1054;CA1055;CA1056;CA1058;CA1060;CA1061;CA1062;CA1063;CA1064;CA1065;CA1066;CA1067;CA1068;CA1069;CA1070;CA1200;CA1303;CA1304;CA1305;CA1307;CA1308;CA1309;CA1310;CA1311;CA1401;CA1416;CA1417;CA1418;CA1419;CA1420;CA1421;CA1422;CA1501;CA1502;CA1505;CA1506;CA1507;CA1508;CA1509;CA1510;CA1511;CA1512;CA1513;CA1700;CA1707;CA1708;CA1710;CA1711;CA1712;CA1713;CA1715;CA1716;CA1720;CA1721;CA1724;CA1725;CA1727;CA1802;CA1805;CA1806;CA1810;CA1812;CA1813;CA1814;CA1815;CA1816;CA1819;CA1820;CA1821;CA1822;CA1823;CA1824;CA1825;CA1826;CA1827;CA1828;CA1829;CA1830;CA1831;CA1832;CA1833;CA1834;CA1835;CA1836;CA1837;CA1838;CA1839;CA1840;CA1841;CA1842;CA1843;CA1844;CA1845;CA1846;CA1847;CA1848;CA1849;CA1850;CA1851;CA1852;CA1853;CA1854;CA1855;CA1856;CA1857;CA1858;CA1859;CA1860;CA1861;CA1862;CA1863;CA1864;CA1865;CA1866;CA1867;CA1868;CA1869;CA1870;CA2000;CA2002;CA2007;CA2008;CA2009;CA2011;CA2012;CA2013;CA2014;CA2015;CA2016;CA2017;CA2018;CA2019;CA2020;CA2021;CA2100;CA2101;CA2119;CA2153;CA2200;CA2201;CA2207;CA2208;CA2211;CA2213;CA2214;CA2215;CA2216;CA2217;CA2218;CA2219;CA2224;CA2225;CA2226;CA2227;CA2231;CA2234;CA2235;CA2237;CA2241;CA2242;CA2243;CA2244;CA2245;CA2246;CA2247;CA2248;CA2249;CA2250;CA2251;CA2252;CA2253;CA2254;CA2255;CA2256;CA2257;CA2258;CA2259;CA2260;CA2261;CA2300;CA2301;CA2302;CA2305;CA2310;CA2311;CA2312;CA2315;CA2321;CA2322;CA2326;CA2327;CA2328;CA2329;CA2330;CA2350;CA2351;CA2352;CA2353;CA2354;CA2355;CA2356;CA2361;CA2362;CA3001;CA3002;CA3003;CA3004;CA3005;CA3006;CA3007;CA3008;CA3009;CA3010;CA3011;CA3012;CA3061;CA3075;CA3076;CA3077;CA3147;CA5350;CA5351;CA5358;CA5359;CA5360;CA5361;CA5362;CA5363;CA5364;CA5365;CA5366;CA5367;CA5368;CA5369;CA5370;CA5371;CA5372;CA5373;CA5374;CA5375;CA5376;CA5377;CA5378;CA5379;CA5380;CA5381;CA5382;CA5383;CA5384;CA5385;CA5386;CA5387;CA5388;CA5389;CA5390;CA5391;CA5392;CA5393;CA5394;CA5395;CA5396;CA5397;CA5398;CA5399;CA5400;CA5401;CA5402;CA5403;CA5404;CA5405
+ $(CodeAnalysisTreatWarningsAsErrors)
+ $(WarningsNotAsErrors);$(CodeAnalysisRuleIds)
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/Microsoft.CodeAnalysis.NetAnalyzers.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/Microsoft.CodeAnalysis.NetAnalyzers.targets
new file mode 100644
index 0000000000000000000000000000000000000000..8240cfd6d2d6a6b25be216e40da6034ad9b4e721
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/Microsoft.CodeAnalysis.NetAnalyzers.targets
@@ -0,0 +1,653 @@
+
+
+
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(EffectiveAnalysisLevel), '(.0)*$', ''))
+
+
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzers>$(AnalysisLevelSuffix)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzers Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzers)' == ''">$(AnalysisMode)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzers Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzers)' == 'AllEnabledByDefault'">All
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzers Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzers)' == 'AllDisabledByDefault'">None
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzers Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzers)' == ''">Default
+
+
+
+ $(CodeAnalysisTreatWarningsAsErrors)
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzers_WarnAsErrorSuffix Condition="'$(EffectiveCodeAnalysisTreatWarningsAsErrors)' == 'true'">_warnaserror
+
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzers Condition="'$(MicrosoftCodeAnalysisNetAnalyzersRulesVersion)' != ''">AnalysisLevel_$(MicrosoftCodeAnalysisNetAnalyzersRulesVersion.Replace(".","_"))_$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzers)$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzers_WarnAsErrorSuffix).globalconfig
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzers>$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzers.ToLowerInvariant())
+
+ <_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzers Condition="'$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzers)' == ''">$(MSBuildThisFileDirectory)config
+ <_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisNetAnalyzers Condition="'$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzers)' != ''">$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzers)\$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzers)
+
+
+
+
+
+
+
+
+
+
+
+ $(AnalysisLevel)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelDesign), '-(.)*', ''))
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelDesign), '$(AnalysisLevelPrefixDesign)-', ''))
+
+
+ $(_NoneAnalysisLevel)
+ $(_LatestAnalysisLevel)
+ $(_PreviewAnalysisLevel)
+
+
+ $(AnalysisLevelPrefixDesign)
+ $(AnalysisLevelDesign)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(EffectiveAnalysisLevelDesign), '(.0)*$', ''))
+
+
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDesign>$(AnalysisLevelSuffixDesign)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDesign Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDesign)' == ''">$(AnalysisModeDesign)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDesign Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDesign)' == 'AllEnabledByDefault'">All
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDesign Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDesign)' == 'AllDisabledByDefault'">None
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDesign Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDesign)' == ''">Default
+
+
+
+ $(CodeAnalysisTreatWarningsAsErrors)
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersDesign_WarnAsErrorSuffix Condition="'$(EffectiveCodeAnalysisTreatWarningsAsErrors)' == 'true'">_warnaserror
+
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersDesign Condition="'$(MicrosoftCodeAnalysisNetAnalyzersDesignRulesVersion)' != ''">AnalysisLevelDesign_$(MicrosoftCodeAnalysisNetAnalyzersDesignRulesVersion.Replace(".","_"))_$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDesign)$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersDesign_WarnAsErrorSuffix).globalconfig
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersDesign>$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersDesign.ToLowerInvariant())
+
+ <_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersDesign Condition="'$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersDesign)' == ''">$(MSBuildThisFileDirectory)config
+ <_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisNetAnalyzersDesign Condition="'$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersDesign)' != ''">$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersDesign)\$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersDesign)
+
+
+
+
+
+
+
+
+
+
+
+ $(AnalysisLevel)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelDocumentation), '-(.)*', ''))
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelDocumentation), '$(AnalysisLevelPrefixDocumentation)-', ''))
+
+
+ $(_NoneAnalysisLevel)
+ $(_LatestAnalysisLevel)
+ $(_PreviewAnalysisLevel)
+
+
+ $(AnalysisLevelPrefixDocumentation)
+ $(AnalysisLevelDocumentation)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(EffectiveAnalysisLevelDocumentation), '(.0)*$', ''))
+
+
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDocumentation>$(AnalysisLevelSuffixDocumentation)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDocumentation Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDocumentation)' == ''">$(AnalysisModeDocumentation)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDocumentation Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDocumentation)' == 'AllEnabledByDefault'">All
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDocumentation Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDocumentation)' == 'AllDisabledByDefault'">None
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDocumentation Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDocumentation)' == ''">Default
+
+
+
+ $(CodeAnalysisTreatWarningsAsErrors)
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersDocumentation_WarnAsErrorSuffix Condition="'$(EffectiveCodeAnalysisTreatWarningsAsErrors)' == 'true'">_warnaserror
+
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersDocumentation Condition="'$(MicrosoftCodeAnalysisNetAnalyzersDocumentationRulesVersion)' != ''">AnalysisLevelDocumentation_$(MicrosoftCodeAnalysisNetAnalyzersDocumentationRulesVersion.Replace(".","_"))_$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersDocumentation)$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersDocumentation_WarnAsErrorSuffix).globalconfig
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersDocumentation>$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersDocumentation.ToLowerInvariant())
+
+ <_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersDocumentation Condition="'$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersDocumentation)' == ''">$(MSBuildThisFileDirectory)config
+ <_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisNetAnalyzersDocumentation Condition="'$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersDocumentation)' != ''">$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersDocumentation)\$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersDocumentation)
+
+
+
+
+
+
+
+
+
+
+
+ $(AnalysisLevel)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelGlobalization), '-(.)*', ''))
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelGlobalization), '$(AnalysisLevelPrefixGlobalization)-', ''))
+
+
+ $(_NoneAnalysisLevel)
+ $(_LatestAnalysisLevel)
+ $(_PreviewAnalysisLevel)
+
+
+ $(AnalysisLevelPrefixGlobalization)
+ $(AnalysisLevelGlobalization)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(EffectiveAnalysisLevelGlobalization), '(.0)*$', ''))
+
+
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersGlobalization>$(AnalysisLevelSuffixGlobalization)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersGlobalization Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersGlobalization)' == ''">$(AnalysisModeGlobalization)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersGlobalization Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersGlobalization)' == 'AllEnabledByDefault'">All
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersGlobalization Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersGlobalization)' == 'AllDisabledByDefault'">None
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersGlobalization Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersGlobalization)' == ''">Default
+
+
+
+ $(CodeAnalysisTreatWarningsAsErrors)
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersGlobalization_WarnAsErrorSuffix Condition="'$(EffectiveCodeAnalysisTreatWarningsAsErrors)' == 'true'">_warnaserror
+
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersGlobalization Condition="'$(MicrosoftCodeAnalysisNetAnalyzersGlobalizationRulesVersion)' != ''">AnalysisLevelGlobalization_$(MicrosoftCodeAnalysisNetAnalyzersGlobalizationRulesVersion.Replace(".","_"))_$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersGlobalization)$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersGlobalization_WarnAsErrorSuffix).globalconfig
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersGlobalization>$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersGlobalization.ToLowerInvariant())
+
+ <_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersGlobalization Condition="'$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersGlobalization)' == ''">$(MSBuildThisFileDirectory)config
+ <_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisNetAnalyzersGlobalization Condition="'$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersGlobalization)' != ''">$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersGlobalization)\$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersGlobalization)
+
+
+
+
+
+
+
+
+
+
+
+ $(AnalysisLevel)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelInteroperability), '-(.)*', ''))
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelInteroperability), '$(AnalysisLevelPrefixInteroperability)-', ''))
+
+
+ $(_NoneAnalysisLevel)
+ $(_LatestAnalysisLevel)
+ $(_PreviewAnalysisLevel)
+
+
+ $(AnalysisLevelPrefixInteroperability)
+ $(AnalysisLevelInteroperability)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(EffectiveAnalysisLevelInteroperability), '(.0)*$', ''))
+
+
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersInteroperability>$(AnalysisLevelSuffixInteroperability)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersInteroperability Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersInteroperability)' == ''">$(AnalysisModeInteroperability)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersInteroperability Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersInteroperability)' == 'AllEnabledByDefault'">All
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersInteroperability Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersInteroperability)' == 'AllDisabledByDefault'">None
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersInteroperability Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersInteroperability)' == ''">Default
+
+
+
+ $(CodeAnalysisTreatWarningsAsErrors)
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersInteroperability_WarnAsErrorSuffix Condition="'$(EffectiveCodeAnalysisTreatWarningsAsErrors)' == 'true'">_warnaserror
+
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersInteroperability Condition="'$(MicrosoftCodeAnalysisNetAnalyzersInteroperabilityRulesVersion)' != ''">AnalysisLevelInteroperability_$(MicrosoftCodeAnalysisNetAnalyzersInteroperabilityRulesVersion.Replace(".","_"))_$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersInteroperability)$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersInteroperability_WarnAsErrorSuffix).globalconfig
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersInteroperability>$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersInteroperability.ToLowerInvariant())
+
+ <_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersInteroperability Condition="'$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersInteroperability)' == ''">$(MSBuildThisFileDirectory)config
+ <_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisNetAnalyzersInteroperability Condition="'$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersInteroperability)' != ''">$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersInteroperability)\$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersInteroperability)
+
+
+
+
+
+
+
+
+
+
+
+ $(AnalysisLevel)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelMaintainability), '-(.)*', ''))
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelMaintainability), '$(AnalysisLevelPrefixMaintainability)-', ''))
+
+
+ $(_NoneAnalysisLevel)
+ $(_LatestAnalysisLevel)
+ $(_PreviewAnalysisLevel)
+
+
+ $(AnalysisLevelPrefixMaintainability)
+ $(AnalysisLevelMaintainability)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(EffectiveAnalysisLevelMaintainability), '(.0)*$', ''))
+
+
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersMaintainability>$(AnalysisLevelSuffixMaintainability)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersMaintainability Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersMaintainability)' == ''">$(AnalysisModeMaintainability)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersMaintainability Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersMaintainability)' == 'AllEnabledByDefault'">All
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersMaintainability Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersMaintainability)' == 'AllDisabledByDefault'">None
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersMaintainability Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersMaintainability)' == ''">Default
+
+
+
+ $(CodeAnalysisTreatWarningsAsErrors)
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersMaintainability_WarnAsErrorSuffix Condition="'$(EffectiveCodeAnalysisTreatWarningsAsErrors)' == 'true'">_warnaserror
+
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersMaintainability Condition="'$(MicrosoftCodeAnalysisNetAnalyzersMaintainabilityRulesVersion)' != ''">AnalysisLevelMaintainability_$(MicrosoftCodeAnalysisNetAnalyzersMaintainabilityRulesVersion.Replace(".","_"))_$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersMaintainability)$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersMaintainability_WarnAsErrorSuffix).globalconfig
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersMaintainability>$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersMaintainability.ToLowerInvariant())
+
+ <_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersMaintainability Condition="'$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersMaintainability)' == ''">$(MSBuildThisFileDirectory)config
+ <_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisNetAnalyzersMaintainability Condition="'$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersMaintainability)' != ''">$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersMaintainability)\$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersMaintainability)
+
+
+
+
+
+
+
+
+
+
+
+ $(AnalysisLevel)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelNaming), '-(.)*', ''))
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelNaming), '$(AnalysisLevelPrefixNaming)-', ''))
+
+
+ $(_NoneAnalysisLevel)
+ $(_LatestAnalysisLevel)
+ $(_PreviewAnalysisLevel)
+
+
+ $(AnalysisLevelPrefixNaming)
+ $(AnalysisLevelNaming)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(EffectiveAnalysisLevelNaming), '(.0)*$', ''))
+
+
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersNaming>$(AnalysisLevelSuffixNaming)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersNaming Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersNaming)' == ''">$(AnalysisModeNaming)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersNaming Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersNaming)' == 'AllEnabledByDefault'">All
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersNaming Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersNaming)' == 'AllDisabledByDefault'">None
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersNaming Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersNaming)' == ''">Default
+
+
+
+ $(CodeAnalysisTreatWarningsAsErrors)
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersNaming_WarnAsErrorSuffix Condition="'$(EffectiveCodeAnalysisTreatWarningsAsErrors)' == 'true'">_warnaserror
+
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersNaming Condition="'$(MicrosoftCodeAnalysisNetAnalyzersNamingRulesVersion)' != ''">AnalysisLevelNaming_$(MicrosoftCodeAnalysisNetAnalyzersNamingRulesVersion.Replace(".","_"))_$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersNaming)$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersNaming_WarnAsErrorSuffix).globalconfig
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersNaming>$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersNaming.ToLowerInvariant())
+
+ <_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersNaming Condition="'$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersNaming)' == ''">$(MSBuildThisFileDirectory)config
+ <_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisNetAnalyzersNaming Condition="'$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersNaming)' != ''">$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersNaming)\$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersNaming)
+
+
+
+
+
+
+
+
+
+
+
+ $(AnalysisLevel)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelPerformance), '-(.)*', ''))
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelPerformance), '$(AnalysisLevelPrefixPerformance)-', ''))
+
+
+ $(_NoneAnalysisLevel)
+ $(_LatestAnalysisLevel)
+ $(_PreviewAnalysisLevel)
+
+
+ $(AnalysisLevelPrefixPerformance)
+ $(AnalysisLevelPerformance)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(EffectiveAnalysisLevelPerformance), '(.0)*$', ''))
+
+
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersPerformance>$(AnalysisLevelSuffixPerformance)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersPerformance Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersPerformance)' == ''">$(AnalysisModePerformance)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersPerformance Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersPerformance)' == 'AllEnabledByDefault'">All
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersPerformance Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersPerformance)' == 'AllDisabledByDefault'">None
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersPerformance Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersPerformance)' == ''">Default
+
+
+
+ $(CodeAnalysisTreatWarningsAsErrors)
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersPerformance_WarnAsErrorSuffix Condition="'$(EffectiveCodeAnalysisTreatWarningsAsErrors)' == 'true'">_warnaserror
+
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersPerformance Condition="'$(MicrosoftCodeAnalysisNetAnalyzersPerformanceRulesVersion)' != ''">AnalysisLevelPerformance_$(MicrosoftCodeAnalysisNetAnalyzersPerformanceRulesVersion.Replace(".","_"))_$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersPerformance)$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersPerformance_WarnAsErrorSuffix).globalconfig
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersPerformance>$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersPerformance.ToLowerInvariant())
+
+ <_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersPerformance Condition="'$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersPerformance)' == ''">$(MSBuildThisFileDirectory)config
+ <_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisNetAnalyzersPerformance Condition="'$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersPerformance)' != ''">$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersPerformance)\$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersPerformance)
+
+
+
+
+
+
+
+
+
+
+
+ $(AnalysisLevel)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelReliability), '-(.)*', ''))
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelReliability), '$(AnalysisLevelPrefixReliability)-', ''))
+
+
+ $(_NoneAnalysisLevel)
+ $(_LatestAnalysisLevel)
+ $(_PreviewAnalysisLevel)
+
+
+ $(AnalysisLevelPrefixReliability)
+ $(AnalysisLevelReliability)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(EffectiveAnalysisLevelReliability), '(.0)*$', ''))
+
+
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersReliability>$(AnalysisLevelSuffixReliability)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersReliability Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersReliability)' == ''">$(AnalysisModeReliability)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersReliability Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersReliability)' == 'AllEnabledByDefault'">All
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersReliability Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersReliability)' == 'AllDisabledByDefault'">None
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersReliability Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersReliability)' == ''">Default
+
+
+
+ $(CodeAnalysisTreatWarningsAsErrors)
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersReliability_WarnAsErrorSuffix Condition="'$(EffectiveCodeAnalysisTreatWarningsAsErrors)' == 'true'">_warnaserror
+
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersReliability Condition="'$(MicrosoftCodeAnalysisNetAnalyzersReliabilityRulesVersion)' != ''">AnalysisLevelReliability_$(MicrosoftCodeAnalysisNetAnalyzersReliabilityRulesVersion.Replace(".","_"))_$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersReliability)$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersReliability_WarnAsErrorSuffix).globalconfig
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersReliability>$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersReliability.ToLowerInvariant())
+
+ <_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersReliability Condition="'$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersReliability)' == ''">$(MSBuildThisFileDirectory)config
+ <_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisNetAnalyzersReliability Condition="'$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersReliability)' != ''">$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersReliability)\$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersReliability)
+
+
+
+
+
+
+
+
+
+
+
+ $(AnalysisLevel)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelSecurity), '-(.)*', ''))
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelSecurity), '$(AnalysisLevelPrefixSecurity)-', ''))
+
+
+ $(_NoneAnalysisLevel)
+ $(_LatestAnalysisLevel)
+ $(_PreviewAnalysisLevel)
+
+
+ $(AnalysisLevelPrefixSecurity)
+ $(AnalysisLevelSecurity)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(EffectiveAnalysisLevelSecurity), '(.0)*$', ''))
+
+
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersSecurity>$(AnalysisLevelSuffixSecurity)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersSecurity Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersSecurity)' == ''">$(AnalysisModeSecurity)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersSecurity Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersSecurity)' == 'AllEnabledByDefault'">All
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersSecurity Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersSecurity)' == 'AllDisabledByDefault'">None
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersSecurity Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersSecurity)' == ''">Default
+
+
+
+ $(CodeAnalysisTreatWarningsAsErrors)
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersSecurity_WarnAsErrorSuffix Condition="'$(EffectiveCodeAnalysisTreatWarningsAsErrors)' == 'true'">_warnaserror
+
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersSecurity Condition="'$(MicrosoftCodeAnalysisNetAnalyzersSecurityRulesVersion)' != ''">AnalysisLevelSecurity_$(MicrosoftCodeAnalysisNetAnalyzersSecurityRulesVersion.Replace(".","_"))_$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersSecurity)$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersSecurity_WarnAsErrorSuffix).globalconfig
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersSecurity>$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersSecurity.ToLowerInvariant())
+
+ <_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersSecurity Condition="'$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersSecurity)' == ''">$(MSBuildThisFileDirectory)config
+ <_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisNetAnalyzersSecurity Condition="'$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersSecurity)' != ''">$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersSecurity)\$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersSecurity)
+
+
+
+
+
+
+
+
+
+
+
+ $(AnalysisLevel)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelUsage), '-(.)*', ''))
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelUsage), '$(AnalysisLevelPrefixUsage)-', ''))
+
+
+ $(_NoneAnalysisLevel)
+ $(_LatestAnalysisLevel)
+ $(_PreviewAnalysisLevel)
+
+
+ $(AnalysisLevelPrefixUsage)
+ $(AnalysisLevelUsage)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(EffectiveAnalysisLevelUsage), '(.0)*$', ''))
+
+
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersUsage>$(AnalysisLevelSuffixUsage)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersUsage Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersUsage)' == ''">$(AnalysisModeUsage)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersUsage Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersUsage)' == 'AllEnabledByDefault'">All
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersUsage Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersUsage)' == 'AllDisabledByDefault'">None
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersUsage Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersUsage)' == ''">Default
+
+
+
+ $(CodeAnalysisTreatWarningsAsErrors)
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersUsage_WarnAsErrorSuffix Condition="'$(EffectiveCodeAnalysisTreatWarningsAsErrors)' == 'true'">_warnaserror
+
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersUsage Condition="'$(MicrosoftCodeAnalysisNetAnalyzersUsageRulesVersion)' != ''">AnalysisLevelUsage_$(MicrosoftCodeAnalysisNetAnalyzersUsageRulesVersion.Replace(".","_"))_$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisNetAnalyzersUsage)$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersUsage_WarnAsErrorSuffix).globalconfig
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersUsage>$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersUsage.ToLowerInvariant())
+
+ <_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersUsage Condition="'$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersUsage)' == ''">$(MSBuildThisFileDirectory)config
+ <_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisNetAnalyzersUsage Condition="'$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersUsage)' != ''">$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisNetAnalyzersUsage)\$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisNetAnalyzersUsage)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_SupportedPlatformList>@(SupportedPlatform, ',')
+
+
+
+
+
+
+
+
+
+
+ $(CodeAnalysisTreatWarningsAsErrors)
+ $(WarningsNotAsErrors);$(CodeAnalysisRuleIds)
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..47b5df118614ad6c728de5571f45e121c896316d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_5_all_warnaserror.globalconfig
@@ -0,0 +1,870 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Rules from '5.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: Rules with enabled-by-default state from '5.0' release with 'All' analysis mode. Rules that are first released in a version later than '5.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -100
+
+
+# CA1000: Do not declare static members on generic types
+dotnet_diagnostic.CA1000.severity = error
+
+# CA1001: Types that own disposable fields should be disposable
+dotnet_diagnostic.CA1001.severity = error
+
+# CA1002: Do not expose generic lists
+dotnet_diagnostic.CA1002.severity = error
+
+# CA1003: Use generic event handler instances
+dotnet_diagnostic.CA1003.severity = error
+
+# CA1008: Enums should have zero value
+dotnet_diagnostic.CA1008.severity = error
+
+# CA1010: Generic interface should also be implemented
+dotnet_diagnostic.CA1010.severity = error
+
+# CA1012: Abstract types should not have public constructors
+dotnet_diagnostic.CA1012.severity = error
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = error
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = error
+
+# CA1019: Define accessors for attribute arguments
+dotnet_diagnostic.CA1019.severity = error
+
+# CA1024: Use properties where appropriate
+dotnet_diagnostic.CA1024.severity = error
+
+# CA1027: Mark enums with FlagsAttribute
+dotnet_diagnostic.CA1027.severity = error
+
+# CA1028: Enum Storage should be Int32
+dotnet_diagnostic.CA1028.severity = error
+
+# CA1030: Use events where appropriate
+dotnet_diagnostic.CA1030.severity = error
+
+# CA1031: Do not catch general exception types
+dotnet_diagnostic.CA1031.severity = error
+
+# CA1032: Implement standard exception constructors
+dotnet_diagnostic.CA1032.severity = error
+
+# CA1033: Interface methods should be callable by child types
+dotnet_diagnostic.CA1033.severity = error
+
+# CA1034: Nested types should not be visible
+dotnet_diagnostic.CA1034.severity = error
+
+# CA1036: Override methods on comparable types
+dotnet_diagnostic.CA1036.severity = error
+
+# CA1040: Avoid empty interfaces
+dotnet_diagnostic.CA1040.severity = error
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = error
+
+# CA1043: Use Integral Or String Argument For Indexers
+dotnet_diagnostic.CA1043.severity = error
+
+# CA1044: Properties should not be write only
+dotnet_diagnostic.CA1044.severity = error
+
+# CA1046: Do not overload equality operator on reference types
+dotnet_diagnostic.CA1046.severity = error
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = error
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = error
+
+# CA1051: Do not declare visible instance fields
+dotnet_diagnostic.CA1051.severity = error
+
+# CA1052: Static holder types should be Static or NotInheritable
+dotnet_diagnostic.CA1052.severity = error
+
+# CA1054: URI-like parameters should not be strings
+dotnet_diagnostic.CA1054.severity = error
+
+# CA1055: URI-like return values should not be strings
+dotnet_diagnostic.CA1055.severity = error
+
+# CA1056: URI-like properties should not be strings
+dotnet_diagnostic.CA1056.severity = error
+
+# CA1058: Types should not extend certain base types
+dotnet_diagnostic.CA1058.severity = error
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = error
+
+# CA1062: Validate arguments of public methods
+dotnet_diagnostic.CA1062.severity = error
+
+# CA1063: Implement IDisposable Correctly
+dotnet_diagnostic.CA1063.severity = error
+
+# CA1064: Exceptions should be public
+dotnet_diagnostic.CA1064.severity = error
+
+# CA1065: Do not raise exceptions in unexpected locations
+dotnet_diagnostic.CA1065.severity = error
+
+# CA1066: Implement IEquatable when overriding Object.Equals
+dotnet_diagnostic.CA1066.severity = error
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = error
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = error
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = error
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = error
+
+# CA1200: Avoid using cref tags with a prefix
+dotnet_diagnostic.CA1200.severity = error
+
+# CA1303: Do not pass literals as localized parameters
+dotnet_diagnostic.CA1303.severity = error
+
+# CA1304: Specify CultureInfo
+dotnet_diagnostic.CA1304.severity = error
+
+# CA1305: Specify IFormatProvider
+dotnet_diagnostic.CA1305.severity = error
+
+# CA1307: Specify StringComparison for clarity
+dotnet_diagnostic.CA1307.severity = error
+
+# CA1308: Normalize strings to uppercase
+dotnet_diagnostic.CA1308.severity = error
+
+# CA1309: Use ordinal string comparison
+dotnet_diagnostic.CA1309.severity = error
+
+# CA1310: Specify StringComparison for correctness
+dotnet_diagnostic.CA1310.severity = error
+
+# CA1311: Specify a culture or use an invariant version
+dotnet_diagnostic.CA1311.severity = none
+
+# CA1401: P/Invokes should not be visible
+dotnet_diagnostic.CA1401.severity = error
+
+# CA1416: Validate platform compatibility
+dotnet_diagnostic.CA1416.severity = error
+
+# CA1417: Do not use 'OutAttribute' on string parameters for P/Invokes
+dotnet_diagnostic.CA1417.severity = error
+
+# CA1418: Use valid platform string
+dotnet_diagnostic.CA1418.severity = none
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+dotnet_diagnostic.CA1419.severity = none
+
+# CA1420: Property, type, or attribute requires runtime marshalling
+dotnet_diagnostic.CA1420.severity = none
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = none
+
+# CA1422: Validate platform compatibility
+dotnet_diagnostic.CA1422.severity = none
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = error
+
+# CA1508: Avoid dead conditional code
+dotnet_diagnostic.CA1508.severity = error
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = none
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = none
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = none
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = none
+
+# CA1700: Do not name enum values 'Reserved'
+dotnet_diagnostic.CA1700.severity = error
+
+# CA1707: Identifiers should not contain underscores
+dotnet_diagnostic.CA1707.severity = error
+
+# CA1708: Identifiers should differ by more than case
+dotnet_diagnostic.CA1708.severity = error
+
+# CA1710: Identifiers should have correct suffix
+dotnet_diagnostic.CA1710.severity = error
+
+# CA1711: Identifiers should not have incorrect suffix
+dotnet_diagnostic.CA1711.severity = error
+
+# CA1712: Do not prefix enum values with type name
+dotnet_diagnostic.CA1712.severity = error
+
+# CA1713: Events should not have 'Before' or 'After' prefix
+dotnet_diagnostic.CA1713.severity = error
+
+# CA1715: Identifiers should have correct prefix
+dotnet_diagnostic.CA1715.severity = error
+
+# CA1716: Identifiers should not match keywords
+dotnet_diagnostic.CA1716.severity = error
+
+# CA1720: Identifier contains type name
+dotnet_diagnostic.CA1720.severity = error
+
+# CA1721: Property names should not match get methods
+dotnet_diagnostic.CA1721.severity = error
+
+# CA1724: Type names should not match namespaces
+dotnet_diagnostic.CA1724.severity = error
+
+# CA1725: Parameter names should match base declaration
+dotnet_diagnostic.CA1725.severity = error
+
+# CA1727: Use PascalCase for named placeholders
+dotnet_diagnostic.CA1727.severity = none
+
+# CA1802: Use literals where appropriate
+dotnet_diagnostic.CA1802.severity = error
+
+# CA1805: Do not initialize unnecessarily
+dotnet_diagnostic.CA1805.severity = error
+
+# CA1806: Do not ignore method results
+dotnet_diagnostic.CA1806.severity = error
+
+# CA1810: Initialize reference type static fields inline
+dotnet_diagnostic.CA1810.severity = error
+
+# CA1812: Avoid uninstantiated internal classes
+dotnet_diagnostic.CA1812.severity = error
+
+# CA1813: Avoid unsealed attributes
+dotnet_diagnostic.CA1813.severity = error
+
+# CA1814: Prefer jagged arrays over multidimensional
+dotnet_diagnostic.CA1814.severity = error
+
+# CA1815: Override equals and operator equals on value types
+dotnet_diagnostic.CA1815.severity = error
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = error
+
+# CA1819: Properties should not return arrays
+dotnet_diagnostic.CA1819.severity = error
+
+# CA1820: Test for empty strings using string length
+dotnet_diagnostic.CA1820.severity = error
+
+# CA1821: Remove empty Finalizers
+dotnet_diagnostic.CA1821.severity = error
+
+# CA1822: Mark members as static
+dotnet_diagnostic.CA1822.severity = error
+
+# CA1823: Avoid unused private fields
+dotnet_diagnostic.CA1823.severity = error
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+dotnet_diagnostic.CA1824.severity = error
+
+# CA1825: Avoid zero-length array allocations
+dotnet_diagnostic.CA1825.severity = error
+
+# CA1826: Do not use Enumerable methods on indexable collections
+dotnet_diagnostic.CA1826.severity = error
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+dotnet_diagnostic.CA1827.severity = error
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+dotnet_diagnostic.CA1828.severity = error
+
+# CA1829: Use Length/Count property instead of Count() when available
+dotnet_diagnostic.CA1829.severity = error
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+dotnet_diagnostic.CA1830.severity = error
+
+# CA1831: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1831.severity = error
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1832.severity = error
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1833.severity = error
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+dotnet_diagnostic.CA1834.severity = error
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+dotnet_diagnostic.CA1835.severity = error
+
+# CA1836: Prefer IsEmpty over Count
+dotnet_diagnostic.CA1836.severity = error
+
+# CA1837: Use 'Environment.ProcessId'
+dotnet_diagnostic.CA1837.severity = error
+
+# CA1838: Avoid 'StringBuilder' parameters for P/Invokes
+dotnet_diagnostic.CA1838.severity = error
+
+# CA1839: Use 'Environment.ProcessPath'
+dotnet_diagnostic.CA1839.severity = none
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+dotnet_diagnostic.CA1840.severity = none
+
+# CA1841: Prefer Dictionary.Contains methods
+dotnet_diagnostic.CA1841.severity = none
+
+# CA1842: Do not use 'WhenAll' with a single task
+dotnet_diagnostic.CA1842.severity = none
+
+# CA1843: Do not use 'WaitAll' with a single task
+dotnet_diagnostic.CA1843.severity = none
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+dotnet_diagnostic.CA1844.severity = none
+
+# CA1845: Use span-based 'string.Concat'
+dotnet_diagnostic.CA1845.severity = none
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+dotnet_diagnostic.CA1846.severity = none
+
+# CA1847: Use char literal for a single character lookup
+dotnet_diagnostic.CA1847.severity = none
+
+# CA1848: Use the LoggerMessage delegates
+dotnet_diagnostic.CA1848.severity = none
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = none
+
+# CA1852: Seal internal types
+dotnet_diagnostic.CA1852.severity = none
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = none
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = none
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = none
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+dotnet_diagnostic.CA1856.severity = none
+
+# CA1857: A constant is expected for the parameter
+dotnet_diagnostic.CA1857.severity = none
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = none
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = none
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = none
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = none
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = none
+
+# CA1863: Use 'CompositeFormat'
+dotnet_diagnostic.CA1863.severity = none
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = none
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = none
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = none
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = none
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = none
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = none
+
+# CA2000: Dispose objects before losing scope
+dotnet_diagnostic.CA2000.severity = error
+
+# CA2002: Do not lock on objects with weak identity
+dotnet_diagnostic.CA2002.severity = error
+
+# CA2007: Consider calling ConfigureAwait on the awaited task
+dotnet_diagnostic.CA2007.severity = error
+
+# CA2008: Do not create tasks without passing a TaskScheduler
+dotnet_diagnostic.CA2008.severity = error
+
+# CA2009: Do not call ToImmutableCollection on an ImmutableCollection value
+dotnet_diagnostic.CA2009.severity = error
+
+# CA2011: Avoid infinite recursion
+dotnet_diagnostic.CA2011.severity = error
+
+# CA2012: Use ValueTasks correctly
+dotnet_diagnostic.CA2012.severity = error
+
+# CA2013: Do not use ReferenceEquals with value types
+dotnet_diagnostic.CA2013.severity = error
+
+# CA2014: Do not use stackalloc in loops
+dotnet_diagnostic.CA2014.severity = error
+
+# CA2015: Do not define finalizers for types derived from MemoryManager
+dotnet_diagnostic.CA2015.severity = error
+
+# CA2016: Forward the 'CancellationToken' parameter to methods
+dotnet_diagnostic.CA2016.severity = error
+
+# CA2017: Parameter count mismatch
+dotnet_diagnostic.CA2017.severity = none
+
+# CA2018: 'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument
+dotnet_diagnostic.CA2018.severity = none
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = none
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = none
+
+# CA2021: Do not call Enumerable.Cast or Enumerable.OfType with incompatible types
+dotnet_diagnostic.CA2021.severity = none
+
+# CA2100: Review SQL queries for security vulnerabilities
+dotnet_diagnostic.CA2100.severity = error
+
+# CA2101: Specify marshaling for P/Invoke string arguments
+dotnet_diagnostic.CA2101.severity = error
+
+# CA2119: Seal methods that satisfy private interfaces
+dotnet_diagnostic.CA2119.severity = error
+
+# CA2153: Do Not Catch Corrupted State Exceptions
+dotnet_diagnostic.CA2153.severity = error
+
+# CA2200: Rethrow to preserve stack details
+dotnet_diagnostic.CA2200.severity = error
+
+# CA2201: Do not raise reserved exception types
+dotnet_diagnostic.CA2201.severity = error
+
+# CA2207: Initialize value type static fields inline
+dotnet_diagnostic.CA2207.severity = error
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = error
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = error
+
+# CA2213: Disposable fields should be disposed
+dotnet_diagnostic.CA2213.severity = error
+
+# CA2214: Do not call overridable methods in constructors
+dotnet_diagnostic.CA2214.severity = error
+
+# CA2215: Dispose methods should call base class dispose
+dotnet_diagnostic.CA2215.severity = error
+
+# CA2216: Disposable types should declare finalizer
+dotnet_diagnostic.CA2216.severity = error
+
+# CA2217: Do not mark enums with FlagsAttribute
+dotnet_diagnostic.CA2217.severity = error
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = error
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = error
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = error
+
+# CA2225: Operator overloads have named alternates
+dotnet_diagnostic.CA2225.severity = error
+
+# CA2226: Operators should have symmetrical overloads
+dotnet_diagnostic.CA2226.severity = error
+
+# CA2227: Collection properties should be read only
+dotnet_diagnostic.CA2227.severity = error
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = error
+
+# CA2234: Pass system uri objects instead of strings
+dotnet_diagnostic.CA2234.severity = error
+
+# CA2235: Mark all non-serializable fields
+dotnet_diagnostic.CA2235.severity = error
+
+# CA2237: Mark ISerializable types with serializable
+dotnet_diagnostic.CA2237.severity = error
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = error
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = error
+
+# CA2243: Attribute string literals should parse correctly
+dotnet_diagnostic.CA2243.severity = error
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = error
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = error
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = error
+
+# CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum
+dotnet_diagnostic.CA2247.severity = error
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = error
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = error
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = none
+
+# CA2251: Use 'string.Equals'
+dotnet_diagnostic.CA2251.severity = none
+
+# CA2252: This API requires opting into preview features
+dotnet_diagnostic.CA2252.severity = none
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = none
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = none
+
+# CA2255: The 'ModuleInitializer' attribute should not be used in libraries
+dotnet_diagnostic.CA2255.severity = none
+
+# CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface
+dotnet_diagnostic.CA2256.severity = none
+
+# CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'
+dotnet_diagnostic.CA2257.severity = none
+
+# CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported
+dotnet_diagnostic.CA2258.severity = none
+
+# CA2259: 'ThreadStatic' only affects static fields
+dotnet_diagnostic.CA2259.severity = none
+
+# CA2260: Use correct type parameter
+dotnet_diagnostic.CA2260.severity = none
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = none
+
+# CA2300: Do not use insecure deserializer BinaryFormatter
+dotnet_diagnostic.CA2300.severity = error
+
+# CA2301: Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder
+dotnet_diagnostic.CA2301.severity = error
+
+# CA2302: Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize
+dotnet_diagnostic.CA2302.severity = error
+
+# CA2305: Do not use insecure deserializer LosFormatter
+dotnet_diagnostic.CA2305.severity = error
+
+# CA2310: Do not use insecure deserializer NetDataContractSerializer
+dotnet_diagnostic.CA2310.severity = error
+
+# CA2311: Do not deserialize without first setting NetDataContractSerializer.Binder
+dotnet_diagnostic.CA2311.severity = error
+
+# CA2312: Ensure NetDataContractSerializer.Binder is set before deserializing
+dotnet_diagnostic.CA2312.severity = error
+
+# CA2315: Do not use insecure deserializer ObjectStateFormatter
+dotnet_diagnostic.CA2315.severity = error
+
+# CA2321: Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver
+dotnet_diagnostic.CA2321.severity = error
+
+# CA2322: Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing
+dotnet_diagnostic.CA2322.severity = error
+
+# CA2326: Do not use TypeNameHandling values other than None
+dotnet_diagnostic.CA2326.severity = error
+
+# CA2327: Do not use insecure JsonSerializerSettings
+dotnet_diagnostic.CA2327.severity = error
+
+# CA2328: Ensure that JsonSerializerSettings are secure
+dotnet_diagnostic.CA2328.severity = error
+
+# CA2329: Do not deserialize with JsonSerializer using an insecure configuration
+dotnet_diagnostic.CA2329.severity = error
+
+# CA2330: Ensure that JsonSerializer has a secure configuration when deserializing
+dotnet_diagnostic.CA2330.severity = error
+
+# CA2350: Do not use DataTable.ReadXml() with untrusted data
+dotnet_diagnostic.CA2350.severity = error
+
+# CA2351: Do not use DataSet.ReadXml() with untrusted data
+dotnet_diagnostic.CA2351.severity = error
+
+# CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2352.severity = error
+
+# CA2353: Unsafe DataSet or DataTable in serializable type
+dotnet_diagnostic.CA2353.severity = error
+
+# CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2354.severity = error
+
+# CA2355: Unsafe DataSet or DataTable type found in deserializable object graph
+dotnet_diagnostic.CA2355.severity = error
+
+# CA2356: Unsafe DataSet or DataTable type in web deserializable object graph
+dotnet_diagnostic.CA2356.severity = error
+
+# CA2361: Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data
+dotnet_diagnostic.CA2361.severity = error
+
+# CA2362: Unsafe DataSet or DataTable in auto-generated serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2362.severity = error
+
+# CA3001: Review code for SQL injection vulnerabilities
+dotnet_diagnostic.CA3001.severity = error
+
+# CA3002: Review code for XSS vulnerabilities
+dotnet_diagnostic.CA3002.severity = error
+
+# CA3003: Review code for file path injection vulnerabilities
+dotnet_diagnostic.CA3003.severity = error
+
+# CA3004: Review code for information disclosure vulnerabilities
+dotnet_diagnostic.CA3004.severity = error
+
+# CA3005: Review code for LDAP injection vulnerabilities
+dotnet_diagnostic.CA3005.severity = error
+
+# CA3006: Review code for process command injection vulnerabilities
+dotnet_diagnostic.CA3006.severity = error
+
+# CA3007: Review code for open redirect vulnerabilities
+dotnet_diagnostic.CA3007.severity = error
+
+# CA3008: Review code for XPath injection vulnerabilities
+dotnet_diagnostic.CA3008.severity = error
+
+# CA3009: Review code for XML injection vulnerabilities
+dotnet_diagnostic.CA3009.severity = error
+
+# CA3010: Review code for XAML injection vulnerabilities
+dotnet_diagnostic.CA3010.severity = error
+
+# CA3011: Review code for DLL injection vulnerabilities
+dotnet_diagnostic.CA3011.severity = error
+
+# CA3012: Review code for regex injection vulnerabilities
+dotnet_diagnostic.CA3012.severity = error
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = error
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = error
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = error
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = error
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = error
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = error
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = error
+
+# CA5358: Review cipher mode usage with cryptography experts
+dotnet_diagnostic.CA5358.severity = error
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = error
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = error
+
+# CA5361: Do Not Disable SChannel Use of Strong Crypto
+dotnet_diagnostic.CA5361.severity = error
+
+# CA5362: Potential reference cycle in deserialized object graph
+dotnet_diagnostic.CA5362.severity = error
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = error
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = error
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = error
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = error
+
+# CA5367: Do Not Serialize Types With Pointer Fields
+dotnet_diagnostic.CA5367.severity = error
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = error
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = error
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = error
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = error
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = error
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = error
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = error
+
+# CA5375: Do Not Use Account Shared Access Signature
+dotnet_diagnostic.CA5375.severity = error
+
+# CA5376: Use SharedAccessProtocol HttpsOnly
+dotnet_diagnostic.CA5376.severity = error
+
+# CA5377: Use Container Level Access Policy
+dotnet_diagnostic.CA5377.severity = error
+
+# CA5378: Do not disable ServicePointManagerSecurityProtocols
+dotnet_diagnostic.CA5378.severity = error
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = error
+
+# CA5380: Do Not Add Certificates To Root Store
+dotnet_diagnostic.CA5380.severity = error
+
+# CA5381: Ensure Certificates Are Not Added To Root Store
+dotnet_diagnostic.CA5381.severity = error
+
+# CA5382: Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5382.severity = error
+
+# CA5383: Ensure Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5383.severity = error
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = error
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = error
+
+# CA5386: Avoid hardcoding SecurityProtocolType value
+dotnet_diagnostic.CA5386.severity = error
+
+# CA5387: Do Not Use Weak Key Derivation Function With Insufficient Iteration Count
+dotnet_diagnostic.CA5387.severity = error
+
+# CA5388: Ensure Sufficient Iteration Count When Using Weak Key Derivation Function
+dotnet_diagnostic.CA5388.severity = error
+
+# CA5389: Do Not Add Archive Item's Path To The Target File System Path
+dotnet_diagnostic.CA5389.severity = error
+
+# CA5390: Do not hard-code encryption key
+dotnet_diagnostic.CA5390.severity = error
+
+# CA5391: Use antiforgery tokens in ASP.NET Core MVC controllers
+dotnet_diagnostic.CA5391.severity = error
+
+# CA5392: Use DefaultDllImportSearchPaths attribute for P/Invokes
+dotnet_diagnostic.CA5392.severity = error
+
+# CA5393: Do not use unsafe DllImportSearchPath value
+dotnet_diagnostic.CA5393.severity = error
+
+# CA5394: Do not use insecure randomness
+dotnet_diagnostic.CA5394.severity = error
+
+# CA5395: Miss HttpVerb attribute for action methods
+dotnet_diagnostic.CA5395.severity = error
+
+# CA5396: Set HttpOnly to true for HttpCookie
+dotnet_diagnostic.CA5396.severity = error
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = error
+
+# CA5398: Avoid hardcoded SslProtocols values
+dotnet_diagnostic.CA5398.severity = error
+
+# CA5399: HttpClients should enable certificate revocation list checks
+dotnet_diagnostic.CA5399.severity = error
+
+# CA5400: Ensure HttpClient certificate revocation list check is not disabled
+dotnet_diagnostic.CA5400.severity = error
+
+# CA5401: Do not use CreateEncryptor with non-default IV
+dotnet_diagnostic.CA5401.severity = error
+
+# CA5402: Use CreateEncryptor with the default IV
+dotnet_diagnostic.CA5402.severity = error
+
+# CA5403: Do not hard-code certificate
+dotnet_diagnostic.CA5403.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..043d78b8cebc4e82e01700aeff220b06d11a611f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_all_warnaserror.globalconfig
@@ -0,0 +1,867 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Rules from '6.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: Rules with enabled-by-default state from '6.0' release with 'All' analysis mode. Rules that are first released in a version later than '6.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -100
+
+
+# CA1000: Do not declare static members on generic types
+dotnet_diagnostic.CA1000.severity = error
+
+# CA1001: Types that own disposable fields should be disposable
+dotnet_diagnostic.CA1001.severity = error
+
+# CA1002: Do not expose generic lists
+dotnet_diagnostic.CA1002.severity = error
+
+# CA1003: Use generic event handler instances
+dotnet_diagnostic.CA1003.severity = error
+
+# CA1008: Enums should have zero value
+dotnet_diagnostic.CA1008.severity = error
+
+# CA1010: Generic interface should also be implemented
+dotnet_diagnostic.CA1010.severity = error
+
+# CA1012: Abstract types should not have public constructors
+dotnet_diagnostic.CA1012.severity = error
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = error
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = error
+
+# CA1019: Define accessors for attribute arguments
+dotnet_diagnostic.CA1019.severity = error
+
+# CA1024: Use properties where appropriate
+dotnet_diagnostic.CA1024.severity = error
+
+# CA1027: Mark enums with FlagsAttribute
+dotnet_diagnostic.CA1027.severity = error
+
+# CA1028: Enum Storage should be Int32
+dotnet_diagnostic.CA1028.severity = error
+
+# CA1030: Use events where appropriate
+dotnet_diagnostic.CA1030.severity = error
+
+# CA1031: Do not catch general exception types
+dotnet_diagnostic.CA1031.severity = error
+
+# CA1032: Implement standard exception constructors
+dotnet_diagnostic.CA1032.severity = error
+
+# CA1033: Interface methods should be callable by child types
+dotnet_diagnostic.CA1033.severity = error
+
+# CA1034: Nested types should not be visible
+dotnet_diagnostic.CA1034.severity = error
+
+# CA1036: Override methods on comparable types
+dotnet_diagnostic.CA1036.severity = error
+
+# CA1040: Avoid empty interfaces
+dotnet_diagnostic.CA1040.severity = error
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = error
+
+# CA1043: Use Integral Or String Argument For Indexers
+dotnet_diagnostic.CA1043.severity = error
+
+# CA1044: Properties should not be write only
+dotnet_diagnostic.CA1044.severity = error
+
+# CA1046: Do not overload equality operator on reference types
+dotnet_diagnostic.CA1046.severity = error
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = error
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = error
+
+# CA1051: Do not declare visible instance fields
+dotnet_diagnostic.CA1051.severity = error
+
+# CA1052: Static holder types should be Static or NotInheritable
+dotnet_diagnostic.CA1052.severity = error
+
+# CA1054: URI-like parameters should not be strings
+dotnet_diagnostic.CA1054.severity = error
+
+# CA1055: URI-like return values should not be strings
+dotnet_diagnostic.CA1055.severity = error
+
+# CA1056: URI-like properties should not be strings
+dotnet_diagnostic.CA1056.severity = error
+
+# CA1058: Types should not extend certain base types
+dotnet_diagnostic.CA1058.severity = error
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = error
+
+# CA1062: Validate arguments of public methods
+dotnet_diagnostic.CA1062.severity = error
+
+# CA1063: Implement IDisposable Correctly
+dotnet_diagnostic.CA1063.severity = error
+
+# CA1064: Exceptions should be public
+dotnet_diagnostic.CA1064.severity = error
+
+# CA1065: Do not raise exceptions in unexpected locations
+dotnet_diagnostic.CA1065.severity = error
+
+# CA1066: Implement IEquatable when overriding Object.Equals
+dotnet_diagnostic.CA1066.severity = error
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = error
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = error
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = error
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = error
+
+# CA1200: Avoid using cref tags with a prefix
+dotnet_diagnostic.CA1200.severity = error
+
+# CA1303: Do not pass literals as localized parameters
+dotnet_diagnostic.CA1303.severity = error
+
+# CA1304: Specify CultureInfo
+dotnet_diagnostic.CA1304.severity = error
+
+# CA1305: Specify IFormatProvider
+dotnet_diagnostic.CA1305.severity = error
+
+# CA1307: Specify StringComparison for clarity
+dotnet_diagnostic.CA1307.severity = error
+
+# CA1308: Normalize strings to uppercase
+dotnet_diagnostic.CA1308.severity = error
+
+# CA1309: Use ordinal string comparison
+dotnet_diagnostic.CA1309.severity = error
+
+# CA1310: Specify StringComparison for correctness
+dotnet_diagnostic.CA1310.severity = error
+
+# CA1311: Specify a culture or use an invariant version
+dotnet_diagnostic.CA1311.severity = none
+
+# CA1401: P/Invokes should not be visible
+dotnet_diagnostic.CA1401.severity = error
+
+# CA1416: Validate platform compatibility
+dotnet_diagnostic.CA1416.severity = error
+
+# CA1417: Do not use 'OutAttribute' on string parameters for P/Invokes
+dotnet_diagnostic.CA1417.severity = error
+
+# CA1418: Use valid platform string
+dotnet_diagnostic.CA1418.severity = error
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+dotnet_diagnostic.CA1419.severity = error
+
+# CA1420: Property, type, or attribute requires runtime marshalling
+dotnet_diagnostic.CA1420.severity = none
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = none
+
+# CA1422: Validate platform compatibility
+dotnet_diagnostic.CA1422.severity = none
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = error
+
+# CA1508: Avoid dead conditional code
+dotnet_diagnostic.CA1508.severity = error
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = none
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = none
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = none
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = none
+
+# CA1700: Do not name enum values 'Reserved'
+dotnet_diagnostic.CA1700.severity = error
+
+# CA1707: Identifiers should not contain underscores
+dotnet_diagnostic.CA1707.severity = error
+
+# CA1708: Identifiers should differ by more than case
+dotnet_diagnostic.CA1708.severity = error
+
+# CA1710: Identifiers should have correct suffix
+dotnet_diagnostic.CA1710.severity = error
+
+# CA1711: Identifiers should not have incorrect suffix
+dotnet_diagnostic.CA1711.severity = error
+
+# CA1712: Do not prefix enum values with type name
+dotnet_diagnostic.CA1712.severity = error
+
+# CA1713: Events should not have 'Before' or 'After' prefix
+dotnet_diagnostic.CA1713.severity = error
+
+# CA1715: Identifiers should have correct prefix
+dotnet_diagnostic.CA1715.severity = error
+
+# CA1716: Identifiers should not match keywords
+dotnet_diagnostic.CA1716.severity = error
+
+# CA1720: Identifier contains type name
+dotnet_diagnostic.CA1720.severity = error
+
+# CA1721: Property names should not match get methods
+dotnet_diagnostic.CA1721.severity = error
+
+# CA1724: Type names should not match namespaces
+dotnet_diagnostic.CA1724.severity = error
+
+# CA1725: Parameter names should match base declaration
+dotnet_diagnostic.CA1725.severity = error
+
+# CA1727: Use PascalCase for named placeholders
+dotnet_diagnostic.CA1727.severity = error
+
+# CA1802: Use literals where appropriate
+dotnet_diagnostic.CA1802.severity = error
+
+# CA1805: Do not initialize unnecessarily
+dotnet_diagnostic.CA1805.severity = error
+
+# CA1806: Do not ignore method results
+dotnet_diagnostic.CA1806.severity = error
+
+# CA1810: Initialize reference type static fields inline
+dotnet_diagnostic.CA1810.severity = error
+
+# CA1812: Avoid uninstantiated internal classes
+dotnet_diagnostic.CA1812.severity = error
+
+# CA1813: Avoid unsealed attributes
+dotnet_diagnostic.CA1813.severity = error
+
+# CA1814: Prefer jagged arrays over multidimensional
+dotnet_diagnostic.CA1814.severity = error
+
+# CA1815: Override equals and operator equals on value types
+dotnet_diagnostic.CA1815.severity = error
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = error
+
+# CA1819: Properties should not return arrays
+dotnet_diagnostic.CA1819.severity = error
+
+# CA1820: Test for empty strings using string length
+dotnet_diagnostic.CA1820.severity = error
+
+# CA1821: Remove empty Finalizers
+dotnet_diagnostic.CA1821.severity = error
+
+# CA1822: Mark members as static
+dotnet_diagnostic.CA1822.severity = error
+
+# CA1823: Avoid unused private fields
+dotnet_diagnostic.CA1823.severity = error
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+dotnet_diagnostic.CA1824.severity = error
+
+# CA1825: Avoid zero-length array allocations
+dotnet_diagnostic.CA1825.severity = error
+
+# CA1826: Do not use Enumerable methods on indexable collections
+dotnet_diagnostic.CA1826.severity = error
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+dotnet_diagnostic.CA1827.severity = error
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+dotnet_diagnostic.CA1828.severity = error
+
+# CA1829: Use Length/Count property instead of Count() when available
+dotnet_diagnostic.CA1829.severity = error
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+dotnet_diagnostic.CA1830.severity = error
+
+# CA1831: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1831.severity = error
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1832.severity = error
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1833.severity = error
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+dotnet_diagnostic.CA1834.severity = error
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+dotnet_diagnostic.CA1835.severity = error
+
+# CA1836: Prefer IsEmpty over Count
+dotnet_diagnostic.CA1836.severity = error
+
+# CA1837: Use 'Environment.ProcessId'
+dotnet_diagnostic.CA1837.severity = error
+
+# CA1838: Avoid 'StringBuilder' parameters for P/Invokes
+dotnet_diagnostic.CA1838.severity = error
+
+# CA1839: Use 'Environment.ProcessPath'
+dotnet_diagnostic.CA1839.severity = error
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+dotnet_diagnostic.CA1840.severity = error
+
+# CA1841: Prefer Dictionary.Contains methods
+dotnet_diagnostic.CA1841.severity = error
+
+# CA1842: Do not use 'WhenAll' with a single task
+dotnet_diagnostic.CA1842.severity = error
+
+# CA1843: Do not use 'WaitAll' with a single task
+dotnet_diagnostic.CA1843.severity = error
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+dotnet_diagnostic.CA1844.severity = error
+
+# CA1845: Use span-based 'string.Concat'
+dotnet_diagnostic.CA1845.severity = error
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+dotnet_diagnostic.CA1846.severity = error
+
+# CA1847: Use char literal for a single character lookup
+dotnet_diagnostic.CA1847.severity = error
+
+# CA1848: Use the LoggerMessage delegates
+dotnet_diagnostic.CA1848.severity = error
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = none
+
+# CA1852: Seal internal types
+dotnet_diagnostic.CA1852.severity = none
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = none
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = none
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = none
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+dotnet_diagnostic.CA1856.severity = none
+
+# CA1857: A constant is expected for the parameter
+dotnet_diagnostic.CA1857.severity = none
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = none
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = none
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = none
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = none
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = none
+
+# CA1863: Use 'CompositeFormat'
+dotnet_diagnostic.CA1863.severity = none
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = none
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = none
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = none
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = none
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = none
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = none
+
+# CA2000: Dispose objects before losing scope
+dotnet_diagnostic.CA2000.severity = error
+
+# CA2002: Do not lock on objects with weak identity
+dotnet_diagnostic.CA2002.severity = error
+
+# CA2007: Consider calling ConfigureAwait on the awaited task
+dotnet_diagnostic.CA2007.severity = error
+
+# CA2008: Do not create tasks without passing a TaskScheduler
+dotnet_diagnostic.CA2008.severity = error
+
+# CA2009: Do not call ToImmutableCollection on an ImmutableCollection value
+dotnet_diagnostic.CA2009.severity = error
+
+# CA2011: Avoid infinite recursion
+dotnet_diagnostic.CA2011.severity = error
+
+# CA2012: Use ValueTasks correctly
+dotnet_diagnostic.CA2012.severity = error
+
+# CA2013: Do not use ReferenceEquals with value types
+dotnet_diagnostic.CA2013.severity = error
+
+# CA2014: Do not use stackalloc in loops
+dotnet_diagnostic.CA2014.severity = error
+
+# CA2015: Do not define finalizers for types derived from MemoryManager
+dotnet_diagnostic.CA2015.severity = error
+
+# CA2016: Forward the 'CancellationToken' parameter to methods
+dotnet_diagnostic.CA2016.severity = error
+
+# CA2017: Parameter count mismatch
+dotnet_diagnostic.CA2017.severity = error
+
+# CA2018: 'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument
+dotnet_diagnostic.CA2018.severity = error
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = none
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = none
+
+# CA2021: Do not call Enumerable.Cast or Enumerable.OfType with incompatible types
+dotnet_diagnostic.CA2021.severity = none
+
+# CA2100: Review SQL queries for security vulnerabilities
+dotnet_diagnostic.CA2100.severity = error
+
+# CA2101: Specify marshaling for P/Invoke string arguments
+dotnet_diagnostic.CA2101.severity = error
+
+# CA2119: Seal methods that satisfy private interfaces
+dotnet_diagnostic.CA2119.severity = error
+
+# CA2153: Do Not Catch Corrupted State Exceptions
+dotnet_diagnostic.CA2153.severity = error
+
+# CA2200: Rethrow to preserve stack details
+dotnet_diagnostic.CA2200.severity = error
+
+# CA2201: Do not raise reserved exception types
+dotnet_diagnostic.CA2201.severity = error
+
+# CA2207: Initialize value type static fields inline
+dotnet_diagnostic.CA2207.severity = error
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = error
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = error
+
+# CA2213: Disposable fields should be disposed
+dotnet_diagnostic.CA2213.severity = error
+
+# CA2214: Do not call overridable methods in constructors
+dotnet_diagnostic.CA2214.severity = error
+
+# CA2215: Dispose methods should call base class dispose
+dotnet_diagnostic.CA2215.severity = error
+
+# CA2216: Disposable types should declare finalizer
+dotnet_diagnostic.CA2216.severity = error
+
+# CA2217: Do not mark enums with FlagsAttribute
+dotnet_diagnostic.CA2217.severity = error
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = error
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = error
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = error
+
+# CA2225: Operator overloads have named alternates
+dotnet_diagnostic.CA2225.severity = error
+
+# CA2226: Operators should have symmetrical overloads
+dotnet_diagnostic.CA2226.severity = error
+
+# CA2227: Collection properties should be read only
+dotnet_diagnostic.CA2227.severity = error
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = error
+
+# CA2234: Pass system uri objects instead of strings
+dotnet_diagnostic.CA2234.severity = error
+
+# CA2235: Mark all non-serializable fields
+dotnet_diagnostic.CA2235.severity = error
+
+# CA2237: Mark ISerializable types with serializable
+dotnet_diagnostic.CA2237.severity = error
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = error
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = error
+
+# CA2243: Attribute string literals should parse correctly
+dotnet_diagnostic.CA2243.severity = error
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = error
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = error
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = error
+
+# CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum
+dotnet_diagnostic.CA2247.severity = error
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = error
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = error
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = error
+
+# CA2251: Use 'string.Equals'
+dotnet_diagnostic.CA2251.severity = error
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = error
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = error
+
+# CA2255: The 'ModuleInitializer' attribute should not be used in libraries
+dotnet_diagnostic.CA2255.severity = error
+
+# CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface
+dotnet_diagnostic.CA2256.severity = error
+
+# CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'
+dotnet_diagnostic.CA2257.severity = error
+
+# CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported
+dotnet_diagnostic.CA2258.severity = error
+
+# CA2259: 'ThreadStatic' only affects static fields
+dotnet_diagnostic.CA2259.severity = none
+
+# CA2260: Use correct type parameter
+dotnet_diagnostic.CA2260.severity = none
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = none
+
+# CA2300: Do not use insecure deserializer BinaryFormatter
+dotnet_diagnostic.CA2300.severity = error
+
+# CA2301: Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder
+dotnet_diagnostic.CA2301.severity = error
+
+# CA2302: Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize
+dotnet_diagnostic.CA2302.severity = error
+
+# CA2305: Do not use insecure deserializer LosFormatter
+dotnet_diagnostic.CA2305.severity = error
+
+# CA2310: Do not use insecure deserializer NetDataContractSerializer
+dotnet_diagnostic.CA2310.severity = error
+
+# CA2311: Do not deserialize without first setting NetDataContractSerializer.Binder
+dotnet_diagnostic.CA2311.severity = error
+
+# CA2312: Ensure NetDataContractSerializer.Binder is set before deserializing
+dotnet_diagnostic.CA2312.severity = error
+
+# CA2315: Do not use insecure deserializer ObjectStateFormatter
+dotnet_diagnostic.CA2315.severity = error
+
+# CA2321: Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver
+dotnet_diagnostic.CA2321.severity = error
+
+# CA2322: Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing
+dotnet_diagnostic.CA2322.severity = error
+
+# CA2326: Do not use TypeNameHandling values other than None
+dotnet_diagnostic.CA2326.severity = error
+
+# CA2327: Do not use insecure JsonSerializerSettings
+dotnet_diagnostic.CA2327.severity = error
+
+# CA2328: Ensure that JsonSerializerSettings are secure
+dotnet_diagnostic.CA2328.severity = error
+
+# CA2329: Do not deserialize with JsonSerializer using an insecure configuration
+dotnet_diagnostic.CA2329.severity = error
+
+# CA2330: Ensure that JsonSerializer has a secure configuration when deserializing
+dotnet_diagnostic.CA2330.severity = error
+
+# CA2350: Do not use DataTable.ReadXml() with untrusted data
+dotnet_diagnostic.CA2350.severity = error
+
+# CA2351: Do not use DataSet.ReadXml() with untrusted data
+dotnet_diagnostic.CA2351.severity = error
+
+# CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2352.severity = error
+
+# CA2353: Unsafe DataSet or DataTable in serializable type
+dotnet_diagnostic.CA2353.severity = error
+
+# CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2354.severity = error
+
+# CA2355: Unsafe DataSet or DataTable type found in deserializable object graph
+dotnet_diagnostic.CA2355.severity = error
+
+# CA2356: Unsafe DataSet or DataTable type in web deserializable object graph
+dotnet_diagnostic.CA2356.severity = error
+
+# CA2361: Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data
+dotnet_diagnostic.CA2361.severity = error
+
+# CA2362: Unsafe DataSet or DataTable in auto-generated serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2362.severity = error
+
+# CA3001: Review code for SQL injection vulnerabilities
+dotnet_diagnostic.CA3001.severity = error
+
+# CA3002: Review code for XSS vulnerabilities
+dotnet_diagnostic.CA3002.severity = error
+
+# CA3003: Review code for file path injection vulnerabilities
+dotnet_diagnostic.CA3003.severity = error
+
+# CA3004: Review code for information disclosure vulnerabilities
+dotnet_diagnostic.CA3004.severity = error
+
+# CA3005: Review code for LDAP injection vulnerabilities
+dotnet_diagnostic.CA3005.severity = error
+
+# CA3006: Review code for process command injection vulnerabilities
+dotnet_diagnostic.CA3006.severity = error
+
+# CA3007: Review code for open redirect vulnerabilities
+dotnet_diagnostic.CA3007.severity = error
+
+# CA3008: Review code for XPath injection vulnerabilities
+dotnet_diagnostic.CA3008.severity = error
+
+# CA3009: Review code for XML injection vulnerabilities
+dotnet_diagnostic.CA3009.severity = error
+
+# CA3010: Review code for XAML injection vulnerabilities
+dotnet_diagnostic.CA3010.severity = error
+
+# CA3011: Review code for DLL injection vulnerabilities
+dotnet_diagnostic.CA3011.severity = error
+
+# CA3012: Review code for regex injection vulnerabilities
+dotnet_diagnostic.CA3012.severity = error
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = error
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = error
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = error
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = error
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = error
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = error
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = error
+
+# CA5358: Review cipher mode usage with cryptography experts
+dotnet_diagnostic.CA5358.severity = error
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = error
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = error
+
+# CA5361: Do Not Disable SChannel Use of Strong Crypto
+dotnet_diagnostic.CA5361.severity = error
+
+# CA5362: Potential reference cycle in deserialized object graph
+dotnet_diagnostic.CA5362.severity = error
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = error
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = error
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = error
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = error
+
+# CA5367: Do Not Serialize Types With Pointer Fields
+dotnet_diagnostic.CA5367.severity = error
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = error
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = error
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = error
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = error
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = error
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = error
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = error
+
+# CA5375: Do Not Use Account Shared Access Signature
+dotnet_diagnostic.CA5375.severity = error
+
+# CA5376: Use SharedAccessProtocol HttpsOnly
+dotnet_diagnostic.CA5376.severity = error
+
+# CA5377: Use Container Level Access Policy
+dotnet_diagnostic.CA5377.severity = error
+
+# CA5378: Do not disable ServicePointManagerSecurityProtocols
+dotnet_diagnostic.CA5378.severity = error
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = error
+
+# CA5380: Do Not Add Certificates To Root Store
+dotnet_diagnostic.CA5380.severity = error
+
+# CA5381: Ensure Certificates Are Not Added To Root Store
+dotnet_diagnostic.CA5381.severity = error
+
+# CA5382: Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5382.severity = error
+
+# CA5383: Ensure Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5383.severity = error
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = error
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = error
+
+# CA5386: Avoid hardcoding SecurityProtocolType value
+dotnet_diagnostic.CA5386.severity = error
+
+# CA5387: Do Not Use Weak Key Derivation Function With Insufficient Iteration Count
+dotnet_diagnostic.CA5387.severity = error
+
+# CA5388: Ensure Sufficient Iteration Count When Using Weak Key Derivation Function
+dotnet_diagnostic.CA5388.severity = error
+
+# CA5389: Do Not Add Archive Item's Path To The Target File System Path
+dotnet_diagnostic.CA5389.severity = error
+
+# CA5390: Do not hard-code encryption key
+dotnet_diagnostic.CA5390.severity = error
+
+# CA5391: Use antiforgery tokens in ASP.NET Core MVC controllers
+dotnet_diagnostic.CA5391.severity = error
+
+# CA5392: Use DefaultDllImportSearchPaths attribute for P/Invokes
+dotnet_diagnostic.CA5392.severity = error
+
+# CA5393: Do not use unsafe DllImportSearchPath value
+dotnet_diagnostic.CA5393.severity = error
+
+# CA5394: Do not use insecure randomness
+dotnet_diagnostic.CA5394.severity = error
+
+# CA5395: Miss HttpVerb attribute for action methods
+dotnet_diagnostic.CA5395.severity = error
+
+# CA5396: Set HttpOnly to true for HttpCookie
+dotnet_diagnostic.CA5396.severity = error
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = error
+
+# CA5398: Avoid hardcoded SslProtocols values
+dotnet_diagnostic.CA5398.severity = error
+
+# CA5399: HttpClients should enable certificate revocation list checks
+dotnet_diagnostic.CA5399.severity = error
+
+# CA5400: Ensure HttpClient certificate revocation list check is not disabled
+dotnet_diagnostic.CA5400.severity = error
+
+# CA5401: Do not use CreateEncryptor with non-default IV
+dotnet_diagnostic.CA5401.severity = error
+
+# CA5402: Use CreateEncryptor with the default IV
+dotnet_diagnostic.CA5402.severity = error
+
+# CA5403: Do not hard-code certificate
+dotnet_diagnostic.CA5403.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_default.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_default.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..ef398675b6888f8b4f9bbfc8b7cd4d5a712beb78
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_default.globalconfig
@@ -0,0 +1,108 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Rules from '6.0' release with 'Default' analysis mode
+# Description: Rules with enabled-by-default state from '6.0' release with 'Default' analysis mode. Rules that are first released in a version later than '6.0' are disabled.
+
+is_global = true
+
+global_level = -100
+
+
+# CA1311: Specify a culture or use an invariant version
+dotnet_diagnostic.CA1311.severity = none
+
+# CA1420: Property, type, or attribute requires runtime marshalling
+dotnet_diagnostic.CA1420.severity = none
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = none
+
+# CA1422: Validate platform compatibility
+dotnet_diagnostic.CA1422.severity = none
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = none
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = none
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = none
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = none
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = none
+
+# CA1852: Seal internal types
+dotnet_diagnostic.CA1852.severity = none
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = none
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = none
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = none
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+dotnet_diagnostic.CA1856.severity = none
+
+# CA1857: A constant is expected for the parameter
+dotnet_diagnostic.CA1857.severity = none
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = none
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = none
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = none
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = none
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = none
+
+# CA1863: Use 'CompositeFormat'
+dotnet_diagnostic.CA1863.severity = none
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = none
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = none
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = none
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = none
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = none
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = none
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = none
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = none
+
+# CA2021: Do not call Enumerable.Cast or Enumerable.OfType with incompatible types
+dotnet_diagnostic.CA2021.severity = none
+
+# CA2259: 'ThreadStatic' only affects static fields
+dotnet_diagnostic.CA2259.severity = none
+
+# CA2260: Use correct type parameter
+dotnet_diagnostic.CA2260.severity = none
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_recommended_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_recommended_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..1e517ee6694b4a063b16bee10361ba9d71867f20
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_6_recommended_warnaserror.globalconfig
@@ -0,0 +1,483 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Rules from '6.0' release with 'Recommended' analysis mode escalated to 'error' severity
+# Description: Rules with enabled-by-default state from '6.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '6.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -100
+
+
+# CA1000: Do not declare static members on generic types
+dotnet_diagnostic.CA1000.severity = error
+
+# CA1001: Types that own disposable fields should be disposable
+dotnet_diagnostic.CA1001.severity = error
+
+# CA1010: Generic interface should also be implemented
+dotnet_diagnostic.CA1010.severity = error
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = error
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = error
+
+# CA1036: Override methods on comparable types
+dotnet_diagnostic.CA1036.severity = error
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = error
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = error
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = error
+
+# CA1051: Do not declare visible instance fields
+dotnet_diagnostic.CA1051.severity = error
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = error
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = error
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = error
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = error
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = error
+
+# CA1200: Avoid using cref tags with a prefix
+dotnet_diagnostic.CA1200.severity = error
+
+# CA1304: Specify CultureInfo
+dotnet_diagnostic.CA1304.severity = error
+
+# CA1305: Specify IFormatProvider
+dotnet_diagnostic.CA1305.severity = error
+
+# CA1309: Use ordinal string comparison
+dotnet_diagnostic.CA1309.severity = error
+
+# CA1310: Specify StringComparison for correctness
+dotnet_diagnostic.CA1310.severity = error
+
+# CA1311: Specify a culture or use an invariant version
+dotnet_diagnostic.CA1311.severity = none
+
+# CA1401: P/Invokes should not be visible
+dotnet_diagnostic.CA1401.severity = error
+
+# CA1416: Validate platform compatibility
+dotnet_diagnostic.CA1416.severity = error
+
+# CA1417: Do not use 'OutAttribute' on string parameters for P/Invokes
+dotnet_diagnostic.CA1417.severity = error
+
+# CA1418: Use valid platform string
+dotnet_diagnostic.CA1418.severity = error
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+dotnet_diagnostic.CA1419.severity = error
+
+# CA1420: Property, type, or attribute requires runtime marshalling
+dotnet_diagnostic.CA1420.severity = none
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = none
+
+# CA1422: Validate platform compatibility
+dotnet_diagnostic.CA1422.severity = none
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = error
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = none
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = none
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = none
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = none
+
+# CA1707: Identifiers should not contain underscores
+dotnet_diagnostic.CA1707.severity = error
+
+# CA1708: Identifiers should differ by more than case
+dotnet_diagnostic.CA1708.severity = error
+
+# CA1710: Identifiers should have correct suffix
+dotnet_diagnostic.CA1710.severity = error
+
+# CA1711: Identifiers should not have incorrect suffix
+dotnet_diagnostic.CA1711.severity = error
+
+# CA1712: Do not prefix enum values with type name
+dotnet_diagnostic.CA1712.severity = error
+
+# CA1715: Identifiers should have correct prefix
+dotnet_diagnostic.CA1715.severity = error
+
+# CA1716: Identifiers should not match keywords
+dotnet_diagnostic.CA1716.severity = error
+
+# CA1720: Identifier contains type name
+dotnet_diagnostic.CA1720.severity = error
+
+# CA1725: Parameter names should match base declaration
+dotnet_diagnostic.CA1725.severity = error
+
+# CA1727: Use PascalCase for named placeholders
+dotnet_diagnostic.CA1727.severity = error
+
+# CA1805: Do not initialize unnecessarily
+dotnet_diagnostic.CA1805.severity = error
+
+# CA1806: Do not ignore method results
+dotnet_diagnostic.CA1806.severity = error
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = error
+
+# CA1821: Remove empty Finalizers
+dotnet_diagnostic.CA1821.severity = error
+
+# CA1822: Mark members as static
+dotnet_diagnostic.CA1822.severity = error
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+dotnet_diagnostic.CA1824.severity = error
+
+# CA1825: Avoid zero-length array allocations
+dotnet_diagnostic.CA1825.severity = error
+
+# CA1826: Do not use Enumerable methods on indexable collections
+dotnet_diagnostic.CA1826.severity = error
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+dotnet_diagnostic.CA1827.severity = error
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+dotnet_diagnostic.CA1828.severity = error
+
+# CA1829: Use Length/Count property instead of Count() when available
+dotnet_diagnostic.CA1829.severity = error
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+dotnet_diagnostic.CA1830.severity = error
+
+# CA1831: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1831.severity = error
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1832.severity = error
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1833.severity = error
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+dotnet_diagnostic.CA1834.severity = error
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+dotnet_diagnostic.CA1835.severity = error
+
+# CA1836: Prefer IsEmpty over Count
+dotnet_diagnostic.CA1836.severity = error
+
+# CA1837: Use 'Environment.ProcessId'
+dotnet_diagnostic.CA1837.severity = error
+
+# CA1838: Avoid 'StringBuilder' parameters for P/Invokes
+dotnet_diagnostic.CA1838.severity = error
+
+# CA1839: Use 'Environment.ProcessPath'
+dotnet_diagnostic.CA1839.severity = error
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+dotnet_diagnostic.CA1840.severity = error
+
+# CA1841: Prefer Dictionary.Contains methods
+dotnet_diagnostic.CA1841.severity = error
+
+# CA1842: Do not use 'WhenAll' with a single task
+dotnet_diagnostic.CA1842.severity = error
+
+# CA1843: Do not use 'WaitAll' with a single task
+dotnet_diagnostic.CA1843.severity = error
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+dotnet_diagnostic.CA1844.severity = error
+
+# CA1845: Use span-based 'string.Concat'
+dotnet_diagnostic.CA1845.severity = error
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+dotnet_diagnostic.CA1846.severity = error
+
+# CA1847: Use char literal for a single character lookup
+dotnet_diagnostic.CA1847.severity = error
+
+# CA1848: Use the LoggerMessage delegates
+dotnet_diagnostic.CA1848.severity = error
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = none
+
+# CA1852: Seal internal types
+dotnet_diagnostic.CA1852.severity = none
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = none
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = none
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = none
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+dotnet_diagnostic.CA1856.severity = none
+
+# CA1857: A constant is expected for the parameter
+dotnet_diagnostic.CA1857.severity = none
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = none
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = none
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = none
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = none
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = none
+
+# CA1863: Use 'CompositeFormat'
+dotnet_diagnostic.CA1863.severity = none
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = none
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = none
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = none
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = none
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = none
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = none
+
+# CA2009: Do not call ToImmutableCollection on an ImmutableCollection value
+dotnet_diagnostic.CA2009.severity = error
+
+# CA2011: Avoid infinite recursion
+dotnet_diagnostic.CA2011.severity = error
+
+# CA2012: Use ValueTasks correctly
+dotnet_diagnostic.CA2012.severity = error
+
+# CA2013: Do not use ReferenceEquals with value types
+dotnet_diagnostic.CA2013.severity = error
+
+# CA2014: Do not use stackalloc in loops
+dotnet_diagnostic.CA2014.severity = error
+
+# CA2015: Do not define finalizers for types derived from MemoryManager
+dotnet_diagnostic.CA2015.severity = error
+
+# CA2016: Forward the 'CancellationToken' parameter to methods
+dotnet_diagnostic.CA2016.severity = error
+
+# CA2017: Parameter count mismatch
+dotnet_diagnostic.CA2017.severity = error
+
+# CA2018: 'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument
+dotnet_diagnostic.CA2018.severity = error
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = none
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = none
+
+# CA2021: Do not call Enumerable.Cast or Enumerable.OfType with incompatible types
+dotnet_diagnostic.CA2021.severity = none
+
+# CA2101: Specify marshaling for P/Invoke string arguments
+dotnet_diagnostic.CA2101.severity = error
+
+# CA2200: Rethrow to preserve stack details
+dotnet_diagnostic.CA2200.severity = error
+
+# CA2201: Do not raise reserved exception types
+dotnet_diagnostic.CA2201.severity = error
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = error
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = error
+
+# CA2215: Dispose methods should call base class dispose
+dotnet_diagnostic.CA2215.severity = error
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = error
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = error
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = error
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = error
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = error
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = error
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = error
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = error
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = error
+
+# CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum
+dotnet_diagnostic.CA2247.severity = error
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = error
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = error
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = error
+
+# CA2251: Use 'string.Equals'
+dotnet_diagnostic.CA2251.severity = error
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = error
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = error
+
+# CA2255: The 'ModuleInitializer' attribute should not be used in libraries
+dotnet_diagnostic.CA2255.severity = error
+
+# CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface
+dotnet_diagnostic.CA2256.severity = error
+
+# CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'
+dotnet_diagnostic.CA2257.severity = error
+
+# CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported
+dotnet_diagnostic.CA2258.severity = error
+
+# CA2259: 'ThreadStatic' only affects static fields
+dotnet_diagnostic.CA2259.severity = none
+
+# CA2260: Use correct type parameter
+dotnet_diagnostic.CA2260.severity = none
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = none
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = error
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = error
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = error
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = error
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = error
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = error
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = error
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = error
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = error
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = error
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = error
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = error
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = error
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = error
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = error
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = error
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = error
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = error
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = error
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = error
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = error
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = error
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = error
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_all.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_all.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..c8664d6c42a045ff8023ea9b95f83591758ef354
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_all.globalconfig
@@ -0,0 +1,825 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Rules from '7.0' release with 'All' analysis mode
+# Description: Rules with enabled-by-default state from '7.0' release with 'All' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -100
+
+
+# CA1000: Do not declare static members on generic types
+dotnet_diagnostic.CA1000.severity = warning
+
+# CA1001: Types that own disposable fields should be disposable
+dotnet_diagnostic.CA1001.severity = warning
+
+# CA1002: Do not expose generic lists
+dotnet_diagnostic.CA1002.severity = warning
+
+# CA1003: Use generic event handler instances
+dotnet_diagnostic.CA1003.severity = warning
+
+# CA1008: Enums should have zero value
+dotnet_diagnostic.CA1008.severity = warning
+
+# CA1010: Generic interface should also be implemented
+dotnet_diagnostic.CA1010.severity = warning
+
+# CA1012: Abstract types should not have public constructors
+dotnet_diagnostic.CA1012.severity = warning
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = warning
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = warning
+
+# CA1019: Define accessors for attribute arguments
+dotnet_diagnostic.CA1019.severity = warning
+
+# CA1024: Use properties where appropriate
+dotnet_diagnostic.CA1024.severity = warning
+
+# CA1027: Mark enums with FlagsAttribute
+dotnet_diagnostic.CA1027.severity = warning
+
+# CA1028: Enum Storage should be Int32
+dotnet_diagnostic.CA1028.severity = warning
+
+# CA1030: Use events where appropriate
+dotnet_diagnostic.CA1030.severity = warning
+
+# CA1031: Do not catch general exception types
+dotnet_diagnostic.CA1031.severity = warning
+
+# CA1032: Implement standard exception constructors
+dotnet_diagnostic.CA1032.severity = warning
+
+# CA1033: Interface methods should be callable by child types
+dotnet_diagnostic.CA1033.severity = warning
+
+# CA1034: Nested types should not be visible
+dotnet_diagnostic.CA1034.severity = warning
+
+# CA1036: Override methods on comparable types
+dotnet_diagnostic.CA1036.severity = warning
+
+# CA1040: Avoid empty interfaces
+dotnet_diagnostic.CA1040.severity = warning
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = warning
+
+# CA1043: Use Integral Or String Argument For Indexers
+dotnet_diagnostic.CA1043.severity = warning
+
+# CA1044: Properties should not be write only
+dotnet_diagnostic.CA1044.severity = warning
+
+# CA1046: Do not overload equality operator on reference types
+dotnet_diagnostic.CA1046.severity = warning
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = warning
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = warning
+
+# CA1051: Do not declare visible instance fields
+dotnet_diagnostic.CA1051.severity = warning
+
+# CA1052: Static holder types should be Static or NotInheritable
+dotnet_diagnostic.CA1052.severity = warning
+
+# CA1054: URI-like parameters should not be strings
+dotnet_diagnostic.CA1054.severity = warning
+
+# CA1055: URI-like return values should not be strings
+dotnet_diagnostic.CA1055.severity = warning
+
+# CA1056: URI-like properties should not be strings
+dotnet_diagnostic.CA1056.severity = warning
+
+# CA1058: Types should not extend certain base types
+dotnet_diagnostic.CA1058.severity = warning
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = warning
+
+# CA1062: Validate arguments of public methods
+dotnet_diagnostic.CA1062.severity = warning
+
+# CA1063: Implement IDisposable Correctly
+dotnet_diagnostic.CA1063.severity = warning
+
+# CA1064: Exceptions should be public
+dotnet_diagnostic.CA1064.severity = warning
+
+# CA1065: Do not raise exceptions in unexpected locations
+dotnet_diagnostic.CA1065.severity = warning
+
+# CA1066: Implement IEquatable when overriding Object.Equals
+dotnet_diagnostic.CA1066.severity = warning
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = warning
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = warning
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = warning
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = warning
+
+# CA1200: Avoid using cref tags with a prefix
+dotnet_diagnostic.CA1200.severity = warning
+
+# CA1303: Do not pass literals as localized parameters
+dotnet_diagnostic.CA1303.severity = warning
+
+# CA1304: Specify CultureInfo
+dotnet_diagnostic.CA1304.severity = warning
+
+# CA1305: Specify IFormatProvider
+dotnet_diagnostic.CA1305.severity = warning
+
+# CA1307: Specify StringComparison for clarity
+dotnet_diagnostic.CA1307.severity = warning
+
+# CA1308: Normalize strings to uppercase
+dotnet_diagnostic.CA1308.severity = warning
+
+# CA1309: Use ordinal string comparison
+dotnet_diagnostic.CA1309.severity = warning
+
+# CA1310: Specify StringComparison for correctness
+dotnet_diagnostic.CA1310.severity = warning
+
+# CA1311: Specify a culture or use an invariant version
+dotnet_diagnostic.CA1311.severity = warning
+
+# CA1401: P/Invokes should not be visible
+dotnet_diagnostic.CA1401.severity = warning
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+dotnet_diagnostic.CA1419.severity = warning
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = warning
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = warning
+
+# CA1508: Avoid dead conditional code
+dotnet_diagnostic.CA1508.severity = warning
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = none
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = none
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = none
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = none
+
+# CA1700: Do not name enum values 'Reserved'
+dotnet_diagnostic.CA1700.severity = warning
+
+# CA1707: Identifiers should not contain underscores
+dotnet_diagnostic.CA1707.severity = warning
+
+# CA1708: Identifiers should differ by more than case
+dotnet_diagnostic.CA1708.severity = warning
+
+# CA1710: Identifiers should have correct suffix
+dotnet_diagnostic.CA1710.severity = warning
+
+# CA1711: Identifiers should not have incorrect suffix
+dotnet_diagnostic.CA1711.severity = warning
+
+# CA1712: Do not prefix enum values with type name
+dotnet_diagnostic.CA1712.severity = warning
+
+# CA1713: Events should not have 'Before' or 'After' prefix
+dotnet_diagnostic.CA1713.severity = warning
+
+# CA1715: Identifiers should have correct prefix
+dotnet_diagnostic.CA1715.severity = warning
+
+# CA1716: Identifiers should not match keywords
+dotnet_diagnostic.CA1716.severity = warning
+
+# CA1720: Identifier contains type name
+dotnet_diagnostic.CA1720.severity = warning
+
+# CA1721: Property names should not match get methods
+dotnet_diagnostic.CA1721.severity = warning
+
+# CA1724: Type names should not match namespaces
+dotnet_diagnostic.CA1724.severity = warning
+
+# CA1725: Parameter names should match base declaration
+dotnet_diagnostic.CA1725.severity = warning
+
+# CA1727: Use PascalCase for named placeholders
+dotnet_diagnostic.CA1727.severity = warning
+
+# CA1802: Use literals where appropriate
+dotnet_diagnostic.CA1802.severity = warning
+
+# CA1805: Do not initialize unnecessarily
+dotnet_diagnostic.CA1805.severity = warning
+
+# CA1806: Do not ignore method results
+dotnet_diagnostic.CA1806.severity = warning
+
+# CA1810: Initialize reference type static fields inline
+dotnet_diagnostic.CA1810.severity = warning
+
+# CA1812: Avoid uninstantiated internal classes
+dotnet_diagnostic.CA1812.severity = warning
+
+# CA1813: Avoid unsealed attributes
+dotnet_diagnostic.CA1813.severity = warning
+
+# CA1814: Prefer jagged arrays over multidimensional
+dotnet_diagnostic.CA1814.severity = warning
+
+# CA1815: Override equals and operator equals on value types
+dotnet_diagnostic.CA1815.severity = warning
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = warning
+
+# CA1819: Properties should not return arrays
+dotnet_diagnostic.CA1819.severity = warning
+
+# CA1820: Test for empty strings using string length
+dotnet_diagnostic.CA1820.severity = warning
+
+# CA1821: Remove empty Finalizers
+dotnet_diagnostic.CA1821.severity = warning
+
+# CA1822: Mark members as static
+dotnet_diagnostic.CA1822.severity = warning
+
+# CA1823: Avoid unused private fields
+dotnet_diagnostic.CA1823.severity = warning
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+dotnet_diagnostic.CA1824.severity = warning
+
+# CA1825: Avoid zero-length array allocations
+dotnet_diagnostic.CA1825.severity = warning
+
+# CA1826: Do not use Enumerable methods on indexable collections
+dotnet_diagnostic.CA1826.severity = warning
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+dotnet_diagnostic.CA1827.severity = warning
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+dotnet_diagnostic.CA1828.severity = warning
+
+# CA1829: Use Length/Count property instead of Count() when available
+dotnet_diagnostic.CA1829.severity = warning
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+dotnet_diagnostic.CA1830.severity = warning
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1832.severity = warning
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1833.severity = warning
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+dotnet_diagnostic.CA1834.severity = warning
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+dotnet_diagnostic.CA1835.severity = warning
+
+# CA1836: Prefer IsEmpty over Count
+dotnet_diagnostic.CA1836.severity = warning
+
+# CA1837: Use 'Environment.ProcessId'
+dotnet_diagnostic.CA1837.severity = warning
+
+# CA1838: Avoid 'StringBuilder' parameters for P/Invokes
+dotnet_diagnostic.CA1838.severity = warning
+
+# CA1839: Use 'Environment.ProcessPath'
+dotnet_diagnostic.CA1839.severity = warning
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+dotnet_diagnostic.CA1840.severity = warning
+
+# CA1841: Prefer Dictionary.Contains methods
+dotnet_diagnostic.CA1841.severity = warning
+
+# CA1842: Do not use 'WhenAll' with a single task
+dotnet_diagnostic.CA1842.severity = warning
+
+# CA1843: Do not use 'WaitAll' with a single task
+dotnet_diagnostic.CA1843.severity = warning
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+dotnet_diagnostic.CA1844.severity = warning
+
+# CA1845: Use span-based 'string.Concat'
+dotnet_diagnostic.CA1845.severity = warning
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+dotnet_diagnostic.CA1846.severity = warning
+
+# CA1847: Use char literal for a single character lookup
+dotnet_diagnostic.CA1847.severity = warning
+
+# CA1848: Use the LoggerMessage delegates
+dotnet_diagnostic.CA1848.severity = warning
+
+# CA1849: Call async methods when in an async method
+dotnet_diagnostic.CA1849.severity = warning
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = warning
+
+# CA1851: Possible multiple enumerations of 'IEnumerable' collection
+dotnet_diagnostic.CA1851.severity = warning
+
+# CA1852: Seal internal types
+dotnet_diagnostic.CA1852.severity = warning
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = warning
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = warning
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = warning
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+dotnet_diagnostic.CA1856.severity = none
+
+# CA1857: A constant is expected for the parameter
+dotnet_diagnostic.CA1857.severity = none
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = none
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = none
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = none
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = none
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = none
+
+# CA1863: Use 'CompositeFormat'
+dotnet_diagnostic.CA1863.severity = none
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = none
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = none
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = none
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = none
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = none
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = none
+
+# CA2000: Dispose objects before losing scope
+dotnet_diagnostic.CA2000.severity = warning
+
+# CA2002: Do not lock on objects with weak identity
+dotnet_diagnostic.CA2002.severity = warning
+
+# CA2007: Consider calling ConfigureAwait on the awaited task
+dotnet_diagnostic.CA2007.severity = warning
+
+# CA2008: Do not create tasks without passing a TaskScheduler
+dotnet_diagnostic.CA2008.severity = warning
+
+# CA2009: Do not call ToImmutableCollection on an ImmutableCollection value
+dotnet_diagnostic.CA2009.severity = warning
+
+# CA2011: Avoid infinite recursion
+dotnet_diagnostic.CA2011.severity = warning
+
+# CA2012: Use ValueTasks correctly
+dotnet_diagnostic.CA2012.severity = warning
+
+# CA2016: Forward the 'CancellationToken' parameter to methods
+dotnet_diagnostic.CA2016.severity = warning
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = warning
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = warning
+
+# CA2021: Do not call Enumerable.Cast or Enumerable.OfType with incompatible types
+dotnet_diagnostic.CA2021.severity = none
+
+# CA2100: Review SQL queries for security vulnerabilities
+dotnet_diagnostic.CA2100.severity = warning
+
+# CA2101: Specify marshaling for P/Invoke string arguments
+dotnet_diagnostic.CA2101.severity = warning
+
+# CA2119: Seal methods that satisfy private interfaces
+dotnet_diagnostic.CA2119.severity = warning
+
+# CA2153: Do Not Catch Corrupted State Exceptions
+dotnet_diagnostic.CA2153.severity = warning
+
+# CA2201: Do not raise reserved exception types
+dotnet_diagnostic.CA2201.severity = warning
+
+# CA2207: Initialize value type static fields inline
+dotnet_diagnostic.CA2207.severity = warning
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = warning
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = warning
+
+# CA2213: Disposable fields should be disposed
+dotnet_diagnostic.CA2213.severity = warning
+
+# CA2214: Do not call overridable methods in constructors
+dotnet_diagnostic.CA2214.severity = warning
+
+# CA2215: Dispose methods should call base class dispose
+dotnet_diagnostic.CA2215.severity = warning
+
+# CA2216: Disposable types should declare finalizer
+dotnet_diagnostic.CA2216.severity = warning
+
+# CA2217: Do not mark enums with FlagsAttribute
+dotnet_diagnostic.CA2217.severity = warning
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = warning
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = warning
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = warning
+
+# CA2225: Operator overloads have named alternates
+dotnet_diagnostic.CA2225.severity = warning
+
+# CA2226: Operators should have symmetrical overloads
+dotnet_diagnostic.CA2226.severity = warning
+
+# CA2227: Collection properties should be read only
+dotnet_diagnostic.CA2227.severity = warning
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = warning
+
+# CA2234: Pass system uri objects instead of strings
+dotnet_diagnostic.CA2234.severity = warning
+
+# CA2235: Mark all non-serializable fields
+dotnet_diagnostic.CA2235.severity = warning
+
+# CA2237: Mark ISerializable types with serializable
+dotnet_diagnostic.CA2237.severity = warning
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = warning
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = warning
+
+# CA2243: Attribute string literals should parse correctly
+dotnet_diagnostic.CA2243.severity = warning
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = warning
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = warning
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = warning
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = warning
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = warning
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = warning
+
+# CA2251: Use 'string.Equals'
+dotnet_diagnostic.CA2251.severity = warning
+
+# CA2252: This API requires opting into preview features
+dotnet_diagnostic.CA2252.severity = warning
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = warning
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = warning
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = none
+
+# CA2300: Do not use insecure deserializer BinaryFormatter
+dotnet_diagnostic.CA2300.severity = warning
+
+# CA2301: Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder
+dotnet_diagnostic.CA2301.severity = warning
+
+# CA2302: Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize
+dotnet_diagnostic.CA2302.severity = warning
+
+# CA2305: Do not use insecure deserializer LosFormatter
+dotnet_diagnostic.CA2305.severity = warning
+
+# CA2310: Do not use insecure deserializer NetDataContractSerializer
+dotnet_diagnostic.CA2310.severity = warning
+
+# CA2311: Do not deserialize without first setting NetDataContractSerializer.Binder
+dotnet_diagnostic.CA2311.severity = warning
+
+# CA2312: Ensure NetDataContractSerializer.Binder is set before deserializing
+dotnet_diagnostic.CA2312.severity = warning
+
+# CA2315: Do not use insecure deserializer ObjectStateFormatter
+dotnet_diagnostic.CA2315.severity = warning
+
+# CA2321: Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver
+dotnet_diagnostic.CA2321.severity = warning
+
+# CA2322: Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing
+dotnet_diagnostic.CA2322.severity = warning
+
+# CA2326: Do not use TypeNameHandling values other than None
+dotnet_diagnostic.CA2326.severity = warning
+
+# CA2327: Do not use insecure JsonSerializerSettings
+dotnet_diagnostic.CA2327.severity = warning
+
+# CA2328: Ensure that JsonSerializerSettings are secure
+dotnet_diagnostic.CA2328.severity = warning
+
+# CA2329: Do not deserialize with JsonSerializer using an insecure configuration
+dotnet_diagnostic.CA2329.severity = warning
+
+# CA2330: Ensure that JsonSerializer has a secure configuration when deserializing
+dotnet_diagnostic.CA2330.severity = warning
+
+# CA2350: Do not use DataTable.ReadXml() with untrusted data
+dotnet_diagnostic.CA2350.severity = warning
+
+# CA2351: Do not use DataSet.ReadXml() with untrusted data
+dotnet_diagnostic.CA2351.severity = warning
+
+# CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2352.severity = warning
+
+# CA2353: Unsafe DataSet or DataTable in serializable type
+dotnet_diagnostic.CA2353.severity = warning
+
+# CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2354.severity = warning
+
+# CA2355: Unsafe DataSet or DataTable type found in deserializable object graph
+dotnet_diagnostic.CA2355.severity = warning
+
+# CA2356: Unsafe DataSet or DataTable type in web deserializable object graph
+dotnet_diagnostic.CA2356.severity = warning
+
+# CA2361: Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data
+dotnet_diagnostic.CA2361.severity = warning
+
+# CA2362: Unsafe DataSet or DataTable in auto-generated serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2362.severity = warning
+
+# CA3001: Review code for SQL injection vulnerabilities
+dotnet_diagnostic.CA3001.severity = warning
+
+# CA3002: Review code for XSS vulnerabilities
+dotnet_diagnostic.CA3002.severity = warning
+
+# CA3003: Review code for file path injection vulnerabilities
+dotnet_diagnostic.CA3003.severity = warning
+
+# CA3004: Review code for information disclosure vulnerabilities
+dotnet_diagnostic.CA3004.severity = warning
+
+# CA3005: Review code for LDAP injection vulnerabilities
+dotnet_diagnostic.CA3005.severity = warning
+
+# CA3006: Review code for process command injection vulnerabilities
+dotnet_diagnostic.CA3006.severity = warning
+
+# CA3007: Review code for open redirect vulnerabilities
+dotnet_diagnostic.CA3007.severity = warning
+
+# CA3008: Review code for XPath injection vulnerabilities
+dotnet_diagnostic.CA3008.severity = warning
+
+# CA3009: Review code for XML injection vulnerabilities
+dotnet_diagnostic.CA3009.severity = warning
+
+# CA3010: Review code for XAML injection vulnerabilities
+dotnet_diagnostic.CA3010.severity = warning
+
+# CA3011: Review code for DLL injection vulnerabilities
+dotnet_diagnostic.CA3011.severity = warning
+
+# CA3012: Review code for regex injection vulnerabilities
+dotnet_diagnostic.CA3012.severity = warning
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = warning
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = warning
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = warning
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = warning
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = warning
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = warning
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = warning
+
+# CA5358: Review cipher mode usage with cryptography experts
+dotnet_diagnostic.CA5358.severity = warning
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = warning
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = warning
+
+# CA5361: Do Not Disable SChannel Use of Strong Crypto
+dotnet_diagnostic.CA5361.severity = warning
+
+# CA5362: Potential reference cycle in deserialized object graph
+dotnet_diagnostic.CA5362.severity = warning
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = warning
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = warning
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = warning
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = warning
+
+# CA5367: Do Not Serialize Types With Pointer Fields
+dotnet_diagnostic.CA5367.severity = warning
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = warning
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = warning
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = warning
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = warning
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = warning
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = warning
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = warning
+
+# CA5375: Do Not Use Account Shared Access Signature
+dotnet_diagnostic.CA5375.severity = warning
+
+# CA5376: Use SharedAccessProtocol HttpsOnly
+dotnet_diagnostic.CA5376.severity = warning
+
+# CA5377: Use Container Level Access Policy
+dotnet_diagnostic.CA5377.severity = warning
+
+# CA5378: Do not disable ServicePointManagerSecurityProtocols
+dotnet_diagnostic.CA5378.severity = warning
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = warning
+
+# CA5380: Do Not Add Certificates To Root Store
+dotnet_diagnostic.CA5380.severity = warning
+
+# CA5381: Ensure Certificates Are Not Added To Root Store
+dotnet_diagnostic.CA5381.severity = warning
+
+# CA5382: Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5382.severity = warning
+
+# CA5383: Ensure Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5383.severity = warning
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = warning
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = warning
+
+# CA5386: Avoid hardcoding SecurityProtocolType value
+dotnet_diagnostic.CA5386.severity = warning
+
+# CA5387: Do Not Use Weak Key Derivation Function With Insufficient Iteration Count
+dotnet_diagnostic.CA5387.severity = warning
+
+# CA5388: Ensure Sufficient Iteration Count When Using Weak Key Derivation Function
+dotnet_diagnostic.CA5388.severity = warning
+
+# CA5389: Do Not Add Archive Item's Path To The Target File System Path
+dotnet_diagnostic.CA5389.severity = warning
+
+# CA5390: Do not hard-code encryption key
+dotnet_diagnostic.CA5390.severity = warning
+
+# CA5391: Use antiforgery tokens in ASP.NET Core MVC controllers
+dotnet_diagnostic.CA5391.severity = warning
+
+# CA5392: Use DefaultDllImportSearchPaths attribute for P/Invokes
+dotnet_diagnostic.CA5392.severity = warning
+
+# CA5393: Do not use unsafe DllImportSearchPath value
+dotnet_diagnostic.CA5393.severity = warning
+
+# CA5394: Do not use insecure randomness
+dotnet_diagnostic.CA5394.severity = warning
+
+# CA5395: Miss HttpVerb attribute for action methods
+dotnet_diagnostic.CA5395.severity = warning
+
+# CA5396: Set HttpOnly to true for HttpCookie
+dotnet_diagnostic.CA5396.severity = warning
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = warning
+
+# CA5398: Avoid hardcoded SslProtocols values
+dotnet_diagnostic.CA5398.severity = warning
+
+# CA5399: HttpClients should enable certificate revocation list checks
+dotnet_diagnostic.CA5399.severity = warning
+
+# CA5400: Ensure HttpClient certificate revocation list check is not disabled
+dotnet_diagnostic.CA5400.severity = warning
+
+# CA5401: Do not use CreateEncryptor with non-default IV
+dotnet_diagnostic.CA5401.severity = warning
+
+# CA5402: Use CreateEncryptor with the default IV
+dotnet_diagnostic.CA5402.severity = warning
+
+# CA5403: Do not hard-code certificate
+dotnet_diagnostic.CA5403.severity = warning
+
+# CA5404: Do not disable token validation checks
+dotnet_diagnostic.CA5404.severity = warning
+
+# CA5405: Do not always skip token validation in delegates
+dotnet_diagnostic.CA5405.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_minimum_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_minimum_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..619f297e7b78be868309296db562783fcbe0c3ae
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_7_minimum_warnaserror.globalconfig
@@ -0,0 +1,327 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Rules from '7.0' release with 'Minimum' analysis mode escalated to 'error' severity
+# Description: Rules with enabled-by-default state from '7.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '7.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -100
+
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = error
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = error
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = error
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = error
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = error
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = error
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = error
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = error
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = error
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = error
+
+# CA1401: P/Invokes should not be visible
+dotnet_diagnostic.CA1401.severity = error
+
+# CA1416: Validate platform compatibility
+dotnet_diagnostic.CA1416.severity = error
+
+# CA1417: Do not use 'OutAttribute' on string parameters for P/Invokes
+dotnet_diagnostic.CA1417.severity = error
+
+# CA1418: Use valid platform string
+dotnet_diagnostic.CA1418.severity = error
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+dotnet_diagnostic.CA1419.severity = error
+
+# CA1420: Property, type, or attribute requires runtime marshalling
+dotnet_diagnostic.CA1420.severity = error
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = error
+
+# CA1422: Validate platform compatibility
+dotnet_diagnostic.CA1422.severity = error
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = error
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = none
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = none
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = none
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = none
+
+# CA1806: Do not ignore method results
+dotnet_diagnostic.CA1806.severity = error
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = error
+
+# CA1821: Remove empty Finalizers
+dotnet_diagnostic.CA1821.severity = error
+
+# CA1822: Mark members as static
+dotnet_diagnostic.CA1822.severity = error
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+dotnet_diagnostic.CA1824.severity = error
+
+# CA1825: Avoid zero-length array allocations
+dotnet_diagnostic.CA1825.severity = error
+
+# CA1826: Do not use Enumerable methods on indexable collections
+dotnet_diagnostic.CA1826.severity = error
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+dotnet_diagnostic.CA1827.severity = error
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+dotnet_diagnostic.CA1828.severity = error
+
+# CA1829: Use Length/Count property instead of Count() when available
+dotnet_diagnostic.CA1829.severity = error
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+dotnet_diagnostic.CA1830.severity = error
+
+# CA1831: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1831.severity = error
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1832.severity = error
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1833.severity = error
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+dotnet_diagnostic.CA1834.severity = error
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+dotnet_diagnostic.CA1835.severity = error
+
+# CA1836: Prefer IsEmpty over Count
+dotnet_diagnostic.CA1836.severity = error
+
+# CA1837: Use 'Environment.ProcessId'
+dotnet_diagnostic.CA1837.severity = error
+
+# CA1839: Use 'Environment.ProcessPath'
+dotnet_diagnostic.CA1839.severity = error
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+dotnet_diagnostic.CA1840.severity = error
+
+# CA1841: Prefer Dictionary.Contains methods
+dotnet_diagnostic.CA1841.severity = error
+
+# CA1842: Do not use 'WhenAll' with a single task
+dotnet_diagnostic.CA1842.severity = error
+
+# CA1843: Do not use 'WaitAll' with a single task
+dotnet_diagnostic.CA1843.severity = error
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+dotnet_diagnostic.CA1844.severity = error
+
+# CA1845: Use span-based 'string.Concat'
+dotnet_diagnostic.CA1845.severity = error
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+dotnet_diagnostic.CA1846.severity = error
+
+# CA1847: Use char literal for a single character lookup
+dotnet_diagnostic.CA1847.severity = error
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = error
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = error
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = error
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = error
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+dotnet_diagnostic.CA1856.severity = none
+
+# CA1857: A constant is expected for the parameter
+dotnet_diagnostic.CA1857.severity = none
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = none
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = none
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = none
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = none
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = none
+
+# CA1863: Use 'CompositeFormat'
+dotnet_diagnostic.CA1863.severity = none
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = none
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = none
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = none
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = none
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = none
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = none
+
+# CA2009: Do not call ToImmutableCollection on an ImmutableCollection value
+dotnet_diagnostic.CA2009.severity = error
+
+# CA2011: Avoid infinite recursion
+dotnet_diagnostic.CA2011.severity = error
+
+# CA2012: Use ValueTasks correctly
+dotnet_diagnostic.CA2012.severity = error
+
+# CA2013: Do not use ReferenceEquals with value types
+dotnet_diagnostic.CA2013.severity = error
+
+# CA2014: Do not use stackalloc in loops
+dotnet_diagnostic.CA2014.severity = error
+
+# CA2015: Do not define finalizers for types derived from MemoryManager
+dotnet_diagnostic.CA2015.severity = error
+
+# CA2016: Forward the 'CancellationToken' parameter to methods
+dotnet_diagnostic.CA2016.severity = error
+
+# CA2017: Parameter count mismatch
+dotnet_diagnostic.CA2017.severity = error
+
+# CA2018: 'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument
+dotnet_diagnostic.CA2018.severity = error
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = error
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = error
+
+# CA2021: Do not call Enumerable.Cast or Enumerable.OfType with incompatible types
+dotnet_diagnostic.CA2021.severity = none
+
+# CA2101: Specify marshaling for P/Invoke string arguments
+dotnet_diagnostic.CA2101.severity = error
+
+# CA2200: Rethrow to preserve stack details
+dotnet_diagnostic.CA2200.severity = error
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = error
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = error
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = error
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = error
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = error
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = error
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = error
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = error
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = error
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = error
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = error
+
+# CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum
+dotnet_diagnostic.CA2247.severity = error
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = error
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = error
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = error
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = error
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = error
+
+# CA2255: The 'ModuleInitializer' attribute should not be used in libraries
+dotnet_diagnostic.CA2255.severity = error
+
+# CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface
+dotnet_diagnostic.CA2256.severity = error
+
+# CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'
+dotnet_diagnostic.CA2257.severity = error
+
+# CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported
+dotnet_diagnostic.CA2258.severity = error
+
+# CA2259: 'ThreadStatic' only affects static fields
+dotnet_diagnostic.CA2259.severity = error
+
+# CA2260: Use correct type parameter
+dotnet_diagnostic.CA2260.severity = error
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_all.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_all.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..445dbe7d560e7252aa0bdd669ff02b1bdb0ecd97
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_all.globalconfig
@@ -0,0 +1,819 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Rules from '8.0' release with 'All' analysis mode
+# Description: Rules with enabled-by-default state from '8.0' release with 'All' analysis mode. Rules that are first released in a version later than '8.0' are disabled.
+
+is_global = true
+
+global_level = -100
+
+
+# CA1000: Do not declare static members on generic types
+dotnet_diagnostic.CA1000.severity = warning
+
+# CA1001: Types that own disposable fields should be disposable
+dotnet_diagnostic.CA1001.severity = warning
+
+# CA1002: Do not expose generic lists
+dotnet_diagnostic.CA1002.severity = warning
+
+# CA1003: Use generic event handler instances
+dotnet_diagnostic.CA1003.severity = warning
+
+# CA1008: Enums should have zero value
+dotnet_diagnostic.CA1008.severity = warning
+
+# CA1010: Generic interface should also be implemented
+dotnet_diagnostic.CA1010.severity = warning
+
+# CA1012: Abstract types should not have public constructors
+dotnet_diagnostic.CA1012.severity = warning
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = warning
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = warning
+
+# CA1019: Define accessors for attribute arguments
+dotnet_diagnostic.CA1019.severity = warning
+
+# CA1024: Use properties where appropriate
+dotnet_diagnostic.CA1024.severity = warning
+
+# CA1027: Mark enums with FlagsAttribute
+dotnet_diagnostic.CA1027.severity = warning
+
+# CA1028: Enum Storage should be Int32
+dotnet_diagnostic.CA1028.severity = warning
+
+# CA1030: Use events where appropriate
+dotnet_diagnostic.CA1030.severity = warning
+
+# CA1031: Do not catch general exception types
+dotnet_diagnostic.CA1031.severity = warning
+
+# CA1032: Implement standard exception constructors
+dotnet_diagnostic.CA1032.severity = warning
+
+# CA1033: Interface methods should be callable by child types
+dotnet_diagnostic.CA1033.severity = warning
+
+# CA1034: Nested types should not be visible
+dotnet_diagnostic.CA1034.severity = warning
+
+# CA1036: Override methods on comparable types
+dotnet_diagnostic.CA1036.severity = warning
+
+# CA1040: Avoid empty interfaces
+dotnet_diagnostic.CA1040.severity = warning
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = warning
+
+# CA1043: Use Integral Or String Argument For Indexers
+dotnet_diagnostic.CA1043.severity = warning
+
+# CA1044: Properties should not be write only
+dotnet_diagnostic.CA1044.severity = warning
+
+# CA1046: Do not overload equality operator on reference types
+dotnet_diagnostic.CA1046.severity = warning
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = warning
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = warning
+
+# CA1051: Do not declare visible instance fields
+dotnet_diagnostic.CA1051.severity = warning
+
+# CA1052: Static holder types should be Static or NotInheritable
+dotnet_diagnostic.CA1052.severity = warning
+
+# CA1054: URI-like parameters should not be strings
+dotnet_diagnostic.CA1054.severity = warning
+
+# CA1055: URI-like return values should not be strings
+dotnet_diagnostic.CA1055.severity = warning
+
+# CA1056: URI-like properties should not be strings
+dotnet_diagnostic.CA1056.severity = warning
+
+# CA1058: Types should not extend certain base types
+dotnet_diagnostic.CA1058.severity = warning
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = warning
+
+# CA1062: Validate arguments of public methods
+dotnet_diagnostic.CA1062.severity = warning
+
+# CA1063: Implement IDisposable Correctly
+dotnet_diagnostic.CA1063.severity = warning
+
+# CA1064: Exceptions should be public
+dotnet_diagnostic.CA1064.severity = warning
+
+# CA1065: Do not raise exceptions in unexpected locations
+dotnet_diagnostic.CA1065.severity = warning
+
+# CA1066: Implement IEquatable when overriding Object.Equals
+dotnet_diagnostic.CA1066.severity = warning
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = warning
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = warning
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = warning
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = warning
+
+# CA1200: Avoid using cref tags with a prefix
+dotnet_diagnostic.CA1200.severity = warning
+
+# CA1303: Do not pass literals as localized parameters
+dotnet_diagnostic.CA1303.severity = warning
+
+# CA1304: Specify CultureInfo
+dotnet_diagnostic.CA1304.severity = warning
+
+# CA1305: Specify IFormatProvider
+dotnet_diagnostic.CA1305.severity = warning
+
+# CA1307: Specify StringComparison for clarity
+dotnet_diagnostic.CA1307.severity = warning
+
+# CA1308: Normalize strings to uppercase
+dotnet_diagnostic.CA1308.severity = warning
+
+# CA1309: Use ordinal string comparison
+dotnet_diagnostic.CA1309.severity = warning
+
+# CA1310: Specify StringComparison for correctness
+dotnet_diagnostic.CA1310.severity = warning
+
+# CA1311: Specify a culture or use an invariant version
+dotnet_diagnostic.CA1311.severity = warning
+
+# CA1401: P/Invokes should not be visible
+dotnet_diagnostic.CA1401.severity = warning
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+dotnet_diagnostic.CA1419.severity = warning
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = warning
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = warning
+
+# CA1508: Avoid dead conditional code
+dotnet_diagnostic.CA1508.severity = warning
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = warning
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = warning
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = warning
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = warning
+
+# CA1700: Do not name enum values 'Reserved'
+dotnet_diagnostic.CA1700.severity = warning
+
+# CA1707: Identifiers should not contain underscores
+dotnet_diagnostic.CA1707.severity = warning
+
+# CA1708: Identifiers should differ by more than case
+dotnet_diagnostic.CA1708.severity = warning
+
+# CA1710: Identifiers should have correct suffix
+dotnet_diagnostic.CA1710.severity = warning
+
+# CA1711: Identifiers should not have incorrect suffix
+dotnet_diagnostic.CA1711.severity = warning
+
+# CA1712: Do not prefix enum values with type name
+dotnet_diagnostic.CA1712.severity = warning
+
+# CA1713: Events should not have 'Before' or 'After' prefix
+dotnet_diagnostic.CA1713.severity = warning
+
+# CA1715: Identifiers should have correct prefix
+dotnet_diagnostic.CA1715.severity = warning
+
+# CA1716: Identifiers should not match keywords
+dotnet_diagnostic.CA1716.severity = warning
+
+# CA1720: Identifier contains type name
+dotnet_diagnostic.CA1720.severity = warning
+
+# CA1721: Property names should not match get methods
+dotnet_diagnostic.CA1721.severity = warning
+
+# CA1724: Type names should not match namespaces
+dotnet_diagnostic.CA1724.severity = warning
+
+# CA1725: Parameter names should match base declaration
+dotnet_diagnostic.CA1725.severity = warning
+
+# CA1727: Use PascalCase for named placeholders
+dotnet_diagnostic.CA1727.severity = warning
+
+# CA1802: Use literals where appropriate
+dotnet_diagnostic.CA1802.severity = warning
+
+# CA1805: Do not initialize unnecessarily
+dotnet_diagnostic.CA1805.severity = warning
+
+# CA1806: Do not ignore method results
+dotnet_diagnostic.CA1806.severity = warning
+
+# CA1810: Initialize reference type static fields inline
+dotnet_diagnostic.CA1810.severity = warning
+
+# CA1812: Avoid uninstantiated internal classes
+dotnet_diagnostic.CA1812.severity = warning
+
+# CA1813: Avoid unsealed attributes
+dotnet_diagnostic.CA1813.severity = warning
+
+# CA1814: Prefer jagged arrays over multidimensional
+dotnet_diagnostic.CA1814.severity = warning
+
+# CA1815: Override equals and operator equals on value types
+dotnet_diagnostic.CA1815.severity = warning
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = warning
+
+# CA1819: Properties should not return arrays
+dotnet_diagnostic.CA1819.severity = warning
+
+# CA1820: Test for empty strings using string length
+dotnet_diagnostic.CA1820.severity = warning
+
+# CA1821: Remove empty Finalizers
+dotnet_diagnostic.CA1821.severity = warning
+
+# CA1822: Mark members as static
+dotnet_diagnostic.CA1822.severity = warning
+
+# CA1823: Avoid unused private fields
+dotnet_diagnostic.CA1823.severity = warning
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+dotnet_diagnostic.CA1824.severity = warning
+
+# CA1825: Avoid zero-length array allocations
+dotnet_diagnostic.CA1825.severity = warning
+
+# CA1826: Do not use Enumerable methods on indexable collections
+dotnet_diagnostic.CA1826.severity = warning
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+dotnet_diagnostic.CA1827.severity = warning
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+dotnet_diagnostic.CA1828.severity = warning
+
+# CA1829: Use Length/Count property instead of Count() when available
+dotnet_diagnostic.CA1829.severity = warning
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+dotnet_diagnostic.CA1830.severity = warning
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1832.severity = warning
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1833.severity = warning
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+dotnet_diagnostic.CA1834.severity = warning
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+dotnet_diagnostic.CA1835.severity = warning
+
+# CA1836: Prefer IsEmpty over Count
+dotnet_diagnostic.CA1836.severity = warning
+
+# CA1837: Use 'Environment.ProcessId'
+dotnet_diagnostic.CA1837.severity = warning
+
+# CA1838: Avoid 'StringBuilder' parameters for P/Invokes
+dotnet_diagnostic.CA1838.severity = warning
+
+# CA1839: Use 'Environment.ProcessPath'
+dotnet_diagnostic.CA1839.severity = warning
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+dotnet_diagnostic.CA1840.severity = warning
+
+# CA1841: Prefer Dictionary.Contains methods
+dotnet_diagnostic.CA1841.severity = warning
+
+# CA1842: Do not use 'WhenAll' with a single task
+dotnet_diagnostic.CA1842.severity = warning
+
+# CA1843: Do not use 'WaitAll' with a single task
+dotnet_diagnostic.CA1843.severity = warning
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+dotnet_diagnostic.CA1844.severity = warning
+
+# CA1845: Use span-based 'string.Concat'
+dotnet_diagnostic.CA1845.severity = warning
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+dotnet_diagnostic.CA1846.severity = warning
+
+# CA1847: Use char literal for a single character lookup
+dotnet_diagnostic.CA1847.severity = warning
+
+# CA1848: Use the LoggerMessage delegates
+dotnet_diagnostic.CA1848.severity = warning
+
+# CA1849: Call async methods when in an async method
+dotnet_diagnostic.CA1849.severity = warning
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = warning
+
+# CA1851: Possible multiple enumerations of 'IEnumerable' collection
+dotnet_diagnostic.CA1851.severity = warning
+
+# CA1852: Seal internal types
+dotnet_diagnostic.CA1852.severity = warning
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = warning
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = warning
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = warning
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+dotnet_diagnostic.CA1856.severity = warning
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = warning
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = warning
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = warning
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = warning
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = warning
+
+# CA1863: Use 'CompositeFormat'
+dotnet_diagnostic.CA1863.severity = warning
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = warning
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = warning
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = warning
+
+# CA1867: Use char overload
+dotnet_diagnostic.CA1867.severity = warning
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = warning
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = warning
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = warning
+
+# CA2000: Dispose objects before losing scope
+dotnet_diagnostic.CA2000.severity = warning
+
+# CA2002: Do not lock on objects with weak identity
+dotnet_diagnostic.CA2002.severity = warning
+
+# CA2007: Consider calling ConfigureAwait on the awaited task
+dotnet_diagnostic.CA2007.severity = warning
+
+# CA2008: Do not create tasks without passing a TaskScheduler
+dotnet_diagnostic.CA2008.severity = warning
+
+# CA2009: Do not call ToImmutableCollection on an ImmutableCollection value
+dotnet_diagnostic.CA2009.severity = warning
+
+# CA2011: Avoid infinite recursion
+dotnet_diagnostic.CA2011.severity = warning
+
+# CA2012: Use ValueTasks correctly
+dotnet_diagnostic.CA2012.severity = warning
+
+# CA2016: Forward the 'CancellationToken' parameter to methods
+dotnet_diagnostic.CA2016.severity = warning
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = warning
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = warning
+
+# CA2100: Review SQL queries for security vulnerabilities
+dotnet_diagnostic.CA2100.severity = warning
+
+# CA2101: Specify marshaling for P/Invoke string arguments
+dotnet_diagnostic.CA2101.severity = warning
+
+# CA2119: Seal methods that satisfy private interfaces
+dotnet_diagnostic.CA2119.severity = warning
+
+# CA2153: Do Not Catch Corrupted State Exceptions
+dotnet_diagnostic.CA2153.severity = warning
+
+# CA2201: Do not raise reserved exception types
+dotnet_diagnostic.CA2201.severity = warning
+
+# CA2207: Initialize value type static fields inline
+dotnet_diagnostic.CA2207.severity = warning
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = warning
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = warning
+
+# CA2213: Disposable fields should be disposed
+dotnet_diagnostic.CA2213.severity = warning
+
+# CA2214: Do not call overridable methods in constructors
+dotnet_diagnostic.CA2214.severity = warning
+
+# CA2215: Dispose methods should call base class dispose
+dotnet_diagnostic.CA2215.severity = warning
+
+# CA2216: Disposable types should declare finalizer
+dotnet_diagnostic.CA2216.severity = warning
+
+# CA2217: Do not mark enums with FlagsAttribute
+dotnet_diagnostic.CA2217.severity = warning
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = warning
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = warning
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = warning
+
+# CA2225: Operator overloads have named alternates
+dotnet_diagnostic.CA2225.severity = warning
+
+# CA2226: Operators should have symmetrical overloads
+dotnet_diagnostic.CA2226.severity = warning
+
+# CA2227: Collection properties should be read only
+dotnet_diagnostic.CA2227.severity = warning
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = warning
+
+# CA2234: Pass system uri objects instead of strings
+dotnet_diagnostic.CA2234.severity = warning
+
+# CA2235: Mark all non-serializable fields
+dotnet_diagnostic.CA2235.severity = warning
+
+# CA2237: Mark ISerializable types with serializable
+dotnet_diagnostic.CA2237.severity = warning
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = warning
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = warning
+
+# CA2243: Attribute string literals should parse correctly
+dotnet_diagnostic.CA2243.severity = warning
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = warning
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = warning
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = warning
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = warning
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = warning
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = warning
+
+# CA2251: Use 'string.Equals'
+dotnet_diagnostic.CA2251.severity = warning
+
+# CA2252: This API requires opting into preview features
+dotnet_diagnostic.CA2252.severity = warning
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = warning
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = warning
+
+# CA2300: Do not use insecure deserializer BinaryFormatter
+dotnet_diagnostic.CA2300.severity = warning
+
+# CA2301: Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder
+dotnet_diagnostic.CA2301.severity = warning
+
+# CA2302: Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize
+dotnet_diagnostic.CA2302.severity = warning
+
+# CA2305: Do not use insecure deserializer LosFormatter
+dotnet_diagnostic.CA2305.severity = warning
+
+# CA2310: Do not use insecure deserializer NetDataContractSerializer
+dotnet_diagnostic.CA2310.severity = warning
+
+# CA2311: Do not deserialize without first setting NetDataContractSerializer.Binder
+dotnet_diagnostic.CA2311.severity = warning
+
+# CA2312: Ensure NetDataContractSerializer.Binder is set before deserializing
+dotnet_diagnostic.CA2312.severity = warning
+
+# CA2315: Do not use insecure deserializer ObjectStateFormatter
+dotnet_diagnostic.CA2315.severity = warning
+
+# CA2321: Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver
+dotnet_diagnostic.CA2321.severity = warning
+
+# CA2322: Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing
+dotnet_diagnostic.CA2322.severity = warning
+
+# CA2326: Do not use TypeNameHandling values other than None
+dotnet_diagnostic.CA2326.severity = warning
+
+# CA2327: Do not use insecure JsonSerializerSettings
+dotnet_diagnostic.CA2327.severity = warning
+
+# CA2328: Ensure that JsonSerializerSettings are secure
+dotnet_diagnostic.CA2328.severity = warning
+
+# CA2329: Do not deserialize with JsonSerializer using an insecure configuration
+dotnet_diagnostic.CA2329.severity = warning
+
+# CA2330: Ensure that JsonSerializer has a secure configuration when deserializing
+dotnet_diagnostic.CA2330.severity = warning
+
+# CA2350: Do not use DataTable.ReadXml() with untrusted data
+dotnet_diagnostic.CA2350.severity = warning
+
+# CA2351: Do not use DataSet.ReadXml() with untrusted data
+dotnet_diagnostic.CA2351.severity = warning
+
+# CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2352.severity = warning
+
+# CA2353: Unsafe DataSet or DataTable in serializable type
+dotnet_diagnostic.CA2353.severity = warning
+
+# CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2354.severity = warning
+
+# CA2355: Unsafe DataSet or DataTable type found in deserializable object graph
+dotnet_diagnostic.CA2355.severity = warning
+
+# CA2356: Unsafe DataSet or DataTable type in web deserializable object graph
+dotnet_diagnostic.CA2356.severity = warning
+
+# CA2361: Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data
+dotnet_diagnostic.CA2361.severity = warning
+
+# CA2362: Unsafe DataSet or DataTable in auto-generated serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2362.severity = warning
+
+# CA3001: Review code for SQL injection vulnerabilities
+dotnet_diagnostic.CA3001.severity = warning
+
+# CA3002: Review code for XSS vulnerabilities
+dotnet_diagnostic.CA3002.severity = warning
+
+# CA3003: Review code for file path injection vulnerabilities
+dotnet_diagnostic.CA3003.severity = warning
+
+# CA3004: Review code for information disclosure vulnerabilities
+dotnet_diagnostic.CA3004.severity = warning
+
+# CA3005: Review code for LDAP injection vulnerabilities
+dotnet_diagnostic.CA3005.severity = warning
+
+# CA3006: Review code for process command injection vulnerabilities
+dotnet_diagnostic.CA3006.severity = warning
+
+# CA3007: Review code for open redirect vulnerabilities
+dotnet_diagnostic.CA3007.severity = warning
+
+# CA3008: Review code for XPath injection vulnerabilities
+dotnet_diagnostic.CA3008.severity = warning
+
+# CA3009: Review code for XML injection vulnerabilities
+dotnet_diagnostic.CA3009.severity = warning
+
+# CA3010: Review code for XAML injection vulnerabilities
+dotnet_diagnostic.CA3010.severity = warning
+
+# CA3011: Review code for DLL injection vulnerabilities
+dotnet_diagnostic.CA3011.severity = warning
+
+# CA3012: Review code for regex injection vulnerabilities
+dotnet_diagnostic.CA3012.severity = warning
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = warning
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = warning
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = warning
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = warning
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = warning
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = warning
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = warning
+
+# CA5358: Review cipher mode usage with cryptography experts
+dotnet_diagnostic.CA5358.severity = warning
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = warning
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = warning
+
+# CA5361: Do Not Disable SChannel Use of Strong Crypto
+dotnet_diagnostic.CA5361.severity = warning
+
+# CA5362: Potential reference cycle in deserialized object graph
+dotnet_diagnostic.CA5362.severity = warning
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = warning
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = warning
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = warning
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = warning
+
+# CA5367: Do Not Serialize Types With Pointer Fields
+dotnet_diagnostic.CA5367.severity = warning
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = warning
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = warning
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = warning
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = warning
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = warning
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = warning
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = warning
+
+# CA5375: Do Not Use Account Shared Access Signature
+dotnet_diagnostic.CA5375.severity = warning
+
+# CA5376: Use SharedAccessProtocol HttpsOnly
+dotnet_diagnostic.CA5376.severity = warning
+
+# CA5377: Use Container Level Access Policy
+dotnet_diagnostic.CA5377.severity = warning
+
+# CA5378: Do not disable ServicePointManagerSecurityProtocols
+dotnet_diagnostic.CA5378.severity = warning
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = warning
+
+# CA5380: Do Not Add Certificates To Root Store
+dotnet_diagnostic.CA5380.severity = warning
+
+# CA5381: Ensure Certificates Are Not Added To Root Store
+dotnet_diagnostic.CA5381.severity = warning
+
+# CA5382: Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5382.severity = warning
+
+# CA5383: Ensure Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5383.severity = warning
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = warning
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = warning
+
+# CA5386: Avoid hardcoding SecurityProtocolType value
+dotnet_diagnostic.CA5386.severity = warning
+
+# CA5387: Do Not Use Weak Key Derivation Function With Insufficient Iteration Count
+dotnet_diagnostic.CA5387.severity = warning
+
+# CA5388: Ensure Sufficient Iteration Count When Using Weak Key Derivation Function
+dotnet_diagnostic.CA5388.severity = warning
+
+# CA5389: Do Not Add Archive Item's Path To The Target File System Path
+dotnet_diagnostic.CA5389.severity = warning
+
+# CA5390: Do not hard-code encryption key
+dotnet_diagnostic.CA5390.severity = warning
+
+# CA5391: Use antiforgery tokens in ASP.NET Core MVC controllers
+dotnet_diagnostic.CA5391.severity = warning
+
+# CA5392: Use DefaultDllImportSearchPaths attribute for P/Invokes
+dotnet_diagnostic.CA5392.severity = warning
+
+# CA5393: Do not use unsafe DllImportSearchPath value
+dotnet_diagnostic.CA5393.severity = warning
+
+# CA5394: Do not use insecure randomness
+dotnet_diagnostic.CA5394.severity = warning
+
+# CA5395: Miss HttpVerb attribute for action methods
+dotnet_diagnostic.CA5395.severity = warning
+
+# CA5396: Set HttpOnly to true for HttpCookie
+dotnet_diagnostic.CA5396.severity = warning
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = warning
+
+# CA5398: Avoid hardcoded SslProtocols values
+dotnet_diagnostic.CA5398.severity = warning
+
+# CA5399: HttpClients should enable certificate revocation list checks
+dotnet_diagnostic.CA5399.severity = warning
+
+# CA5400: Ensure HttpClient certificate revocation list check is not disabled
+dotnet_diagnostic.CA5400.severity = warning
+
+# CA5401: Do not use CreateEncryptor with non-default IV
+dotnet_diagnostic.CA5401.severity = warning
+
+# CA5402: Use CreateEncryptor with the default IV
+dotnet_diagnostic.CA5402.severity = warning
+
+# CA5403: Do not hard-code certificate
+dotnet_diagnostic.CA5403.severity = warning
+
+# CA5404: Do not disable token validation checks
+dotnet_diagnostic.CA5404.severity = warning
+
+# CA5405: Do not always skip token validation in delegates
+dotnet_diagnostic.CA5405.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..b6533e0235e9933299c967af61cf301abd1bf58e
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_8_all_warnaserror.globalconfig
@@ -0,0 +1,879 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Rules from '8.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: Rules with enabled-by-default state from '8.0' release with 'All' analysis mode. Rules that are first released in a version later than '8.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -100
+
+
+# CA1000: Do not declare static members on generic types
+dotnet_diagnostic.CA1000.severity = error
+
+# CA1001: Types that own disposable fields should be disposable
+dotnet_diagnostic.CA1001.severity = error
+
+# CA1002: Do not expose generic lists
+dotnet_diagnostic.CA1002.severity = error
+
+# CA1003: Use generic event handler instances
+dotnet_diagnostic.CA1003.severity = error
+
+# CA1008: Enums should have zero value
+dotnet_diagnostic.CA1008.severity = error
+
+# CA1010: Generic interface should also be implemented
+dotnet_diagnostic.CA1010.severity = error
+
+# CA1012: Abstract types should not have public constructors
+dotnet_diagnostic.CA1012.severity = error
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = error
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = error
+
+# CA1019: Define accessors for attribute arguments
+dotnet_diagnostic.CA1019.severity = error
+
+# CA1024: Use properties where appropriate
+dotnet_diagnostic.CA1024.severity = error
+
+# CA1027: Mark enums with FlagsAttribute
+dotnet_diagnostic.CA1027.severity = error
+
+# CA1028: Enum Storage should be Int32
+dotnet_diagnostic.CA1028.severity = error
+
+# CA1030: Use events where appropriate
+dotnet_diagnostic.CA1030.severity = error
+
+# CA1031: Do not catch general exception types
+dotnet_diagnostic.CA1031.severity = error
+
+# CA1032: Implement standard exception constructors
+dotnet_diagnostic.CA1032.severity = error
+
+# CA1033: Interface methods should be callable by child types
+dotnet_diagnostic.CA1033.severity = error
+
+# CA1034: Nested types should not be visible
+dotnet_diagnostic.CA1034.severity = error
+
+# CA1036: Override methods on comparable types
+dotnet_diagnostic.CA1036.severity = error
+
+# CA1040: Avoid empty interfaces
+dotnet_diagnostic.CA1040.severity = error
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = error
+
+# CA1043: Use Integral Or String Argument For Indexers
+dotnet_diagnostic.CA1043.severity = error
+
+# CA1044: Properties should not be write only
+dotnet_diagnostic.CA1044.severity = error
+
+# CA1046: Do not overload equality operator on reference types
+dotnet_diagnostic.CA1046.severity = error
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = error
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = error
+
+# CA1051: Do not declare visible instance fields
+dotnet_diagnostic.CA1051.severity = error
+
+# CA1052: Static holder types should be Static or NotInheritable
+dotnet_diagnostic.CA1052.severity = error
+
+# CA1054: URI-like parameters should not be strings
+dotnet_diagnostic.CA1054.severity = error
+
+# CA1055: URI-like return values should not be strings
+dotnet_diagnostic.CA1055.severity = error
+
+# CA1056: URI-like properties should not be strings
+dotnet_diagnostic.CA1056.severity = error
+
+# CA1058: Types should not extend certain base types
+dotnet_diagnostic.CA1058.severity = error
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = error
+
+# CA1062: Validate arguments of public methods
+dotnet_diagnostic.CA1062.severity = error
+
+# CA1063: Implement IDisposable Correctly
+dotnet_diagnostic.CA1063.severity = error
+
+# CA1064: Exceptions should be public
+dotnet_diagnostic.CA1064.severity = error
+
+# CA1065: Do not raise exceptions in unexpected locations
+dotnet_diagnostic.CA1065.severity = error
+
+# CA1066: Implement IEquatable when overriding Object.Equals
+dotnet_diagnostic.CA1066.severity = error
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = error
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = error
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = error
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = error
+
+# CA1200: Avoid using cref tags with a prefix
+dotnet_diagnostic.CA1200.severity = error
+
+# CA1303: Do not pass literals as localized parameters
+dotnet_diagnostic.CA1303.severity = error
+
+# CA1304: Specify CultureInfo
+dotnet_diagnostic.CA1304.severity = error
+
+# CA1305: Specify IFormatProvider
+dotnet_diagnostic.CA1305.severity = error
+
+# CA1307: Specify StringComparison for clarity
+dotnet_diagnostic.CA1307.severity = error
+
+# CA1308: Normalize strings to uppercase
+dotnet_diagnostic.CA1308.severity = error
+
+# CA1309: Use ordinal string comparison
+dotnet_diagnostic.CA1309.severity = error
+
+# CA1310: Specify StringComparison for correctness
+dotnet_diagnostic.CA1310.severity = error
+
+# CA1311: Specify a culture or use an invariant version
+dotnet_diagnostic.CA1311.severity = error
+
+# CA1401: P/Invokes should not be visible
+dotnet_diagnostic.CA1401.severity = error
+
+# CA1416: Validate platform compatibility
+dotnet_diagnostic.CA1416.severity = error
+
+# CA1417: Do not use 'OutAttribute' on string parameters for P/Invokes
+dotnet_diagnostic.CA1417.severity = error
+
+# CA1418: Use valid platform string
+dotnet_diagnostic.CA1418.severity = error
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+dotnet_diagnostic.CA1419.severity = error
+
+# CA1420: Property, type, or attribute requires runtime marshalling
+dotnet_diagnostic.CA1420.severity = error
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = error
+
+# CA1422: Validate platform compatibility
+dotnet_diagnostic.CA1422.severity = error
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = error
+
+# CA1508: Avoid dead conditional code
+dotnet_diagnostic.CA1508.severity = error
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = error
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = error
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = error
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = error
+
+# CA1700: Do not name enum values 'Reserved'
+dotnet_diagnostic.CA1700.severity = error
+
+# CA1707: Identifiers should not contain underscores
+dotnet_diagnostic.CA1707.severity = error
+
+# CA1708: Identifiers should differ by more than case
+dotnet_diagnostic.CA1708.severity = error
+
+# CA1710: Identifiers should have correct suffix
+dotnet_diagnostic.CA1710.severity = error
+
+# CA1711: Identifiers should not have incorrect suffix
+dotnet_diagnostic.CA1711.severity = error
+
+# CA1712: Do not prefix enum values with type name
+dotnet_diagnostic.CA1712.severity = error
+
+# CA1713: Events should not have 'Before' or 'After' prefix
+dotnet_diagnostic.CA1713.severity = error
+
+# CA1715: Identifiers should have correct prefix
+dotnet_diagnostic.CA1715.severity = error
+
+# CA1716: Identifiers should not match keywords
+dotnet_diagnostic.CA1716.severity = error
+
+# CA1720: Identifier contains type name
+dotnet_diagnostic.CA1720.severity = error
+
+# CA1721: Property names should not match get methods
+dotnet_diagnostic.CA1721.severity = error
+
+# CA1724: Type names should not match namespaces
+dotnet_diagnostic.CA1724.severity = error
+
+# CA1725: Parameter names should match base declaration
+dotnet_diagnostic.CA1725.severity = error
+
+# CA1727: Use PascalCase for named placeholders
+dotnet_diagnostic.CA1727.severity = error
+
+# CA1802: Use literals where appropriate
+dotnet_diagnostic.CA1802.severity = error
+
+# CA1805: Do not initialize unnecessarily
+dotnet_diagnostic.CA1805.severity = error
+
+# CA1806: Do not ignore method results
+dotnet_diagnostic.CA1806.severity = error
+
+# CA1810: Initialize reference type static fields inline
+dotnet_diagnostic.CA1810.severity = error
+
+# CA1812: Avoid uninstantiated internal classes
+dotnet_diagnostic.CA1812.severity = error
+
+# CA1813: Avoid unsealed attributes
+dotnet_diagnostic.CA1813.severity = error
+
+# CA1814: Prefer jagged arrays over multidimensional
+dotnet_diagnostic.CA1814.severity = error
+
+# CA1815: Override equals and operator equals on value types
+dotnet_diagnostic.CA1815.severity = error
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = error
+
+# CA1819: Properties should not return arrays
+dotnet_diagnostic.CA1819.severity = error
+
+# CA1820: Test for empty strings using string length
+dotnet_diagnostic.CA1820.severity = error
+
+# CA1821: Remove empty Finalizers
+dotnet_diagnostic.CA1821.severity = error
+
+# CA1822: Mark members as static
+dotnet_diagnostic.CA1822.severity = error
+
+# CA1823: Avoid unused private fields
+dotnet_diagnostic.CA1823.severity = error
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+dotnet_diagnostic.CA1824.severity = error
+
+# CA1825: Avoid zero-length array allocations
+dotnet_diagnostic.CA1825.severity = error
+
+# CA1826: Do not use Enumerable methods on indexable collections
+dotnet_diagnostic.CA1826.severity = error
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+dotnet_diagnostic.CA1827.severity = error
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+dotnet_diagnostic.CA1828.severity = error
+
+# CA1829: Use Length/Count property instead of Count() when available
+dotnet_diagnostic.CA1829.severity = error
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+dotnet_diagnostic.CA1830.severity = error
+
+# CA1831: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1831.severity = error
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1832.severity = error
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1833.severity = error
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+dotnet_diagnostic.CA1834.severity = error
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+dotnet_diagnostic.CA1835.severity = error
+
+# CA1836: Prefer IsEmpty over Count
+dotnet_diagnostic.CA1836.severity = error
+
+# CA1837: Use 'Environment.ProcessId'
+dotnet_diagnostic.CA1837.severity = error
+
+# CA1838: Avoid 'StringBuilder' parameters for P/Invokes
+dotnet_diagnostic.CA1838.severity = error
+
+# CA1839: Use 'Environment.ProcessPath'
+dotnet_diagnostic.CA1839.severity = error
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+dotnet_diagnostic.CA1840.severity = error
+
+# CA1841: Prefer Dictionary.Contains methods
+dotnet_diagnostic.CA1841.severity = error
+
+# CA1842: Do not use 'WhenAll' with a single task
+dotnet_diagnostic.CA1842.severity = error
+
+# CA1843: Do not use 'WaitAll' with a single task
+dotnet_diagnostic.CA1843.severity = error
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+dotnet_diagnostic.CA1844.severity = error
+
+# CA1845: Use span-based 'string.Concat'
+dotnet_diagnostic.CA1845.severity = error
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+dotnet_diagnostic.CA1846.severity = error
+
+# CA1847: Use char literal for a single character lookup
+dotnet_diagnostic.CA1847.severity = error
+
+# CA1848: Use the LoggerMessage delegates
+dotnet_diagnostic.CA1848.severity = error
+
+# CA1849: Call async methods when in an async method
+dotnet_diagnostic.CA1849.severity = error
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = error
+
+# CA1851: Possible multiple enumerations of 'IEnumerable' collection
+dotnet_diagnostic.CA1851.severity = error
+
+# CA1852: Seal internal types
+dotnet_diagnostic.CA1852.severity = error
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = error
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = error
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = error
+
+# CA1857: A constant is expected for the parameter
+dotnet_diagnostic.CA1857.severity = error
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = error
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = error
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = error
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = error
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = error
+
+# CA1863: Use 'CompositeFormat'
+dotnet_diagnostic.CA1863.severity = error
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = error
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = error
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = error
+
+# CA1867: Use char overload
+dotnet_diagnostic.CA1867.severity = error
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = error
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = error
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = error
+
+# CA2000: Dispose objects before losing scope
+dotnet_diagnostic.CA2000.severity = error
+
+# CA2002: Do not lock on objects with weak identity
+dotnet_diagnostic.CA2002.severity = error
+
+# CA2007: Consider calling ConfigureAwait on the awaited task
+dotnet_diagnostic.CA2007.severity = error
+
+# CA2008: Do not create tasks without passing a TaskScheduler
+dotnet_diagnostic.CA2008.severity = error
+
+# CA2009: Do not call ToImmutableCollection on an ImmutableCollection value
+dotnet_diagnostic.CA2009.severity = error
+
+# CA2011: Avoid infinite recursion
+dotnet_diagnostic.CA2011.severity = error
+
+# CA2012: Use ValueTasks correctly
+dotnet_diagnostic.CA2012.severity = error
+
+# CA2013: Do not use ReferenceEquals with value types
+dotnet_diagnostic.CA2013.severity = error
+
+# CA2014: Do not use stackalloc in loops
+dotnet_diagnostic.CA2014.severity = error
+
+# CA2015: Do not define finalizers for types derived from MemoryManager
+dotnet_diagnostic.CA2015.severity = error
+
+# CA2016: Forward the 'CancellationToken' parameter to methods
+dotnet_diagnostic.CA2016.severity = error
+
+# CA2017: Parameter count mismatch
+dotnet_diagnostic.CA2017.severity = error
+
+# CA2018: 'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument
+dotnet_diagnostic.CA2018.severity = error
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = error
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = error
+
+# CA2021: Do not call Enumerable.Cast or Enumerable.OfType with incompatible types
+dotnet_diagnostic.CA2021.severity = error
+
+# CA2100: Review SQL queries for security vulnerabilities
+dotnet_diagnostic.CA2100.severity = error
+
+# CA2101: Specify marshaling for P/Invoke string arguments
+dotnet_diagnostic.CA2101.severity = error
+
+# CA2119: Seal methods that satisfy private interfaces
+dotnet_diagnostic.CA2119.severity = error
+
+# CA2153: Do Not Catch Corrupted State Exceptions
+dotnet_diagnostic.CA2153.severity = error
+
+# CA2200: Rethrow to preserve stack details
+dotnet_diagnostic.CA2200.severity = error
+
+# CA2201: Do not raise reserved exception types
+dotnet_diagnostic.CA2201.severity = error
+
+# CA2207: Initialize value type static fields inline
+dotnet_diagnostic.CA2207.severity = error
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = error
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = error
+
+# CA2213: Disposable fields should be disposed
+dotnet_diagnostic.CA2213.severity = error
+
+# CA2214: Do not call overridable methods in constructors
+dotnet_diagnostic.CA2214.severity = error
+
+# CA2215: Dispose methods should call base class dispose
+dotnet_diagnostic.CA2215.severity = error
+
+# CA2216: Disposable types should declare finalizer
+dotnet_diagnostic.CA2216.severity = error
+
+# CA2217: Do not mark enums with FlagsAttribute
+dotnet_diagnostic.CA2217.severity = error
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = error
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = error
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = error
+
+# CA2225: Operator overloads have named alternates
+dotnet_diagnostic.CA2225.severity = error
+
+# CA2226: Operators should have symmetrical overloads
+dotnet_diagnostic.CA2226.severity = error
+
+# CA2227: Collection properties should be read only
+dotnet_diagnostic.CA2227.severity = error
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = error
+
+# CA2234: Pass system uri objects instead of strings
+dotnet_diagnostic.CA2234.severity = error
+
+# CA2235: Mark all non-serializable fields
+dotnet_diagnostic.CA2235.severity = error
+
+# CA2237: Mark ISerializable types with serializable
+dotnet_diagnostic.CA2237.severity = error
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = error
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = error
+
+# CA2243: Attribute string literals should parse correctly
+dotnet_diagnostic.CA2243.severity = error
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = error
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = error
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = error
+
+# CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum
+dotnet_diagnostic.CA2247.severity = error
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = error
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = error
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = error
+
+# CA2251: Use 'string.Equals'
+dotnet_diagnostic.CA2251.severity = error
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = error
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = error
+
+# CA2255: The 'ModuleInitializer' attribute should not be used in libraries
+dotnet_diagnostic.CA2255.severity = error
+
+# CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface
+dotnet_diagnostic.CA2256.severity = error
+
+# CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'
+dotnet_diagnostic.CA2257.severity = error
+
+# CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported
+dotnet_diagnostic.CA2258.severity = error
+
+# CA2259: 'ThreadStatic' only affects static fields
+dotnet_diagnostic.CA2259.severity = error
+
+# CA2260: Use correct type parameter
+dotnet_diagnostic.CA2260.severity = error
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = error
+
+# CA2300: Do not use insecure deserializer BinaryFormatter
+dotnet_diagnostic.CA2300.severity = error
+
+# CA2301: Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder
+dotnet_diagnostic.CA2301.severity = error
+
+# CA2302: Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize
+dotnet_diagnostic.CA2302.severity = error
+
+# CA2305: Do not use insecure deserializer LosFormatter
+dotnet_diagnostic.CA2305.severity = error
+
+# CA2310: Do not use insecure deserializer NetDataContractSerializer
+dotnet_diagnostic.CA2310.severity = error
+
+# CA2311: Do not deserialize without first setting NetDataContractSerializer.Binder
+dotnet_diagnostic.CA2311.severity = error
+
+# CA2312: Ensure NetDataContractSerializer.Binder is set before deserializing
+dotnet_diagnostic.CA2312.severity = error
+
+# CA2315: Do not use insecure deserializer ObjectStateFormatter
+dotnet_diagnostic.CA2315.severity = error
+
+# CA2321: Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver
+dotnet_diagnostic.CA2321.severity = error
+
+# CA2322: Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing
+dotnet_diagnostic.CA2322.severity = error
+
+# CA2326: Do not use TypeNameHandling values other than None
+dotnet_diagnostic.CA2326.severity = error
+
+# CA2327: Do not use insecure JsonSerializerSettings
+dotnet_diagnostic.CA2327.severity = error
+
+# CA2328: Ensure that JsonSerializerSettings are secure
+dotnet_diagnostic.CA2328.severity = error
+
+# CA2329: Do not deserialize with JsonSerializer using an insecure configuration
+dotnet_diagnostic.CA2329.severity = error
+
+# CA2330: Ensure that JsonSerializer has a secure configuration when deserializing
+dotnet_diagnostic.CA2330.severity = error
+
+# CA2350: Do not use DataTable.ReadXml() with untrusted data
+dotnet_diagnostic.CA2350.severity = error
+
+# CA2351: Do not use DataSet.ReadXml() with untrusted data
+dotnet_diagnostic.CA2351.severity = error
+
+# CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2352.severity = error
+
+# CA2353: Unsafe DataSet or DataTable in serializable type
+dotnet_diagnostic.CA2353.severity = error
+
+# CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2354.severity = error
+
+# CA2355: Unsafe DataSet or DataTable type found in deserializable object graph
+dotnet_diagnostic.CA2355.severity = error
+
+# CA2356: Unsafe DataSet or DataTable type in web deserializable object graph
+dotnet_diagnostic.CA2356.severity = error
+
+# CA2361: Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data
+dotnet_diagnostic.CA2361.severity = error
+
+# CA2362: Unsafe DataSet or DataTable in auto-generated serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2362.severity = error
+
+# CA3001: Review code for SQL injection vulnerabilities
+dotnet_diagnostic.CA3001.severity = error
+
+# CA3002: Review code for XSS vulnerabilities
+dotnet_diagnostic.CA3002.severity = error
+
+# CA3003: Review code for file path injection vulnerabilities
+dotnet_diagnostic.CA3003.severity = error
+
+# CA3004: Review code for information disclosure vulnerabilities
+dotnet_diagnostic.CA3004.severity = error
+
+# CA3005: Review code for LDAP injection vulnerabilities
+dotnet_diagnostic.CA3005.severity = error
+
+# CA3006: Review code for process command injection vulnerabilities
+dotnet_diagnostic.CA3006.severity = error
+
+# CA3007: Review code for open redirect vulnerabilities
+dotnet_diagnostic.CA3007.severity = error
+
+# CA3008: Review code for XPath injection vulnerabilities
+dotnet_diagnostic.CA3008.severity = error
+
+# CA3009: Review code for XML injection vulnerabilities
+dotnet_diagnostic.CA3009.severity = error
+
+# CA3010: Review code for XAML injection vulnerabilities
+dotnet_diagnostic.CA3010.severity = error
+
+# CA3011: Review code for DLL injection vulnerabilities
+dotnet_diagnostic.CA3011.severity = error
+
+# CA3012: Review code for regex injection vulnerabilities
+dotnet_diagnostic.CA3012.severity = error
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = error
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = error
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = error
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = error
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = error
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = error
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = error
+
+# CA5358: Review cipher mode usage with cryptography experts
+dotnet_diagnostic.CA5358.severity = error
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = error
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = error
+
+# CA5361: Do Not Disable SChannel Use of Strong Crypto
+dotnet_diagnostic.CA5361.severity = error
+
+# CA5362: Potential reference cycle in deserialized object graph
+dotnet_diagnostic.CA5362.severity = error
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = error
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = error
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = error
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = error
+
+# CA5367: Do Not Serialize Types With Pointer Fields
+dotnet_diagnostic.CA5367.severity = error
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = error
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = error
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = error
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = error
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = error
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = error
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = error
+
+# CA5375: Do Not Use Account Shared Access Signature
+dotnet_diagnostic.CA5375.severity = error
+
+# CA5376: Use SharedAccessProtocol HttpsOnly
+dotnet_diagnostic.CA5376.severity = error
+
+# CA5377: Use Container Level Access Policy
+dotnet_diagnostic.CA5377.severity = error
+
+# CA5378: Do not disable ServicePointManagerSecurityProtocols
+dotnet_diagnostic.CA5378.severity = error
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = error
+
+# CA5380: Do Not Add Certificates To Root Store
+dotnet_diagnostic.CA5380.severity = error
+
+# CA5381: Ensure Certificates Are Not Added To Root Store
+dotnet_diagnostic.CA5381.severity = error
+
+# CA5382: Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5382.severity = error
+
+# CA5383: Ensure Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5383.severity = error
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = error
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = error
+
+# CA5386: Avoid hardcoding SecurityProtocolType value
+dotnet_diagnostic.CA5386.severity = error
+
+# CA5387: Do Not Use Weak Key Derivation Function With Insufficient Iteration Count
+dotnet_diagnostic.CA5387.severity = error
+
+# CA5388: Ensure Sufficient Iteration Count When Using Weak Key Derivation Function
+dotnet_diagnostic.CA5388.severity = error
+
+# CA5389: Do Not Add Archive Item's Path To The Target File System Path
+dotnet_diagnostic.CA5389.severity = error
+
+# CA5390: Do not hard-code encryption key
+dotnet_diagnostic.CA5390.severity = error
+
+# CA5391: Use antiforgery tokens in ASP.NET Core MVC controllers
+dotnet_diagnostic.CA5391.severity = error
+
+# CA5392: Use DefaultDllImportSearchPaths attribute for P/Invokes
+dotnet_diagnostic.CA5392.severity = error
+
+# CA5393: Do not use unsafe DllImportSearchPath value
+dotnet_diagnostic.CA5393.severity = error
+
+# CA5394: Do not use insecure randomness
+dotnet_diagnostic.CA5394.severity = error
+
+# CA5395: Miss HttpVerb attribute for action methods
+dotnet_diagnostic.CA5395.severity = error
+
+# CA5396: Set HttpOnly to true for HttpCookie
+dotnet_diagnostic.CA5396.severity = error
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = error
+
+# CA5398: Avoid hardcoded SslProtocols values
+dotnet_diagnostic.CA5398.severity = error
+
+# CA5399: HttpClients should enable certificate revocation list checks
+dotnet_diagnostic.CA5399.severity = error
+
+# CA5400: Ensure HttpClient certificate revocation list check is not disabled
+dotnet_diagnostic.CA5400.severity = error
+
+# CA5401: Do not use CreateEncryptor with non-default IV
+dotnet_diagnostic.CA5401.severity = error
+
+# CA5402: Use CreateEncryptor with the default IV
+dotnet_diagnostic.CA5402.severity = error
+
+# CA5403: Do not hard-code certificate
+dotnet_diagnostic.CA5403.severity = error
+
+# CA5404: Do not disable token validation checks
+dotnet_diagnostic.CA5404.severity = error
+
+# CA5405: Do not always skip token validation in delegates
+dotnet_diagnostic.CA5405.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_default.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_default.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..21539e34747644658d84d784bc6355fc6b9feb49
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_default.globalconfig
@@ -0,0 +1,9 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Rules from '9.0' release with 'Default' analysis mode
+# Description: Rules with enabled-by-default state from '9.0' release with 'Default' analysis mode. Rules that are first released in a version later than '9.0' are disabled.
+
+is_global = true
+
+global_level = -100
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_default.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_default.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..908c5f902c3f39bb5198d47ed19160886b7de6ae
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_default.globalconfig
@@ -0,0 +1,9 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Design' Rules from '5.0' release with 'Default' analysis mode
+# Description: 'Design' Rules with enabled-by-default state from '5.0' release with 'Default' analysis mode. Rules that are first released in a version later than '5.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_none.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_none.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..8ab61911f69c4226544c7b4cec7d2d9a124c553d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_5_none.globalconfig
@@ -0,0 +1,54 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Design' Rules from '5.0' release with 'None' analysis mode
+# Description: 'Design' Rules with enabled-by-default state from '5.0' release with 'None' analysis mode. Rules that are first released in a version later than '5.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1000: Do not declare static members on generic types
+dotnet_diagnostic.CA1000.severity = none
+
+# CA1001: Types that own disposable fields should be disposable
+dotnet_diagnostic.CA1001.severity = none
+
+# CA1010: Generic interface should also be implemented
+dotnet_diagnostic.CA1010.severity = none
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = none
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = none
+
+# CA1036: Override methods on comparable types
+dotnet_diagnostic.CA1036.severity = none
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = none
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = none
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = none
+
+# CA1051: Do not declare visible instance fields
+dotnet_diagnostic.CA1051.severity = none
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = none
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = none
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = none
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = none
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_none_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_none_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..77e4cb3ed6fab8283e047d7fe6d7b1fdee70afad
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_none_warnaserror.globalconfig
@@ -0,0 +1,54 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Design' Rules from '6.0' release with 'None' analysis mode escalated to 'error' severity
+# Description: 'Design' Rules with enabled-by-default state from '6.0' release with 'None' analysis mode. Rules that are first released in a version later than '6.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1000: Do not declare static members on generic types
+dotnet_diagnostic.CA1000.severity = none
+
+# CA1001: Types that own disposable fields should be disposable
+dotnet_diagnostic.CA1001.severity = none
+
+# CA1010: Generic interface should also be implemented
+dotnet_diagnostic.CA1010.severity = none
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = none
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = none
+
+# CA1036: Override methods on comparable types
+dotnet_diagnostic.CA1036.severity = none
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = none
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = none
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = none
+
+# CA1051: Do not declare visible instance fields
+dotnet_diagnostic.CA1051.severity = none
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = none
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = none
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = none
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = none
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_recommended_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_recommended_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..3513fde72e3c578211dc83bcf6d790a7fa2cc42e
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_6_recommended_warnaserror.globalconfig
@@ -0,0 +1,54 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Design' Rules from '6.0' release with 'Recommended' analysis mode escalated to 'error' severity
+# Description: 'Design' Rules with enabled-by-default state from '6.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '6.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1000: Do not declare static members on generic types
+dotnet_diagnostic.CA1000.severity = error
+
+# CA1001: Types that own disposable fields should be disposable
+dotnet_diagnostic.CA1001.severity = error
+
+# CA1010: Generic interface should also be implemented
+dotnet_diagnostic.CA1010.severity = error
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = error
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = error
+
+# CA1036: Override methods on comparable types
+dotnet_diagnostic.CA1036.severity = error
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = error
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = error
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = error
+
+# CA1051: Do not declare visible instance fields
+dotnet_diagnostic.CA1051.severity = error
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = error
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = error
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = error
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = error
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_7_minimum.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_7_minimum.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..8a3b82ed4f680cd5538412b0e5f4ddb803994021
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_7_minimum.globalconfig
@@ -0,0 +1,39 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Design' Rules from '7.0' release with 'Minimum' analysis mode
+# Description: 'Design' Rules with enabled-by-default state from '7.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = warning
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = warning
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = warning
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = warning
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = warning
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = warning
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = warning
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = warning
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = warning
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_minimum.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_minimum.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..b965a8811b2a129d511bf688a550506cf884467d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_minimum.globalconfig
@@ -0,0 +1,39 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Design' Rules from '8.0' release with 'Minimum' analysis mode
+# Description: 'Design' Rules with enabled-by-default state from '8.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '8.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = warning
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = warning
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = warning
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = warning
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = warning
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = warning
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = warning
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = warning
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = warning
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_recommended.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_recommended.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..081ba11a55d4ba2552cd7e3e6a34e041cfed78ee
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_8_recommended.globalconfig
@@ -0,0 +1,54 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Design' Rules from '8.0' release with 'Recommended' analysis mode
+# Description: 'Design' Rules with enabled-by-default state from '8.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '8.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1000: Do not declare static members on generic types
+dotnet_diagnostic.CA1000.severity = warning
+
+# CA1001: Types that own disposable fields should be disposable
+dotnet_diagnostic.CA1001.severity = warning
+
+# CA1010: Generic interface should also be implemented
+dotnet_diagnostic.CA1010.severity = warning
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = warning
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = warning
+
+# CA1036: Override methods on comparable types
+dotnet_diagnostic.CA1036.severity = warning
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = warning
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = warning
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = warning
+
+# CA1051: Do not declare visible instance fields
+dotnet_diagnostic.CA1051.severity = warning
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = warning
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = warning
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = warning
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = warning
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_all.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_all.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..0bf6764e8f8ebc62667b3a76aab8b4134d4abfab
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_all.globalconfig
@@ -0,0 +1,135 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Design' Rules from '9.0' release with 'All' analysis mode
+# Description: 'Design' Rules with enabled-by-default state from '9.0' release with 'All' analysis mode. Rules that are first released in a version later than '9.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1000: Do not declare static members on generic types
+dotnet_diagnostic.CA1000.severity = warning
+
+# CA1001: Types that own disposable fields should be disposable
+dotnet_diagnostic.CA1001.severity = warning
+
+# CA1002: Do not expose generic lists
+dotnet_diagnostic.CA1002.severity = warning
+
+# CA1003: Use generic event handler instances
+dotnet_diagnostic.CA1003.severity = warning
+
+# CA1008: Enums should have zero value
+dotnet_diagnostic.CA1008.severity = warning
+
+# CA1010: Generic interface should also be implemented
+dotnet_diagnostic.CA1010.severity = warning
+
+# CA1012: Abstract types should not have public constructors
+dotnet_diagnostic.CA1012.severity = warning
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = warning
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = warning
+
+# CA1019: Define accessors for attribute arguments
+dotnet_diagnostic.CA1019.severity = warning
+
+# CA1024: Use properties where appropriate
+dotnet_diagnostic.CA1024.severity = warning
+
+# CA1027: Mark enums with FlagsAttribute
+dotnet_diagnostic.CA1027.severity = warning
+
+# CA1028: Enum Storage should be Int32
+dotnet_diagnostic.CA1028.severity = warning
+
+# CA1030: Use events where appropriate
+dotnet_diagnostic.CA1030.severity = warning
+
+# CA1031: Do not catch general exception types
+dotnet_diagnostic.CA1031.severity = warning
+
+# CA1032: Implement standard exception constructors
+dotnet_diagnostic.CA1032.severity = warning
+
+# CA1033: Interface methods should be callable by child types
+dotnet_diagnostic.CA1033.severity = warning
+
+# CA1034: Nested types should not be visible
+dotnet_diagnostic.CA1034.severity = warning
+
+# CA1036: Override methods on comparable types
+dotnet_diagnostic.CA1036.severity = warning
+
+# CA1040: Avoid empty interfaces
+dotnet_diagnostic.CA1040.severity = warning
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = warning
+
+# CA1043: Use Integral Or String Argument For Indexers
+dotnet_diagnostic.CA1043.severity = warning
+
+# CA1044: Properties should not be write only
+dotnet_diagnostic.CA1044.severity = warning
+
+# CA1046: Do not overload equality operator on reference types
+dotnet_diagnostic.CA1046.severity = warning
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = warning
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = warning
+
+# CA1051: Do not declare visible instance fields
+dotnet_diagnostic.CA1051.severity = warning
+
+# CA1052: Static holder types should be Static or NotInheritable
+dotnet_diagnostic.CA1052.severity = warning
+
+# CA1054: URI-like parameters should not be strings
+dotnet_diagnostic.CA1054.severity = warning
+
+# CA1055: URI-like return values should not be strings
+dotnet_diagnostic.CA1055.severity = warning
+
+# CA1056: URI-like properties should not be strings
+dotnet_diagnostic.CA1056.severity = warning
+
+# CA1058: Types should not extend certain base types
+dotnet_diagnostic.CA1058.severity = warning
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = warning
+
+# CA1062: Validate arguments of public methods
+dotnet_diagnostic.CA1062.severity = warning
+
+# CA1063: Implement IDisposable Correctly
+dotnet_diagnostic.CA1063.severity = warning
+
+# CA1064: Exceptions should be public
+dotnet_diagnostic.CA1064.severity = warning
+
+# CA1065: Do not raise exceptions in unexpected locations
+dotnet_diagnostic.CA1065.severity = warning
+
+# CA1066: Implement IEquatable when overriding Object.Equals
+dotnet_diagnostic.CA1066.severity = warning
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = warning
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = warning
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = warning
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_minimum_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_minimum_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..9ed6841d4297bb95399b6e62ecb83303111702dc
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_minimum_warnaserror.globalconfig
@@ -0,0 +1,39 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Design' Rules from '9.0' release with 'Minimum' analysis mode escalated to 'error' severity
+# Description: 'Design' Rules with enabled-by-default state from '9.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '9.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = error
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = error
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = error
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = error
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = error
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = error
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = error
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = error
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = error
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_none_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_none_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..2b2c2cf44a6c962e849bddfb981a7659a82785ab
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldesign_9_none_warnaserror.globalconfig
@@ -0,0 +1,54 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Design' Rules from '9.0' release with 'None' analysis mode escalated to 'error' severity
+# Description: 'Design' Rules with enabled-by-default state from '9.0' release with 'None' analysis mode. Rules that are first released in a version later than '9.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1000: Do not declare static members on generic types
+dotnet_diagnostic.CA1000.severity = none
+
+# CA1001: Types that own disposable fields should be disposable
+dotnet_diagnostic.CA1001.severity = none
+
+# CA1010: Generic interface should also be implemented
+dotnet_diagnostic.CA1010.severity = none
+
+# CA1016: Mark assemblies with assembly version
+dotnet_diagnostic.CA1016.severity = none
+
+# CA1018: Mark attributes with AttributeUsageAttribute
+dotnet_diagnostic.CA1018.severity = none
+
+# CA1036: Override methods on comparable types
+dotnet_diagnostic.CA1036.severity = none
+
+# CA1041: Provide ObsoleteAttribute message
+dotnet_diagnostic.CA1041.severity = none
+
+# CA1047: Do not declare protected member in sealed type
+dotnet_diagnostic.CA1047.severity = none
+
+# CA1050: Declare types in namespaces
+dotnet_diagnostic.CA1050.severity = none
+
+# CA1051: Do not declare visible instance fields
+dotnet_diagnostic.CA1051.severity = none
+
+# CA1061: Do not hide base class methods
+dotnet_diagnostic.CA1061.severity = none
+
+# CA1067: Override Object.Equals(object) when implementing IEquatable
+dotnet_diagnostic.CA1067.severity = none
+
+# CA1068: CancellationToken parameters must come last
+dotnet_diagnostic.CA1068.severity = none
+
+# CA1069: Enums values should not be duplicated
+dotnet_diagnostic.CA1069.severity = none
+
+# CA1070: Do not declare event fields as virtual
+dotnet_diagnostic.CA1070.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_5_default_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_5_default_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..01f98cbbde552e54e74d7d9f66790945c1af3995
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_5_default_warnaserror.globalconfig
@@ -0,0 +1,9 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Documentation' Rules from '5.0' release with 'Default' analysis mode escalated to 'error' severity
+# Description: 'Documentation' Rules with enabled-by-default state from '5.0' release with 'Default' analysis mode. Rules that are first released in a version later than '5.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_minimum_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_minimum_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..ff85f9e363fdeeda5475d3e9b421cabcd25107eb
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_minimum_warnaserror.globalconfig
@@ -0,0 +1,9 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Documentation' Rules from '6.0' release with 'Minimum' analysis mode escalated to 'error' severity
+# Description: 'Documentation' Rules with enabled-by-default state from '6.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '6.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_none.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_none.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..28a39670953d10dbc101fb22d12bd6bf382c6550
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_6_none.globalconfig
@@ -0,0 +1,12 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Documentation' Rules from '6.0' release with 'None' analysis mode
+# Description: 'Documentation' Rules with enabled-by-default state from '6.0' release with 'None' analysis mode. Rules that are first released in a version later than '6.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1200: Avoid using cref tags with a prefix
+dotnet_diagnostic.CA1200.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..f31d50c6213bc7646d4fbe77cb6d3882d91fb8bd
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_all_warnaserror.globalconfig
@@ -0,0 +1,12 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Documentation' Rules from '7.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Documentation' Rules with enabled-by-default state from '7.0' release with 'All' analysis mode. Rules that are first released in a version later than '7.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1200: Avoid using cref tags with a prefix
+dotnet_diagnostic.CA1200.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_none.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_none.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..363dd1efb006b54a84e200e1b198fc24bff61545
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_none.globalconfig
@@ -0,0 +1,12 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Documentation' Rules from '7.0' release with 'None' analysis mode
+# Description: 'Documentation' Rules with enabled-by-default state from '7.0' release with 'None' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1200: Avoid using cref tags with a prefix
+dotnet_diagnostic.CA1200.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_recommended.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_recommended.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..297b76635486afad97ef98cb86a80dff8cb89d3f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_recommended.globalconfig
@@ -0,0 +1,12 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Documentation' Rules from '7.0' release with 'Recommended' analysis mode
+# Description: 'Documentation' Rules with enabled-by-default state from '7.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1200: Avoid using cref tags with a prefix
+dotnet_diagnostic.CA1200.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_recommended_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_recommended_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..4582ffed954d4e260957c9a325fafd270d5a3cd3
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_7_recommended_warnaserror.globalconfig
@@ -0,0 +1,12 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Documentation' Rules from '7.0' release with 'Recommended' analysis mode escalated to 'error' severity
+# Description: 'Documentation' Rules with enabled-by-default state from '7.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '7.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1200: Avoid using cref tags with a prefix
+dotnet_diagnostic.CA1200.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..58e5b534a029ff9113cba3fdde3984b860f87217
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_all_warnaserror.globalconfig
@@ -0,0 +1,12 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Documentation' Rules from '9.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Documentation' Rules with enabled-by-default state from '9.0' release with 'All' analysis mode. Rules that are first released in a version later than '9.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1200: Avoid using cref tags with a prefix
+dotnet_diagnostic.CA1200.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_default.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_default.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..333aba5ccc6f688d19f3096bee67bbedd04bb232
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_default.globalconfig
@@ -0,0 +1,9 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Documentation' Rules from '9.0' release with 'Default' analysis mode
+# Description: 'Documentation' Rules with enabled-by-default state from '9.0' release with 'Default' analysis mode. Rules that are first released in a version later than '9.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_none_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_none_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..01972d491d65a342a931944cae3f1215ea08ef2a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysisleveldocumentation_9_none_warnaserror.globalconfig
@@ -0,0 +1,12 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Documentation' Rules from '9.0' release with 'None' analysis mode escalated to 'error' severity
+# Description: 'Documentation' Rules with enabled-by-default state from '9.0' release with 'None' analysis mode. Rules that are first released in a version later than '9.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1200: Avoid using cref tags with a prefix
+dotnet_diagnostic.CA1200.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_5_default.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_5_default.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..65dcfecbf87bc810d6c6c925e9e399a4c3ad7ffe
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_5_default.globalconfig
@@ -0,0 +1,12 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Globalization' Rules from '5.0' release with 'Default' analysis mode
+# Description: 'Globalization' Rules with enabled-by-default state from '5.0' release with 'Default' analysis mode. Rules that are first released in a version later than '5.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1311: Specify a culture or use an invariant version
+dotnet_diagnostic.CA1311.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_6_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_6_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..23171347334160fd117c69def53f460c11ab895c
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_6_all_warnaserror.globalconfig
@@ -0,0 +1,36 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Globalization' Rules from '6.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Globalization' Rules with enabled-by-default state from '6.0' release with 'All' analysis mode. Rules that are first released in a version later than '6.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1303: Do not pass literals as localized parameters
+dotnet_diagnostic.CA1303.severity = error
+
+# CA1304: Specify CultureInfo
+dotnet_diagnostic.CA1304.severity = error
+
+# CA1305: Specify IFormatProvider
+dotnet_diagnostic.CA1305.severity = error
+
+# CA1307: Specify StringComparison for clarity
+dotnet_diagnostic.CA1307.severity = error
+
+# CA1308: Normalize strings to uppercase
+dotnet_diagnostic.CA1308.severity = error
+
+# CA1309: Use ordinal string comparison
+dotnet_diagnostic.CA1309.severity = error
+
+# CA1310: Specify StringComparison for correctness
+dotnet_diagnostic.CA1310.severity = error
+
+# CA1311: Specify a culture or use an invariant version
+dotnet_diagnostic.CA1311.severity = none
+
+# CA2101: Specify marshaling for P/Invoke string arguments
+dotnet_diagnostic.CA2101.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_default_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_default_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..df76dea6b5727ceae693cc66a43e143ccc4b00dc
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_default_warnaserror.globalconfig
@@ -0,0 +1,9 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Globalization' Rules from '7.0' release with 'Default' analysis mode escalated to 'error' severity
+# Description: 'Globalization' Rules with enabled-by-default state from '7.0' release with 'Default' analysis mode. Rules that are first released in a version later than '7.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_minimum.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_minimum.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..3e42026d406477c1acbba69f458c67fd138e5311
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_7_minimum.globalconfig
@@ -0,0 +1,12 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Globalization' Rules from '7.0' release with 'Minimum' analysis mode
+# Description: 'Globalization' Rules with enabled-by-default state from '7.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2101: Specify marshaling for P/Invoke string arguments
+dotnet_diagnostic.CA2101.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..224e62cd5732c00889243495ceb83230e4ef6d62
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_all_warnaserror.globalconfig
@@ -0,0 +1,36 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Globalization' Rules from '8.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Globalization' Rules with enabled-by-default state from '8.0' release with 'All' analysis mode. Rules that are first released in a version later than '8.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1303: Do not pass literals as localized parameters
+dotnet_diagnostic.CA1303.severity = error
+
+# CA1304: Specify CultureInfo
+dotnet_diagnostic.CA1304.severity = error
+
+# CA1305: Specify IFormatProvider
+dotnet_diagnostic.CA1305.severity = error
+
+# CA1307: Specify StringComparison for clarity
+dotnet_diagnostic.CA1307.severity = error
+
+# CA1308: Normalize strings to uppercase
+dotnet_diagnostic.CA1308.severity = error
+
+# CA1309: Use ordinal string comparison
+dotnet_diagnostic.CA1309.severity = error
+
+# CA1310: Specify StringComparison for correctness
+dotnet_diagnostic.CA1310.severity = error
+
+# CA1311: Specify a culture or use an invariant version
+dotnet_diagnostic.CA1311.severity = error
+
+# CA2101: Specify marshaling for P/Invoke string arguments
+dotnet_diagnostic.CA2101.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_minimum.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_minimum.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..f47eb066e72154dd1b157ab519aa4da2f0d55cf9
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_minimum.globalconfig
@@ -0,0 +1,12 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Globalization' Rules from '8.0' release with 'Minimum' analysis mode
+# Description: 'Globalization' Rules with enabled-by-default state from '8.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '8.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2101: Specify marshaling for P/Invoke string arguments
+dotnet_diagnostic.CA2101.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_minimum_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_minimum_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..1349dfcb1c1305de42e095f0626a318412bfa2fd
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_minimum_warnaserror.globalconfig
@@ -0,0 +1,12 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Globalization' Rules from '8.0' release with 'Minimum' analysis mode escalated to 'error' severity
+# Description: 'Globalization' Rules with enabled-by-default state from '8.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '8.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2101: Specify marshaling for P/Invoke string arguments
+dotnet_diagnostic.CA2101.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_recommended.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_recommended.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..dfa025f4c883ef2be1a42596091565d95ef3215a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelglobalization_8_recommended.globalconfig
@@ -0,0 +1,27 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Globalization' Rules from '8.0' release with 'Recommended' analysis mode
+# Description: 'Globalization' Rules with enabled-by-default state from '8.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '8.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1304: Specify CultureInfo
+dotnet_diagnostic.CA1304.severity = warning
+
+# CA1305: Specify IFormatProvider
+dotnet_diagnostic.CA1305.severity = warning
+
+# CA1309: Use ordinal string comparison
+dotnet_diagnostic.CA1309.severity = warning
+
+# CA1310: Specify StringComparison for correctness
+dotnet_diagnostic.CA1310.severity = warning
+
+# CA1311: Specify a culture or use an invariant version
+dotnet_diagnostic.CA1311.severity = warning
+
+# CA2101: Specify marshaling for P/Invoke string arguments
+dotnet_diagnostic.CA2101.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_5_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_5_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..08542f98a2032c66600fadfc502ab3a8a5ad2ff6
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_5_all_warnaserror.globalconfig
@@ -0,0 +1,33 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Interoperability' Rules from '5.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Interoperability' Rules with enabled-by-default state from '5.0' release with 'All' analysis mode. Rules that are first released in a version later than '5.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1401: P/Invokes should not be visible
+dotnet_diagnostic.CA1401.severity = error
+
+# CA1416: Validate platform compatibility
+dotnet_diagnostic.CA1416.severity = error
+
+# CA1417: Do not use 'OutAttribute' on string parameters for P/Invokes
+dotnet_diagnostic.CA1417.severity = error
+
+# CA1418: Use valid platform string
+dotnet_diagnostic.CA1418.severity = none
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+dotnet_diagnostic.CA1419.severity = none
+
+# CA1420: Property, type, or attribute requires runtime marshalling
+dotnet_diagnostic.CA1420.severity = none
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = none
+
+# CA1422: Validate platform compatibility
+dotnet_diagnostic.CA1422.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_6_none_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_6_none_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..17660b435255627b2fb895d87579c6c71b5ee067
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_6_none_warnaserror.globalconfig
@@ -0,0 +1,33 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Interoperability' Rules from '6.0' release with 'None' analysis mode escalated to 'error' severity
+# Description: 'Interoperability' Rules with enabled-by-default state from '6.0' release with 'None' analysis mode. Rules that are first released in a version later than '6.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1401: P/Invokes should not be visible
+dotnet_diagnostic.CA1401.severity = none
+
+# CA1416: Validate platform compatibility
+dotnet_diagnostic.CA1416.severity = none
+
+# CA1417: Do not use 'OutAttribute' on string parameters for P/Invokes
+dotnet_diagnostic.CA1417.severity = none
+
+# CA1418: Use valid platform string
+dotnet_diagnostic.CA1418.severity = none
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+dotnet_diagnostic.CA1419.severity = none
+
+# CA1420: Property, type, or attribute requires runtime marshalling
+dotnet_diagnostic.CA1420.severity = none
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = none
+
+# CA1422: Validate platform compatibility
+dotnet_diagnostic.CA1422.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_all.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_all.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..fe38e35976ff6bfa50d5d4c65b4f36ea116e3c3e
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_all.globalconfig
@@ -0,0 +1,18 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Interoperability' Rules from '7.0' release with 'All' analysis mode
+# Description: 'Interoperability' Rules with enabled-by-default state from '7.0' release with 'All' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1401: P/Invokes should not be visible
+dotnet_diagnostic.CA1401.severity = warning
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+dotnet_diagnostic.CA1419.severity = warning
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_minimum.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_minimum.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..02307b6a5e29173ac6371b0ed33073feb1c3534d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_7_minimum.globalconfig
@@ -0,0 +1,18 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Interoperability' Rules from '7.0' release with 'Minimum' analysis mode
+# Description: 'Interoperability' Rules with enabled-by-default state from '7.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1401: P/Invokes should not be visible
+dotnet_diagnostic.CA1401.severity = warning
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+dotnet_diagnostic.CA1419.severity = warning
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_default_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_default_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..63d854a80ec8b6844e497dedc173917134bf1701
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_default_warnaserror.globalconfig
@@ -0,0 +1,24 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Interoperability' Rules from '8.0' release with 'Default' analysis mode escalated to 'error' severity
+# Description: 'Interoperability' Rules with enabled-by-default state from '8.0' release with 'Default' analysis mode. Rules that are first released in a version later than '8.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1416: Validate platform compatibility
+dotnet_diagnostic.CA1416.severity = error
+
+# CA1417: Do not use 'OutAttribute' on string parameters for P/Invokes
+dotnet_diagnostic.CA1417.severity = error
+
+# CA1418: Use valid platform string
+dotnet_diagnostic.CA1418.severity = error
+
+# CA1420: Property, type, or attribute requires runtime marshalling
+dotnet_diagnostic.CA1420.severity = error
+
+# CA1422: Validate platform compatibility
+dotnet_diagnostic.CA1422.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_minimum.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_minimum.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..29aa250fb1adaa2d453938c5c11e5491654f7025
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_minimum.globalconfig
@@ -0,0 +1,18 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Interoperability' Rules from '8.0' release with 'Minimum' analysis mode
+# Description: 'Interoperability' Rules with enabled-by-default state from '8.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '8.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1401: P/Invokes should not be visible
+dotnet_diagnostic.CA1401.severity = warning
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+dotnet_diagnostic.CA1419.severity = warning
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_none.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_none.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..6769bada52bffc7d71117da5da061f7cf1866d7d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_8_none.globalconfig
@@ -0,0 +1,33 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Interoperability' Rules from '8.0' release with 'None' analysis mode
+# Description: 'Interoperability' Rules with enabled-by-default state from '8.0' release with 'None' analysis mode. Rules that are first released in a version later than '8.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1401: P/Invokes should not be visible
+dotnet_diagnostic.CA1401.severity = none
+
+# CA1416: Validate platform compatibility
+dotnet_diagnostic.CA1416.severity = none
+
+# CA1417: Do not use 'OutAttribute' on string parameters for P/Invokes
+dotnet_diagnostic.CA1417.severity = none
+
+# CA1418: Use valid platform string
+dotnet_diagnostic.CA1418.severity = none
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+dotnet_diagnostic.CA1419.severity = none
+
+# CA1420: Property, type, or attribute requires runtime marshalling
+dotnet_diagnostic.CA1420.severity = none
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = none
+
+# CA1422: Validate platform compatibility
+dotnet_diagnostic.CA1422.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_9_none_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_9_none_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..6e4f48b323290fd7758dd2cfa89531c10def2d11
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelinteroperability_9_none_warnaserror.globalconfig
@@ -0,0 +1,33 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Interoperability' Rules from '9.0' release with 'None' analysis mode escalated to 'error' severity
+# Description: 'Interoperability' Rules with enabled-by-default state from '9.0' release with 'None' analysis mode. Rules that are first released in a version later than '9.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1401: P/Invokes should not be visible
+dotnet_diagnostic.CA1401.severity = none
+
+# CA1416: Validate platform compatibility
+dotnet_diagnostic.CA1416.severity = none
+
+# CA1417: Do not use 'OutAttribute' on string parameters for P/Invokes
+dotnet_diagnostic.CA1417.severity = none
+
+# CA1418: Use valid platform string
+dotnet_diagnostic.CA1418.severity = none
+
+# CA1419: Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle'
+dotnet_diagnostic.CA1419.severity = none
+
+# CA1420: Property, type, or attribute requires runtime marshalling
+dotnet_diagnostic.CA1420.severity = none
+
+# CA1421: This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied
+dotnet_diagnostic.CA1421.severity = none
+
+# CA1422: Validate platform compatibility
+dotnet_diagnostic.CA1422.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..8921f7223dda6fd56a03e95582078f97e4ebd3df
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_all_warnaserror.globalconfig
@@ -0,0 +1,27 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Maintainability' Rules from '5.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Maintainability' Rules with enabled-by-default state from '5.0' release with 'All' analysis mode. Rules that are first released in a version later than '5.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = error
+
+# CA1508: Avoid dead conditional code
+dotnet_diagnostic.CA1508.severity = error
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = none
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = none
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = none
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_recommended_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_recommended_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..14ce8ca7fb3d6064415341f0feb0b1aa1666d2ee
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_5_recommended_warnaserror.globalconfig
@@ -0,0 +1,24 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Maintainability' Rules from '5.0' release with 'Recommended' analysis mode escalated to 'error' severity
+# Description: 'Maintainability' Rules with enabled-by-default state from '5.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '5.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = error
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = none
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = none
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = none
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..3eb3831a2b56e714fec634d93e84558b2e35baf7
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_all_warnaserror.globalconfig
@@ -0,0 +1,27 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Maintainability' Rules from '6.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Maintainability' Rules with enabled-by-default state from '6.0' release with 'All' analysis mode. Rules that are first released in a version later than '6.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = error
+
+# CA1508: Avoid dead conditional code
+dotnet_diagnostic.CA1508.severity = error
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = none
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = none
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = none
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_default.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_default.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..b00b46e64c9b84ab0124f744c6f7b65fe280be68
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_6_default.globalconfig
@@ -0,0 +1,21 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Maintainability' Rules from '6.0' release with 'Default' analysis mode
+# Description: 'Maintainability' Rules with enabled-by-default state from '6.0' release with 'Default' analysis mode. Rules that are first released in a version later than '6.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = none
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = none
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = none
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_none_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_none_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..d3a7486afd5ee6e3f2f3a8d0712c3a949e39fd8f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_none_warnaserror.globalconfig
@@ -0,0 +1,24 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Maintainability' Rules from '7.0' release with 'None' analysis mode escalated to 'error' severity
+# Description: 'Maintainability' Rules with enabled-by-default state from '7.0' release with 'None' analysis mode. Rules that are first released in a version later than '7.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = none
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = none
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = none
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = none
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_recommended.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_recommended.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..1368807b2c3e6ef6978aefb972097d558b186412
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_7_recommended.globalconfig
@@ -0,0 +1,24 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Maintainability' Rules from '7.0' release with 'Recommended' analysis mode
+# Description: 'Maintainability' Rules with enabled-by-default state from '7.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = warning
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = none
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = none
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = none
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..160e99fe661e61fca9864980f7434f23523794bf
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_all_warnaserror.globalconfig
@@ -0,0 +1,27 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Maintainability' Rules from '8.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Maintainability' Rules with enabled-by-default state from '8.0' release with 'All' analysis mode. Rules that are first released in a version later than '8.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = error
+
+# CA1508: Avoid dead conditional code
+dotnet_diagnostic.CA1508.severity = error
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = error
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = error
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = error
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_none.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_none.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..18df6c0f398720fb22ee6ed690cec005b2e5c729
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_none.globalconfig
@@ -0,0 +1,24 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Maintainability' Rules from '8.0' release with 'None' analysis mode
+# Description: 'Maintainability' Rules with enabled-by-default state from '8.0' release with 'None' analysis mode. Rules that are first released in a version later than '8.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = none
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = none
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = none
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = none
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_none_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_none_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..4ff869b6e4a7bece1f6dcb61dcc996329e7ea9ff
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_8_none_warnaserror.globalconfig
@@ -0,0 +1,24 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Maintainability' Rules from '8.0' release with 'None' analysis mode escalated to 'error' severity
+# Description: 'Maintainability' Rules with enabled-by-default state from '8.0' release with 'None' analysis mode. Rules that are first released in a version later than '8.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1507: Use nameof to express symbol names
+dotnet_diagnostic.CA1507.severity = none
+
+# CA1510: Use ArgumentNullException throw helper
+dotnet_diagnostic.CA1510.severity = none
+
+# CA1511: Use ArgumentException throw helper
+dotnet_diagnostic.CA1511.severity = none
+
+# CA1512: Use ArgumentOutOfRangeException throw helper
+dotnet_diagnostic.CA1512.severity = none
+
+# CA1513: Use ObjectDisposedException throw helper
+dotnet_diagnostic.CA1513.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_9_default_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_9_default_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..7b2696c708b79e42c9a73568437aad3333636c57
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelmaintainability_9_default_warnaserror.globalconfig
@@ -0,0 +1,9 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Maintainability' Rules from '9.0' release with 'Default' analysis mode escalated to 'error' severity
+# Description: 'Maintainability' Rules with enabled-by-default state from '9.0' release with 'Default' analysis mode. Rules that are first released in a version later than '9.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_5_default.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_5_default.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..758add682c75af00e4bfd88cce4ed33927fb804a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_5_default.globalconfig
@@ -0,0 +1,12 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Naming' Rules from '5.0' release with 'Default' analysis mode
+# Description: 'Naming' Rules with enabled-by-default state from '5.0' release with 'Default' analysis mode. Rules that are first released in a version later than '5.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1727: Use PascalCase for named placeholders
+dotnet_diagnostic.CA1727.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_6_minimum_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_6_minimum_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..8778ad9dd2aafc6c0f05cc582b637d20068093f6
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_6_minimum_warnaserror.globalconfig
@@ -0,0 +1,9 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Naming' Rules from '6.0' release with 'Minimum' analysis mode escalated to 'error' severity
+# Description: 'Naming' Rules with enabled-by-default state from '6.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '6.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..2316d9e6b01aeacf0f760eb7bd58cefed67f84b3
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_all_warnaserror.globalconfig
@@ -0,0 +1,51 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Naming' Rules from '7.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Naming' Rules with enabled-by-default state from '7.0' release with 'All' analysis mode. Rules that are first released in a version later than '7.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1700: Do not name enum values 'Reserved'
+dotnet_diagnostic.CA1700.severity = error
+
+# CA1707: Identifiers should not contain underscores
+dotnet_diagnostic.CA1707.severity = error
+
+# CA1708: Identifiers should differ by more than case
+dotnet_diagnostic.CA1708.severity = error
+
+# CA1710: Identifiers should have correct suffix
+dotnet_diagnostic.CA1710.severity = error
+
+# CA1711: Identifiers should not have incorrect suffix
+dotnet_diagnostic.CA1711.severity = error
+
+# CA1712: Do not prefix enum values with type name
+dotnet_diagnostic.CA1712.severity = error
+
+# CA1713: Events should not have 'Before' or 'After' prefix
+dotnet_diagnostic.CA1713.severity = error
+
+# CA1715: Identifiers should have correct prefix
+dotnet_diagnostic.CA1715.severity = error
+
+# CA1716: Identifiers should not match keywords
+dotnet_diagnostic.CA1716.severity = error
+
+# CA1720: Identifier contains type name
+dotnet_diagnostic.CA1720.severity = error
+
+# CA1721: Property names should not match get methods
+dotnet_diagnostic.CA1721.severity = error
+
+# CA1724: Type names should not match namespaces
+dotnet_diagnostic.CA1724.severity = error
+
+# CA1725: Parameter names should match base declaration
+dotnet_diagnostic.CA1725.severity = error
+
+# CA1727: Use PascalCase for named placeholders
+dotnet_diagnostic.CA1727.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_minimum.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_minimum.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..27d37e1eb07c979738f74c0fa0d35ff4fe58f4ba
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_minimum.globalconfig
@@ -0,0 +1,9 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Naming' Rules from '7.0' release with 'Minimum' analysis mode
+# Description: 'Naming' Rules with enabled-by-default state from '7.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_recommended.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_recommended.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..9d9a5531f60784ff5368e1699c19d5dd79c4da5f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_7_recommended.globalconfig
@@ -0,0 +1,39 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Naming' Rules from '7.0' release with 'Recommended' analysis mode
+# Description: 'Naming' Rules with enabled-by-default state from '7.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1707: Identifiers should not contain underscores
+dotnet_diagnostic.CA1707.severity = warning
+
+# CA1708: Identifiers should differ by more than case
+dotnet_diagnostic.CA1708.severity = warning
+
+# CA1710: Identifiers should have correct suffix
+dotnet_diagnostic.CA1710.severity = warning
+
+# CA1711: Identifiers should not have incorrect suffix
+dotnet_diagnostic.CA1711.severity = warning
+
+# CA1712: Do not prefix enum values with type name
+dotnet_diagnostic.CA1712.severity = warning
+
+# CA1715: Identifiers should have correct prefix
+dotnet_diagnostic.CA1715.severity = warning
+
+# CA1716: Identifiers should not match keywords
+dotnet_diagnostic.CA1716.severity = warning
+
+# CA1720: Identifier contains type name
+dotnet_diagnostic.CA1720.severity = warning
+
+# CA1725: Parameter names should match base declaration
+dotnet_diagnostic.CA1725.severity = warning
+
+# CA1727: Use PascalCase for named placeholders
+dotnet_diagnostic.CA1727.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_8_minimum.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_8_minimum.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..52805b800baa8797101349a91b9c51a4a6f68ec6
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_8_minimum.globalconfig
@@ -0,0 +1,9 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Naming' Rules from '8.0' release with 'Minimum' analysis mode
+# Description: 'Naming' Rules with enabled-by-default state from '8.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '8.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..bd6c5a9d2ed1ade817ed464e2c9aeb7216979601
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_all_warnaserror.globalconfig
@@ -0,0 +1,51 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Naming' Rules from '9.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Naming' Rules with enabled-by-default state from '9.0' release with 'All' analysis mode. Rules that are first released in a version later than '9.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1700: Do not name enum values 'Reserved'
+dotnet_diagnostic.CA1700.severity = error
+
+# CA1707: Identifiers should not contain underscores
+dotnet_diagnostic.CA1707.severity = error
+
+# CA1708: Identifiers should differ by more than case
+dotnet_diagnostic.CA1708.severity = error
+
+# CA1710: Identifiers should have correct suffix
+dotnet_diagnostic.CA1710.severity = error
+
+# CA1711: Identifiers should not have incorrect suffix
+dotnet_diagnostic.CA1711.severity = error
+
+# CA1712: Do not prefix enum values with type name
+dotnet_diagnostic.CA1712.severity = error
+
+# CA1713: Events should not have 'Before' or 'After' prefix
+dotnet_diagnostic.CA1713.severity = error
+
+# CA1715: Identifiers should have correct prefix
+dotnet_diagnostic.CA1715.severity = error
+
+# CA1716: Identifiers should not match keywords
+dotnet_diagnostic.CA1716.severity = error
+
+# CA1720: Identifier contains type name
+dotnet_diagnostic.CA1720.severity = error
+
+# CA1721: Property names should not match get methods
+dotnet_diagnostic.CA1721.severity = error
+
+# CA1724: Type names should not match namespaces
+dotnet_diagnostic.CA1724.severity = error
+
+# CA1725: Parameter names should match base declaration
+dotnet_diagnostic.CA1725.severity = error
+
+# CA1727: Use PascalCase for named placeholders
+dotnet_diagnostic.CA1727.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_default_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_default_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..9608e757d7d23d1c9bcb37e865474568140b8d95
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_default_warnaserror.globalconfig
@@ -0,0 +1,9 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Naming' Rules from '9.0' release with 'Default' analysis mode escalated to 'error' severity
+# Description: 'Naming' Rules with enabled-by-default state from '9.0' release with 'Default' analysis mode. Rules that are first released in a version later than '9.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_none.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_none.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..b355dfa333de5dc7561e32d27e283a6e61d9d1d2
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelnaming_9_none.globalconfig
@@ -0,0 +1,39 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Naming' Rules from '9.0' release with 'None' analysis mode
+# Description: 'Naming' Rules with enabled-by-default state from '9.0' release with 'None' analysis mode. Rules that are first released in a version later than '9.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1707: Identifiers should not contain underscores
+dotnet_diagnostic.CA1707.severity = none
+
+# CA1708: Identifiers should differ by more than case
+dotnet_diagnostic.CA1708.severity = none
+
+# CA1710: Identifiers should have correct suffix
+dotnet_diagnostic.CA1710.severity = none
+
+# CA1711: Identifiers should not have incorrect suffix
+dotnet_diagnostic.CA1711.severity = none
+
+# CA1712: Do not prefix enum values with type name
+dotnet_diagnostic.CA1712.severity = none
+
+# CA1715: Identifiers should have correct prefix
+dotnet_diagnostic.CA1715.severity = none
+
+# CA1716: Identifiers should not match keywords
+dotnet_diagnostic.CA1716.severity = none
+
+# CA1720: Identifier contains type name
+dotnet_diagnostic.CA1720.severity = none
+
+# CA1725: Parameter names should match base declaration
+dotnet_diagnostic.CA1725.severity = none
+
+# CA1727: Use PascalCase for named placeholders
+dotnet_diagnostic.CA1727.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_all.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_all.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..abd5f134b0c9c8906684b501369955aa574ff761
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_6_all.globalconfig
@@ -0,0 +1,177 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Performance' Rules from '6.0' release with 'All' analysis mode
+# Description: 'Performance' Rules with enabled-by-default state from '6.0' release with 'All' analysis mode. Rules that are first released in a version later than '6.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1802: Use literals where appropriate
+dotnet_diagnostic.CA1802.severity = warning
+
+# CA1805: Do not initialize unnecessarily
+dotnet_diagnostic.CA1805.severity = warning
+
+# CA1806: Do not ignore method results
+dotnet_diagnostic.CA1806.severity = warning
+
+# CA1810: Initialize reference type static fields inline
+dotnet_diagnostic.CA1810.severity = warning
+
+# CA1812: Avoid uninstantiated internal classes
+dotnet_diagnostic.CA1812.severity = warning
+
+# CA1813: Avoid unsealed attributes
+dotnet_diagnostic.CA1813.severity = warning
+
+# CA1814: Prefer jagged arrays over multidimensional
+dotnet_diagnostic.CA1814.severity = warning
+
+# CA1815: Override equals and operator equals on value types
+dotnet_diagnostic.CA1815.severity = warning
+
+# CA1819: Properties should not return arrays
+dotnet_diagnostic.CA1819.severity = warning
+
+# CA1820: Test for empty strings using string length
+dotnet_diagnostic.CA1820.severity = warning
+
+# CA1821: Remove empty Finalizers
+dotnet_diagnostic.CA1821.severity = warning
+
+# CA1822: Mark members as static
+dotnet_diagnostic.CA1822.severity = warning
+
+# CA1823: Avoid unused private fields
+dotnet_diagnostic.CA1823.severity = warning
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+dotnet_diagnostic.CA1824.severity = warning
+
+# CA1825: Avoid zero-length array allocations
+dotnet_diagnostic.CA1825.severity = warning
+
+# CA1826: Do not use Enumerable methods on indexable collections
+dotnet_diagnostic.CA1826.severity = warning
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+dotnet_diagnostic.CA1827.severity = warning
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+dotnet_diagnostic.CA1828.severity = warning
+
+# CA1829: Use Length/Count property instead of Count() when available
+dotnet_diagnostic.CA1829.severity = warning
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+dotnet_diagnostic.CA1830.severity = warning
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1832.severity = warning
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1833.severity = warning
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+dotnet_diagnostic.CA1834.severity = warning
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+dotnet_diagnostic.CA1835.severity = warning
+
+# CA1836: Prefer IsEmpty over Count
+dotnet_diagnostic.CA1836.severity = warning
+
+# CA1837: Use 'Environment.ProcessId'
+dotnet_diagnostic.CA1837.severity = warning
+
+# CA1838: Avoid 'StringBuilder' parameters for P/Invokes
+dotnet_diagnostic.CA1838.severity = warning
+
+# CA1839: Use 'Environment.ProcessPath'
+dotnet_diagnostic.CA1839.severity = warning
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+dotnet_diagnostic.CA1840.severity = warning
+
+# CA1841: Prefer Dictionary.Contains methods
+dotnet_diagnostic.CA1841.severity = warning
+
+# CA1842: Do not use 'WhenAll' with a single task
+dotnet_diagnostic.CA1842.severity = warning
+
+# CA1843: Do not use 'WaitAll' with a single task
+dotnet_diagnostic.CA1843.severity = warning
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+dotnet_diagnostic.CA1844.severity = warning
+
+# CA1845: Use span-based 'string.Concat'
+dotnet_diagnostic.CA1845.severity = warning
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+dotnet_diagnostic.CA1846.severity = warning
+
+# CA1847: Use char literal for a single character lookup
+dotnet_diagnostic.CA1847.severity = warning
+
+# CA1848: Use the LoggerMessage delegates
+dotnet_diagnostic.CA1848.severity = warning
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = none
+
+# CA1852: Seal internal types
+dotnet_diagnostic.CA1852.severity = none
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = none
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = none
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = none
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+dotnet_diagnostic.CA1856.severity = none
+
+# CA1857: A constant is expected for the parameter
+dotnet_diagnostic.CA1857.severity = none
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = none
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = none
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = none
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = none
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = none
+
+# CA1863: Use 'CompositeFormat'
+dotnet_diagnostic.CA1863.severity = none
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = none
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = none
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = none
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = none
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = none
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_minimum.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_minimum.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..c1b36e8dbe2a241aa9f3c6f37e65c062656a18f7
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_7_minimum.globalconfig
@@ -0,0 +1,138 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Performance' Rules from '7.0' release with 'Minimum' analysis mode
+# Description: 'Performance' Rules with enabled-by-default state from '7.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1806: Do not ignore method results
+dotnet_diagnostic.CA1806.severity = warning
+
+# CA1821: Remove empty Finalizers
+dotnet_diagnostic.CA1821.severity = warning
+
+# CA1822: Mark members as static
+dotnet_diagnostic.CA1822.severity = warning
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+dotnet_diagnostic.CA1824.severity = warning
+
+# CA1825: Avoid zero-length array allocations
+dotnet_diagnostic.CA1825.severity = warning
+
+# CA1826: Do not use Enumerable methods on indexable collections
+dotnet_diagnostic.CA1826.severity = warning
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+dotnet_diagnostic.CA1827.severity = warning
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+dotnet_diagnostic.CA1828.severity = warning
+
+# CA1829: Use Length/Count property instead of Count() when available
+dotnet_diagnostic.CA1829.severity = warning
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+dotnet_diagnostic.CA1830.severity = warning
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1832.severity = warning
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1833.severity = warning
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+dotnet_diagnostic.CA1834.severity = warning
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+dotnet_diagnostic.CA1835.severity = warning
+
+# CA1836: Prefer IsEmpty over Count
+dotnet_diagnostic.CA1836.severity = warning
+
+# CA1837: Use 'Environment.ProcessId'
+dotnet_diagnostic.CA1837.severity = warning
+
+# CA1839: Use 'Environment.ProcessPath'
+dotnet_diagnostic.CA1839.severity = warning
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+dotnet_diagnostic.CA1840.severity = warning
+
+# CA1841: Prefer Dictionary.Contains methods
+dotnet_diagnostic.CA1841.severity = warning
+
+# CA1842: Do not use 'WhenAll' with a single task
+dotnet_diagnostic.CA1842.severity = warning
+
+# CA1843: Do not use 'WaitAll' with a single task
+dotnet_diagnostic.CA1843.severity = warning
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+dotnet_diagnostic.CA1844.severity = warning
+
+# CA1845: Use span-based 'string.Concat'
+dotnet_diagnostic.CA1845.severity = warning
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+dotnet_diagnostic.CA1846.severity = warning
+
+# CA1847: Use char literal for a single character lookup
+dotnet_diagnostic.CA1847.severity = warning
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = warning
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = warning
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = warning
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = warning
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+dotnet_diagnostic.CA1856.severity = none
+
+# CA1857: A constant is expected for the parameter
+dotnet_diagnostic.CA1857.severity = none
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = none
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = none
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = none
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = none
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = none
+
+# CA1863: Use 'CompositeFormat'
+dotnet_diagnostic.CA1863.severity = none
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = none
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = none
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = none
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = none
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = none
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_default_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_default_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..5cf194fffc71271b635fa480b14e077bd1a01942
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_default_warnaserror.globalconfig
@@ -0,0 +1,15 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Performance' Rules from '8.0' release with 'Default' analysis mode escalated to 'error' severity
+# Description: 'Performance' Rules with enabled-by-default state from '8.0' release with 'Default' analysis mode. Rules that are first released in a version later than '8.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1831: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1831.severity = error
+
+# CA1857: A constant is expected for the parameter
+dotnet_diagnostic.CA1857.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_minimum.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_minimum.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..a034cf6d4ad023a4a3970501c3c61379dcaee2aa
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_minimum.globalconfig
@@ -0,0 +1,132 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Performance' Rules from '8.0' release with 'Minimum' analysis mode
+# Description: 'Performance' Rules with enabled-by-default state from '8.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '8.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1806: Do not ignore method results
+dotnet_diagnostic.CA1806.severity = warning
+
+# CA1821: Remove empty Finalizers
+dotnet_diagnostic.CA1821.severity = warning
+
+# CA1822: Mark members as static
+dotnet_diagnostic.CA1822.severity = warning
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+dotnet_diagnostic.CA1824.severity = warning
+
+# CA1825: Avoid zero-length array allocations
+dotnet_diagnostic.CA1825.severity = warning
+
+# CA1826: Do not use Enumerable methods on indexable collections
+dotnet_diagnostic.CA1826.severity = warning
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+dotnet_diagnostic.CA1827.severity = warning
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+dotnet_diagnostic.CA1828.severity = warning
+
+# CA1829: Use Length/Count property instead of Count() when available
+dotnet_diagnostic.CA1829.severity = warning
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+dotnet_diagnostic.CA1830.severity = warning
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1832.severity = warning
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1833.severity = warning
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+dotnet_diagnostic.CA1834.severity = warning
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+dotnet_diagnostic.CA1835.severity = warning
+
+# CA1836: Prefer IsEmpty over Count
+dotnet_diagnostic.CA1836.severity = warning
+
+# CA1837: Use 'Environment.ProcessId'
+dotnet_diagnostic.CA1837.severity = warning
+
+# CA1839: Use 'Environment.ProcessPath'
+dotnet_diagnostic.CA1839.severity = warning
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+dotnet_diagnostic.CA1840.severity = warning
+
+# CA1841: Prefer Dictionary.Contains methods
+dotnet_diagnostic.CA1841.severity = warning
+
+# CA1842: Do not use 'WhenAll' with a single task
+dotnet_diagnostic.CA1842.severity = warning
+
+# CA1843: Do not use 'WaitAll' with a single task
+dotnet_diagnostic.CA1843.severity = warning
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+dotnet_diagnostic.CA1844.severity = warning
+
+# CA1845: Use span-based 'string.Concat'
+dotnet_diagnostic.CA1845.severity = warning
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+dotnet_diagnostic.CA1846.severity = warning
+
+# CA1847: Use char literal for a single character lookup
+dotnet_diagnostic.CA1847.severity = warning
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = warning
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = warning
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = warning
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = warning
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+dotnet_diagnostic.CA1856.severity = warning
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = warning
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = warning
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = warning
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = warning
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = warning
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = warning
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = warning
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = warning
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = warning
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = warning
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_none.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_none.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..88a20e5e83a052a54311a429c4695b54c1b95cef
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_8_none.globalconfig
@@ -0,0 +1,153 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Performance' Rules from '8.0' release with 'None' analysis mode
+# Description: 'Performance' Rules with enabled-by-default state from '8.0' release with 'None' analysis mode. Rules that are first released in a version later than '8.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1805: Do not initialize unnecessarily
+dotnet_diagnostic.CA1805.severity = none
+
+# CA1806: Do not ignore method results
+dotnet_diagnostic.CA1806.severity = none
+
+# CA1821: Remove empty Finalizers
+dotnet_diagnostic.CA1821.severity = none
+
+# CA1822: Mark members as static
+dotnet_diagnostic.CA1822.severity = none
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+dotnet_diagnostic.CA1824.severity = none
+
+# CA1825: Avoid zero-length array allocations
+dotnet_diagnostic.CA1825.severity = none
+
+# CA1826: Do not use Enumerable methods on indexable collections
+dotnet_diagnostic.CA1826.severity = none
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+dotnet_diagnostic.CA1827.severity = none
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+dotnet_diagnostic.CA1828.severity = none
+
+# CA1829: Use Length/Count property instead of Count() when available
+dotnet_diagnostic.CA1829.severity = none
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+dotnet_diagnostic.CA1830.severity = none
+
+# CA1831: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1831.severity = none
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1832.severity = none
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1833.severity = none
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+dotnet_diagnostic.CA1834.severity = none
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+dotnet_diagnostic.CA1835.severity = none
+
+# CA1836: Prefer IsEmpty over Count
+dotnet_diagnostic.CA1836.severity = none
+
+# CA1837: Use 'Environment.ProcessId'
+dotnet_diagnostic.CA1837.severity = none
+
+# CA1838: Avoid 'StringBuilder' parameters for P/Invokes
+dotnet_diagnostic.CA1838.severity = none
+
+# CA1839: Use 'Environment.ProcessPath'
+dotnet_diagnostic.CA1839.severity = none
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+dotnet_diagnostic.CA1840.severity = none
+
+# CA1841: Prefer Dictionary.Contains methods
+dotnet_diagnostic.CA1841.severity = none
+
+# CA1842: Do not use 'WhenAll' with a single task
+dotnet_diagnostic.CA1842.severity = none
+
+# CA1843: Do not use 'WaitAll' with a single task
+dotnet_diagnostic.CA1843.severity = none
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+dotnet_diagnostic.CA1844.severity = none
+
+# CA1845: Use span-based 'string.Concat'
+dotnet_diagnostic.CA1845.severity = none
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+dotnet_diagnostic.CA1846.severity = none
+
+# CA1847: Use char literal for a single character lookup
+dotnet_diagnostic.CA1847.severity = none
+
+# CA1848: Use the LoggerMessage delegates
+dotnet_diagnostic.CA1848.severity = none
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = none
+
+# CA1852: Seal internal types
+dotnet_diagnostic.CA1852.severity = none
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = none
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = none
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = none
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+dotnet_diagnostic.CA1856.severity = none
+
+# CA1857: A constant is expected for the parameter
+dotnet_diagnostic.CA1857.severity = none
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = none
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = none
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = none
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = none
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = none
+
+# CA1863: Use 'CompositeFormat'
+dotnet_diagnostic.CA1863.severity = none
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = none
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = none
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = none
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = none
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = none
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_all.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_all.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..d086b7b42cfbe5331fc7aaf619117c9ee30b6aa8
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_all.globalconfig
@@ -0,0 +1,183 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Performance' Rules from '9.0' release with 'All' analysis mode
+# Description: 'Performance' Rules with enabled-by-default state from '9.0' release with 'All' analysis mode. Rules that are first released in a version later than '9.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1802: Use literals where appropriate
+dotnet_diagnostic.CA1802.severity = warning
+
+# CA1805: Do not initialize unnecessarily
+dotnet_diagnostic.CA1805.severity = warning
+
+# CA1806: Do not ignore method results
+dotnet_diagnostic.CA1806.severity = warning
+
+# CA1810: Initialize reference type static fields inline
+dotnet_diagnostic.CA1810.severity = warning
+
+# CA1812: Avoid uninstantiated internal classes
+dotnet_diagnostic.CA1812.severity = warning
+
+# CA1813: Avoid unsealed attributes
+dotnet_diagnostic.CA1813.severity = warning
+
+# CA1814: Prefer jagged arrays over multidimensional
+dotnet_diagnostic.CA1814.severity = warning
+
+# CA1815: Override equals and operator equals on value types
+dotnet_diagnostic.CA1815.severity = warning
+
+# CA1819: Properties should not return arrays
+dotnet_diagnostic.CA1819.severity = warning
+
+# CA1820: Test for empty strings using string length
+dotnet_diagnostic.CA1820.severity = warning
+
+# CA1821: Remove empty Finalizers
+dotnet_diagnostic.CA1821.severity = warning
+
+# CA1822: Mark members as static
+dotnet_diagnostic.CA1822.severity = warning
+
+# CA1823: Avoid unused private fields
+dotnet_diagnostic.CA1823.severity = warning
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+dotnet_diagnostic.CA1824.severity = warning
+
+# CA1825: Avoid zero-length array allocations
+dotnet_diagnostic.CA1825.severity = warning
+
+# CA1826: Do not use Enumerable methods on indexable collections
+dotnet_diagnostic.CA1826.severity = warning
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+dotnet_diagnostic.CA1827.severity = warning
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+dotnet_diagnostic.CA1828.severity = warning
+
+# CA1829: Use Length/Count property instead of Count() when available
+dotnet_diagnostic.CA1829.severity = warning
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+dotnet_diagnostic.CA1830.severity = warning
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1832.severity = warning
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1833.severity = warning
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+dotnet_diagnostic.CA1834.severity = warning
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+dotnet_diagnostic.CA1835.severity = warning
+
+# CA1836: Prefer IsEmpty over Count
+dotnet_diagnostic.CA1836.severity = warning
+
+# CA1837: Use 'Environment.ProcessId'
+dotnet_diagnostic.CA1837.severity = warning
+
+# CA1838: Avoid 'StringBuilder' parameters for P/Invokes
+dotnet_diagnostic.CA1838.severity = warning
+
+# CA1839: Use 'Environment.ProcessPath'
+dotnet_diagnostic.CA1839.severity = warning
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+dotnet_diagnostic.CA1840.severity = warning
+
+# CA1841: Prefer Dictionary.Contains methods
+dotnet_diagnostic.CA1841.severity = warning
+
+# CA1842: Do not use 'WhenAll' with a single task
+dotnet_diagnostic.CA1842.severity = warning
+
+# CA1843: Do not use 'WaitAll' with a single task
+dotnet_diagnostic.CA1843.severity = warning
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+dotnet_diagnostic.CA1844.severity = warning
+
+# CA1845: Use span-based 'string.Concat'
+dotnet_diagnostic.CA1845.severity = warning
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+dotnet_diagnostic.CA1846.severity = warning
+
+# CA1847: Use char literal for a single character lookup
+dotnet_diagnostic.CA1847.severity = warning
+
+# CA1848: Use the LoggerMessage delegates
+dotnet_diagnostic.CA1848.severity = warning
+
+# CA1849: Call async methods when in an async method
+dotnet_diagnostic.CA1849.severity = warning
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = warning
+
+# CA1851: Possible multiple enumerations of 'IEnumerable' collection
+dotnet_diagnostic.CA1851.severity = warning
+
+# CA1852: Seal internal types
+dotnet_diagnostic.CA1852.severity = warning
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = warning
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = warning
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = warning
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+dotnet_diagnostic.CA1856.severity = warning
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = warning
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = warning
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = warning
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = warning
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = warning
+
+# CA1863: Use 'CompositeFormat'
+dotnet_diagnostic.CA1863.severity = warning
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = warning
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = warning
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = warning
+
+# CA1867: Use char overload
+dotnet_diagnostic.CA1867.severity = warning
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = warning
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = warning
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_none.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_none.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..647de18181d29e0af0120e7bd2f7ce16a70305ab
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_none.globalconfig
@@ -0,0 +1,153 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Performance' Rules from '9.0' release with 'None' analysis mode
+# Description: 'Performance' Rules with enabled-by-default state from '9.0' release with 'None' analysis mode. Rules that are first released in a version later than '9.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1805: Do not initialize unnecessarily
+dotnet_diagnostic.CA1805.severity = none
+
+# CA1806: Do not ignore method results
+dotnet_diagnostic.CA1806.severity = none
+
+# CA1821: Remove empty Finalizers
+dotnet_diagnostic.CA1821.severity = none
+
+# CA1822: Mark members as static
+dotnet_diagnostic.CA1822.severity = none
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+dotnet_diagnostic.CA1824.severity = none
+
+# CA1825: Avoid zero-length array allocations
+dotnet_diagnostic.CA1825.severity = none
+
+# CA1826: Do not use Enumerable methods on indexable collections
+dotnet_diagnostic.CA1826.severity = none
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+dotnet_diagnostic.CA1827.severity = none
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+dotnet_diagnostic.CA1828.severity = none
+
+# CA1829: Use Length/Count property instead of Count() when available
+dotnet_diagnostic.CA1829.severity = none
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+dotnet_diagnostic.CA1830.severity = none
+
+# CA1831: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1831.severity = none
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1832.severity = none
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1833.severity = none
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+dotnet_diagnostic.CA1834.severity = none
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+dotnet_diagnostic.CA1835.severity = none
+
+# CA1836: Prefer IsEmpty over Count
+dotnet_diagnostic.CA1836.severity = none
+
+# CA1837: Use 'Environment.ProcessId'
+dotnet_diagnostic.CA1837.severity = none
+
+# CA1838: Avoid 'StringBuilder' parameters for P/Invokes
+dotnet_diagnostic.CA1838.severity = none
+
+# CA1839: Use 'Environment.ProcessPath'
+dotnet_diagnostic.CA1839.severity = none
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+dotnet_diagnostic.CA1840.severity = none
+
+# CA1841: Prefer Dictionary.Contains methods
+dotnet_diagnostic.CA1841.severity = none
+
+# CA1842: Do not use 'WhenAll' with a single task
+dotnet_diagnostic.CA1842.severity = none
+
+# CA1843: Do not use 'WaitAll' with a single task
+dotnet_diagnostic.CA1843.severity = none
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+dotnet_diagnostic.CA1844.severity = none
+
+# CA1845: Use span-based 'string.Concat'
+dotnet_diagnostic.CA1845.severity = none
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+dotnet_diagnostic.CA1846.severity = none
+
+# CA1847: Use char literal for a single character lookup
+dotnet_diagnostic.CA1847.severity = none
+
+# CA1848: Use the LoggerMessage delegates
+dotnet_diagnostic.CA1848.severity = none
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = none
+
+# CA1852: Seal internal types
+dotnet_diagnostic.CA1852.severity = none
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = none
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = none
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = none
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+dotnet_diagnostic.CA1856.severity = none
+
+# CA1857: A constant is expected for the parameter
+dotnet_diagnostic.CA1857.severity = none
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = none
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = none
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = none
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = none
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = none
+
+# CA1863: Use 'CompositeFormat'
+dotnet_diagnostic.CA1863.severity = none
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = none
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = none
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = none
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = none
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = none
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_recommended.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_recommended.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..2c2f8a9e696a1660562591e123a800ea0582f8cf
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelperformance_9_recommended.globalconfig
@@ -0,0 +1,147 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Performance' Rules from '9.0' release with 'Recommended' analysis mode
+# Description: 'Performance' Rules with enabled-by-default state from '9.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '9.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1805: Do not initialize unnecessarily
+dotnet_diagnostic.CA1805.severity = warning
+
+# CA1806: Do not ignore method results
+dotnet_diagnostic.CA1806.severity = warning
+
+# CA1821: Remove empty Finalizers
+dotnet_diagnostic.CA1821.severity = warning
+
+# CA1822: Mark members as static
+dotnet_diagnostic.CA1822.severity = warning
+
+# CA1824: Mark assemblies with NeutralResourcesLanguageAttribute
+dotnet_diagnostic.CA1824.severity = warning
+
+# CA1825: Avoid zero-length array allocations
+dotnet_diagnostic.CA1825.severity = warning
+
+# CA1826: Do not use Enumerable methods on indexable collections
+dotnet_diagnostic.CA1826.severity = warning
+
+# CA1827: Do not use Count() or LongCount() when Any() can be used
+dotnet_diagnostic.CA1827.severity = warning
+
+# CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used
+dotnet_diagnostic.CA1828.severity = warning
+
+# CA1829: Use Length/Count property instead of Count() when available
+dotnet_diagnostic.CA1829.severity = warning
+
+# CA1830: Prefer strongly-typed Append and Insert method overloads on StringBuilder
+dotnet_diagnostic.CA1830.severity = warning
+
+# CA1832: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1832.severity = warning
+
+# CA1833: Use AsSpan or AsMemory instead of Range-based indexers when appropriate
+dotnet_diagnostic.CA1833.severity = warning
+
+# CA1834: Consider using 'StringBuilder.Append(char)' when applicable
+dotnet_diagnostic.CA1834.severity = warning
+
+# CA1835: Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync'
+dotnet_diagnostic.CA1835.severity = warning
+
+# CA1836: Prefer IsEmpty over Count
+dotnet_diagnostic.CA1836.severity = warning
+
+# CA1837: Use 'Environment.ProcessId'
+dotnet_diagnostic.CA1837.severity = warning
+
+# CA1838: Avoid 'StringBuilder' parameters for P/Invokes
+dotnet_diagnostic.CA1838.severity = warning
+
+# CA1839: Use 'Environment.ProcessPath'
+dotnet_diagnostic.CA1839.severity = warning
+
+# CA1840: Use 'Environment.CurrentManagedThreadId'
+dotnet_diagnostic.CA1840.severity = warning
+
+# CA1841: Prefer Dictionary.Contains methods
+dotnet_diagnostic.CA1841.severity = warning
+
+# CA1842: Do not use 'WhenAll' with a single task
+dotnet_diagnostic.CA1842.severity = warning
+
+# CA1843: Do not use 'WaitAll' with a single task
+dotnet_diagnostic.CA1843.severity = warning
+
+# CA1844: Provide memory-based overrides of async methods when subclassing 'Stream'
+dotnet_diagnostic.CA1844.severity = warning
+
+# CA1845: Use span-based 'string.Concat'
+dotnet_diagnostic.CA1845.severity = warning
+
+# CA1846: Prefer 'AsSpan' over 'Substring'
+dotnet_diagnostic.CA1846.severity = warning
+
+# CA1847: Use char literal for a single character lookup
+dotnet_diagnostic.CA1847.severity = warning
+
+# CA1848: Use the LoggerMessage delegates
+dotnet_diagnostic.CA1848.severity = warning
+
+# CA1850: Prefer static 'HashData' method over 'ComputeHash'
+dotnet_diagnostic.CA1850.severity = warning
+
+# CA1852: Seal internal types
+dotnet_diagnostic.CA1852.severity = warning
+
+# CA1853: Unnecessary call to 'Dictionary.ContainsKey(key)'
+dotnet_diagnostic.CA1853.severity = warning
+
+# CA1854: Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method
+dotnet_diagnostic.CA1854.severity = warning
+
+# CA1855: Prefer 'Clear' over 'Fill'
+dotnet_diagnostic.CA1855.severity = warning
+
+# CA1856: Incorrect usage of ConstantExpected attribute
+dotnet_diagnostic.CA1856.severity = warning
+
+# CA1858: Use 'StartsWith' instead of 'IndexOf'
+dotnet_diagnostic.CA1858.severity = warning
+
+# CA1859: Use concrete types when possible for improved performance
+dotnet_diagnostic.CA1859.severity = warning
+
+# CA1860: Avoid using 'Enumerable.Any()' extension method
+dotnet_diagnostic.CA1860.severity = warning
+
+# CA1861: Avoid constant arrays as arguments
+dotnet_diagnostic.CA1861.severity = warning
+
+# CA1862: Use the 'StringComparison' method overloads to perform case-insensitive string comparisons
+dotnet_diagnostic.CA1862.severity = warning
+
+# CA1863: Use 'CompositeFormat'
+dotnet_diagnostic.CA1863.severity = warning
+
+# CA1864: Prefer the 'IDictionary.TryAdd(TKey, TValue)' method
+dotnet_diagnostic.CA1864.severity = warning
+
+# CA1865: Use char overload
+dotnet_diagnostic.CA1865.severity = warning
+
+# CA1866: Use char overload
+dotnet_diagnostic.CA1866.severity = warning
+
+# CA1868: Unnecessary call to 'Contains(item)'
+dotnet_diagnostic.CA1868.severity = warning
+
+# CA1869: Cache and reuse 'JsonSerializerOptions' instances
+dotnet_diagnostic.CA1869.severity = warning
+
+# CA1870: Use a cached 'SearchValues' instance
+dotnet_diagnostic.CA1870.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_minimum.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_minimum.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..04cddbf633073f8b427fb457926d4fbff95bb51d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_minimum.globalconfig
@@ -0,0 +1,36 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Reliability' Rules from '5.0' release with 'Minimum' analysis mode
+# Description: 'Reliability' Rules with enabled-by-default state from '5.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '5.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2009: Do not call ToImmutableCollection on an ImmutableCollection value
+dotnet_diagnostic.CA2009.severity = warning
+
+# CA2011: Avoid infinite recursion
+dotnet_diagnostic.CA2011.severity = warning
+
+# CA2012: Use ValueTasks correctly
+dotnet_diagnostic.CA2012.severity = warning
+
+# CA2016: Forward the 'CancellationToken' parameter to methods
+dotnet_diagnostic.CA2016.severity = warning
+
+# CA2017: Parameter count mismatch
+dotnet_diagnostic.CA2017.severity = none
+
+# CA2018: 'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument
+dotnet_diagnostic.CA2018.severity = none
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = none
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = none
+
+# CA2021: Do not call Enumerable.Cast or Enumerable.OfType with incompatible types
+dotnet_diagnostic.CA2021.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_recommended.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_recommended.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..3923790694fc93f04d47b47886c90fd94dfe9eef
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_5_recommended.globalconfig
@@ -0,0 +1,36 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Reliability' Rules from '5.0' release with 'Recommended' analysis mode
+# Description: 'Reliability' Rules with enabled-by-default state from '5.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '5.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2009: Do not call ToImmutableCollection on an ImmutableCollection value
+dotnet_diagnostic.CA2009.severity = warning
+
+# CA2011: Avoid infinite recursion
+dotnet_diagnostic.CA2011.severity = warning
+
+# CA2012: Use ValueTasks correctly
+dotnet_diagnostic.CA2012.severity = warning
+
+# CA2016: Forward the 'CancellationToken' parameter to methods
+dotnet_diagnostic.CA2016.severity = warning
+
+# CA2017: Parameter count mismatch
+dotnet_diagnostic.CA2017.severity = none
+
+# CA2018: 'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument
+dotnet_diagnostic.CA2018.severity = none
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = none
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = none
+
+# CA2021: Do not call Enumerable.Cast or Enumerable.OfType with incompatible types
+dotnet_diagnostic.CA2021.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_6_default_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_6_default_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..753b823f1cc6b74f0f2bd860d6be2122f41d41d5
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_6_default_warnaserror.globalconfig
@@ -0,0 +1,33 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Reliability' Rules from '6.0' release with 'Default' analysis mode escalated to 'error' severity
+# Description: 'Reliability' Rules with enabled-by-default state from '6.0' release with 'Default' analysis mode. Rules that are first released in a version later than '6.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2013: Do not use ReferenceEquals with value types
+dotnet_diagnostic.CA2013.severity = error
+
+# CA2014: Do not use stackalloc in loops
+dotnet_diagnostic.CA2014.severity = error
+
+# CA2015: Do not define finalizers for types derived from MemoryManager
+dotnet_diagnostic.CA2015.severity = error
+
+# CA2017: Parameter count mismatch
+dotnet_diagnostic.CA2017.severity = error
+
+# CA2018: 'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument
+dotnet_diagnostic.CA2018.severity = error
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = none
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = none
+
+# CA2021: Do not call Enumerable.Cast or Enumerable.OfType with incompatible types
+dotnet_diagnostic.CA2021.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_7_recommended_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_7_recommended_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..51d6adf8814579c6aaa4d6810a6f6a26dc013a70
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_7_recommended_warnaserror.globalconfig
@@ -0,0 +1,45 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Reliability' Rules from '7.0' release with 'Recommended' analysis mode escalated to 'error' severity
+# Description: 'Reliability' Rules with enabled-by-default state from '7.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '7.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2009: Do not call ToImmutableCollection on an ImmutableCollection value
+dotnet_diagnostic.CA2009.severity = error
+
+# CA2011: Avoid infinite recursion
+dotnet_diagnostic.CA2011.severity = error
+
+# CA2012: Use ValueTasks correctly
+dotnet_diagnostic.CA2012.severity = error
+
+# CA2013: Do not use ReferenceEquals with value types
+dotnet_diagnostic.CA2013.severity = error
+
+# CA2014: Do not use stackalloc in loops
+dotnet_diagnostic.CA2014.severity = error
+
+# CA2015: Do not define finalizers for types derived from MemoryManager
+dotnet_diagnostic.CA2015.severity = error
+
+# CA2016: Forward the 'CancellationToken' parameter to methods
+dotnet_diagnostic.CA2016.severity = error
+
+# CA2017: Parameter count mismatch
+dotnet_diagnostic.CA2017.severity = error
+
+# CA2018: 'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument
+dotnet_diagnostic.CA2018.severity = error
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = error
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = error
+
+# CA2021: Do not call Enumerable.Cast or Enumerable.OfType with incompatible types
+dotnet_diagnostic.CA2021.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_8_all.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_8_all.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..3e119bea8ab6b8e45bf44b97ec79ba97d924288f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_8_all.globalconfig
@@ -0,0 +1,39 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Reliability' Rules from '8.0' release with 'All' analysis mode
+# Description: 'Reliability' Rules with enabled-by-default state from '8.0' release with 'All' analysis mode. Rules that are first released in a version later than '8.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2000: Dispose objects before losing scope
+dotnet_diagnostic.CA2000.severity = warning
+
+# CA2002: Do not lock on objects with weak identity
+dotnet_diagnostic.CA2002.severity = warning
+
+# CA2007: Consider calling ConfigureAwait on the awaited task
+dotnet_diagnostic.CA2007.severity = warning
+
+# CA2008: Do not create tasks without passing a TaskScheduler
+dotnet_diagnostic.CA2008.severity = warning
+
+# CA2009: Do not call ToImmutableCollection on an ImmutableCollection value
+dotnet_diagnostic.CA2009.severity = warning
+
+# CA2011: Avoid infinite recursion
+dotnet_diagnostic.CA2011.severity = warning
+
+# CA2012: Use ValueTasks correctly
+dotnet_diagnostic.CA2012.severity = warning
+
+# CA2016: Forward the 'CancellationToken' parameter to methods
+dotnet_diagnostic.CA2016.severity = warning
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = warning
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_minimum_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_minimum_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..f9b2dbee40130916d58d1f1acad6abc9f83b3a0b
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_minimum_warnaserror.globalconfig
@@ -0,0 +1,45 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Reliability' Rules from '9.0' release with 'Minimum' analysis mode escalated to 'error' severity
+# Description: 'Reliability' Rules with enabled-by-default state from '9.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '9.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2009: Do not call ToImmutableCollection on an ImmutableCollection value
+dotnet_diagnostic.CA2009.severity = error
+
+# CA2011: Avoid infinite recursion
+dotnet_diagnostic.CA2011.severity = error
+
+# CA2012: Use ValueTasks correctly
+dotnet_diagnostic.CA2012.severity = error
+
+# CA2013: Do not use ReferenceEquals with value types
+dotnet_diagnostic.CA2013.severity = error
+
+# CA2014: Do not use stackalloc in loops
+dotnet_diagnostic.CA2014.severity = error
+
+# CA2015: Do not define finalizers for types derived from MemoryManager
+dotnet_diagnostic.CA2015.severity = error
+
+# CA2016: Forward the 'CancellationToken' parameter to methods
+dotnet_diagnostic.CA2016.severity = error
+
+# CA2017: Parameter count mismatch
+dotnet_diagnostic.CA2017.severity = error
+
+# CA2018: 'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument
+dotnet_diagnostic.CA2018.severity = error
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = error
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = error
+
+# CA2021: Do not call Enumerable.Cast or Enumerable.OfType with incompatible types
+dotnet_diagnostic.CA2021.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_recommended.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_recommended.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..34decd3af4545773f265cc72fbe3eda723f2e0c8
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelreliability_9_recommended.globalconfig
@@ -0,0 +1,27 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Reliability' Rules from '9.0' release with 'Recommended' analysis mode
+# Description: 'Reliability' Rules with enabled-by-default state from '9.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '9.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2009: Do not call ToImmutableCollection on an ImmutableCollection value
+dotnet_diagnostic.CA2009.severity = warning
+
+# CA2011: Avoid infinite recursion
+dotnet_diagnostic.CA2011.severity = warning
+
+# CA2012: Use ValueTasks correctly
+dotnet_diagnostic.CA2012.severity = warning
+
+# CA2016: Forward the 'CancellationToken' parameter to methods
+dotnet_diagnostic.CA2016.severity = warning
+
+# CA2019: Improper 'ThreadStatic' field initialization
+dotnet_diagnostic.CA2019.severity = warning
+
+# CA2020: Prevent behavioral change
+dotnet_diagnostic.CA2020.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..a81b41b93dad210ac1781abf2b7f803eadff23fe
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_all_warnaserror.globalconfig
@@ -0,0 +1,285 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Security' Rules from '6.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Security' Rules with enabled-by-default state from '6.0' release with 'All' analysis mode. Rules that are first released in a version later than '6.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2100: Review SQL queries for security vulnerabilities
+dotnet_diagnostic.CA2100.severity = error
+
+# CA2119: Seal methods that satisfy private interfaces
+dotnet_diagnostic.CA2119.severity = error
+
+# CA2153: Do Not Catch Corrupted State Exceptions
+dotnet_diagnostic.CA2153.severity = error
+
+# CA2300: Do not use insecure deserializer BinaryFormatter
+dotnet_diagnostic.CA2300.severity = error
+
+# CA2301: Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder
+dotnet_diagnostic.CA2301.severity = error
+
+# CA2302: Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize
+dotnet_diagnostic.CA2302.severity = error
+
+# CA2305: Do not use insecure deserializer LosFormatter
+dotnet_diagnostic.CA2305.severity = error
+
+# CA2310: Do not use insecure deserializer NetDataContractSerializer
+dotnet_diagnostic.CA2310.severity = error
+
+# CA2311: Do not deserialize without first setting NetDataContractSerializer.Binder
+dotnet_diagnostic.CA2311.severity = error
+
+# CA2312: Ensure NetDataContractSerializer.Binder is set before deserializing
+dotnet_diagnostic.CA2312.severity = error
+
+# CA2315: Do not use insecure deserializer ObjectStateFormatter
+dotnet_diagnostic.CA2315.severity = error
+
+# CA2321: Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver
+dotnet_diagnostic.CA2321.severity = error
+
+# CA2322: Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing
+dotnet_diagnostic.CA2322.severity = error
+
+# CA2326: Do not use TypeNameHandling values other than None
+dotnet_diagnostic.CA2326.severity = error
+
+# CA2327: Do not use insecure JsonSerializerSettings
+dotnet_diagnostic.CA2327.severity = error
+
+# CA2328: Ensure that JsonSerializerSettings are secure
+dotnet_diagnostic.CA2328.severity = error
+
+# CA2329: Do not deserialize with JsonSerializer using an insecure configuration
+dotnet_diagnostic.CA2329.severity = error
+
+# CA2330: Ensure that JsonSerializer has a secure configuration when deserializing
+dotnet_diagnostic.CA2330.severity = error
+
+# CA2350: Do not use DataTable.ReadXml() with untrusted data
+dotnet_diagnostic.CA2350.severity = error
+
+# CA2351: Do not use DataSet.ReadXml() with untrusted data
+dotnet_diagnostic.CA2351.severity = error
+
+# CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2352.severity = error
+
+# CA2353: Unsafe DataSet or DataTable in serializable type
+dotnet_diagnostic.CA2353.severity = error
+
+# CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2354.severity = error
+
+# CA2355: Unsafe DataSet or DataTable type found in deserializable object graph
+dotnet_diagnostic.CA2355.severity = error
+
+# CA2356: Unsafe DataSet or DataTable type in web deserializable object graph
+dotnet_diagnostic.CA2356.severity = error
+
+# CA2361: Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data
+dotnet_diagnostic.CA2361.severity = error
+
+# CA2362: Unsafe DataSet or DataTable in auto-generated serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2362.severity = error
+
+# CA3001: Review code for SQL injection vulnerabilities
+dotnet_diagnostic.CA3001.severity = error
+
+# CA3002: Review code for XSS vulnerabilities
+dotnet_diagnostic.CA3002.severity = error
+
+# CA3003: Review code for file path injection vulnerabilities
+dotnet_diagnostic.CA3003.severity = error
+
+# CA3004: Review code for information disclosure vulnerabilities
+dotnet_diagnostic.CA3004.severity = error
+
+# CA3005: Review code for LDAP injection vulnerabilities
+dotnet_diagnostic.CA3005.severity = error
+
+# CA3006: Review code for process command injection vulnerabilities
+dotnet_diagnostic.CA3006.severity = error
+
+# CA3007: Review code for open redirect vulnerabilities
+dotnet_diagnostic.CA3007.severity = error
+
+# CA3008: Review code for XPath injection vulnerabilities
+dotnet_diagnostic.CA3008.severity = error
+
+# CA3009: Review code for XML injection vulnerabilities
+dotnet_diagnostic.CA3009.severity = error
+
+# CA3010: Review code for XAML injection vulnerabilities
+dotnet_diagnostic.CA3010.severity = error
+
+# CA3011: Review code for DLL injection vulnerabilities
+dotnet_diagnostic.CA3011.severity = error
+
+# CA3012: Review code for regex injection vulnerabilities
+dotnet_diagnostic.CA3012.severity = error
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = error
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = error
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = error
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = error
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = error
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = error
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = error
+
+# CA5358: Review cipher mode usage with cryptography experts
+dotnet_diagnostic.CA5358.severity = error
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = error
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = error
+
+# CA5361: Do Not Disable SChannel Use of Strong Crypto
+dotnet_diagnostic.CA5361.severity = error
+
+# CA5362: Potential reference cycle in deserialized object graph
+dotnet_diagnostic.CA5362.severity = error
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = error
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = error
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = error
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = error
+
+# CA5367: Do Not Serialize Types With Pointer Fields
+dotnet_diagnostic.CA5367.severity = error
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = error
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = error
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = error
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = error
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = error
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = error
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = error
+
+# CA5375: Do Not Use Account Shared Access Signature
+dotnet_diagnostic.CA5375.severity = error
+
+# CA5376: Use SharedAccessProtocol HttpsOnly
+dotnet_diagnostic.CA5376.severity = error
+
+# CA5377: Use Container Level Access Policy
+dotnet_diagnostic.CA5377.severity = error
+
+# CA5378: Do not disable ServicePointManagerSecurityProtocols
+dotnet_diagnostic.CA5378.severity = error
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = error
+
+# CA5380: Do Not Add Certificates To Root Store
+dotnet_diagnostic.CA5380.severity = error
+
+# CA5381: Ensure Certificates Are Not Added To Root Store
+dotnet_diagnostic.CA5381.severity = error
+
+# CA5382: Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5382.severity = error
+
+# CA5383: Ensure Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5383.severity = error
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = error
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = error
+
+# CA5386: Avoid hardcoding SecurityProtocolType value
+dotnet_diagnostic.CA5386.severity = error
+
+# CA5387: Do Not Use Weak Key Derivation Function With Insufficient Iteration Count
+dotnet_diagnostic.CA5387.severity = error
+
+# CA5388: Ensure Sufficient Iteration Count When Using Weak Key Derivation Function
+dotnet_diagnostic.CA5388.severity = error
+
+# CA5389: Do Not Add Archive Item's Path To The Target File System Path
+dotnet_diagnostic.CA5389.severity = error
+
+# CA5390: Do not hard-code encryption key
+dotnet_diagnostic.CA5390.severity = error
+
+# CA5391: Use antiforgery tokens in ASP.NET Core MVC controllers
+dotnet_diagnostic.CA5391.severity = error
+
+# CA5392: Use DefaultDllImportSearchPaths attribute for P/Invokes
+dotnet_diagnostic.CA5392.severity = error
+
+# CA5393: Do not use unsafe DllImportSearchPath value
+dotnet_diagnostic.CA5393.severity = error
+
+# CA5394: Do not use insecure randomness
+dotnet_diagnostic.CA5394.severity = error
+
+# CA5395: Miss HttpVerb attribute for action methods
+dotnet_diagnostic.CA5395.severity = error
+
+# CA5396: Set HttpOnly to true for HttpCookie
+dotnet_diagnostic.CA5396.severity = error
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = error
+
+# CA5398: Avoid hardcoded SslProtocols values
+dotnet_diagnostic.CA5398.severity = error
+
+# CA5399: HttpClients should enable certificate revocation list checks
+dotnet_diagnostic.CA5399.severity = error
+
+# CA5400: Ensure HttpClient certificate revocation list check is not disabled
+dotnet_diagnostic.CA5400.severity = error
+
+# CA5401: Do not use CreateEncryptor with non-default IV
+dotnet_diagnostic.CA5401.severity = error
+
+# CA5402: Use CreateEncryptor with the default IV
+dotnet_diagnostic.CA5402.severity = error
+
+# CA5403: Do not hard-code certificate
+dotnet_diagnostic.CA5403.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_default.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_default.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..7781e8d9d830470e25afbd9b43cac1fbb55e14a2
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_default.globalconfig
@@ -0,0 +1,9 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Security' Rules from '6.0' release with 'Default' analysis mode
+# Description: 'Security' Rules with enabled-by-default state from '6.0' release with 'Default' analysis mode. Rules that are first released in a version later than '6.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_none.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_none.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..ea44096a12411a2ae1bd5552b51341c35ac920c8
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_none.globalconfig
@@ -0,0 +1,81 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Security' Rules from '6.0' release with 'None' analysis mode
+# Description: 'Security' Rules with enabled-by-default state from '6.0' release with 'None' analysis mode. Rules that are first released in a version later than '6.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = none
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = none
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = none
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = none
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = none
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = none
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = none
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = none
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = none
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = none
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = none
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = none
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = none
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = none
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = none
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = none
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = none
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = none
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = none
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = none
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = none
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = none
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = none
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_none_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_none_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..bc518d560d9d2353292c9e7331601c3f159320b1
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_6_none_warnaserror.globalconfig
@@ -0,0 +1,81 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Security' Rules from '6.0' release with 'None' analysis mode escalated to 'error' severity
+# Description: 'Security' Rules with enabled-by-default state from '6.0' release with 'None' analysis mode. Rules that are first released in a version later than '6.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = none
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = none
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = none
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = none
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = none
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = none
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = none
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = none
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = none
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = none
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = none
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = none
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = none
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = none
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = none
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = none
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = none
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = none
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = none
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = none
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = none
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = none
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = none
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_all.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_all.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..7caa7a294d27c2927694d8e94d7b1279359b4a59
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_all.globalconfig
@@ -0,0 +1,291 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Security' Rules from '7.0' release with 'All' analysis mode
+# Description: 'Security' Rules with enabled-by-default state from '7.0' release with 'All' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2100: Review SQL queries for security vulnerabilities
+dotnet_diagnostic.CA2100.severity = warning
+
+# CA2119: Seal methods that satisfy private interfaces
+dotnet_diagnostic.CA2119.severity = warning
+
+# CA2153: Do Not Catch Corrupted State Exceptions
+dotnet_diagnostic.CA2153.severity = warning
+
+# CA2300: Do not use insecure deserializer BinaryFormatter
+dotnet_diagnostic.CA2300.severity = warning
+
+# CA2301: Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder
+dotnet_diagnostic.CA2301.severity = warning
+
+# CA2302: Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize
+dotnet_diagnostic.CA2302.severity = warning
+
+# CA2305: Do not use insecure deserializer LosFormatter
+dotnet_diagnostic.CA2305.severity = warning
+
+# CA2310: Do not use insecure deserializer NetDataContractSerializer
+dotnet_diagnostic.CA2310.severity = warning
+
+# CA2311: Do not deserialize without first setting NetDataContractSerializer.Binder
+dotnet_diagnostic.CA2311.severity = warning
+
+# CA2312: Ensure NetDataContractSerializer.Binder is set before deserializing
+dotnet_diagnostic.CA2312.severity = warning
+
+# CA2315: Do not use insecure deserializer ObjectStateFormatter
+dotnet_diagnostic.CA2315.severity = warning
+
+# CA2321: Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver
+dotnet_diagnostic.CA2321.severity = warning
+
+# CA2322: Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing
+dotnet_diagnostic.CA2322.severity = warning
+
+# CA2326: Do not use TypeNameHandling values other than None
+dotnet_diagnostic.CA2326.severity = warning
+
+# CA2327: Do not use insecure JsonSerializerSettings
+dotnet_diagnostic.CA2327.severity = warning
+
+# CA2328: Ensure that JsonSerializerSettings are secure
+dotnet_diagnostic.CA2328.severity = warning
+
+# CA2329: Do not deserialize with JsonSerializer using an insecure configuration
+dotnet_diagnostic.CA2329.severity = warning
+
+# CA2330: Ensure that JsonSerializer has a secure configuration when deserializing
+dotnet_diagnostic.CA2330.severity = warning
+
+# CA2350: Do not use DataTable.ReadXml() with untrusted data
+dotnet_diagnostic.CA2350.severity = warning
+
+# CA2351: Do not use DataSet.ReadXml() with untrusted data
+dotnet_diagnostic.CA2351.severity = warning
+
+# CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2352.severity = warning
+
+# CA2353: Unsafe DataSet or DataTable in serializable type
+dotnet_diagnostic.CA2353.severity = warning
+
+# CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2354.severity = warning
+
+# CA2355: Unsafe DataSet or DataTable type found in deserializable object graph
+dotnet_diagnostic.CA2355.severity = warning
+
+# CA2356: Unsafe DataSet or DataTable type in web deserializable object graph
+dotnet_diagnostic.CA2356.severity = warning
+
+# CA2361: Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data
+dotnet_diagnostic.CA2361.severity = warning
+
+# CA2362: Unsafe DataSet or DataTable in auto-generated serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2362.severity = warning
+
+# CA3001: Review code for SQL injection vulnerabilities
+dotnet_diagnostic.CA3001.severity = warning
+
+# CA3002: Review code for XSS vulnerabilities
+dotnet_diagnostic.CA3002.severity = warning
+
+# CA3003: Review code for file path injection vulnerabilities
+dotnet_diagnostic.CA3003.severity = warning
+
+# CA3004: Review code for information disclosure vulnerabilities
+dotnet_diagnostic.CA3004.severity = warning
+
+# CA3005: Review code for LDAP injection vulnerabilities
+dotnet_diagnostic.CA3005.severity = warning
+
+# CA3006: Review code for process command injection vulnerabilities
+dotnet_diagnostic.CA3006.severity = warning
+
+# CA3007: Review code for open redirect vulnerabilities
+dotnet_diagnostic.CA3007.severity = warning
+
+# CA3008: Review code for XPath injection vulnerabilities
+dotnet_diagnostic.CA3008.severity = warning
+
+# CA3009: Review code for XML injection vulnerabilities
+dotnet_diagnostic.CA3009.severity = warning
+
+# CA3010: Review code for XAML injection vulnerabilities
+dotnet_diagnostic.CA3010.severity = warning
+
+# CA3011: Review code for DLL injection vulnerabilities
+dotnet_diagnostic.CA3011.severity = warning
+
+# CA3012: Review code for regex injection vulnerabilities
+dotnet_diagnostic.CA3012.severity = warning
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = warning
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = warning
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = warning
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = warning
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = warning
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = warning
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = warning
+
+# CA5358: Review cipher mode usage with cryptography experts
+dotnet_diagnostic.CA5358.severity = warning
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = warning
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = warning
+
+# CA5361: Do Not Disable SChannel Use of Strong Crypto
+dotnet_diagnostic.CA5361.severity = warning
+
+# CA5362: Potential reference cycle in deserialized object graph
+dotnet_diagnostic.CA5362.severity = warning
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = warning
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = warning
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = warning
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = warning
+
+# CA5367: Do Not Serialize Types With Pointer Fields
+dotnet_diagnostic.CA5367.severity = warning
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = warning
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = warning
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = warning
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = warning
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = warning
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = warning
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = warning
+
+# CA5375: Do Not Use Account Shared Access Signature
+dotnet_diagnostic.CA5375.severity = warning
+
+# CA5376: Use SharedAccessProtocol HttpsOnly
+dotnet_diagnostic.CA5376.severity = warning
+
+# CA5377: Use Container Level Access Policy
+dotnet_diagnostic.CA5377.severity = warning
+
+# CA5378: Do not disable ServicePointManagerSecurityProtocols
+dotnet_diagnostic.CA5378.severity = warning
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = warning
+
+# CA5380: Do Not Add Certificates To Root Store
+dotnet_diagnostic.CA5380.severity = warning
+
+# CA5381: Ensure Certificates Are Not Added To Root Store
+dotnet_diagnostic.CA5381.severity = warning
+
+# CA5382: Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5382.severity = warning
+
+# CA5383: Ensure Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5383.severity = warning
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = warning
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = warning
+
+# CA5386: Avoid hardcoding SecurityProtocolType value
+dotnet_diagnostic.CA5386.severity = warning
+
+# CA5387: Do Not Use Weak Key Derivation Function With Insufficient Iteration Count
+dotnet_diagnostic.CA5387.severity = warning
+
+# CA5388: Ensure Sufficient Iteration Count When Using Weak Key Derivation Function
+dotnet_diagnostic.CA5388.severity = warning
+
+# CA5389: Do Not Add Archive Item's Path To The Target File System Path
+dotnet_diagnostic.CA5389.severity = warning
+
+# CA5390: Do not hard-code encryption key
+dotnet_diagnostic.CA5390.severity = warning
+
+# CA5391: Use antiforgery tokens in ASP.NET Core MVC controllers
+dotnet_diagnostic.CA5391.severity = warning
+
+# CA5392: Use DefaultDllImportSearchPaths attribute for P/Invokes
+dotnet_diagnostic.CA5392.severity = warning
+
+# CA5393: Do not use unsafe DllImportSearchPath value
+dotnet_diagnostic.CA5393.severity = warning
+
+# CA5394: Do not use insecure randomness
+dotnet_diagnostic.CA5394.severity = warning
+
+# CA5395: Miss HttpVerb attribute for action methods
+dotnet_diagnostic.CA5395.severity = warning
+
+# CA5396: Set HttpOnly to true for HttpCookie
+dotnet_diagnostic.CA5396.severity = warning
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = warning
+
+# CA5398: Avoid hardcoded SslProtocols values
+dotnet_diagnostic.CA5398.severity = warning
+
+# CA5399: HttpClients should enable certificate revocation list checks
+dotnet_diagnostic.CA5399.severity = warning
+
+# CA5400: Ensure HttpClient certificate revocation list check is not disabled
+dotnet_diagnostic.CA5400.severity = warning
+
+# CA5401: Do not use CreateEncryptor with non-default IV
+dotnet_diagnostic.CA5401.severity = warning
+
+# CA5402: Use CreateEncryptor with the default IV
+dotnet_diagnostic.CA5402.severity = warning
+
+# CA5403: Do not hard-code certificate
+dotnet_diagnostic.CA5403.severity = warning
+
+# CA5404: Do not disable token validation checks
+dotnet_diagnostic.CA5404.severity = warning
+
+# CA5405: Do not always skip token validation in delegates
+dotnet_diagnostic.CA5405.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_minimum_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_minimum_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..e45eeaf516db53a7a43219e723e4b121237b0bcb
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_minimum_warnaserror.globalconfig
@@ -0,0 +1,9 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Security' Rules from '7.0' release with 'Minimum' analysis mode escalated to 'error' severity
+# Description: 'Security' Rules with enabled-by-default state from '7.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '7.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_none.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_none.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..c5eba0cdf6714969a979be957c4dd5950f4e49b4
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_none.globalconfig
@@ -0,0 +1,81 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Security' Rules from '7.0' release with 'None' analysis mode
+# Description: 'Security' Rules with enabled-by-default state from '7.0' release with 'None' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = none
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = none
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = none
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = none
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = none
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = none
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = none
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = none
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = none
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = none
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = none
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = none
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = none
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = none
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = none
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = none
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = none
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = none
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = none
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = none
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = none
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = none
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = none
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_recommended.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_recommended.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..4d6ee34e06b6e59b4090759a138f94af53e1dffc
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_recommended.globalconfig
@@ -0,0 +1,81 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Security' Rules from '7.0' release with 'Recommended' analysis mode
+# Description: 'Security' Rules with enabled-by-default state from '7.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = warning
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = warning
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = warning
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = warning
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = warning
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = warning
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = warning
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = warning
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = warning
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = warning
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = warning
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = warning
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = warning
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = warning
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = warning
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = warning
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = warning
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = warning
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = warning
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = warning
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = warning
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = warning
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = warning
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_recommended_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_recommended_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..f5446dfe286c8f655dedac4caeb42ef25f58a81d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_7_recommended_warnaserror.globalconfig
@@ -0,0 +1,81 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Security' Rules from '7.0' release with 'Recommended' analysis mode escalated to 'error' severity
+# Description: 'Security' Rules with enabled-by-default state from '7.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '7.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = error
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = error
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = error
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = error
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = error
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = error
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = error
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = error
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = error
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = error
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = error
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = error
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = error
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = error
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = error
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = error
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = error
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = error
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = error
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = error
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = error
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = error
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = error
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_all.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_all.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..aa2b65e24e1f435fc797d2beebb82419c028de9e
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_all.globalconfig
@@ -0,0 +1,291 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Security' Rules from '8.0' release with 'All' analysis mode
+# Description: 'Security' Rules with enabled-by-default state from '8.0' release with 'All' analysis mode. Rules that are first released in a version later than '8.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2100: Review SQL queries for security vulnerabilities
+dotnet_diagnostic.CA2100.severity = warning
+
+# CA2119: Seal methods that satisfy private interfaces
+dotnet_diagnostic.CA2119.severity = warning
+
+# CA2153: Do Not Catch Corrupted State Exceptions
+dotnet_diagnostic.CA2153.severity = warning
+
+# CA2300: Do not use insecure deserializer BinaryFormatter
+dotnet_diagnostic.CA2300.severity = warning
+
+# CA2301: Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder
+dotnet_diagnostic.CA2301.severity = warning
+
+# CA2302: Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize
+dotnet_diagnostic.CA2302.severity = warning
+
+# CA2305: Do not use insecure deserializer LosFormatter
+dotnet_diagnostic.CA2305.severity = warning
+
+# CA2310: Do not use insecure deserializer NetDataContractSerializer
+dotnet_diagnostic.CA2310.severity = warning
+
+# CA2311: Do not deserialize without first setting NetDataContractSerializer.Binder
+dotnet_diagnostic.CA2311.severity = warning
+
+# CA2312: Ensure NetDataContractSerializer.Binder is set before deserializing
+dotnet_diagnostic.CA2312.severity = warning
+
+# CA2315: Do not use insecure deserializer ObjectStateFormatter
+dotnet_diagnostic.CA2315.severity = warning
+
+# CA2321: Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver
+dotnet_diagnostic.CA2321.severity = warning
+
+# CA2322: Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing
+dotnet_diagnostic.CA2322.severity = warning
+
+# CA2326: Do not use TypeNameHandling values other than None
+dotnet_diagnostic.CA2326.severity = warning
+
+# CA2327: Do not use insecure JsonSerializerSettings
+dotnet_diagnostic.CA2327.severity = warning
+
+# CA2328: Ensure that JsonSerializerSettings are secure
+dotnet_diagnostic.CA2328.severity = warning
+
+# CA2329: Do not deserialize with JsonSerializer using an insecure configuration
+dotnet_diagnostic.CA2329.severity = warning
+
+# CA2330: Ensure that JsonSerializer has a secure configuration when deserializing
+dotnet_diagnostic.CA2330.severity = warning
+
+# CA2350: Do not use DataTable.ReadXml() with untrusted data
+dotnet_diagnostic.CA2350.severity = warning
+
+# CA2351: Do not use DataSet.ReadXml() with untrusted data
+dotnet_diagnostic.CA2351.severity = warning
+
+# CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2352.severity = warning
+
+# CA2353: Unsafe DataSet or DataTable in serializable type
+dotnet_diagnostic.CA2353.severity = warning
+
+# CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2354.severity = warning
+
+# CA2355: Unsafe DataSet or DataTable type found in deserializable object graph
+dotnet_diagnostic.CA2355.severity = warning
+
+# CA2356: Unsafe DataSet or DataTable type in web deserializable object graph
+dotnet_diagnostic.CA2356.severity = warning
+
+# CA2361: Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data
+dotnet_diagnostic.CA2361.severity = warning
+
+# CA2362: Unsafe DataSet or DataTable in auto-generated serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2362.severity = warning
+
+# CA3001: Review code for SQL injection vulnerabilities
+dotnet_diagnostic.CA3001.severity = warning
+
+# CA3002: Review code for XSS vulnerabilities
+dotnet_diagnostic.CA3002.severity = warning
+
+# CA3003: Review code for file path injection vulnerabilities
+dotnet_diagnostic.CA3003.severity = warning
+
+# CA3004: Review code for information disclosure vulnerabilities
+dotnet_diagnostic.CA3004.severity = warning
+
+# CA3005: Review code for LDAP injection vulnerabilities
+dotnet_diagnostic.CA3005.severity = warning
+
+# CA3006: Review code for process command injection vulnerabilities
+dotnet_diagnostic.CA3006.severity = warning
+
+# CA3007: Review code for open redirect vulnerabilities
+dotnet_diagnostic.CA3007.severity = warning
+
+# CA3008: Review code for XPath injection vulnerabilities
+dotnet_diagnostic.CA3008.severity = warning
+
+# CA3009: Review code for XML injection vulnerabilities
+dotnet_diagnostic.CA3009.severity = warning
+
+# CA3010: Review code for XAML injection vulnerabilities
+dotnet_diagnostic.CA3010.severity = warning
+
+# CA3011: Review code for DLL injection vulnerabilities
+dotnet_diagnostic.CA3011.severity = warning
+
+# CA3012: Review code for regex injection vulnerabilities
+dotnet_diagnostic.CA3012.severity = warning
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = warning
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = warning
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = warning
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = warning
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = warning
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = warning
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = warning
+
+# CA5358: Review cipher mode usage with cryptography experts
+dotnet_diagnostic.CA5358.severity = warning
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = warning
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = warning
+
+# CA5361: Do Not Disable SChannel Use of Strong Crypto
+dotnet_diagnostic.CA5361.severity = warning
+
+# CA5362: Potential reference cycle in deserialized object graph
+dotnet_diagnostic.CA5362.severity = warning
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = warning
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = warning
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = warning
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = warning
+
+# CA5367: Do Not Serialize Types With Pointer Fields
+dotnet_diagnostic.CA5367.severity = warning
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = warning
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = warning
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = warning
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = warning
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = warning
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = warning
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = warning
+
+# CA5375: Do Not Use Account Shared Access Signature
+dotnet_diagnostic.CA5375.severity = warning
+
+# CA5376: Use SharedAccessProtocol HttpsOnly
+dotnet_diagnostic.CA5376.severity = warning
+
+# CA5377: Use Container Level Access Policy
+dotnet_diagnostic.CA5377.severity = warning
+
+# CA5378: Do not disable ServicePointManagerSecurityProtocols
+dotnet_diagnostic.CA5378.severity = warning
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = warning
+
+# CA5380: Do Not Add Certificates To Root Store
+dotnet_diagnostic.CA5380.severity = warning
+
+# CA5381: Ensure Certificates Are Not Added To Root Store
+dotnet_diagnostic.CA5381.severity = warning
+
+# CA5382: Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5382.severity = warning
+
+# CA5383: Ensure Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5383.severity = warning
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = warning
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = warning
+
+# CA5386: Avoid hardcoding SecurityProtocolType value
+dotnet_diagnostic.CA5386.severity = warning
+
+# CA5387: Do Not Use Weak Key Derivation Function With Insufficient Iteration Count
+dotnet_diagnostic.CA5387.severity = warning
+
+# CA5388: Ensure Sufficient Iteration Count When Using Weak Key Derivation Function
+dotnet_diagnostic.CA5388.severity = warning
+
+# CA5389: Do Not Add Archive Item's Path To The Target File System Path
+dotnet_diagnostic.CA5389.severity = warning
+
+# CA5390: Do not hard-code encryption key
+dotnet_diagnostic.CA5390.severity = warning
+
+# CA5391: Use antiforgery tokens in ASP.NET Core MVC controllers
+dotnet_diagnostic.CA5391.severity = warning
+
+# CA5392: Use DefaultDllImportSearchPaths attribute for P/Invokes
+dotnet_diagnostic.CA5392.severity = warning
+
+# CA5393: Do not use unsafe DllImportSearchPath value
+dotnet_diagnostic.CA5393.severity = warning
+
+# CA5394: Do not use insecure randomness
+dotnet_diagnostic.CA5394.severity = warning
+
+# CA5395: Miss HttpVerb attribute for action methods
+dotnet_diagnostic.CA5395.severity = warning
+
+# CA5396: Set HttpOnly to true for HttpCookie
+dotnet_diagnostic.CA5396.severity = warning
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = warning
+
+# CA5398: Avoid hardcoded SslProtocols values
+dotnet_diagnostic.CA5398.severity = warning
+
+# CA5399: HttpClients should enable certificate revocation list checks
+dotnet_diagnostic.CA5399.severity = warning
+
+# CA5400: Ensure HttpClient certificate revocation list check is not disabled
+dotnet_diagnostic.CA5400.severity = warning
+
+# CA5401: Do not use CreateEncryptor with non-default IV
+dotnet_diagnostic.CA5401.severity = warning
+
+# CA5402: Use CreateEncryptor with the default IV
+dotnet_diagnostic.CA5402.severity = warning
+
+# CA5403: Do not hard-code certificate
+dotnet_diagnostic.CA5403.severity = warning
+
+# CA5404: Do not disable token validation checks
+dotnet_diagnostic.CA5404.severity = warning
+
+# CA5405: Do not always skip token validation in delegates
+dotnet_diagnostic.CA5405.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..5fa09ecd64d1bca313d9a02f611e6ab0f7ed2454
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_8_all_warnaserror.globalconfig
@@ -0,0 +1,291 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Security' Rules from '8.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Security' Rules with enabled-by-default state from '8.0' release with 'All' analysis mode. Rules that are first released in a version later than '8.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2100: Review SQL queries for security vulnerabilities
+dotnet_diagnostic.CA2100.severity = error
+
+# CA2119: Seal methods that satisfy private interfaces
+dotnet_diagnostic.CA2119.severity = error
+
+# CA2153: Do Not Catch Corrupted State Exceptions
+dotnet_diagnostic.CA2153.severity = error
+
+# CA2300: Do not use insecure deserializer BinaryFormatter
+dotnet_diagnostic.CA2300.severity = error
+
+# CA2301: Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder
+dotnet_diagnostic.CA2301.severity = error
+
+# CA2302: Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize
+dotnet_diagnostic.CA2302.severity = error
+
+# CA2305: Do not use insecure deserializer LosFormatter
+dotnet_diagnostic.CA2305.severity = error
+
+# CA2310: Do not use insecure deserializer NetDataContractSerializer
+dotnet_diagnostic.CA2310.severity = error
+
+# CA2311: Do not deserialize without first setting NetDataContractSerializer.Binder
+dotnet_diagnostic.CA2311.severity = error
+
+# CA2312: Ensure NetDataContractSerializer.Binder is set before deserializing
+dotnet_diagnostic.CA2312.severity = error
+
+# CA2315: Do not use insecure deserializer ObjectStateFormatter
+dotnet_diagnostic.CA2315.severity = error
+
+# CA2321: Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver
+dotnet_diagnostic.CA2321.severity = error
+
+# CA2322: Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing
+dotnet_diagnostic.CA2322.severity = error
+
+# CA2326: Do not use TypeNameHandling values other than None
+dotnet_diagnostic.CA2326.severity = error
+
+# CA2327: Do not use insecure JsonSerializerSettings
+dotnet_diagnostic.CA2327.severity = error
+
+# CA2328: Ensure that JsonSerializerSettings are secure
+dotnet_diagnostic.CA2328.severity = error
+
+# CA2329: Do not deserialize with JsonSerializer using an insecure configuration
+dotnet_diagnostic.CA2329.severity = error
+
+# CA2330: Ensure that JsonSerializer has a secure configuration when deserializing
+dotnet_diagnostic.CA2330.severity = error
+
+# CA2350: Do not use DataTable.ReadXml() with untrusted data
+dotnet_diagnostic.CA2350.severity = error
+
+# CA2351: Do not use DataSet.ReadXml() with untrusted data
+dotnet_diagnostic.CA2351.severity = error
+
+# CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2352.severity = error
+
+# CA2353: Unsafe DataSet or DataTable in serializable type
+dotnet_diagnostic.CA2353.severity = error
+
+# CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2354.severity = error
+
+# CA2355: Unsafe DataSet or DataTable type found in deserializable object graph
+dotnet_diagnostic.CA2355.severity = error
+
+# CA2356: Unsafe DataSet or DataTable type in web deserializable object graph
+dotnet_diagnostic.CA2356.severity = error
+
+# CA2361: Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data
+dotnet_diagnostic.CA2361.severity = error
+
+# CA2362: Unsafe DataSet or DataTable in auto-generated serializable type can be vulnerable to remote code execution attacks
+dotnet_diagnostic.CA2362.severity = error
+
+# CA3001: Review code for SQL injection vulnerabilities
+dotnet_diagnostic.CA3001.severity = error
+
+# CA3002: Review code for XSS vulnerabilities
+dotnet_diagnostic.CA3002.severity = error
+
+# CA3003: Review code for file path injection vulnerabilities
+dotnet_diagnostic.CA3003.severity = error
+
+# CA3004: Review code for information disclosure vulnerabilities
+dotnet_diagnostic.CA3004.severity = error
+
+# CA3005: Review code for LDAP injection vulnerabilities
+dotnet_diagnostic.CA3005.severity = error
+
+# CA3006: Review code for process command injection vulnerabilities
+dotnet_diagnostic.CA3006.severity = error
+
+# CA3007: Review code for open redirect vulnerabilities
+dotnet_diagnostic.CA3007.severity = error
+
+# CA3008: Review code for XPath injection vulnerabilities
+dotnet_diagnostic.CA3008.severity = error
+
+# CA3009: Review code for XML injection vulnerabilities
+dotnet_diagnostic.CA3009.severity = error
+
+# CA3010: Review code for XAML injection vulnerabilities
+dotnet_diagnostic.CA3010.severity = error
+
+# CA3011: Review code for DLL injection vulnerabilities
+dotnet_diagnostic.CA3011.severity = error
+
+# CA3012: Review code for regex injection vulnerabilities
+dotnet_diagnostic.CA3012.severity = error
+
+# CA3061: Do Not Add Schema By URL
+dotnet_diagnostic.CA3061.severity = error
+
+# CA3075: Insecure DTD processing in XML
+dotnet_diagnostic.CA3075.severity = error
+
+# CA3076: Insecure XSLT script processing
+dotnet_diagnostic.CA3076.severity = error
+
+# CA3077: Insecure Processing in API Design, XmlDocument and XmlTextReader
+dotnet_diagnostic.CA3077.severity = error
+
+# CA3147: Mark Verb Handlers With Validate Antiforgery Token
+dotnet_diagnostic.CA3147.severity = error
+
+# CA5350: Do Not Use Weak Cryptographic Algorithms
+dotnet_diagnostic.CA5350.severity = error
+
+# CA5351: Do Not Use Broken Cryptographic Algorithms
+dotnet_diagnostic.CA5351.severity = error
+
+# CA5358: Review cipher mode usage with cryptography experts
+dotnet_diagnostic.CA5358.severity = error
+
+# CA5359: Do Not Disable Certificate Validation
+dotnet_diagnostic.CA5359.severity = error
+
+# CA5360: Do Not Call Dangerous Methods In Deserialization
+dotnet_diagnostic.CA5360.severity = error
+
+# CA5361: Do Not Disable SChannel Use of Strong Crypto
+dotnet_diagnostic.CA5361.severity = error
+
+# CA5362: Potential reference cycle in deserialized object graph
+dotnet_diagnostic.CA5362.severity = error
+
+# CA5363: Do Not Disable Request Validation
+dotnet_diagnostic.CA5363.severity = error
+
+# CA5364: Do Not Use Deprecated Security Protocols
+dotnet_diagnostic.CA5364.severity = error
+
+# CA5365: Do Not Disable HTTP Header Checking
+dotnet_diagnostic.CA5365.severity = error
+
+# CA5366: Use XmlReader for 'DataSet.ReadXml()'
+dotnet_diagnostic.CA5366.severity = error
+
+# CA5367: Do Not Serialize Types With Pointer Fields
+dotnet_diagnostic.CA5367.severity = error
+
+# CA5368: Set ViewStateUserKey For Classes Derived From Page
+dotnet_diagnostic.CA5368.severity = error
+
+# CA5369: Use XmlReader for 'XmlSerializer.Deserialize()'
+dotnet_diagnostic.CA5369.severity = error
+
+# CA5370: Use XmlReader for XmlValidatingReader constructor
+dotnet_diagnostic.CA5370.severity = error
+
+# CA5371: Use XmlReader for 'XmlSchema.Read()'
+dotnet_diagnostic.CA5371.severity = error
+
+# CA5372: Use XmlReader for XPathDocument constructor
+dotnet_diagnostic.CA5372.severity = error
+
+# CA5373: Do not use obsolete key derivation function
+dotnet_diagnostic.CA5373.severity = error
+
+# CA5374: Do Not Use XslTransform
+dotnet_diagnostic.CA5374.severity = error
+
+# CA5375: Do Not Use Account Shared Access Signature
+dotnet_diagnostic.CA5375.severity = error
+
+# CA5376: Use SharedAccessProtocol HttpsOnly
+dotnet_diagnostic.CA5376.severity = error
+
+# CA5377: Use Container Level Access Policy
+dotnet_diagnostic.CA5377.severity = error
+
+# CA5378: Do not disable ServicePointManagerSecurityProtocols
+dotnet_diagnostic.CA5378.severity = error
+
+# CA5379: Ensure Key Derivation Function algorithm is sufficiently strong
+dotnet_diagnostic.CA5379.severity = error
+
+# CA5380: Do Not Add Certificates To Root Store
+dotnet_diagnostic.CA5380.severity = error
+
+# CA5381: Ensure Certificates Are Not Added To Root Store
+dotnet_diagnostic.CA5381.severity = error
+
+# CA5382: Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5382.severity = error
+
+# CA5383: Ensure Use Secure Cookies In ASP.NET Core
+dotnet_diagnostic.CA5383.severity = error
+
+# CA5384: Do Not Use Digital Signature Algorithm (DSA)
+dotnet_diagnostic.CA5384.severity = error
+
+# CA5385: Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size
+dotnet_diagnostic.CA5385.severity = error
+
+# CA5386: Avoid hardcoding SecurityProtocolType value
+dotnet_diagnostic.CA5386.severity = error
+
+# CA5387: Do Not Use Weak Key Derivation Function With Insufficient Iteration Count
+dotnet_diagnostic.CA5387.severity = error
+
+# CA5388: Ensure Sufficient Iteration Count When Using Weak Key Derivation Function
+dotnet_diagnostic.CA5388.severity = error
+
+# CA5389: Do Not Add Archive Item's Path To The Target File System Path
+dotnet_diagnostic.CA5389.severity = error
+
+# CA5390: Do not hard-code encryption key
+dotnet_diagnostic.CA5390.severity = error
+
+# CA5391: Use antiforgery tokens in ASP.NET Core MVC controllers
+dotnet_diagnostic.CA5391.severity = error
+
+# CA5392: Use DefaultDllImportSearchPaths attribute for P/Invokes
+dotnet_diagnostic.CA5392.severity = error
+
+# CA5393: Do not use unsafe DllImportSearchPath value
+dotnet_diagnostic.CA5393.severity = error
+
+# CA5394: Do not use insecure randomness
+dotnet_diagnostic.CA5394.severity = error
+
+# CA5395: Miss HttpVerb attribute for action methods
+dotnet_diagnostic.CA5395.severity = error
+
+# CA5396: Set HttpOnly to true for HttpCookie
+dotnet_diagnostic.CA5396.severity = error
+
+# CA5397: Do not use deprecated SslProtocols values
+dotnet_diagnostic.CA5397.severity = error
+
+# CA5398: Avoid hardcoded SslProtocols values
+dotnet_diagnostic.CA5398.severity = error
+
+# CA5399: HttpClients should enable certificate revocation list checks
+dotnet_diagnostic.CA5399.severity = error
+
+# CA5400: Ensure HttpClient certificate revocation list check is not disabled
+dotnet_diagnostic.CA5400.severity = error
+
+# CA5401: Do not use CreateEncryptor with non-default IV
+dotnet_diagnostic.CA5401.severity = error
+
+# CA5402: Use CreateEncryptor with the default IV
+dotnet_diagnostic.CA5402.severity = error
+
+# CA5403: Do not hard-code certificate
+dotnet_diagnostic.CA5403.severity = error
+
+# CA5404: Do not disable token validation checks
+dotnet_diagnostic.CA5404.severity = error
+
+# CA5405: Do not always skip token validation in delegates
+dotnet_diagnostic.CA5405.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_9_default.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_9_default.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..bc38e2555950611d8aede8094f400275edeac5a6
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelsecurity_9_default.globalconfig
@@ -0,0 +1,9 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Security' Rules from '9.0' release with 'Default' analysis mode
+# Description: 'Security' Rules with enabled-by-default state from '9.0' release with 'Default' analysis mode. Rules that are first released in a version later than '9.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_all.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_all.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..8d15e0be1cdd2494cd04d0a6e8f4c7a5d253150f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_all.globalconfig
@@ -0,0 +1,129 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Usage' Rules from '5.0' release with 'All' analysis mode
+# Description: 'Usage' Rules with enabled-by-default state from '5.0' release with 'All' analysis mode. Rules that are first released in a version later than '5.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = warning
+
+# CA2201: Do not raise reserved exception types
+dotnet_diagnostic.CA2201.severity = warning
+
+# CA2207: Initialize value type static fields inline
+dotnet_diagnostic.CA2207.severity = warning
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = warning
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = warning
+
+# CA2213: Disposable fields should be disposed
+dotnet_diagnostic.CA2213.severity = warning
+
+# CA2214: Do not call overridable methods in constructors
+dotnet_diagnostic.CA2214.severity = warning
+
+# CA2215: Dispose methods should call base class dispose
+dotnet_diagnostic.CA2215.severity = warning
+
+# CA2216: Disposable types should declare finalizer
+dotnet_diagnostic.CA2216.severity = warning
+
+# CA2217: Do not mark enums with FlagsAttribute
+dotnet_diagnostic.CA2217.severity = warning
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = warning
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = warning
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = warning
+
+# CA2225: Operator overloads have named alternates
+dotnet_diagnostic.CA2225.severity = warning
+
+# CA2226: Operators should have symmetrical overloads
+dotnet_diagnostic.CA2226.severity = warning
+
+# CA2227: Collection properties should be read only
+dotnet_diagnostic.CA2227.severity = warning
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = warning
+
+# CA2234: Pass system uri objects instead of strings
+dotnet_diagnostic.CA2234.severity = warning
+
+# CA2235: Mark all non-serializable fields
+dotnet_diagnostic.CA2235.severity = warning
+
+# CA2237: Mark ISerializable types with serializable
+dotnet_diagnostic.CA2237.severity = warning
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = warning
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = warning
+
+# CA2243: Attribute string literals should parse correctly
+dotnet_diagnostic.CA2243.severity = warning
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = warning
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = warning
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = warning
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = warning
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = warning
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = none
+
+# CA2251: Use 'string.Equals'
+dotnet_diagnostic.CA2251.severity = none
+
+# CA2252: This API requires opting into preview features
+dotnet_diagnostic.CA2252.severity = none
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = none
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = none
+
+# CA2255: The 'ModuleInitializer' attribute should not be used in libraries
+dotnet_diagnostic.CA2255.severity = none
+
+# CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface
+dotnet_diagnostic.CA2256.severity = none
+
+# CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'
+dotnet_diagnostic.CA2257.severity = none
+
+# CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported
+dotnet_diagnostic.CA2258.severity = none
+
+# CA2259: 'ThreadStatic' only affects static fields
+dotnet_diagnostic.CA2259.severity = none
+
+# CA2260: Use correct type parameter
+dotnet_diagnostic.CA2260.severity = none
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..7ac65540c44bf7ed40d61f6c81b7a737acfdaedd
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_all_warnaserror.globalconfig
@@ -0,0 +1,135 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Usage' Rules from '5.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Usage' Rules with enabled-by-default state from '5.0' release with 'All' analysis mode. Rules that are first released in a version later than '5.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = error
+
+# CA2200: Rethrow to preserve stack details
+dotnet_diagnostic.CA2200.severity = error
+
+# CA2201: Do not raise reserved exception types
+dotnet_diagnostic.CA2201.severity = error
+
+# CA2207: Initialize value type static fields inline
+dotnet_diagnostic.CA2207.severity = error
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = error
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = error
+
+# CA2213: Disposable fields should be disposed
+dotnet_diagnostic.CA2213.severity = error
+
+# CA2214: Do not call overridable methods in constructors
+dotnet_diagnostic.CA2214.severity = error
+
+# CA2215: Dispose methods should call base class dispose
+dotnet_diagnostic.CA2215.severity = error
+
+# CA2216: Disposable types should declare finalizer
+dotnet_diagnostic.CA2216.severity = error
+
+# CA2217: Do not mark enums with FlagsAttribute
+dotnet_diagnostic.CA2217.severity = error
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = error
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = error
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = error
+
+# CA2225: Operator overloads have named alternates
+dotnet_diagnostic.CA2225.severity = error
+
+# CA2226: Operators should have symmetrical overloads
+dotnet_diagnostic.CA2226.severity = error
+
+# CA2227: Collection properties should be read only
+dotnet_diagnostic.CA2227.severity = error
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = error
+
+# CA2234: Pass system uri objects instead of strings
+dotnet_diagnostic.CA2234.severity = error
+
+# CA2235: Mark all non-serializable fields
+dotnet_diagnostic.CA2235.severity = error
+
+# CA2237: Mark ISerializable types with serializable
+dotnet_diagnostic.CA2237.severity = error
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = error
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = error
+
+# CA2243: Attribute string literals should parse correctly
+dotnet_diagnostic.CA2243.severity = error
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = error
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = error
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = error
+
+# CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum
+dotnet_diagnostic.CA2247.severity = error
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = error
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = error
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = none
+
+# CA2251: Use 'string.Equals'
+dotnet_diagnostic.CA2251.severity = none
+
+# CA2252: This API requires opting into preview features
+dotnet_diagnostic.CA2252.severity = none
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = none
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = none
+
+# CA2255: The 'ModuleInitializer' attribute should not be used in libraries
+dotnet_diagnostic.CA2255.severity = none
+
+# CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface
+dotnet_diagnostic.CA2256.severity = none
+
+# CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'
+dotnet_diagnostic.CA2257.severity = none
+
+# CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported
+dotnet_diagnostic.CA2258.severity = none
+
+# CA2259: 'ThreadStatic' only affects static fields
+dotnet_diagnostic.CA2259.severity = none
+
+# CA2260: Use correct type parameter
+dotnet_diagnostic.CA2260.severity = none
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_recommended_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_recommended_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..31452a3312230d43d828a1cec10078a16a2fee98
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_5_recommended_warnaserror.globalconfig
@@ -0,0 +1,99 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Usage' Rules from '5.0' release with 'Recommended' analysis mode escalated to 'error' severity
+# Description: 'Usage' Rules with enabled-by-default state from '5.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '5.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = error
+
+# CA2200: Rethrow to preserve stack details
+dotnet_diagnostic.CA2200.severity = error
+
+# CA2201: Do not raise reserved exception types
+dotnet_diagnostic.CA2201.severity = error
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = error
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = error
+
+# CA2215: Dispose methods should call base class dispose
+dotnet_diagnostic.CA2215.severity = error
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = error
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = error
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = error
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = error
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = error
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = error
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = error
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = error
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = error
+
+# CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum
+dotnet_diagnostic.CA2247.severity = error
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = error
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = error
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = none
+
+# CA2251: Use 'string.Equals'
+dotnet_diagnostic.CA2251.severity = none
+
+# CA2252: This API requires opting into preview features
+dotnet_diagnostic.CA2252.severity = none
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = none
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = none
+
+# CA2255: The 'ModuleInitializer' attribute should not be used in libraries
+dotnet_diagnostic.CA2255.severity = none
+
+# CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface
+dotnet_diagnostic.CA2256.severity = none
+
+# CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'
+dotnet_diagnostic.CA2257.severity = none
+
+# CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported
+dotnet_diagnostic.CA2258.severity = none
+
+# CA2259: 'ThreadStatic' only affects static fields
+dotnet_diagnostic.CA2259.severity = none
+
+# CA2260: Use correct type parameter
+dotnet_diagnostic.CA2260.severity = none
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..49b09e371a6b19b10bc190d37d479f1908b3d3ad
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_6_all_warnaserror.globalconfig
@@ -0,0 +1,132 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Usage' Rules from '6.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Usage' Rules with enabled-by-default state from '6.0' release with 'All' analysis mode. Rules that are first released in a version later than '6.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = error
+
+# CA2200: Rethrow to preserve stack details
+dotnet_diagnostic.CA2200.severity = error
+
+# CA2201: Do not raise reserved exception types
+dotnet_diagnostic.CA2201.severity = error
+
+# CA2207: Initialize value type static fields inline
+dotnet_diagnostic.CA2207.severity = error
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = error
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = error
+
+# CA2213: Disposable fields should be disposed
+dotnet_diagnostic.CA2213.severity = error
+
+# CA2214: Do not call overridable methods in constructors
+dotnet_diagnostic.CA2214.severity = error
+
+# CA2215: Dispose methods should call base class dispose
+dotnet_diagnostic.CA2215.severity = error
+
+# CA2216: Disposable types should declare finalizer
+dotnet_diagnostic.CA2216.severity = error
+
+# CA2217: Do not mark enums with FlagsAttribute
+dotnet_diagnostic.CA2217.severity = error
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = error
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = error
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = error
+
+# CA2225: Operator overloads have named alternates
+dotnet_diagnostic.CA2225.severity = error
+
+# CA2226: Operators should have symmetrical overloads
+dotnet_diagnostic.CA2226.severity = error
+
+# CA2227: Collection properties should be read only
+dotnet_diagnostic.CA2227.severity = error
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = error
+
+# CA2234: Pass system uri objects instead of strings
+dotnet_diagnostic.CA2234.severity = error
+
+# CA2235: Mark all non-serializable fields
+dotnet_diagnostic.CA2235.severity = error
+
+# CA2237: Mark ISerializable types with serializable
+dotnet_diagnostic.CA2237.severity = error
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = error
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = error
+
+# CA2243: Attribute string literals should parse correctly
+dotnet_diagnostic.CA2243.severity = error
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = error
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = error
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = error
+
+# CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum
+dotnet_diagnostic.CA2247.severity = error
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = error
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = error
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = error
+
+# CA2251: Use 'string.Equals'
+dotnet_diagnostic.CA2251.severity = error
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = error
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = error
+
+# CA2255: The 'ModuleInitializer' attribute should not be used in libraries
+dotnet_diagnostic.CA2255.severity = error
+
+# CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface
+dotnet_diagnostic.CA2256.severity = error
+
+# CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'
+dotnet_diagnostic.CA2257.severity = error
+
+# CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported
+dotnet_diagnostic.CA2258.severity = error
+
+# CA2259: 'ThreadStatic' only affects static fields
+dotnet_diagnostic.CA2259.severity = none
+
+# CA2260: Use correct type parameter
+dotnet_diagnostic.CA2260.severity = none
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_default_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_default_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..903484adb5faac3a9a94d5856b19917ed7cdb4ed
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_default_warnaserror.globalconfig
@@ -0,0 +1,36 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Usage' Rules from '7.0' release with 'Default' analysis mode escalated to 'error' severity
+# Description: 'Usage' Rules with enabled-by-default state from '7.0' release with 'Default' analysis mode. Rules that are first released in a version later than '7.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA2200: Rethrow to preserve stack details
+dotnet_diagnostic.CA2200.severity = error
+
+# CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum
+dotnet_diagnostic.CA2247.severity = error
+
+# CA2255: The 'ModuleInitializer' attribute should not be used in libraries
+dotnet_diagnostic.CA2255.severity = error
+
+# CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface
+dotnet_diagnostic.CA2256.severity = error
+
+# CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'
+dotnet_diagnostic.CA2257.severity = error
+
+# CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported
+dotnet_diagnostic.CA2258.severity = error
+
+# CA2259: 'ThreadStatic' only affects static fields
+dotnet_diagnostic.CA2259.severity = error
+
+# CA2260: Use correct type parameter
+dotnet_diagnostic.CA2260.severity = error
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_recommended.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_recommended.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..76979f75eec7cb55577bf1baa5689c3ebeac249d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_7_recommended.globalconfig
@@ -0,0 +1,75 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Usage' Rules from '7.0' release with 'Recommended' analysis mode
+# Description: 'Usage' Rules with enabled-by-default state from '7.0' release with 'Recommended' analysis mode. Rules that are first released in a version later than '7.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = warning
+
+# CA2201: Do not raise reserved exception types
+dotnet_diagnostic.CA2201.severity = warning
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = warning
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = warning
+
+# CA2215: Dispose methods should call base class dispose
+dotnet_diagnostic.CA2215.severity = warning
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = warning
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = warning
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = warning
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = warning
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = warning
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = warning
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = warning
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = warning
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = warning
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = warning
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = warning
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = warning
+
+# CA2251: Use 'string.Equals'
+dotnet_diagnostic.CA2251.severity = warning
+
+# CA2252: This API requires opting into preview features
+dotnet_diagnostic.CA2252.severity = warning
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = warning
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = warning
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_all_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_all_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..8e19abfaf7724d18914f98917029a0b639db7c28
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_all_warnaserror.globalconfig
@@ -0,0 +1,132 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Usage' Rules from '8.0' release with 'All' analysis mode escalated to 'error' severity
+# Description: 'Usage' Rules with enabled-by-default state from '8.0' release with 'All' analysis mode. Rules that are first released in a version later than '8.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = error
+
+# CA2200: Rethrow to preserve stack details
+dotnet_diagnostic.CA2200.severity = error
+
+# CA2201: Do not raise reserved exception types
+dotnet_diagnostic.CA2201.severity = error
+
+# CA2207: Initialize value type static fields inline
+dotnet_diagnostic.CA2207.severity = error
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = error
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = error
+
+# CA2213: Disposable fields should be disposed
+dotnet_diagnostic.CA2213.severity = error
+
+# CA2214: Do not call overridable methods in constructors
+dotnet_diagnostic.CA2214.severity = error
+
+# CA2215: Dispose methods should call base class dispose
+dotnet_diagnostic.CA2215.severity = error
+
+# CA2216: Disposable types should declare finalizer
+dotnet_diagnostic.CA2216.severity = error
+
+# CA2217: Do not mark enums with FlagsAttribute
+dotnet_diagnostic.CA2217.severity = error
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = error
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = error
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = error
+
+# CA2225: Operator overloads have named alternates
+dotnet_diagnostic.CA2225.severity = error
+
+# CA2226: Operators should have symmetrical overloads
+dotnet_diagnostic.CA2226.severity = error
+
+# CA2227: Collection properties should be read only
+dotnet_diagnostic.CA2227.severity = error
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = error
+
+# CA2234: Pass system uri objects instead of strings
+dotnet_diagnostic.CA2234.severity = error
+
+# CA2235: Mark all non-serializable fields
+dotnet_diagnostic.CA2235.severity = error
+
+# CA2237: Mark ISerializable types with serializable
+dotnet_diagnostic.CA2237.severity = error
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = error
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = error
+
+# CA2243: Attribute string literals should parse correctly
+dotnet_diagnostic.CA2243.severity = error
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = error
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = error
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = error
+
+# CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum
+dotnet_diagnostic.CA2247.severity = error
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = error
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = error
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = error
+
+# CA2251: Use 'string.Equals'
+dotnet_diagnostic.CA2251.severity = error
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = error
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = error
+
+# CA2255: The 'ModuleInitializer' attribute should not be used in libraries
+dotnet_diagnostic.CA2255.severity = error
+
+# CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface
+dotnet_diagnostic.CA2256.severity = error
+
+# CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'
+dotnet_diagnostic.CA2257.severity = error
+
+# CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported
+dotnet_diagnostic.CA2258.severity = error
+
+# CA2259: 'ThreadStatic' only affects static fields
+dotnet_diagnostic.CA2259.severity = error
+
+# CA2260: Use correct type parameter
+dotnet_diagnostic.CA2260.severity = error
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_minimum_warnaserror.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_minimum_warnaserror.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..9cc54ba1f4e2fd3dcb37b9758a56a9a38221df49
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_8_minimum_warnaserror.globalconfig
@@ -0,0 +1,87 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Usage' Rules from '8.0' release with 'Minimum' analysis mode escalated to 'error' severity
+# Description: 'Usage' Rules with enabled-by-default state from '8.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '8.0' are disabled. Enabled rules with 'warning' severity are escalated to 'error' severity to respect 'CodeAnalysisTreatWarningsAsErrors' MSBuild property.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = error
+
+# CA2200: Rethrow to preserve stack details
+dotnet_diagnostic.CA2200.severity = error
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = error
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = error
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = error
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = error
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = error
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = error
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = error
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = error
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = error
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = error
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = error
+
+# CA2247: Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum
+dotnet_diagnostic.CA2247.severity = error
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = error
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = error
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = error
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = error
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = error
+
+# CA2255: The 'ModuleInitializer' attribute should not be used in libraries
+dotnet_diagnostic.CA2255.severity = error
+
+# CA2256: All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface
+dotnet_diagnostic.CA2256.severity = error
+
+# CA2257: Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static'
+dotnet_diagnostic.CA2257.severity = error
+
+# CA2258: Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported
+dotnet_diagnostic.CA2258.severity = error
+
+# CA2259: 'ThreadStatic' only affects static fields
+dotnet_diagnostic.CA2259.severity = error
+
+# CA2260: Use correct type parameter
+dotnet_diagnostic.CA2260.severity = error
+
+# CA2261: Do not use ConfigureAwaitOptions.SuppressThrowing with Task
+dotnet_diagnostic.CA2261.severity = error
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_9_minimum.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_9_minimum.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..ddb0f6ad2727814f2272298cc241699baba1c8d5
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevelusage_9_minimum.globalconfig
@@ -0,0 +1,63 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# 'Usage' Rules from '9.0' release with 'Minimum' analysis mode
+# Description: 'Usage' Rules with enabled-by-default state from '9.0' release with 'Minimum' analysis mode. Rules that are first released in a version later than '9.0' are disabled.
+
+is_global = true
+
+global_level = -99
+
+
+# CA1816: Dispose methods should call SuppressFinalize
+dotnet_diagnostic.CA1816.severity = warning
+
+# CA2208: Instantiate argument exceptions correctly
+dotnet_diagnostic.CA2208.severity = warning
+
+# CA2211: Non-constant fields should not be visible
+dotnet_diagnostic.CA2211.severity = warning
+
+# CA2218: Override GetHashCode on overriding Equals
+dotnet_diagnostic.CA2218.severity = warning
+
+# CA2219: Do not raise exceptions in finally clauses
+dotnet_diagnostic.CA2219.severity = warning
+
+# CA2224: Override Equals on overloading operator equals
+dotnet_diagnostic.CA2224.severity = warning
+
+# CA2231: Overload operator equals on overriding value type Equals
+dotnet_diagnostic.CA2231.severity = warning
+
+# CA2241: Provide correct arguments to formatting methods
+dotnet_diagnostic.CA2241.severity = warning
+
+# CA2242: Test for NaN correctly
+dotnet_diagnostic.CA2242.severity = warning
+
+# CA2244: Do not duplicate indexed element initializations
+dotnet_diagnostic.CA2244.severity = warning
+
+# CA2245: Do not assign a property to itself
+dotnet_diagnostic.CA2245.severity = warning
+
+# CA2246: Assigning symbol and its member in the same statement
+dotnet_diagnostic.CA2246.severity = warning
+
+# CA2248: Provide correct 'enum' argument to 'Enum.HasFlag'
+dotnet_diagnostic.CA2248.severity = warning
+
+# CA2249: Consider using 'string.Contains' instead of 'string.IndexOf'
+dotnet_diagnostic.CA2249.severity = warning
+
+# CA2250: Use 'ThrowIfCancellationRequested'
+dotnet_diagnostic.CA2250.severity = warning
+
+# CA2252: This API requires opting into preview features
+dotnet_diagnostic.CA2252.severity = warning
+
+# CA2253: Named placeholders should not be numeric values
+dotnet_diagnostic.CA2253.severity = warning
+
+# CA2254: Template should be a static expression
+dotnet_diagnostic.CA2254.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/cs/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/cs/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..850d7ea6159b1bbb2d139794d7808c764fb7a547
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/cs/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/de/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/de/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a45e11685cd729b8f16a0d638dc5d889280ec5de
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/de/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/es/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/es/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..38794c0e4d763af28892f2ce8585d557485322d4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/es/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/fr/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/fr/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9d15e02046aeb047ca1876b4ce2c45cccdd822ca
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/fr/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/it/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/it/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8a2971e08bf1a66945ca2b01b9c9e78b8913123a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/it/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/ja/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/ja/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..381c3d54f5e54833aca446207d3979a6d8773601
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/ja/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/ko/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/ko/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..be34e283b3685171db0d258cd03393e83971306e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/ko/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/pl/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/pl/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..87e65c925e46833d9a655f73f7f0c9d6350f66b1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/pl/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/pt-BR/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/pt-BR/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f5a164c4c3f353260afed32260e53cad5fb6bf4a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/pt-BR/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/ru/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/ru/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..af03a2ea637631ca1b24ae88b51dd64a67b5ffb4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/ru/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/tr/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/tr/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4d8b09a06f9daacf8881f8c68a2109cff8dc1e8f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/tr/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/zh-Hans/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/zh-Hans/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..23a0a4531706db8a9273ad2c6dfbc4afbde334ea
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/zh-Hans/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/zh-Hant/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/zh-Hant/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5a45ee81c928388c97623cf1683e3c4899c40399
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/analyzers/zh-Hant/Microsoft.CodeAnalysis.NetAnalyzers.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1875fa0ae69bfbfa420f3aac129512c36f58acfc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.dll
new file mode 100644
index 0000000000000000000000000000000000000000..75600730786447fbeca5bfa0dad5f4a1845e539a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CodeStyle.Fixes.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CodeStyle.Fixes.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1c8ce3adf7a2061900d65c6a5684f92e75faa25b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CodeStyle.Fixes.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CodeStyle.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CodeStyle.dll
new file mode 100644
index 0000000000000000000000000000000000000000..79e935034b25cd48b896cabac1f2ea180e288373
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/Microsoft.CodeAnalysis.CodeStyle.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2ec46805b66cc5e870e0121f7b44496a1766283ead88567efb273dfd154db180
+size 1762576
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/Microsoft.CodeAnalysis.CSharp.CodeStyle.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/Microsoft.CodeAnalysis.CSharp.CodeStyle.targets
new file mode 100644
index 0000000000000000000000000000000000000000..04151148e8b8656febbe5011c5a7fe5f063f3763
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/Microsoft.CodeAnalysis.CSharp.CodeStyle.targets
@@ -0,0 +1,62 @@
+
+
+
+
+
+ $(AnalysisLevel)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelStyle), '-(.)*', ''))
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelStyle), '$(AnalysisLevelPrefixStyle)-', ''))
+
+
+ $(AnalysisLevelSuffix)
+
+ $(AnalysisMode)
+
+
+ $(_NoneAnalysisLevel)
+ $(_LatestAnalysisLevel)
+ $(_PreviewAnalysisLevel)
+
+
+ $(AnalysisLevelPrefixStyle)
+ $(AnalysisLevelStyle)
+
+
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisCSharpCodeStyle>$(AnalysisLevelSuffixStyle)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisCSharpCodeStyle Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisCSharpCodeStyle)' == ''">$(AnalysisModeStyle)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisCSharpCodeStyle Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisCSharpCodeStyle)' == 'AllEnabledByDefault'">All
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisCSharpCodeStyle Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisCSharpCodeStyle)' == 'AllDisabledByDefault'">None
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisCSharpCodeStyle Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisCSharpCodeStyle)' == ''">Default
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisCSharpCodeStyle>AnalysisLevelStyle_$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisCSharpCodeStyle).globalconfig
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisCSharpCodeStyle>$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisCSharpCodeStyle.ToLowerInvariant())
+
+ <_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisCSharpCodeStyle Condition="'$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisCSharpCodeStyle)' == ''">$(MSBuildThisFileDirectory)config
+ <_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisCSharpCodeStyle Condition="'$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisCSharpCodeStyle)' != ''">$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisCSharpCodeStyle)\$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisCSharpCodeStyle)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_all.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_all.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..bce36e29e7a0f2aa83e4c3884e4f4e576e08c270
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_all.globalconfig
@@ -0,0 +1,320 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Style rules with 'All' analysis mode
+
+is_global = true
+
+global_level = -99
+
+
+# IDE0004: Remove Unnecessary Cast
+dotnet_diagnostic.IDE0004.severity = warning
+
+# IDE0005: Using directive is unnecessary.
+dotnet_diagnostic.IDE0005.severity = warning
+
+# IDE0007: Use implicit type
+dotnet_diagnostic.IDE0007.severity = warning
+
+# IDE0008: Use explicit type
+dotnet_diagnostic.IDE0008.severity = warning
+
+# IDE0010: Add missing cases
+dotnet_diagnostic.IDE0010.severity = warning
+
+# IDE0011: Add braces
+dotnet_diagnostic.IDE0011.severity = warning
+
+# IDE0016: Use 'throw' expression
+dotnet_diagnostic.IDE0016.severity = warning
+
+# IDE0017: Simplify object initialization
+dotnet_diagnostic.IDE0017.severity = warning
+
+# IDE0018: Inline variable declaration
+dotnet_diagnostic.IDE0018.severity = warning
+
+# IDE0019: Use pattern matching
+dotnet_diagnostic.IDE0019.severity = warning
+
+# IDE0020: Use pattern matching
+dotnet_diagnostic.IDE0020.severity = warning
+
+# IDE0021: Use expression body for constructor
+dotnet_diagnostic.IDE0021.severity = warning
+
+# IDE0022: Use expression body for method
+dotnet_diagnostic.IDE0022.severity = warning
+
+# IDE0023: Use expression body for conversion operator
+dotnet_diagnostic.IDE0023.severity = warning
+
+# IDE0024: Use expression body for operator
+dotnet_diagnostic.IDE0024.severity = warning
+
+# IDE0025: Use expression body for property
+dotnet_diagnostic.IDE0025.severity = warning
+
+# IDE0026: Use expression body for indexer
+dotnet_diagnostic.IDE0026.severity = warning
+
+# IDE0027: Use expression body for accessor
+dotnet_diagnostic.IDE0027.severity = warning
+
+# IDE0028: Simplify collection initialization
+dotnet_diagnostic.IDE0028.severity = warning
+
+# IDE0029: Use coalesce expression
+dotnet_diagnostic.IDE0029.severity = warning
+
+# IDE0030: Use coalesce expression
+dotnet_diagnostic.IDE0030.severity = warning
+
+# IDE0031: Use null propagation
+dotnet_diagnostic.IDE0031.severity = warning
+
+# IDE0032: Use auto property
+dotnet_diagnostic.IDE0032.severity = warning
+
+# IDE0033: Use explicitly provided tuple name
+dotnet_diagnostic.IDE0033.severity = warning
+
+# IDE0034: Simplify 'default' expression
+dotnet_diagnostic.IDE0034.severity = warning
+
+# IDE0036: Order modifiers
+dotnet_diagnostic.IDE0036.severity = warning
+
+# IDE0037: Use inferred member name
+dotnet_diagnostic.IDE0037.severity = warning
+
+# IDE0039: Use local function
+dotnet_diagnostic.IDE0039.severity = warning
+
+# IDE0040: Add accessibility modifiers
+dotnet_diagnostic.IDE0040.severity = warning
+
+# IDE0041: Use 'is null' check
+dotnet_diagnostic.IDE0041.severity = warning
+
+# IDE0042: Deconstruct variable declaration
+dotnet_diagnostic.IDE0042.severity = warning
+
+# IDE0043: Invalid format string
+dotnet_diagnostic.IDE0043.severity = warning
+
+# IDE0044: Add readonly modifier
+dotnet_diagnostic.IDE0044.severity = warning
+
+# IDE0045: Convert to conditional expression
+dotnet_diagnostic.IDE0045.severity = warning
+
+# IDE0046: Convert to conditional expression
+dotnet_diagnostic.IDE0046.severity = warning
+
+# IDE0047: Remove unnecessary parentheses
+dotnet_diagnostic.IDE0047.severity = warning
+
+# IDE0048: Add parentheses for clarity
+dotnet_diagnostic.IDE0048.severity = warning
+
+# IDE0051: Remove unused private members
+dotnet_diagnostic.IDE0051.severity = warning
+
+# IDE0052: Remove unread private members
+dotnet_diagnostic.IDE0052.severity = warning
+
+# IDE0053: Use block body for lambda expression
+dotnet_diagnostic.IDE0053.severity = warning
+
+# IDE0054: Use compound assignment
+dotnet_diagnostic.IDE0054.severity = warning
+
+# IDE0055: Fix formatting
+dotnet_diagnostic.IDE0055.severity = warning
+
+# IDE0056: Use index operator
+dotnet_diagnostic.IDE0056.severity = warning
+
+# IDE0057: Use range operator
+dotnet_diagnostic.IDE0057.severity = warning
+
+# IDE0058: Expression value is never used
+dotnet_diagnostic.IDE0058.severity = warning
+
+# IDE0059: Unnecessary assignment of a value
+dotnet_diagnostic.IDE0059.severity = warning
+
+# IDE0060: Remove unused parameter
+dotnet_diagnostic.IDE0060.severity = warning
+
+# IDE0061: Use expression body for local function
+dotnet_diagnostic.IDE0061.severity = warning
+
+# IDE0062: Make local function 'static'
+dotnet_diagnostic.IDE0062.severity = warning
+
+# IDE0063: Use simple 'using' statement
+dotnet_diagnostic.IDE0063.severity = warning
+
+# IDE0064: Make readonly fields writable
+dotnet_diagnostic.IDE0064.severity = warning
+
+# IDE0065: Misplaced using directive
+dotnet_diagnostic.IDE0065.severity = warning
+
+# IDE0066: Convert switch statement to expression
+dotnet_diagnostic.IDE0066.severity = warning
+
+# IDE0070: Use 'System.HashCode'
+dotnet_diagnostic.IDE0070.severity = warning
+
+# IDE0071: Simplify interpolation
+dotnet_diagnostic.IDE0071.severity = warning
+
+# IDE0072: Add missing cases
+dotnet_diagnostic.IDE0072.severity = warning
+
+# IDE0073: The file header is missing or not located at the top of the file
+dotnet_diagnostic.IDE0073.severity = warning
+
+# IDE0074: Use compound assignment
+dotnet_diagnostic.IDE0074.severity = warning
+
+# IDE0075: Simplify conditional expression
+dotnet_diagnostic.IDE0075.severity = warning
+
+# IDE0076: Invalid global 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0076.severity = warning
+
+# IDE0077: Avoid legacy format target in 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0077.severity = warning
+
+# IDE0078: Use pattern matching
+dotnet_diagnostic.IDE0078.severity = warning
+
+# IDE0080: Remove unnecessary suppression operator
+dotnet_diagnostic.IDE0080.severity = warning
+
+# IDE0082: 'typeof' can be converted to 'nameof'
+dotnet_diagnostic.IDE0082.severity = warning
+
+# IDE0083: Use pattern matching
+dotnet_diagnostic.IDE0083.severity = warning
+
+# IDE0090: Use 'new(...)'
+dotnet_diagnostic.IDE0090.severity = warning
+
+# IDE0100: Remove redundant equality
+dotnet_diagnostic.IDE0100.severity = warning
+
+# IDE0110: Remove unnecessary discard
+dotnet_diagnostic.IDE0110.severity = warning
+
+# IDE0120: Simplify LINQ expression
+dotnet_diagnostic.IDE0120.severity = warning
+
+# IDE0130: Namespace does not match folder structure
+dotnet_diagnostic.IDE0130.severity = warning
+
+# IDE0150: Prefer 'null' check over type check
+dotnet_diagnostic.IDE0150.severity = warning
+
+# IDE0160: Convert to block scoped namespace
+dotnet_diagnostic.IDE0160.severity = warning
+
+# IDE0161: Convert to file-scoped namespace
+dotnet_diagnostic.IDE0161.severity = warning
+
+# IDE0170: Property pattern can be simplified
+dotnet_diagnostic.IDE0170.severity = warning
+
+# IDE0180: Use tuple to swap values
+dotnet_diagnostic.IDE0180.severity = warning
+
+# IDE0200: Remove unnecessary lambda expression
+dotnet_diagnostic.IDE0200.severity = warning
+
+# IDE0210: Convert to top-level statements
+dotnet_diagnostic.IDE0210.severity = warning
+
+# IDE0211: Convert to 'Program.Main' style program
+dotnet_diagnostic.IDE0211.severity = warning
+
+# IDE0220: Add explicit cast
+dotnet_diagnostic.IDE0220.severity = warning
+
+# IDE0230: Use UTF-8 string literal
+dotnet_diagnostic.IDE0230.severity = warning
+
+# IDE0240: Remove redundant nullable directive
+dotnet_diagnostic.IDE0240.severity = warning
+
+# IDE0241: Remove unnecessary nullable directive
+dotnet_diagnostic.IDE0241.severity = warning
+
+# IDE0250: Make struct 'readonly'
+dotnet_diagnostic.IDE0250.severity = warning
+
+# IDE0251: Make member 'readonly'
+dotnet_diagnostic.IDE0251.severity = warning
+
+# IDE0260: Use pattern matching
+dotnet_diagnostic.IDE0260.severity = warning
+
+# IDE0270: Use coalesce expression
+dotnet_diagnostic.IDE0270.severity = warning
+
+# IDE0280: Use 'nameof'
+dotnet_diagnostic.IDE0280.severity = warning
+
+# IDE0290: Use primary constructor
+dotnet_diagnostic.IDE0290.severity = warning
+
+# IDE0300: Simplify collection initialization
+dotnet_diagnostic.IDE0300.severity = warning
+
+# IDE0301: Simplify collection initialization
+dotnet_diagnostic.IDE0301.severity = warning
+
+# IDE0302: Simplify collection initialization
+dotnet_diagnostic.IDE0302.severity = warning
+
+# IDE0303: Simplify collection initialization
+dotnet_diagnostic.IDE0303.severity = warning
+
+# IDE0304: Simplify collection initialization
+dotnet_diagnostic.IDE0304.severity = warning
+
+# IDE0305: Simplify collection initialization
+dotnet_diagnostic.IDE0305.severity = warning
+
+# IDE0320: Make anonymous function static
+dotnet_diagnostic.IDE0320.severity = warning
+
+# IDE1005: Delegate invocation can be simplified.
+dotnet_diagnostic.IDE1005.severity = warning
+
+# IDE1006: Naming Styles
+dotnet_diagnostic.IDE1006.severity = warning
+
+# IDE2000: Avoid multiple blank lines
+dotnet_diagnostic.IDE2000.severity = warning
+
+# IDE2001: Embedded statements must be on their own line
+dotnet_diagnostic.IDE2001.severity = warning
+
+# IDE2002: Consecutive braces must not have blank line between them
+dotnet_diagnostic.IDE2002.severity = warning
+
+# IDE2003: Blank line required between block and subsequent statement
+dotnet_diagnostic.IDE2003.severity = warning
+
+# IDE2004: Blank line not allowed after constructor initializer colon
+dotnet_diagnostic.IDE2004.severity = warning
+
+# IDE2005: Blank line not allowed after conditional expression token
+dotnet_diagnostic.IDE2005.severity = warning
+
+# IDE2006: Blank line not allowed after arrow expression clause token
+dotnet_diagnostic.IDE2006.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_default.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_default.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..4120762751005c5b2a944efb0b8cede80a964b4b
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_default.globalconfig
@@ -0,0 +1,8 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Style rules with 'Default' analysis mode
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_minimum.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_minimum.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..d76aa5bd3b38fb19fc2b9786ad6b60f266d825d1
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_minimum.globalconfig
@@ -0,0 +1,68 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Style rules with 'Minimum' analysis mode
+
+is_global = true
+
+global_level = -99
+
+
+# IDE0005: Using directive is unnecessary.
+dotnet_diagnostic.IDE0005.severity = warning
+
+# IDE0007: Use implicit type
+dotnet_diagnostic.IDE0007.severity = warning
+
+# IDE0008: Use explicit type
+dotnet_diagnostic.IDE0008.severity = warning
+
+# IDE0011: Add braces
+dotnet_diagnostic.IDE0011.severity = warning
+
+# IDE0036: Order modifiers
+dotnet_diagnostic.IDE0036.severity = warning
+
+# IDE0040: Add accessibility modifiers
+dotnet_diagnostic.IDE0040.severity = warning
+
+# IDE0043: Invalid format string
+dotnet_diagnostic.IDE0043.severity = warning
+
+# IDE0044: Add readonly modifier
+dotnet_diagnostic.IDE0044.severity = warning
+
+# IDE0051: Remove unused private members
+dotnet_diagnostic.IDE0051.severity = warning
+
+# IDE0052: Remove unread private members
+dotnet_diagnostic.IDE0052.severity = warning
+
+# IDE0055: Fix formatting
+dotnet_diagnostic.IDE0055.severity = warning
+
+# IDE0059: Unnecessary assignment of a value
+dotnet_diagnostic.IDE0059.severity = warning
+
+# IDE0060: Remove unused parameter
+dotnet_diagnostic.IDE0060.severity = warning
+
+# IDE0073: The file header is missing or not located at the top of the file
+dotnet_diagnostic.IDE0073.severity = warning
+
+# IDE0076: Invalid global 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0076.severity = warning
+
+# IDE0077: Avoid legacy format target in 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0077.severity = warning
+
+# IDE0080: Remove unnecessary suppression operator
+dotnet_diagnostic.IDE0080.severity = warning
+
+# IDE0160: Convert to block scoped namespace
+dotnet_diagnostic.IDE0160.severity = warning
+
+# IDE0161: Convert to file-scoped namespace
+dotnet_diagnostic.IDE0161.severity = warning
+
+# IDE0180: Use tuple to swap values
+dotnet_diagnostic.IDE0180.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_none.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_none.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..bcc2ccbeaf7a12ccc543d8ab69f1902594cfcc5a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_none.globalconfig
@@ -0,0 +1,335 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Style rules with 'None' analysis mode
+
+is_global = true
+
+global_level = -99
+
+
+# EnableGenerateDocumentationFile: Set MSBuild property 'GenerateDocumentationFile' to 'true'
+dotnet_diagnostic.EnableGenerateDocumentationFile.severity = none
+
+# IDE0004: Remove Unnecessary Cast
+dotnet_diagnostic.IDE0004.severity = none
+
+# IDE0005: Using directive is unnecessary.
+dotnet_diagnostic.IDE0005.severity = none
+
+# IDE0005_gen: Using directive is unnecessary.
+dotnet_diagnostic.IDE0005_gen.severity = none
+
+# IDE0007: Use implicit type
+dotnet_diagnostic.IDE0007.severity = none
+
+# IDE0008: Use explicit type
+dotnet_diagnostic.IDE0008.severity = none
+
+# IDE0009: Member access should be qualified.
+dotnet_diagnostic.IDE0009.severity = none
+
+# IDE0010: Add missing cases
+dotnet_diagnostic.IDE0010.severity = none
+
+# IDE0011: Add braces
+dotnet_diagnostic.IDE0011.severity = none
+
+# IDE0016: Use 'throw' expression
+dotnet_diagnostic.IDE0016.severity = none
+
+# IDE0017: Simplify object initialization
+dotnet_diagnostic.IDE0017.severity = none
+
+# IDE0018: Inline variable declaration
+dotnet_diagnostic.IDE0018.severity = none
+
+# IDE0019: Use pattern matching
+dotnet_diagnostic.IDE0019.severity = none
+
+# IDE0020: Use pattern matching
+dotnet_diagnostic.IDE0020.severity = none
+
+# IDE0021: Use expression body for constructor
+dotnet_diagnostic.IDE0021.severity = none
+
+# IDE0022: Use expression body for method
+dotnet_diagnostic.IDE0022.severity = none
+
+# IDE0023: Use expression body for conversion operator
+dotnet_diagnostic.IDE0023.severity = none
+
+# IDE0024: Use expression body for operator
+dotnet_diagnostic.IDE0024.severity = none
+
+# IDE0025: Use expression body for property
+dotnet_diagnostic.IDE0025.severity = none
+
+# IDE0026: Use expression body for indexer
+dotnet_diagnostic.IDE0026.severity = none
+
+# IDE0027: Use expression body for accessor
+dotnet_diagnostic.IDE0027.severity = none
+
+# IDE0028: Simplify collection initialization
+dotnet_diagnostic.IDE0028.severity = none
+
+# IDE0029: Use coalesce expression
+dotnet_diagnostic.IDE0029.severity = none
+
+# IDE0030: Use coalesce expression
+dotnet_diagnostic.IDE0030.severity = none
+
+# IDE0031: Use null propagation
+dotnet_diagnostic.IDE0031.severity = none
+
+# IDE0032: Use auto property
+dotnet_diagnostic.IDE0032.severity = none
+
+# IDE0033: Use explicitly provided tuple name
+dotnet_diagnostic.IDE0033.severity = none
+
+# IDE0034: Simplify 'default' expression
+dotnet_diagnostic.IDE0034.severity = none
+
+# IDE0035: Unreachable code detected
+dotnet_diagnostic.IDE0035.severity = none
+
+# IDE0036: Order modifiers
+dotnet_diagnostic.IDE0036.severity = none
+
+# IDE0037: Use inferred member name
+dotnet_diagnostic.IDE0037.severity = none
+
+# IDE0039: Use local function
+dotnet_diagnostic.IDE0039.severity = none
+
+# IDE0040: Add accessibility modifiers
+dotnet_diagnostic.IDE0040.severity = none
+
+# IDE0041: Use 'is null' check
+dotnet_diagnostic.IDE0041.severity = none
+
+# IDE0042: Deconstruct variable declaration
+dotnet_diagnostic.IDE0042.severity = none
+
+# IDE0043: Invalid format string
+dotnet_diagnostic.IDE0043.severity = none
+
+# IDE0044: Add readonly modifier
+dotnet_diagnostic.IDE0044.severity = none
+
+# IDE0045: Convert to conditional expression
+dotnet_diagnostic.IDE0045.severity = none
+
+# IDE0046: Convert to conditional expression
+dotnet_diagnostic.IDE0046.severity = none
+
+# IDE0047: Remove unnecessary parentheses
+dotnet_diagnostic.IDE0047.severity = none
+
+# IDE0048: Add parentheses for clarity
+dotnet_diagnostic.IDE0048.severity = none
+
+# IDE0051: Remove unused private members
+dotnet_diagnostic.IDE0051.severity = none
+
+# IDE0052: Remove unread private members
+dotnet_diagnostic.IDE0052.severity = none
+
+# IDE0053: Use block body for lambda expression
+dotnet_diagnostic.IDE0053.severity = none
+
+# IDE0054: Use compound assignment
+dotnet_diagnostic.IDE0054.severity = none
+
+# IDE0055: Fix formatting
+dotnet_diagnostic.IDE0055.severity = none
+
+# IDE0056: Use index operator
+dotnet_diagnostic.IDE0056.severity = none
+
+# IDE0057: Use range operator
+dotnet_diagnostic.IDE0057.severity = none
+
+# IDE0058: Expression value is never used
+dotnet_diagnostic.IDE0058.severity = none
+
+# IDE0059: Unnecessary assignment of a value
+dotnet_diagnostic.IDE0059.severity = none
+
+# IDE0060: Remove unused parameter
+dotnet_diagnostic.IDE0060.severity = none
+
+# IDE0061: Use expression body for local function
+dotnet_diagnostic.IDE0061.severity = none
+
+# IDE0062: Make local function 'static'
+dotnet_diagnostic.IDE0062.severity = none
+
+# IDE0063: Use simple 'using' statement
+dotnet_diagnostic.IDE0063.severity = none
+
+# IDE0064: Make readonly fields writable
+dotnet_diagnostic.IDE0064.severity = none
+
+# IDE0065: Misplaced using directive
+dotnet_diagnostic.IDE0065.severity = none
+
+# IDE0066: Convert switch statement to expression
+dotnet_diagnostic.IDE0066.severity = none
+
+# IDE0070: Use 'System.HashCode'
+dotnet_diagnostic.IDE0070.severity = none
+
+# IDE0071: Simplify interpolation
+dotnet_diagnostic.IDE0071.severity = none
+
+# IDE0072: Add missing cases
+dotnet_diagnostic.IDE0072.severity = none
+
+# IDE0073: The file header is missing or not located at the top of the file
+dotnet_diagnostic.IDE0073.severity = none
+
+# IDE0074: Use compound assignment
+dotnet_diagnostic.IDE0074.severity = none
+
+# IDE0075: Simplify conditional expression
+dotnet_diagnostic.IDE0075.severity = none
+
+# IDE0076: Invalid global 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0076.severity = none
+
+# IDE0077: Avoid legacy format target in 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0077.severity = none
+
+# IDE0078: Use pattern matching
+dotnet_diagnostic.IDE0078.severity = none
+
+# IDE0080: Remove unnecessary suppression operator
+dotnet_diagnostic.IDE0080.severity = none
+
+# IDE0082: 'typeof' can be converted to 'nameof'
+dotnet_diagnostic.IDE0082.severity = none
+
+# IDE0083: Use pattern matching
+dotnet_diagnostic.IDE0083.severity = none
+
+# IDE0090: Use 'new(...)'
+dotnet_diagnostic.IDE0090.severity = none
+
+# IDE0100: Remove redundant equality
+dotnet_diagnostic.IDE0100.severity = none
+
+# IDE0110: Remove unnecessary discard
+dotnet_diagnostic.IDE0110.severity = none
+
+# IDE0120: Simplify LINQ expression
+dotnet_diagnostic.IDE0120.severity = none
+
+# IDE0130: Namespace does not match folder structure
+dotnet_diagnostic.IDE0130.severity = none
+
+# IDE0150: Prefer 'null' check over type check
+dotnet_diagnostic.IDE0150.severity = none
+
+# IDE0160: Convert to block scoped namespace
+dotnet_diagnostic.IDE0160.severity = none
+
+# IDE0161: Convert to file-scoped namespace
+dotnet_diagnostic.IDE0161.severity = none
+
+# IDE0170: Property pattern can be simplified
+dotnet_diagnostic.IDE0170.severity = none
+
+# IDE0180: Use tuple to swap values
+dotnet_diagnostic.IDE0180.severity = none
+
+# IDE0200: Remove unnecessary lambda expression
+dotnet_diagnostic.IDE0200.severity = none
+
+# IDE0210: Convert to top-level statements
+dotnet_diagnostic.IDE0210.severity = none
+
+# IDE0211: Convert to 'Program.Main' style program
+dotnet_diagnostic.IDE0211.severity = none
+
+# IDE0220: Add explicit cast
+dotnet_diagnostic.IDE0220.severity = none
+
+# IDE0230: Use UTF-8 string literal
+dotnet_diagnostic.IDE0230.severity = none
+
+# IDE0240: Remove redundant nullable directive
+dotnet_diagnostic.IDE0240.severity = none
+
+# IDE0241: Remove unnecessary nullable directive
+dotnet_diagnostic.IDE0241.severity = none
+
+# IDE0250: Make struct 'readonly'
+dotnet_diagnostic.IDE0250.severity = none
+
+# IDE0251: Make member 'readonly'
+dotnet_diagnostic.IDE0251.severity = none
+
+# IDE0260: Use pattern matching
+dotnet_diagnostic.IDE0260.severity = none
+
+# IDE0270: Use coalesce expression
+dotnet_diagnostic.IDE0270.severity = none
+
+# IDE0280: Use 'nameof'
+dotnet_diagnostic.IDE0280.severity = none
+
+# IDE0290: Use primary constructor
+dotnet_diagnostic.IDE0290.severity = none
+
+# IDE0300: Simplify collection initialization
+dotnet_diagnostic.IDE0300.severity = none
+
+# IDE0301: Simplify collection initialization
+dotnet_diagnostic.IDE0301.severity = none
+
+# IDE0302: Simplify collection initialization
+dotnet_diagnostic.IDE0302.severity = none
+
+# IDE0303: Simplify collection initialization
+dotnet_diagnostic.IDE0303.severity = none
+
+# IDE0304: Simplify collection initialization
+dotnet_diagnostic.IDE0304.severity = none
+
+# IDE0305: Simplify collection initialization
+dotnet_diagnostic.IDE0305.severity = none
+
+# IDE0320: Make anonymous function static
+dotnet_diagnostic.IDE0320.severity = none
+
+# IDE1005: Delegate invocation can be simplified.
+dotnet_diagnostic.IDE1005.severity = none
+
+# IDE1006: Naming Styles
+dotnet_diagnostic.IDE1006.severity = none
+
+# IDE2000: Avoid multiple blank lines
+dotnet_diagnostic.IDE2000.severity = none
+
+# IDE2001: Embedded statements must be on their own line
+dotnet_diagnostic.IDE2001.severity = none
+
+# IDE2002: Consecutive braces must not have blank line between them
+dotnet_diagnostic.IDE2002.severity = none
+
+# IDE2003: Blank line required between block and subsequent statement
+dotnet_diagnostic.IDE2003.severity = none
+
+# IDE2004: Blank line not allowed after constructor initializer colon
+dotnet_diagnostic.IDE2004.severity = none
+
+# IDE2005: Blank line not allowed after conditional expression token
+dotnet_diagnostic.IDE2005.severity = none
+
+# IDE2006: Blank line not allowed after arrow expression clause token
+dotnet_diagnostic.IDE2006.severity = none
+
+# RemoveUnnecessaryImportsFixable:
+dotnet_diagnostic.RemoveUnnecessaryImportsFixable.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_recommended.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_recommended.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..46e9a8b7c499ae519444681d05f1cb504dc4a245
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/build/config/analysislevelstyle_recommended.globalconfig
@@ -0,0 +1,254 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Style rules with 'Recommended' analysis mode
+
+is_global = true
+
+global_level = -99
+
+
+# IDE0005: Using directive is unnecessary.
+dotnet_diagnostic.IDE0005.severity = warning
+
+# IDE0007: Use implicit type
+dotnet_diagnostic.IDE0007.severity = warning
+
+# IDE0008: Use explicit type
+dotnet_diagnostic.IDE0008.severity = warning
+
+# IDE0011: Add braces
+dotnet_diagnostic.IDE0011.severity = warning
+
+# IDE0016: Use 'throw' expression
+dotnet_diagnostic.IDE0016.severity = warning
+
+# IDE0017: Simplify object initialization
+dotnet_diagnostic.IDE0017.severity = warning
+
+# IDE0018: Inline variable declaration
+dotnet_diagnostic.IDE0018.severity = warning
+
+# IDE0019: Use pattern matching
+dotnet_diagnostic.IDE0019.severity = warning
+
+# IDE0020: Use pattern matching
+dotnet_diagnostic.IDE0020.severity = warning
+
+# IDE0021: Use expression body for constructor
+dotnet_diagnostic.IDE0021.severity = warning
+
+# IDE0022: Use expression body for method
+dotnet_diagnostic.IDE0022.severity = warning
+
+# IDE0023: Use expression body for conversion operator
+dotnet_diagnostic.IDE0023.severity = warning
+
+# IDE0024: Use expression body for operator
+dotnet_diagnostic.IDE0024.severity = warning
+
+# IDE0025: Use expression body for property
+dotnet_diagnostic.IDE0025.severity = warning
+
+# IDE0026: Use expression body for indexer
+dotnet_diagnostic.IDE0026.severity = warning
+
+# IDE0027: Use expression body for accessor
+dotnet_diagnostic.IDE0027.severity = warning
+
+# IDE0028: Simplify collection initialization
+dotnet_diagnostic.IDE0028.severity = warning
+
+# IDE0029: Use coalesce expression
+dotnet_diagnostic.IDE0029.severity = warning
+
+# IDE0030: Use coalesce expression
+dotnet_diagnostic.IDE0030.severity = warning
+
+# IDE0031: Use null propagation
+dotnet_diagnostic.IDE0031.severity = warning
+
+# IDE0032: Use auto property
+dotnet_diagnostic.IDE0032.severity = warning
+
+# IDE0033: Use explicitly provided tuple name
+dotnet_diagnostic.IDE0033.severity = warning
+
+# IDE0034: Simplify 'default' expression
+dotnet_diagnostic.IDE0034.severity = warning
+
+# IDE0036: Order modifiers
+dotnet_diagnostic.IDE0036.severity = warning
+
+# IDE0039: Use local function
+dotnet_diagnostic.IDE0039.severity = warning
+
+# IDE0040: Add accessibility modifiers
+dotnet_diagnostic.IDE0040.severity = warning
+
+# IDE0042: Deconstruct variable declaration
+dotnet_diagnostic.IDE0042.severity = warning
+
+# IDE0043: Invalid format string
+dotnet_diagnostic.IDE0043.severity = warning
+
+# IDE0044: Add readonly modifier
+dotnet_diagnostic.IDE0044.severity = warning
+
+# IDE0045: Convert to conditional expression
+dotnet_diagnostic.IDE0045.severity = warning
+
+# IDE0046: Convert to conditional expression
+dotnet_diagnostic.IDE0046.severity = warning
+
+# IDE0047: Remove unnecessary parentheses
+dotnet_diagnostic.IDE0047.severity = warning
+
+# IDE0051: Remove unused private members
+dotnet_diagnostic.IDE0051.severity = warning
+
+# IDE0052: Remove unread private members
+dotnet_diagnostic.IDE0052.severity = warning
+
+# IDE0053: Use block body for lambda expression
+dotnet_diagnostic.IDE0053.severity = warning
+
+# IDE0054: Use compound assignment
+dotnet_diagnostic.IDE0054.severity = warning
+
+# IDE0055: Fix formatting
+dotnet_diagnostic.IDE0055.severity = warning
+
+# IDE0056: Use index operator
+dotnet_diagnostic.IDE0056.severity = warning
+
+# IDE0057: Use range operator
+dotnet_diagnostic.IDE0057.severity = warning
+
+# IDE0059: Unnecessary assignment of a value
+dotnet_diagnostic.IDE0059.severity = warning
+
+# IDE0060: Remove unused parameter
+dotnet_diagnostic.IDE0060.severity = warning
+
+# IDE0061: Use expression body for local function
+dotnet_diagnostic.IDE0061.severity = warning
+
+# IDE0062: Make local function 'static'
+dotnet_diagnostic.IDE0062.severity = warning
+
+# IDE0063: Use simple 'using' statement
+dotnet_diagnostic.IDE0063.severity = warning
+
+# IDE0065: Misplaced using directive
+dotnet_diagnostic.IDE0065.severity = warning
+
+# IDE0070: Use 'System.HashCode'
+dotnet_diagnostic.IDE0070.severity = warning
+
+# IDE0071: Simplify interpolation
+dotnet_diagnostic.IDE0071.severity = warning
+
+# IDE0073: The file header is missing or not located at the top of the file
+dotnet_diagnostic.IDE0073.severity = warning
+
+# IDE0074: Use compound assignment
+dotnet_diagnostic.IDE0074.severity = warning
+
+# IDE0075: Simplify conditional expression
+dotnet_diagnostic.IDE0075.severity = warning
+
+# IDE0076: Invalid global 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0076.severity = warning
+
+# IDE0077: Avoid legacy format target in 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0077.severity = warning
+
+# IDE0078: Use pattern matching
+dotnet_diagnostic.IDE0078.severity = warning
+
+# IDE0080: Remove unnecessary suppression operator
+dotnet_diagnostic.IDE0080.severity = warning
+
+# IDE0082: 'typeof' can be converted to 'nameof'
+dotnet_diagnostic.IDE0082.severity = warning
+
+# IDE0083: Use pattern matching
+dotnet_diagnostic.IDE0083.severity = warning
+
+# IDE0090: Use 'new(...)'
+dotnet_diagnostic.IDE0090.severity = warning
+
+# IDE0100: Remove redundant equality
+dotnet_diagnostic.IDE0100.severity = warning
+
+# IDE0110: Remove unnecessary discard
+dotnet_diagnostic.IDE0110.severity = warning
+
+# IDE0130: Namespace does not match folder structure
+dotnet_diagnostic.IDE0130.severity = warning
+
+# IDE0160: Convert to block scoped namespace
+dotnet_diagnostic.IDE0160.severity = warning
+
+# IDE0161: Convert to file-scoped namespace
+dotnet_diagnostic.IDE0161.severity = warning
+
+# IDE0170: Property pattern can be simplified
+dotnet_diagnostic.IDE0170.severity = warning
+
+# IDE0180: Use tuple to swap values
+dotnet_diagnostic.IDE0180.severity = warning
+
+# IDE0200: Remove unnecessary lambda expression
+dotnet_diagnostic.IDE0200.severity = warning
+
+# IDE0240: Remove redundant nullable directive
+dotnet_diagnostic.IDE0240.severity = warning
+
+# IDE0241: Remove unnecessary nullable directive
+dotnet_diagnostic.IDE0241.severity = warning
+
+# IDE0250: Make struct 'readonly'
+dotnet_diagnostic.IDE0250.severity = warning
+
+# IDE0251: Make member 'readonly'
+dotnet_diagnostic.IDE0251.severity = warning
+
+# IDE0260: Use pattern matching
+dotnet_diagnostic.IDE0260.severity = warning
+
+# IDE0270: Use coalesce expression
+dotnet_diagnostic.IDE0270.severity = warning
+
+# IDE0280: Use 'nameof'
+dotnet_diagnostic.IDE0280.severity = warning
+
+# IDE0290: Use primary constructor
+dotnet_diagnostic.IDE0290.severity = warning
+
+# IDE0300: Simplify collection initialization
+dotnet_diagnostic.IDE0300.severity = warning
+
+# IDE0301: Simplify collection initialization
+dotnet_diagnostic.IDE0301.severity = warning
+
+# IDE0302: Simplify collection initialization
+dotnet_diagnostic.IDE0302.severity = warning
+
+# IDE0303: Simplify collection initialization
+dotnet_diagnostic.IDE0303.severity = warning
+
+# IDE0304: Simplify collection initialization
+dotnet_diagnostic.IDE0304.severity = warning
+
+# IDE0305: Simplify collection initialization
+dotnet_diagnostic.IDE0305.severity = warning
+
+# IDE0320: Make anonymous function static
+dotnet_diagnostic.IDE0320.severity = warning
+
+# IDE1005: Delegate invocation can be simplified.
+dotnet_diagnostic.IDE1005.severity = warning
+
+# IDE1006: Naming Styles
+dotnet_diagnostic.IDE1006.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1867e6516a00818f3f6e7ac421242ec122e00700
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2efaae3810d47cd7326f904e8ce0e1de082f565a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..562e2f43b49d7a4535a8c4f60c2115826c14d102
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..45860397596230c43b19dd46864164ee92ccd0d9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/cs/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..21f853ba2f83002fc872ec49793ffa8df145a268
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..025eb24041e2b84dd684fceb4703fe2a117131b0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e94d52d9bc3caa05cb9bbab11f5d6199f7e46878
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8e4c81d332491232b4765f626a6a2363b44c4183
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/de/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c8bcc43d673ed8ce65c7ac7e75067c7eb1567679
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b6598dcf1d2a6215325d05e0b602e15d3b7bc365
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3b790e500fe422eb3fbaedb1898c279f3c14fbb1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..61de601818124f01b532ba065c73e82673a53553
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/es/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1b3be127fb32e94bfafb17902258eb0c66fa0414
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0604cc84085a5f3a7c34ae1bdda4949f7c4d1d21
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dbb24dc6df120f567c66fe36457fddbe884d2825
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cf730a19b5b79b31be782cc6b25aec302f0a9ba1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/fr/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..093ae04db99e03083d6f53248527766f4ea399f7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b73e1ed2868e6f59d81855fe89edc3760d70525d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..14ad831b6cbe53a90d212c7467cdd7d65fd4f039
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f6555ecc1b1edf11c00b11604298be00ce4d270e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/it/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d4cf66a9507defe7322fea558de3dd99fed26dc7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..650427601bdd972fecc3be749ede19df24bdd42e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..42971399d32006f1d16de8bc77aae541fea8d890
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e181deecec5c001854e1cccba4cee80602e20bd6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ja/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..801146a0c5f057216ace70422a82e1a42875362c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..401a76d7f434e81af9cb18d31eedfb0e3eba9c99
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..427d5e9aee27addef161022e75c78762be954d45
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..284471210bbcb2366e811dcc45686f725b00e61b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ko/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..274b0c7b2c62fcdf03e33563fdc1790a5f08f37b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3a1ab93afcf46eac8274be34bf30a1392f7b0cca
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe022af559619b2a0d8bdd408372a106e4a452
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4725523b4263b9c37fd72a0bcaa58673e6af148a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pl/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..afd2505c6c01dc9e77b117b847c90ad7892163b0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c5feb429898406a880b06926f08ec1fd53ee54bc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4a20ac8a5802b4e51d58a46f6b7cdd0bfb7a0d24
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..703f1d2010f421fe74c4ec21b7bacef33d2d6a67
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/pt-BR/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..93387cef4a32411347d043d0d2c87702f1146cda
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ad31eb598d75097ea40ec9f3e6a6a20ca4e7e6e6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..da6ce28083618359de8ab0f09dd6de980664940d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..84e97f83c008d026913f8cfb14c171d219c65b80
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/ru/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1e582b9ccd7fa79d731be024bb0b969a8028b3de
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..54c160a0b90242de8ff7f04fa013cce4bbb2b123
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8ec98fb0a0bac485263821bcc99abb1cca7650a0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5f31650929662f13ff0fd78d20fea856a0af670b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/tr/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..60cd3871552a07ca89b2385460e32c496c3ce7a7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7d0eb57199de40bfa2a5a106a48b15ac93c9d8b2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ef6a305fa4bc5520a5498845a6f1ee2fb86e5555
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7e8ca2f038923ec955f3360d1816740e09698b46
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..97297675c462497e6799248c2c9a5b87906ea828
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..524c0d4ec4cf1828e9be711c5dc47251016568d9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CSharp.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e5ba91bbaf4b623729e46cac263556fd32e5fe68
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f5295510cbcdffdc15a2f26dcbf34aa2bb36477d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/cs/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.CodeStyle.Fixes.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.CodeStyle.Fixes.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1c8ce3adf7a2061900d65c6a5684f92e75faa25b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.CodeStyle.Fixes.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.CodeStyle.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.CodeStyle.dll
new file mode 100644
index 0000000000000000000000000000000000000000..79e935034b25cd48b896cabac1f2ea180e288373
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.CodeStyle.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2ec46805b66cc5e870e0121f7b44496a1766283ead88567efb273dfd154db180
+size 1762576
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.dll
new file mode 100644
index 0000000000000000000000000000000000000000..483f9a5c657742c37d5e985e0c8d9877c33b78cc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a778a730dae4462c990cd4a1e3144b75796b9d5a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.targets
new file mode 100644
index 0000000000000000000000000000000000000000..ce2cd367595ab9085267a19e68d94587d8f1921f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.targets
@@ -0,0 +1,62 @@
+
+
+
+
+
+ $(AnalysisLevel)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelStyle), '-(.)*', ''))
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevelStyle), '$(AnalysisLevelPrefixStyle)-', ''))
+
+
+ $(AnalysisLevelSuffix)
+
+ $(AnalysisMode)
+
+
+ $(_NoneAnalysisLevel)
+ $(_LatestAnalysisLevel)
+ $(_PreviewAnalysisLevel)
+
+
+ $(AnalysisLevelPrefixStyle)
+ $(AnalysisLevelStyle)
+
+
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle>$(AnalysisLevelSuffixStyle)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle)' == ''">$(AnalysisModeStyle)
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle)' == 'AllEnabledByDefault'">All
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle)' == 'AllDisabledByDefault'">None
+ <_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle Condition="'$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle)' == ''">Default
+
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisVisualBasicCodeStyle>AnalysisLevelStyle_$(_GlobalAnalyzerConfigAnalysisMode_MicrosoftCodeAnalysisVisualBasicCodeStyle).globalconfig
+ <_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisVisualBasicCodeStyle>$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisVisualBasicCodeStyle.ToLowerInvariant())
+
+ <_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisVisualBasicCodeStyle Condition="'$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisVisualBasicCodeStyle)' == ''">$(MSBuildThisFileDirectory)config
+ <_GlobalAnalyzerConfigFile_MicrosoftCodeAnalysisVisualBasicCodeStyle Condition="'$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisVisualBasicCodeStyle)' != ''">$(_GlobalAnalyzerConfigDir_MicrosoftCodeAnalysisVisualBasicCodeStyle)\$(_GlobalAnalyzerConfigFileName_MicrosoftCodeAnalysisVisualBasicCodeStyle)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_all.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_all.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..94f57822630c1a5b56ff6a19a99c1fa551261bcd
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_all.globalconfig
@@ -0,0 +1,137 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Style rules with 'All' analysis mode
+
+is_global = true
+
+global_level = -99
+
+
+# IDE0004: Remove Unnecessary Cast
+dotnet_diagnostic.IDE0004.severity = warning
+
+# IDE0005: Imports statement is unnecessary.
+dotnet_diagnostic.IDE0005.severity = warning
+
+# IDE0010: Add missing cases
+dotnet_diagnostic.IDE0010.severity = warning
+
+# IDE0017: Simplify object initialization
+dotnet_diagnostic.IDE0017.severity = warning
+
+# IDE0028: Simplify collection initialization
+dotnet_diagnostic.IDE0028.severity = warning
+
+# IDE0029: Use coalesce expression
+dotnet_diagnostic.IDE0029.severity = warning
+
+# IDE0030: Use coalesce expression
+dotnet_diagnostic.IDE0030.severity = warning
+
+# IDE0031: Use null propagation
+dotnet_diagnostic.IDE0031.severity = warning
+
+# IDE0032: Use auto property
+dotnet_diagnostic.IDE0032.severity = warning
+
+# IDE0033: Use explicitly provided tuple name
+dotnet_diagnostic.IDE0033.severity = warning
+
+# IDE0036: Order modifiers
+dotnet_diagnostic.IDE0036.severity = warning
+
+# IDE0037: Use inferred member name
+dotnet_diagnostic.IDE0037.severity = warning
+
+# IDE0040: Add accessibility modifiers
+dotnet_diagnostic.IDE0040.severity = warning
+
+# IDE0041: Use 'Is Nothing' check
+dotnet_diagnostic.IDE0041.severity = warning
+
+# IDE0043: Invalid format string
+dotnet_diagnostic.IDE0043.severity = warning
+
+# IDE0044: Add readonly modifier
+dotnet_diagnostic.IDE0044.severity = warning
+
+# IDE0045: Convert to conditional expression
+dotnet_diagnostic.IDE0045.severity = warning
+
+# IDE0046: Convert to conditional expression
+dotnet_diagnostic.IDE0046.severity = warning
+
+# IDE0047: Remove unnecessary parentheses
+dotnet_diagnostic.IDE0047.severity = warning
+
+# IDE0048: Add parentheses for clarity
+dotnet_diagnostic.IDE0048.severity = warning
+
+# IDE0051: Remove unused private members
+dotnet_diagnostic.IDE0051.severity = warning
+
+# IDE0052: Remove unread private members
+dotnet_diagnostic.IDE0052.severity = warning
+
+# IDE0054: Use compound assignment
+dotnet_diagnostic.IDE0054.severity = warning
+
+# IDE0055: Fix formatting
+dotnet_diagnostic.IDE0055.severity = warning
+
+# IDE0058: Expression value is never used
+dotnet_diagnostic.IDE0058.severity = warning
+
+# IDE0059: Unnecessary assignment of a value
+dotnet_diagnostic.IDE0059.severity = warning
+
+# IDE0060: Remove unused parameter
+dotnet_diagnostic.IDE0060.severity = warning
+
+# IDE0070: Use 'System.HashCode'
+dotnet_diagnostic.IDE0070.severity = warning
+
+# IDE0071: Simplify interpolation
+dotnet_diagnostic.IDE0071.severity = warning
+
+# IDE0073: The file header is missing or not located at the top of the file
+dotnet_diagnostic.IDE0073.severity = warning
+
+# IDE0075: Simplify conditional expression
+dotnet_diagnostic.IDE0075.severity = warning
+
+# IDE0076: Invalid global 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0076.severity = warning
+
+# IDE0077: Avoid legacy format target in 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0077.severity = warning
+
+# IDE0081: 'ByVal' keyword is unnecessary and can be removed.
+dotnet_diagnostic.IDE0081.severity = warning
+
+# IDE0082: 'GetType' can be converted to 'NameOf'
+dotnet_diagnostic.IDE0082.severity = warning
+
+# IDE0084: Use 'IsNot' expression
+dotnet_diagnostic.IDE0084.severity = warning
+
+# IDE0100: Remove redundant equality
+dotnet_diagnostic.IDE0100.severity = warning
+
+# IDE0120: Simplify LINQ expression
+dotnet_diagnostic.IDE0120.severity = warning
+
+# IDE0140: Object creation can be simplified
+dotnet_diagnostic.IDE0140.severity = warning
+
+# IDE0270: Use coalesce expression
+dotnet_diagnostic.IDE0270.severity = warning
+
+# IDE1006: Naming Styles
+dotnet_diagnostic.IDE1006.severity = warning
+
+# IDE2000: Avoid multiple blank lines
+dotnet_diagnostic.IDE2000.severity = warning
+
+# IDE2003: Blank line required between block and subsequent statement
+dotnet_diagnostic.IDE2003.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_default.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_default.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..4120762751005c5b2a944efb0b8cede80a964b4b
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_default.globalconfig
@@ -0,0 +1,8 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Style rules with 'Default' analysis mode
+
+is_global = true
+
+global_level = -99
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_minimum.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_minimum.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..e957f6b3ffdd1e16511e6c3e360bce8e8d0ef998
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_minimum.globalconfig
@@ -0,0 +1,47 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Style rules with 'Minimum' analysis mode
+
+is_global = true
+
+global_level = -99
+
+
+# IDE0005: Imports statement is unnecessary.
+dotnet_diagnostic.IDE0005.severity = warning
+
+# IDE0036: Order modifiers
+dotnet_diagnostic.IDE0036.severity = warning
+
+# IDE0040: Add accessibility modifiers
+dotnet_diagnostic.IDE0040.severity = warning
+
+# IDE0043: Invalid format string
+dotnet_diagnostic.IDE0043.severity = warning
+
+# IDE0044: Add readonly modifier
+dotnet_diagnostic.IDE0044.severity = warning
+
+# IDE0051: Remove unused private members
+dotnet_diagnostic.IDE0051.severity = warning
+
+# IDE0052: Remove unread private members
+dotnet_diagnostic.IDE0052.severity = warning
+
+# IDE0055: Fix formatting
+dotnet_diagnostic.IDE0055.severity = warning
+
+# IDE0059: Unnecessary assignment of a value
+dotnet_diagnostic.IDE0059.severity = warning
+
+# IDE0060: Remove unused parameter
+dotnet_diagnostic.IDE0060.severity = warning
+
+# IDE0073: The file header is missing or not located at the top of the file
+dotnet_diagnostic.IDE0073.severity = warning
+
+# IDE0076: Invalid global 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0076.severity = warning
+
+# IDE0077: Avoid legacy format target in 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0077.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_none.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_none.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..2b104814cd53f39e8ee7acedc10f85dd2c1e4f4b
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_none.globalconfig
@@ -0,0 +1,149 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Style rules with 'None' analysis mode
+
+is_global = true
+
+global_level = -99
+
+
+# EnableGenerateDocumentationFile: Set MSBuild property 'GenerateDocumentationFile' to 'true'
+dotnet_diagnostic.EnableGenerateDocumentationFile.severity = none
+
+# IDE0004: Remove Unnecessary Cast
+dotnet_diagnostic.IDE0004.severity = none
+
+# IDE0005: Imports statement is unnecessary.
+dotnet_diagnostic.IDE0005.severity = none
+
+# IDE0005_gen: Imports statement is unnecessary.
+dotnet_diagnostic.IDE0005_gen.severity = none
+
+# IDE0009: Member access should be qualified.
+dotnet_diagnostic.IDE0009.severity = none
+
+# IDE0010: Add missing cases
+dotnet_diagnostic.IDE0010.severity = none
+
+# IDE0017: Simplify object initialization
+dotnet_diagnostic.IDE0017.severity = none
+
+# IDE0028: Simplify collection initialization
+dotnet_diagnostic.IDE0028.severity = none
+
+# IDE0029: Use coalesce expression
+dotnet_diagnostic.IDE0029.severity = none
+
+# IDE0030: Use coalesce expression
+dotnet_diagnostic.IDE0030.severity = none
+
+# IDE0031: Use null propagation
+dotnet_diagnostic.IDE0031.severity = none
+
+# IDE0032: Use auto property
+dotnet_diagnostic.IDE0032.severity = none
+
+# IDE0033: Use explicitly provided tuple name
+dotnet_diagnostic.IDE0033.severity = none
+
+# IDE0036: Order modifiers
+dotnet_diagnostic.IDE0036.severity = none
+
+# IDE0037: Use inferred member name
+dotnet_diagnostic.IDE0037.severity = none
+
+# IDE0040: Add accessibility modifiers
+dotnet_diagnostic.IDE0040.severity = none
+
+# IDE0041: Use 'Is Nothing' check
+dotnet_diagnostic.IDE0041.severity = none
+
+# IDE0043: Invalid format string
+dotnet_diagnostic.IDE0043.severity = none
+
+# IDE0044: Add readonly modifier
+dotnet_diagnostic.IDE0044.severity = none
+
+# IDE0045: Convert to conditional expression
+dotnet_diagnostic.IDE0045.severity = none
+
+# IDE0046: Convert to conditional expression
+dotnet_diagnostic.IDE0046.severity = none
+
+# IDE0047: Remove unnecessary parentheses
+dotnet_diagnostic.IDE0047.severity = none
+
+# IDE0048: Add parentheses for clarity
+dotnet_diagnostic.IDE0048.severity = none
+
+# IDE0051: Remove unused private members
+dotnet_diagnostic.IDE0051.severity = none
+
+# IDE0052: Remove unread private members
+dotnet_diagnostic.IDE0052.severity = none
+
+# IDE0054: Use compound assignment
+dotnet_diagnostic.IDE0054.severity = none
+
+# IDE0055: Fix formatting
+dotnet_diagnostic.IDE0055.severity = none
+
+# IDE0058: Expression value is never used
+dotnet_diagnostic.IDE0058.severity = none
+
+# IDE0059: Unnecessary assignment of a value
+dotnet_diagnostic.IDE0059.severity = none
+
+# IDE0060: Remove unused parameter
+dotnet_diagnostic.IDE0060.severity = none
+
+# IDE0070: Use 'System.HashCode'
+dotnet_diagnostic.IDE0070.severity = none
+
+# IDE0071: Simplify interpolation
+dotnet_diagnostic.IDE0071.severity = none
+
+# IDE0073: The file header is missing or not located at the top of the file
+dotnet_diagnostic.IDE0073.severity = none
+
+# IDE0075: Simplify conditional expression
+dotnet_diagnostic.IDE0075.severity = none
+
+# IDE0076: Invalid global 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0076.severity = none
+
+# IDE0077: Avoid legacy format target in 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0077.severity = none
+
+# IDE0081: 'ByVal' keyword is unnecessary and can be removed.
+dotnet_diagnostic.IDE0081.severity = none
+
+# IDE0082: 'GetType' can be converted to 'NameOf'
+dotnet_diagnostic.IDE0082.severity = none
+
+# IDE0084: Use 'IsNot' expression
+dotnet_diagnostic.IDE0084.severity = none
+
+# IDE0100: Remove redundant equality
+dotnet_diagnostic.IDE0100.severity = none
+
+# IDE0120: Simplify LINQ expression
+dotnet_diagnostic.IDE0120.severity = none
+
+# IDE0140: Object creation can be simplified
+dotnet_diagnostic.IDE0140.severity = none
+
+# IDE0270: Use coalesce expression
+dotnet_diagnostic.IDE0270.severity = none
+
+# IDE1006: Naming Styles
+dotnet_diagnostic.IDE1006.severity = none
+
+# IDE2000: Avoid multiple blank lines
+dotnet_diagnostic.IDE2000.severity = none
+
+# IDE2003: Blank line required between block and subsequent statement
+dotnet_diagnostic.IDE2003.severity = none
+
+# RemoveUnnecessaryImportsFixable:
+dotnet_diagnostic.RemoveUnnecessaryImportsFixable.severity = none
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_recommended.globalconfig b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_recommended.globalconfig
new file mode 100644
index 0000000000000000000000000000000000000000..27cd41bbc985e97abbfba7a19b381d0a46a1b86e
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/build/config/analysislevelstyle_recommended.globalconfig
@@ -0,0 +1,110 @@
+# NOTE: Requires **VS2019 16.7** or later
+
+# Style rules with 'Recommended' analysis mode
+
+is_global = true
+
+global_level = -99
+
+
+# IDE0005: Imports statement is unnecessary.
+dotnet_diagnostic.IDE0005.severity = warning
+
+# IDE0017: Simplify object initialization
+dotnet_diagnostic.IDE0017.severity = warning
+
+# IDE0028: Simplify collection initialization
+dotnet_diagnostic.IDE0028.severity = warning
+
+# IDE0029: Use coalesce expression
+dotnet_diagnostic.IDE0029.severity = warning
+
+# IDE0030: Use coalesce expression
+dotnet_diagnostic.IDE0030.severity = warning
+
+# IDE0031: Use null propagation
+dotnet_diagnostic.IDE0031.severity = warning
+
+# IDE0032: Use auto property
+dotnet_diagnostic.IDE0032.severity = warning
+
+# IDE0033: Use explicitly provided tuple name
+dotnet_diagnostic.IDE0033.severity = warning
+
+# IDE0036: Order modifiers
+dotnet_diagnostic.IDE0036.severity = warning
+
+# IDE0040: Add accessibility modifiers
+dotnet_diagnostic.IDE0040.severity = warning
+
+# IDE0043: Invalid format string
+dotnet_diagnostic.IDE0043.severity = warning
+
+# IDE0044: Add readonly modifier
+dotnet_diagnostic.IDE0044.severity = warning
+
+# IDE0045: Convert to conditional expression
+dotnet_diagnostic.IDE0045.severity = warning
+
+# IDE0046: Convert to conditional expression
+dotnet_diagnostic.IDE0046.severity = warning
+
+# IDE0047: Remove unnecessary parentheses
+dotnet_diagnostic.IDE0047.severity = warning
+
+# IDE0051: Remove unused private members
+dotnet_diagnostic.IDE0051.severity = warning
+
+# IDE0052: Remove unread private members
+dotnet_diagnostic.IDE0052.severity = warning
+
+# IDE0054: Use compound assignment
+dotnet_diagnostic.IDE0054.severity = warning
+
+# IDE0055: Fix formatting
+dotnet_diagnostic.IDE0055.severity = warning
+
+# IDE0059: Unnecessary assignment of a value
+dotnet_diagnostic.IDE0059.severity = warning
+
+# IDE0060: Remove unused parameter
+dotnet_diagnostic.IDE0060.severity = warning
+
+# IDE0070: Use 'System.HashCode'
+dotnet_diagnostic.IDE0070.severity = warning
+
+# IDE0071: Simplify interpolation
+dotnet_diagnostic.IDE0071.severity = warning
+
+# IDE0073: The file header is missing or not located at the top of the file
+dotnet_diagnostic.IDE0073.severity = warning
+
+# IDE0075: Simplify conditional expression
+dotnet_diagnostic.IDE0075.severity = warning
+
+# IDE0076: Invalid global 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0076.severity = warning
+
+# IDE0077: Avoid legacy format target in 'SuppressMessageAttribute'
+dotnet_diagnostic.IDE0077.severity = warning
+
+# IDE0081: 'ByVal' keyword is unnecessary and can be removed.
+dotnet_diagnostic.IDE0081.severity = warning
+
+# IDE0082: 'GetType' can be converted to 'NameOf'
+dotnet_diagnostic.IDE0082.severity = warning
+
+# IDE0084: Use 'IsNot' expression
+dotnet_diagnostic.IDE0084.severity = warning
+
+# IDE0100: Remove redundant equality
+dotnet_diagnostic.IDE0100.severity = warning
+
+# IDE0140: Object creation can be simplified
+dotnet_diagnostic.IDE0140.severity = warning
+
+# IDE0270: Use coalesce expression
+dotnet_diagnostic.IDE0270.severity = warning
+
+# IDE1006: Naming Styles
+dotnet_diagnostic.IDE1006.severity = warning
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..562e2f43b49d7a4535a8c4f60c2115826c14d102
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..45860397596230c43b19dd46864164ee92ccd0d9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d81df7672311cdd37274b24c5bab6ed5f9557a7c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d5ca03ebc8e5101a44fecaee3970a653a9aba8f7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/cs/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e94d52d9bc3caa05cb9bbab11f5d6199f7e46878
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8e4c81d332491232b4765f626a6a2363b44c4183
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bebc4ef1a483f74a426ffad0c0059c7edd89f881
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d5e9e478865cae2394689d334e9a1bb89106aa16
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/de/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3b790e500fe422eb3fbaedb1898c279f3c14fbb1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..61de601818124f01b532ba065c73e82673a53553
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d1a472f1313200e91d6b0b07020110ccc4832a59
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0c2d65099c4dfd226cc8f07d605048af55d104ef
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/es/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dbb24dc6df120f567c66fe36457fddbe884d2825
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cf730a19b5b79b31be782cc6b25aec302f0a9ba1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a7cf66eb82e1e54bbce3b6a3ff04409874d63c26
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c313b7f5e86b4b2ae770e2ce24008f6f060d820d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/fr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..14ad831b6cbe53a90d212c7467cdd7d65fd4f039
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f6555ecc1b1edf11c00b11604298be00ce4d270e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..32ef3d2ba68325b9173fef0c1417914ff068d39f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..673442540f186f7b4b78163f5003f98fe6d9bd1e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/it/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..42971399d32006f1d16de8bc77aae541fea8d890
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e181deecec5c001854e1cccba4cee80602e20bd6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3465f19baac8a90833ae9bd83f10f4f9c24a436e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cdd450f6252c2ee9dca1f35e4068a1ef255e3ab3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ja/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..427d5e9aee27addef161022e75c78762be954d45
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..284471210bbcb2366e811dcc45686f725b00e61b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5fbe98cba35d711847595696528f41c336d008c9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..006dbfad7cab4710f7612731da03df402b60cb47
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ko/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6fbe022af559619b2a0d8bdd408372a106e4a452
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4725523b4263b9c37fd72a0bcaa58673e6af148a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0f59808db9cff1ac8034b5a9f583fc7429ed399a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b1a4c45e439e0acf6831504601f673b5db602923
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pl/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4a20ac8a5802b4e51d58a46f6b7cdd0bfb7a0d24
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..703f1d2010f421fe74c4ec21b7bacef33d2d6a67
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..36aad72ede9de12135966b0cde31d8945e998ba1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ffccc576f7905c4095a177fa07d7eb98d4b475b1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/pt-BR/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..da6ce28083618359de8ab0f09dd6de980664940d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..84e97f83c008d026913f8cfb14c171d219c65b80
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..91c31729fe6ed8c033fa2858d14b10eca8d03347
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2c1a32e68db3afbacfc5be092d1282460b2d56cd
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/ru/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8ec98fb0a0bac485263821bcc99abb1cca7650a0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5f31650929662f13ff0fd78d20fea856a0af670b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..07a008369d3547ceda7ca150b3e717f6a1e78fb0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6d80d5bd98bf6732982318c8ccf2b62851e49b02
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/tr/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ef6a305fa4bc5520a5498845a6f1ee2fb86e5555
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7e8ca2f038923ec955f3360d1816740e09698b46
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..971b8b4a56a94c5ea3dbd919a3acd26be9815711
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9e204824f1f65d5157c84e8e57354bcc3a44d61c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e5ba91bbaf4b623729e46cac263556fd32e5fe68
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f5295510cbcdffdc15a2f26dcbf34aa2bb36477d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3c858d3ccaa90a6b0e871b699c85a592a2d45a6e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..07adc7914af11714b02d494673c7a196042302ed
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/codestyle/vb/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.CodeStyle.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/GenerateDeps/GenerateDeps.proj b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/GenerateDeps/GenerateDeps.proj
new file mode 100644
index 0000000000000000000000000000000000000000..1deee2a9d15ff3d591c91abaa105ddb30b9b2122
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/GenerateDeps/GenerateDeps.proj
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+ false
+ false
+
+
+
+
+
+
+
+ $([System.IO.Path]::GetDirectoryName($(ProjectAssetsFile)))
+ $(ToolFolder)\$(ToolName).deps.json
+ Exe
+ false
+
+
+ true
+ true
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ApiCompat.Common.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ApiCompat.Common.targets
new file mode 100644
index 0000000000000000000000000000000000000000..f37c7f235df3a5f25a88d69fcafe0eab007e250c
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ApiCompat.Common.targets
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+ <_UseRoslynToolsetPackage Condition="'$(ApiCompatUseRoslynToolsetPackagePath)' == 'true' and '@(PackageReference->AnyHaveMetadataValue('Identity', 'Microsoft.Net.Compilers.Toolset'))' == 'true'">true
+
+
+ $([System.IO.Path]::GetDirectoryName('$(CSharpCoreTargetsPath)'))
+
+
+ $(RoslynTargetsPath)
+
+
+ $([System.IO.Path]::Combine('$(RoslynAssembliesPath)', 'bincore'))
+
+
+
+
+ $(GenerateCompatibilitySuppressionFile)
+
+
+
+
+
+
+
+
+ <_apiCompatDefaultProjectSuppressionFile>$([MSBuild]::NormalizePath('$(MSBuildProjectDirectory)', 'CompatibilitySuppressions.xml'))
+
+ $(_apiCompatDefaultProjectSuppressionFile)
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ApiCompat.ValidatePackage.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ApiCompat.ValidatePackage.targets
new file mode 100644
index 0000000000000000000000000000000000000000..7be50ad73449451b67ed41fa26af1739edd82017
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ApiCompat.ValidatePackage.targets
@@ -0,0 +1,87 @@
+
+
+
+ $(IntermediateOutputPath)$(MSBuildThisFileName).semaphore
+
+ CollectApiCompatInputs;_GetReferencePathFromInnerProjects;$(RunPackageValidationDependsOn)
+
+
+
+
+ $(PackageId)
+ $([MSBuild]::NormalizePath('$(NuGetPackageRoot)', '$(PackageValidationBaselineName.ToLower())', '$(PackageValidationBaselineVersion)', '$(PackageValidationBaselineName.ToLower()).$(PackageValidationBaselineVersion).nupkg'))
+ <_packageValidationBaselinePath Condition="'$(DisablePackageBaselineValidation)' != 'true'">$(PackageValidationBaselinePath)
+
+
+
+ <_PackageTargetPath Include="@(NuGetPackOutput->WithMetadataValue('Extension', '.nupkg'))"
+ Condition="!$([System.String]::new('%(Identity)').EndsWith('.symbols.nupkg'))" />
+
+
+
+
+
+
+
+
+
+
+
+
+ $(TargetPlatformMoniker)
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ApiCompat.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ApiCompat.targets
new file mode 100644
index 0000000000000000000000000000000000000000..998c345193b1b9a44df3b786a9467d689b772fb4
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ApiCompat.targets
@@ -0,0 +1,29 @@
+
+
+
+ $(MSBuildThisFileDirectory)..\tools\net472\Microsoft.DotNet.ApiCompat.Task.dll
+ $(MSBuildThisFileDirectory)..\tools\net8.0\Microsoft.DotNet.ApiCompat.Task.dll
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ClickOnce.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ClickOnce.targets
new file mode 100644
index 0000000000000000000000000000000000000000..ba76a8906fb6a19912d9eca092f924a9e53a59ae
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ClickOnce.targets
@@ -0,0 +1,71 @@
+
+
+
+ app.publish
+ $(OutputPath)app.publish\
+ true
+ <_DeploymentSignClickOnceManifests Condition="'$(SignManifests)' == 'true'">true
+ ClickOncePublish
+
+
+
+
+ $(PublishDir)$(ProjectDepsFileName)
+
+ $(DeploymentComputeClickOnceManifestInfoDependsOn);
+ GenerateBuildDependencyFile;
+ GenerateBuildRuntimeConfigurationFiles;
+ ComputeFilesToPublish;
+ GetNetCoreRuntimeJsonFilesForClickOnce;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ClickOncePublishDependsOn);
+ _CopyFilesToPublishFolder;
+ _DeploymentGenerateBootstrapper;
+ ResolveKeySource;
+ _DeploymentSignClickOnceDeployment;
+ AfterPublish
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ComposeStore.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ComposeStore.targets
new file mode 100644
index 0000000000000000000000000000000000000000..93b422870310712fb27f2ded12225aa6d4f41861
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ComposeStore.targets
@@ -0,0 +1,453 @@
+
+
+
+
+
+
+
+
+
+
+
+ <_AllProjects Include="$(AdditionalProjects.Split('%3B'))"/>
+ <_AllProjects Include ="$(MSBuildProjectFullPath)"/>
+
+
+
+
+
+
+
+
+
+
+
+
+ %(PackageReference.Identity)
+ %(PackageReference.Version)
+
+ StorePackageName=%(PackageReference.Identity);
+ StorePackageVersion=%(PackageReference.Version);
+ ComposeWorkingDir=$(ComposeWorkingDir);
+ PublishDir=$(PublishDir);
+ StoreStagingDir=$(StoreStagingDir);
+ TargetFramework=$(TargetFramework);
+ RuntimeIdentifier=$(RuntimeIdentifier);
+ JitPath=$(JitPath);
+ Crossgen=$(Crossgen);
+ SkipUnchangedFiles=$(SkipUnchangedFiles);
+ PreserveStoreLayout=$(PreserveStoreLayout);
+ CreateProfilingSymbols=$(CreateProfilingSymbols);
+ StoreSymbolsStagingDir=$(StoreSymbolsStagingDir);
+ DisableImplicitFrameworkReferences=false;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_StoreArtifactContent>
+
+@(ListOfPackageReference)
+
+]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_OptimizedResolvedFileToPublish Include="$(StoreStagingDir)\**\*.*" />
+ <_OptimizedSymbolFileToPublish Include="$(StoreSymbolsStagingDir)\**\*.*" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+ <_TFM Condition="'$(_TFM)' == ''">$(TargetFramework)
+ true
+
+
+
+
+
+
+
+
+
+ $(UserProfileRuntimeStorePath)
+
+ <_ProfilingSymbolsDirectoryName>symbols
+ $([System.IO.Path]::Combine($(DefaultComposeDir), $(_ProfilingSymbolsDirectoryName)))
+ $([System.IO.Path]::Combine($(ComposeDir), $(_ProfilingSymbolsDirectoryName)))
+ $([System.IO.Path]::Combine($(ProfilingSymbolsDir), $(PlatformTarget)))
+ $(DefaultProfilingSymbolsDir)
+ $([System.IO.Path]::Combine($(ProfilingSymbolsDir), $(_TFM)))
+ $(ProfilingSymbolsDir)\
+
+ $(DefaultComposeDir)
+ $([System.IO.Path]::Combine($(ComposeDir), $(PlatformTarget)))
+ $([System.IO.Path]::Combine($(ComposeDir), $(_TFM)))
+ $([System.IO.Path]::Combine($(ComposeDir),"artifact.xml"))
+ $([System.IO.Path]::GetFullPath($(ComposeDir)))
+ <_RandomFileName>$([System.IO.Path]::GetRandomFileName())
+ $([System.IO.Path]::GetTempPath())
+ $([System.IO.Path]::Combine($(TEMP), $(_RandomFileName)))
+ $([System.IO.Path]::GetFullPath($(ComposeWorkingDir)))
+ $([System.IO.Path]::Combine($(ComposeWorkingDir),"StagingDir"))
+ $([System.IO.Path]::Combine($(ComposeWorkingDir),"SymbolsStagingDir"))
+
+ $(PublishDir)\
+
+
+
+
+ false
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ $(StorePackageVersion.Replace('*','-'))
+ $([System.IO.Path]::Combine($(ComposeWorkingDir),"$(StorePackageName)_$(StorePackageVersionForFolderName)"))
+ <_PackageProjFile>$([System.IO.Path]::Combine($(StoreWorkerWorkingDir), "Restore.csproj"))
+ $(StoreWorkerWorkingDir)\
+ $(BaseIntermediateOutputPath)\project.assets.json
+
+
+
+ $(MicrosoftNETPlatformLibrary)
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ManagedResolvedFileToPublishCandidates Include="@(ResolvedFileToPublish)"
+ Condition="'%(ResolvedFileToPublish.AssetType)'=='runtime'" />
+
+ <_UnOptimizedResolvedFileToPublish Include="@(ResolvedFileToPublish)"
+ Condition="'%(ResolvedFileToPublish.AssetType)'!='runtime'" />
+
+
+
+ true
+
+
+
+
+
+
+
+ <_UnOptimizedResolvedFileToPublish Include="@(ResolvedFileToPublish)" />
+
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ConflictResolution.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ConflictResolution.targets
new file mode 100644
index 0000000000000000000000000000000000000000..1c31ea0e225d753ce61883fac2c15b579d26cdaa
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ConflictResolution.targets
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RuntimeAssetsForConflictResolution
+ Include="@(RuntimeCopyLocalItems);
+ @(NativeCopyLocalItems);
+ @(ResourceCopyLocalItems);
+ @(RuntimeTargetsCopyLocalItems)"
+ Exclude="@(ReferenceCopyLocalPaths)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ResolvedCopyLocalPublishAssets Remove="@(_ResolvedCopyLocalPublishAssets)" />
+ <_ResolvedCopyLocalPublishAssets Include="@(_ResolvedCopyLocalPublishAssetsWithoutConflicts)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.CrossGen.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.CrossGen.targets
new file mode 100644
index 0000000000000000000000000000000000000000..34e0fd77618b52298648760bd703f42f41e259f2
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.CrossGen.targets
@@ -0,0 +1,529 @@
+
+
+
+
+
+ true
+ true
+ false
+ true
+ false
+ true
+ 1
+
+
+
+
+
+
+
+ <_CoreclrResolvedPath Include="@(CrossgenResolvedAssembliesToPublish)"
+ Condition="'%(CrossgenResolvedAssembliesToPublish.Filename)'=='coreclr'" />
+ <_CoreclrResolvedPath Include="@(CrossgenResolvedAssembliesToPublish)"
+ Condition="'%(CrossgenResolvedAssembliesToPublish.Filename)'=='libcoreclr'" />
+ <_JitResolvedPath Include="@(CrossgenResolvedAssembliesToPublish)"
+ Condition="'%(CrossgenResolvedAssembliesToPublish.Filename)'=='clrjit'" />
+ <_JitResolvedPath Include="@(CrossgenResolvedAssembliesToPublish)"
+ Condition="'%(CrossgenResolvedAssembliesToPublish.Filename)'=='libclrjit'" />
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CoreclrPath>@(_CoreclrResolvedPath)
+ @(_JitResolvedPath)
+ <_CoreclrDir>$([System.IO.Path]::GetDirectoryName($(_CoreclrPath)))
+ <_CoreclrPkgDir>$([System.IO.Path]::Combine($(_CoreclrDir),"..\..\..\"))
+ $([System.IO.Path]::Combine($(_CoreclrPkgDir),"tools"))
+
+ $([System.IO.Path]::Combine($(CrossgenDir),"crossgen"))
+ $([System.IO.Path]::Combine($(CrossgenDir),"crossgen.exe"))
+
+
+
+
+
+
+
+
+
+
+ $([System.IO.Path]::GetFullPath($([System.IO.Path]::Combine($(_NetCoreRefDir), $([System.IO.Path]::GetFileName($(Crossgen)))))))
+
+
+
+
+
+
+
+
+
+ CrossgenExe=$(Crossgen);
+ CrossgenJit=$(JitPath);
+ CrossgenInputAssembly=%(_ManagedResolvedFilesToOptimize.Fullpath);
+ CrossgenOutputAssembly=$(_RuntimeOptimizedDir)$(DirectorySeparatorChar)%(_ManagedResolvedFilesToOptimize.FileName)%(_ManagedResolvedFilesToOptimize.Extension);
+ CrossgenSubOutputPath=%(_ManagedResolvedFilesToOptimize.DestinationSubPath);
+ _RuntimeOptimizedDir=$(_RuntimeOptimizedDir);
+ PublishDir=$(StoreStagingDir);
+ CrossgenPlatformAssembliesPath=$(_RuntimeRefDir)$(PathSeparator)$(_NetCoreRefDir);
+ CreateProfilingSymbols=$(CreateProfilingSymbols);
+ StoreSymbolsStagingDir=$(StoreSymbolsStagingDir);
+ _RuntimeSymbolsDir=$(_RuntimeSymbolsDir)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([System.IO.Path]::GetDirectoryName($(_RuntimeSymbolsDir)\$(CrossgenSubOutputPath)))
+ $([System.IO.Path]::GetDirectoryName($(StoreSymbolsStagingDir)\$(CrossgenSubOutputPath)))
+ $(CrossgenExe) -nologo -readytorun -in "$(CrossgenInputAssembly)" -out "$(CrossgenOutputAssembly)" -jitpath "$(CrossgenJit)" -platform_assemblies_paths "$(CrossgenPlatformAssembliesPath)"
+ CreatePDB
+ CreatePerfMap
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProfilingSymbols Include="$(CrossgenProfilingSymbolsOutputDirectory)\*"
+ Condition="'$(CreateProfilingSymbols)' == 'true'" />
+
+
+
+
+
+
+
+
+
+ $([System.IO.Path]::PathSeparator)
+ $([System.IO.Path]::DirectorySeparatorChar)
+
+
+
+
+
+
+
+
+ <_CrossProjFileDir>$([System.IO.Path]::Combine($(ComposeWorkingDir),"Optimize"))
+ <_NetCoreRefDir>$([System.IO.Path]::Combine($(_CrossProjFileDir), "netcoreapp"))
+
+
+
+ <_CrossProjAssetsFile>$([System.IO.Path]::Combine($(_CrossProjFileDir), project.assets.json))
+
+
+
+
+
+
+
+
+
+ <_RuntimeRefDir>$([System.IO.Path]::Combine($(StoreWorkerWorkingDir), "runtimeref"))
+ <_RuntimeOptimizedDir>$([System.IO.Path]::Combine($(StoreWorkerWorkingDir), "runtimopt"))
+ <_RuntimeSymbolsDir>$([System.IO.Path]::Combine($(StoreWorkerWorkingDir), "runtimesymbols"))
+
+
+
+ <_ManagedResolvedFilesToOptimize Include="@(_ManagedResolvedFileToPublishCandidates)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(MSBuildThisFileDirectory)..\tasks\net7.0\Microsoft.NET.Sdk.Crossgen.dll
+ $(MSBuildThisFileDirectory)..\tasks\net472\Microsoft.NET.Sdk.Crossgen.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ReadyToRunOutputPath>$(IntermediateOutputPath)R2R
+
+
+
+
+
+ <_ReadyToRunImplementationAssemblies Include="@(ResolvedFileToPublish->WithMetadataValue('PostprocessAssembly', 'true'))" />
+
+
+
+
+ <_ReadyToRunImplementationAssemblies Include="@(_ManagedRuntimePackAssembly)" ReferenceOnly="true" />
+
+
+
+
+
+
+
+ <_ReadyToRunImplementationAssemblies Remove="@(_ReadyToRunImplementationAssemblies)" />
+ <_ReadyToRunImplementationAssemblies Include="@(_ReadyToRunImplementationAssembliesWithoutConflicts)" />
+
+
+
+ <_ReadyToRunPgoFiles Include="@(PublishReadyToRunPgoFiles)" />
+ <_ReadyToRunPgoFiles Include="@(RuntimePackAsset)"
+ Condition="'%(RuntimePackAsset.AssetType)' == 'pgodata' and '%(RuntimePackAsset.Extension)' == '.mibc' and '$(PublishReadyToRunUseRuntimePackOptimizationData)' == 'true'" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ReadyToRunCompilerHasWarnings Condition="'$(_ReadyToRunWarningsDetected)' == 'true'">true
+
+
+
+ <_ReadyToRunCompilationFailures Condition="'$(_ReadyToRunCompilerExitCode)' != '' And $(_ReadyToRunCompilerExitCode) != 0"
+ Include="@(_ReadyToRunCompileList)" />
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ReadyToRunCompilerHasWarnings Condition="'$(_ReadyToRunWarningsDetected)' == 'true'">true
+
+
+
+ <_ReadyToRunCompilationFailures Condition="'$(_ReadyToRunCompilerExitCode)' != '' And $(_ReadyToRunCompilerExitCode) != 0"
+ Include="@(_ReadyToRunSymbolsCompileList)" />
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultArtifactsPath.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultArtifactsPath.props
new file mode 100644
index 0000000000000000000000000000000000000000..228e99dbdeaa93a89d02ec2442b6e9f16fb1c30f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultArtifactsPath.props
@@ -0,0 +1,43 @@
+
+
+
+
+
+ <_DefaultArtifactsPathPropsImported>true
+
+
+
+
+ true
+ true
+ <_ArtifactsPathLocationType>ExplicitlySpecified
+
+
+
+
+
+ $(_DirectoryBuildPropsBasePath)\artifacts
+ true
+ <_ArtifactsPathLocationType>DirectoryBuildPropsFolder
+
+
+
+
+ $(MSBuildProjectDirectory)\artifacts
+ <_ArtifactsPathLocationType>ProjectFolder
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultAssemblyInfo.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultAssemblyInfo.targets
new file mode 100644
index 0000000000000000000000000000000000000000..c47b1cc18b59d21615277626ffebc7eda8ffeadc
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultAssemblyInfo.targets
@@ -0,0 +1,27 @@
+
+
+
+
+ 1.0.0
+ $(VersionPrefix)-$(VersionSuffix)
+ $(VersionPrefix)
+
+
+
+ $(AssemblyName)
+ $(Authors)
+ $(AssemblyName)
+ $(AssemblyName)
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultOutputPaths.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultOutputPaths.targets
new file mode 100644
index 0000000000000000000000000000000000000000..a1d7580131aae661c26cdf6416b21d4986daba20
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultOutputPaths.targets
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+
+ true
+ false
+ true
+ <_PlatformToAppendToOutputPath Condition="'$(AppendPlatformToOutputPath)' == 'true'">$(PlatformName)\
+
+
+
+
+
+
+
+
+ $(MSBuildProjectName)
+
+ bin
+ publish
+ package
+
+
+
+ $(Configuration.ToLowerInvariant())
+
+
+ $(ArtifactsPivots)_$(TargetFramework.ToLowerInvariant())
+
+
+ $(ArtifactsPivots)_$(RuntimeIdentifier.ToLowerInvariant())
+
+
+
+
+ $(ArtifactsPath)\$(ArtifactsBinOutputName)\$(ArtifactsProjectName)\
+ $(ArtifactsPath)\obj\$(ArtifactsProjectName)\
+ $(ArtifactsPath)\$(ArtifactsPublishOutputName)\$(ArtifactsProjectName)\$(ArtifactsPivots)\
+
+
+
+
+ $(ArtifactsPath)\$(ArtifactsBinOutputName)\
+ $(ArtifactsPath)\obj\
+ $(ArtifactsPath)\$(ArtifactsPublishOutputName)\$(ArtifactsPivots)\
+
+
+
+ $(BaseOutputPath)$(ArtifactsPivots)\
+ $(BaseIntermediateOutputPath)$(ArtifactsPivots)\
+
+
+ $(ArtifactsPath)\$(ArtifactsPackageOutputName)\$(Configuration.ToLowerInvariant())\
+
+
+
+
+ bin\
+ $(BaseOutputPath)\
+ $(BaseOutputPath)$(_PlatformToAppendToOutputPath)$(Configuration)\
+ $(OutputPath)\
+
+
+
+
+ obj\
+ $(BaseIntermediateOutputPath)\
+ $(BaseIntermediateOutputPath)$(_PlatformToAppendToOutputPath)$(Configuration)\
+ $(IntermediateOutputPath)\
+
+
+
+
+ $(OutputPath)
+
+
+
+
+ $(DefaultItemExcludes);$(OutputPath)/**
+ $(DefaultItemExcludes);$(IntermediateOutputPath)/**
+
+
+
+ $(DefaultItemExcludes);$(ArtifactsPath)/**
+
+ $(DefaultItemExcludes);bin/**;obj/**
+
+
+
+
+ $(OutputPath)$(TargetFramework.ToLowerInvariant())\
+
+
+
+ $(IntermediateOutputPath)$(TargetFramework.ToLowerInvariant())\
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultPackageConflictOverrides.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultPackageConflictOverrides.targets
new file mode 100644
index 0000000000000000000000000000000000000000..0f5560419fa84430af5d06a7dcd354f24cd05e88
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DefaultPackageConflictOverrides.targets
@@ -0,0 +1,234 @@
+
+
+
+
+
+
+ Microsoft.CSharp|4.4.0;
+ Microsoft.Win32.Primitives|4.3.0;
+ Microsoft.Win32.Registry|4.4.0;
+ runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple|4.3.0;
+ runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl|4.3.0;
+ System.AppContext|4.3.0;
+ System.Buffers|4.4.0;
+ System.Collections|4.3.0;
+ System.Collections.Concurrent|4.3.0;
+ System.Collections.Immutable|1.4.0;
+ System.Collections.NonGeneric|4.3.0;
+ System.Collections.Specialized|4.3.0;
+ System.ComponentModel|4.3.0;
+ System.ComponentModel.EventBasedAsync|4.3.0;
+ System.ComponentModel.Primitives|4.3.0;
+ System.ComponentModel.TypeConverter|4.3.0;
+ System.Console|4.3.0;
+ System.Data.Common|4.3.0;
+ System.Diagnostics.Contracts|4.3.0;
+ System.Diagnostics.Debug|4.3.0;
+ System.Diagnostics.DiagnosticSource|4.4.0;
+ System.Diagnostics.FileVersionInfo|4.3.0;
+ System.Diagnostics.Process|4.3.0;
+ System.Diagnostics.StackTrace|4.3.0;
+ System.Diagnostics.TextWriterTraceListener|4.3.0;
+ System.Diagnostics.Tools|4.3.0;
+ System.Diagnostics.TraceSource|4.3.0;
+ System.Diagnostics.Tracing|4.3.0;
+ System.Dynamic.Runtime|4.3.0;
+ System.Globalization|4.3.0;
+ System.Globalization.Calendars|4.3.0;
+ System.Globalization.Extensions|4.3.0;
+ System.IO|4.3.0;
+ System.IO.Compression|4.3.0;
+ System.IO.Compression.ZipFile|4.3.0;
+ System.IO.FileSystem|4.3.0;
+ System.IO.FileSystem.AccessControl|4.4.0;
+ System.IO.FileSystem.DriveInfo|4.3.0;
+ System.IO.FileSystem.Primitives|4.3.0;
+ System.IO.FileSystem.Watcher|4.3.0;
+ System.IO.IsolatedStorage|4.3.0;
+ System.IO.MemoryMappedFiles|4.3.0;
+ System.IO.Pipes|4.3.0;
+ System.IO.UnmanagedMemoryStream|4.3.0;
+ System.Linq|4.3.0;
+ System.Linq.Expressions|4.3.0;
+ System.Linq.Queryable|4.3.0;
+ System.Net.Http|4.3.0;
+ System.Net.NameResolution|4.3.0;
+ System.Net.Primitives|4.3.0;
+ System.Net.Requests|4.3.0;
+ System.Net.Security|4.3.0;
+ System.Net.Sockets|4.3.0;
+ System.Net.WebHeaderCollection|4.3.0;
+ System.ObjectModel|4.3.0;
+ System.Private.DataContractSerialization|4.3.0;
+ System.Reflection|4.3.0;
+ System.Reflection.Emit|4.3.0;
+ System.Reflection.Emit.ILGeneration|4.3.0;
+ System.Reflection.Emit.Lightweight|4.3.0;
+ System.Reflection.Extensions|4.3.0;
+ System.Reflection.Metadata|1.5.0;
+ System.Reflection.Primitives|4.3.0;
+ System.Reflection.TypeExtensions|4.3.0;
+ System.Resources.ResourceManager|4.3.0;
+ System.Runtime|4.3.0;
+ System.Runtime.Extensions|4.3.0;
+ System.Runtime.Handles|4.3.0;
+ System.Runtime.InteropServices|4.3.0;
+ System.Runtime.InteropServices.RuntimeInformation|4.3.0;
+ System.Runtime.Loader|4.3.0;
+ System.Runtime.Numerics|4.3.0;
+ System.Runtime.Serialization.Formatters|4.3.0;
+ System.Runtime.Serialization.Json|4.3.0;
+ System.Runtime.Serialization.Primitives|4.3.0;
+ System.Security.AccessControl|4.4.0;
+ System.Security.Claims|4.3.0;
+ System.Security.Cryptography.Algorithms|4.3.0;
+ System.Security.Cryptography.Cng|4.4.0;
+ System.Security.Cryptography.Csp|4.3.0;
+ System.Security.Cryptography.Encoding|4.3.0;
+ System.Security.Cryptography.OpenSsl|4.4.0;
+ System.Security.Cryptography.Primitives|4.3.0;
+ System.Security.Cryptography.X509Certificates|4.3.0;
+ System.Security.Cryptography.Xml|4.4.0;
+ System.Security.Principal|4.3.0;
+ System.Security.Principal.Windows|4.4.0;
+ System.Text.Encoding|4.3.0;
+ System.Text.Encoding.Extensions|4.3.0;
+ System.Text.RegularExpressions|4.3.0;
+ System.Threading|4.3.0;
+ System.Threading.Overlapped|4.3.0;
+ System.Threading.Tasks|4.3.0;
+ System.Threading.Tasks.Extensions|4.3.0;
+ System.Threading.Tasks.Parallel|4.3.0;
+ System.Threading.Thread|4.3.0;
+ System.Threading.ThreadPool|4.3.0;
+ System.Threading.Timer|4.3.0;
+ System.ValueTuple|4.3.0;
+ System.Xml.ReaderWriter|4.3.0;
+ System.Xml.XDocument|4.3.0;
+ System.Xml.XmlDocument|4.3.0;
+ System.Xml.XmlSerializer|4.3.0;
+ System.Xml.XPath|4.3.0;
+ System.Xml.XPath.XDocument|4.3.0;
+
+
+
+
+ Microsoft.Win32.Primitives|4.3.0;
+ System.AppContext|4.3.0;
+ System.Collections|4.3.0;
+ System.Collections.Concurrent|4.3.0;
+ System.Collections.Immutable|1.4.0;
+ System.Collections.NonGeneric|4.3.0;
+ System.Collections.Specialized|4.3.0;
+ System.ComponentModel|4.3.0;
+ System.ComponentModel.EventBasedAsync|4.3.0;
+ System.ComponentModel.Primitives|4.3.0;
+ System.ComponentModel.TypeConverter|4.3.0;
+ System.Console|4.3.0;
+ System.Data.Common|4.3.0;
+ System.Diagnostics.Contracts|4.3.0;
+ System.Diagnostics.Debug|4.3.0;
+ System.Diagnostics.FileVersionInfo|4.3.0;
+ System.Diagnostics.Process|4.3.0;
+ System.Diagnostics.StackTrace|4.3.0;
+ System.Diagnostics.TextWriterTraceListener|4.3.0;
+ System.Diagnostics.Tools|4.3.0;
+ System.Diagnostics.TraceSource|4.3.0;
+ System.Diagnostics.Tracing|4.3.0;
+ System.Dynamic.Runtime|4.3.0;
+ System.Globalization|4.3.0;
+ System.Globalization.Calendars|4.3.0;
+ System.Globalization.Extensions|4.3.0;
+ System.IO|4.3.0;
+ System.IO.Compression|4.3.0;
+ System.IO.Compression.ZipFile|4.3.0;
+ System.IO.FileSystem|4.3.0;
+ System.IO.FileSystem.DriveInfo|4.3.0;
+ System.IO.FileSystem.Primitives|4.3.0;
+ System.IO.FileSystem.Watcher|4.3.0;
+ System.IO.IsolatedStorage|4.3.0;
+ System.IO.MemoryMappedFiles|4.3.0;
+ System.IO.Pipes|4.3.0;
+ System.IO.UnmanagedMemoryStream|4.3.0;
+ System.Linq|4.3.0;
+ System.Linq.Expressions|4.3.0;
+ System.Linq.Queryable|4.3.0;
+ System.Net.Http|4.3.0;
+ System.Net.NameResolution|4.3.0;
+ System.Net.Primitives|4.3.0;
+ System.Net.Requests|4.3.0;
+ System.Net.Security|4.3.0;
+ System.Net.Sockets|4.3.0;
+ System.Net.WebHeaderCollection|4.3.0;
+ System.ObjectModel|4.3.0;
+ System.Private.DataContractSerialization|4.3.0;
+ System.Reflection|4.3.0;
+ System.Reflection.Emit|4.3.0;
+ System.Reflection.Emit.ILGeneration|4.3.0;
+ System.Reflection.Emit.Lightweight|4.3.0;
+ System.Reflection.Extensions|4.3.0;
+ System.Reflection.Primitives|4.3.0;
+ System.Reflection.TypeExtensions|4.3.0;
+ System.Resources.ResourceManager|4.3.0;
+ System.Runtime|4.3.0;
+ System.Runtime.Extensions|4.3.0;
+ System.Runtime.Handles|4.3.0;
+ System.Runtime.InteropServices|4.3.0;
+ System.Runtime.InteropServices.RuntimeInformation|4.3.0;
+ System.Runtime.Loader|4.3.0;
+ System.Runtime.Numerics|4.3.0;
+ System.Runtime.Serialization.Formatters|4.3.0;
+ System.Runtime.Serialization.Json|4.3.0;
+ System.Runtime.Serialization.Primitives|4.3.0;
+ System.Security.AccessControl|4.4.0;
+ System.Security.Claims|4.3.0;
+ System.Security.Cryptography.Algorithms|4.3.0;
+ System.Security.Cryptography.Csp|4.3.0;
+ System.Security.Cryptography.Encoding|4.3.0;
+ System.Security.Cryptography.Primitives|4.3.0;
+ System.Security.Cryptography.X509Certificates|4.3.0;
+ System.Security.Cryptography.Xml|4.4.0;
+ System.Security.Principal|4.3.0;
+ System.Security.Principal.Windows|4.4.0;
+ System.Text.Encoding|4.3.0;
+ System.Text.Encoding.Extensions|4.3.0;
+ System.Text.RegularExpressions|4.3.0;
+ System.Threading|4.3.0;
+ System.Threading.Overlapped|4.3.0;
+ System.Threading.Tasks|4.3.0;
+ System.Threading.Tasks.Extensions|4.3.0;
+ System.Threading.Tasks.Parallel|4.3.0;
+ System.Threading.Thread|4.3.0;
+ System.Threading.ThreadPool|4.3.0;
+ System.Threading.Timer|4.3.0;
+ System.ValueTuple|4.3.0;
+ System.Xml.ReaderWriter|4.3.0;
+ System.Xml.XDocument|4.3.0;
+ System.Xml.XmlDocument|4.3.0;
+ System.Xml.XmlSerializer|4.3.0;
+ System.Xml.XPath|4.3.0;
+ System.Xml.XPath.XDocument|4.3.0;
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DesignerSupport.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DesignerSupport.targets
new file mode 100644
index 0000000000000000000000000000000000000000..dbe7e9581b3c57a48d0c95ff2c166cb90a0c9d35
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DesignerSupport.targets
@@ -0,0 +1,157 @@
+
+
+
+
+
+ $(CommonOutputGroupsDependsOn);
+
+
+
+
+
+ $(DesignerRuntimeImplementationProjectOutputGroupDependsOn);
+ _GenerateDesignerDepsFile;
+ _GenerateDesignerRuntimeConfigFile;
+ GetCopyToOutputDirectoryItems;
+ _GatherDesignerShadowCopyFiles;
+
+
+ <_DesignerDepsFileName>$(AssemblyName).designer.deps.json
+ <_DesignerRuntimeConfigFileName>$(AssemblyName).designer.runtimeconfig.json
+
+ <_DesignerDepsFilePath>$(IntermediateOutputPath)$(_DesignerDepsFileName)
+ <_DesignerRuntimeConfigFilePath>$(IntermediateOutputPath)$(_DesignerRuntimeConfigFileName)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_DesignerHostConfigurationOption
+ Include="Microsoft.NETCore.DotNetHostPolicy.SetAppPaths"
+ Value="true"
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_DesignerShadowCopy Include="@(ReferenceCopyLocalPaths)" />
+
+
+ <_DesignerShadowCopy
+ Remove="@(_ResolvedCopyLocalBuildAssets)"
+ Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'"
+ />
+
+
+ <_DesignerShadowCopy
+ Remove="@(RuntimePackAsset)"
+ Condition="'%(RuntimePackAsset.RuntimePackAlwaysCopyLocal)' != 'true'"
+ />
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DisableStandardFrameworkResolution.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DisableStandardFrameworkResolution.targets
new file mode 100644
index 0000000000000000000000000000000000000000..859296707e0f5584551fbed5db3df37f754190d2
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.DisableStandardFrameworkResolution.targets
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+ .NET Standard $(_TargetFrameworkVersionWithoutV)
+ .NET Core $(_TargetFrameworkVersionWithoutV)
+ .NET $(_TargetFrameworkVersionWithoutV)
+ <_TargetFrameworkDirectories />
+
+
+
+
+ true
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.EolTargetFrameworks.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.EolTargetFrameworks.targets
new file mode 100644
index 0000000000000000000000000000000000000000..5e5847a297e2b56e8abc884dbc11c2b699d7a62f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.EolTargetFrameworks.targets
@@ -0,0 +1,41 @@
+
+
+
+
+ true
+ true
+
+
+
+
+ <_EolNetCoreTargetFrameworkVersions Include="1.0;1.1;2.0;2.1;2.2;3.0;3.1;5.0" />
+
+
+ <_MinimumNonEolSupportedNetCoreTargetFramework>net6.0
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.GenerateAssemblyInfo.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.GenerateAssemblyInfo.targets
new file mode 100644
index 0000000000000000000000000000000000000000..ce1d73aba7a8e4bd76b475a6119fa324ed4a8917
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.GenerateAssemblyInfo.targets
@@ -0,0 +1,236 @@
+
+
+
+
+ $(IntermediateOutputPath)$(MSBuildProjectName).AssemblyInfo$(DefaultLanguageSourceExtension)
+ true
+
+
+
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ <_InformationalVersionContainsPlus>false
+ <_InformationalVersionContainsPlus Condition="$(InformationalVersion.Contains('+'))">true
+
+ $(InformationalVersion)+$(SourceRevisionId)
+ $(InformationalVersion).$(SourceRevisionId)
+
+
+
+
+
+
+ <_Parameter1>$(Company)
+
+
+ <_Parameter1>$(Configuration)
+
+
+ <_Parameter1>$(Copyright)
+
+
+ <_Parameter1>$(Description)
+
+
+ <_Parameter1>$(FileVersion)
+
+
+ <_Parameter1>$(InformationalVersion)
+
+
+ <_Parameter1>$(Product)
+
+
+ <_Parameter1>$(Trademark)
+
+
+ <_Parameter1>$(AssemblyTitle)
+
+
+ <_Parameter1>$(AssemblyVersion)
+
+
+ <_Parameter1>RepositoryUrl
+ <_Parameter2 Condition="'$(RepositoryUrl)' != ''">$(RepositoryUrl)
+ <_Parameter2 Condition="'$(RepositoryUrl)' == ''">$(PrivateRepositoryUrl)
+
+
+ <_Parameter1>$(NeutralLanguage)
+
+
+ %(InternalsVisibleTo.PublicKey)
+
+
+ <_Parameter1 Condition="'%(InternalsVisibleTo.Key)' != ''">%(InternalsVisibleTo.Identity), PublicKey=%(InternalsVisibleTo.Key)
+ <_Parameter1 Condition="'%(InternalsVisibleTo.Key)' == '' and '$(PublicKey)' != ''">%(InternalsVisibleTo.Identity), PublicKey=$(PublicKey)
+ <_Parameter1 Condition="'%(InternalsVisibleTo.Key)' == '' and '$(PublicKey)' == ''">%(InternalsVisibleTo.Identity)
+
+
+ <_Parameter1>%(AssemblyMetadata.Identity)
+ <_Parameter2>%(AssemblyMetadata.Value)
+
+
+
+
+
+
+
+ <_Parameter1>$(TargetPlatformIdentifier)$(TargetPlatformVersion)
+
+
+
+
+
+ <_Parameter1>$(TargetPlatformIdentifier)$(SupportedOSPlatformVersion)
+
+
+ <_Parameter1>$(TargetPlatformIdentifier)
+
+
+
+
+
+
+
+
+
+
+
+
+ $(IntermediateOutputPath)$(MSBuildProjectName).AssemblyInfoInputs.cache
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(AssemblyVersion)
+ $(Version)
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.GenerateGlobalUsings.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.GenerateGlobalUsings.targets
new file mode 100644
index 0000000000000000000000000000000000000000..5927cfcf3bcaf683db4e733bb98adb7e4ea09de0
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.GenerateGlobalUsings.targets
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ $(IntermediateOutputPath)$(MSBuildProjectName).GlobalUsings.g$(DefaultLanguageSourceExtension)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.GenerateSupportedRuntime.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.GenerateSupportedRuntime.targets
new file mode 100644
index 0000000000000000000000000000000000000000..4d43258dc5a3f715c9f27fb789dbc9f0e1d54892
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.GenerateSupportedRuntime.targets
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+ <_GenerateSupportedRuntimeIntermediateAppConfig>$(IntermediateOutputPath)$(TargetFileName).withSupportedRuntime.config
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.NuGetOfflineCache.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.NuGetOfflineCache.targets
new file mode 100644
index 0000000000000000000000000000000000000000..4cf4e1b02fa63ec4454d95e3330419b0803380c9
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.NuGetOfflineCache.targets
@@ -0,0 +1,30 @@
+
+
+
+
+ <_NugetFallbackFolder>$(MSBuildThisFileDirectory)..\..\..\..\NuGetFallbackFolder
+ <_IsNETCore1x Condition=" '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and '$(_TargetFrameworkVersionWithoutV)' < '2.0' ">true
+ <_WorkloadLibraryPacksFolder Condition="'$(_WorkloadLibraryPacksFolder)' == ''">$([MSBuild]::EnsureTrailingSlash('$(NetCoreRoot)'))library-packs
+
+
+
+ $(RestoreAdditionalProjectSources);$(_NugetFallbackFolder)
+ $(RestoreAdditionalProjectFallbackFoldersExcludes);$(_NugetFallbackFolder)
+
+ $(RestoreAdditionalProjectFallbackFolders);$(_NugetFallbackFolder)
+
+
+
+ $(RestoreAdditionalProjectSources);$(_WorkloadLibraryPacksFolder)
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ObsoleteReferences.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ObsoleteReferences.targets
new file mode 100644
index 0000000000000000000000000000000000000000..9a5ad09701c4f5e6e9a084dee87192119d3b3a3e
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.ObsoleteReferences.targets
@@ -0,0 +1,34 @@
+
+
+
+
+ $(MSBuildThisFileDirectory)..\..\..\Microsoft.NETCoreSdk.BundledCliTools.props
+
+
+
+
+
+ <_ReferenceToObsoleteDotNetCliTool Include="@(DotNetCliToolReference)" />
+
+ <_ReferenceToObsoleteDotNetCliTool Remove="@(DotNetCliToolReference)" />
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackProjectTool.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackProjectTool.props
new file mode 100644
index 0000000000000000000000000000000000000000..a7d6aa06d8c2bce5eebdf1eb12b9da6f29beb73d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackProjectTool.props
@@ -0,0 +1,17 @@
+
+
+
+
+ $(TargetsForTfmSpecificContentInPackage);_PackProjectToolValidation
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackProjectTool.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackProjectTool.targets
new file mode 100644
index 0000000000000000000000000000000000000000..1f9f451f5a084b9ec526aa94262e1326d8d291b4
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackProjectTool.targets
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackStubs.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackStubs.targets
new file mode 100644
index 0000000000000000000000000000000000000000..c4590bbe94c2584f455f754a4b3c92aa1f475121
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackStubs.targets
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackTool.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackTool.props
new file mode 100644
index 0000000000000000000000000000000000000000..e9b22515dd640106c5c9dd04160cbdbbe23611f9
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackTool.props
@@ -0,0 +1,17 @@
+
+
+
+
+ $(TargetsForTfmSpecificContentInPackage);PackTool
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackTool.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackTool.targets
new file mode 100644
index 0000000000000000000000000000000000000000..117bfbb24237aeec8032bf00839e4462a2ca01f5
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PackTool.targets
@@ -0,0 +1,219 @@
+
+
+
+
+
+
+
+
+
+
+
+ <_ToolsSettingsFilePath>$(BaseIntermediateOutputPath)DotnetToolSettings.xml
+ true
+ <_PackToolPublishDependency Condition=" ('$(GeneratePackageOnBuild)' != 'true' and '$(NoBuild)' != 'true') and $(IsPublishable) == 'true' ">_PublishBuildAlternative
+ <_PackToolPublishDependency Condition=" ('$(GeneratePackageOnBuild)' == 'true' or '$(NoBuild)' == 'true') and $(IsPublishable) == 'true' ">$(_PublishNoBuildAlternativeDependsOn)
+
+
+
+
+ <_GeneratedFiles Include="$(PublishDepsFilePath)" Condition="'$(GenerateDependencyFile)' != 'true' or '$(_UseBuildDependencyFile)' == 'true'" />
+ <_GeneratedFiles Include="$(PublishRuntimeConfigFilePath)"/>
+ <_GeneratedFiles Include="$(_ToolsSettingsFilePath)"/>
+
+
+
+
+
+
+
+
+
+ tools/$(_NuGetShortFolderName)/any/%(_GeneratedFiles.RecursiveDir)%(_GeneratedFiles.Filename)%(_GeneratedFiles.Extension)
+
+
+
+ %(_ResolvedFileToPublishWithPackagePath.PackagePath)
+
+
+
+
+
+ $(TargetName)
+ $(TargetFileName)
+ <_GenerateToolsSettingsFileCacheFile Condition="'$(_GenerateToolsSettingsFileCacheFile)' == ''">$(IntermediateOutputPath)$(MSBuildProjectName).toolssettingsinput.cache
+ <_GenerateToolsSettingsFileCacheFile>$([MSBuild]::NormalizePath($(MSBuildProjectDirectory), $(_GenerateToolsSettingsFileCacheFile)))
+
+
+
+
+ <_GenerateToolsSettingsFileInputCacheToHash Include="$(ToolEntryPoint)" />
+ <_GenerateToolsSettingsFileInputCacheToHash Include="$(ToolCommandName)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ShimInputCacheFile Condition="'$(_ShimInputCacheFile)' == ''">$(IntermediateOutputPath)$(MSBuildProjectName).shiminput.cache
+ <_ShimInputCacheFile>$([MSBuild]::NormalizePath($(MSBuildProjectDirectory), $(_ShimInputCacheFile)))
+ <_ShimCreatedSentinelFile Condition="'$(_ShimCreatedSentinelFile)' == ''">$(IntermediateOutputPath)$(MSBuildProjectName).shimcreated.sentinel
+ <_ShimCreatedSentinelFile>$([MSBuild]::NormalizePath($(MSBuildProjectDirectory), $(_ShimCreatedSentinelFile)))
+ $(OutDir)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_GenerateShimsAssetsInput Include="$(_ShimInputCacheFile)" />
+ <_GenerateShimsAssetsInput Include="@(_ApphostsForShimRuntimeIdentifiers)"/>
+ <_GenerateShimsAssetsInput Include="$(_ShimCreatedSentinelFile)"/>
+ <_GenerateShimsAssetsInput Include="$(ProjectAssetsFile)"/>
+
+ <_GenerateShimsAssetsInputCacheToHash Include="$(PackageId)"/>
+ <_GenerateShimsAssetsInputCacheToHash Include="$(Version)"/>
+ <_GenerateShimsAssetsInputCacheToHash Include="$(NuGetTargetMoniker)"/>
+ <_GenerateShimsAssetsInputCacheToHash Include="$(ToolCommandName)"/>
+ <_GenerateShimsAssetsInputCacheToHash Include="$(ToolEntryPoint)"/>
+ <_GenerateShimsAssetsInputCacheToHash Include="$(PackAsToolShimRuntimeIdentifiers)"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PreserveCompilationContext.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PreserveCompilationContext.targets
new file mode 100644
index 0000000000000000000000000000000000000000..966626144a0b6b35d95bac9402d5e2020b9b11f2
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.PreserveCompilationContext.targets
@@ -0,0 +1,102 @@
+
+
+
+
+ refs
+
+ $(PreserveCompilationContext)
+
+
+
+
+
+
+ $(DefineConstants)
+ $(LangVersion)
+ $(PlatformTarget)
+ $(AllowUnsafeBlocks)
+ $(TreatWarningsAsErrors)
+ $(Optimize)
+ $(AssemblyOriginatorKeyFile)
+ $(DelaySign)
+ $(PublicSign)
+ $(DebugType)
+ $(OutputType)
+ $(GenerateDocumentationFile)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RefAssembliesToExclude Include="@(_ResolvedCopyLocalPublishAssets->'%(FullPath)')" />
+
+ <_RefAssembliesToExclude Include="@(_RuntimeItemsInRuntimeStore)" />
+
+
+ $(RefAssembliesFolderName)\%(Filename)%(Extension)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Publish.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Publish.targets
new file mode 100644
index 0000000000000000000000000000000000000000..aaf80c16c3653b96327f00c59597638077f2efdb
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Publish.targets
@@ -0,0 +1,1286 @@
+
+
+
+
+ true
+ <_GetChildProjectCopyToPublishDirectoryItems Condition="'$(_GetChildProjectCopyToPublishDirectoryItems)' == ''">true
+ true
+
+
+
+
+
+ true
+ true
+
+
+
+
+ Always
+
+
+
+
+
+
+ <_RequiresILLinkPack Condition="'$(_RequiresILLinkPack)' == '' And (
+ '$(PublishAot)' == 'true' Or
+ '$(IsAotCompatible)' == 'true' Or '$(EnableAotAnalyzer)' == 'true' Or
+ '$(PublishTrimmed)' == 'true' Or
+ '$(IsTrimmable)' == 'true' Or '$(EnableTrimAnalyzer)' == 'true' Or
+ '$(EnableSingleFileAnalyzer)' == 'true')">true
+ <_RequiresILLinkPack Condition="'$(_RequiresILLinkPack)' == ''">false
+
+
+
+
+
+
+ <_FirstTargetFrameworkToSupportTrimming>net6.0
+ <_FirstTargetFrameworkToSupportAot>net7.0
+ <_FirstTargetFrameworkToSupportSingleFile>net6.0
+
+ <_MinNonEolTargetFrameworkForTrimming>$(_MinimumNonEolSupportedNetCoreTargetFramework)
+ <_MinNonEolTargetFrameworkForSingleFile>$(_MinimumNonEolSupportedNetCoreTargetFramework)
+
+ <_MinNonEolTargetFrameworkForAot>$(_MinimumNonEolSupportedNetCoreTargetFramework)
+ <_MinNonEolTargetFrameworkForAot Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(_FirstTargetFrameworkToSupportAot)', '$(_MinimumNonEolSupportedNetCoreTargetFramework)'))">$(_FirstTargetFrameworkToSupportAot)
+
+
+
+ <_TargetFramework Include="$(TargetFrameworks)" />
+ <_DecomposedTargetFramework Include="@(_TargetFramework)">
+ $([MSBuild]::IsTargetFrameworkCompatible('%(Identity)', '$(_FirstTargetFrameworkToSupportTrimming)'))
+ $([MSBuild]::IsTargetFrameworkCompatible('$(_MinNonEolTargetFrameworkForTrimming)', '%(Identity)'))
+ $([MSBuild]::IsTargetFrameworkCompatible('%(Identity)', '$(_FirstTargetFrameworkToSupportAot)'))
+ $([MSBuild]::IsTargetFrameworkCompatible('$(_MinNonEolTargetFrameworkForAot)', '%(Identity)'))
+ $([MSBuild]::IsTargetFrameworkCompatible('%(Identity)', '$(_FirstTargetFrameworkToSupportSingleFile)'))
+ $([MSBuild]::IsTargetFrameworkCompatible('$(_MinNonEolTargetFrameworkForSingleFile)', '%(Identity)'))
+
+
+ <_TargetFrameworkToSilenceIsTrimmableUnsupportedWarning
+ Include="@(_DecomposedTargetFramework)"
+ Condition="'%(SupportsTrimming)' == 'true' And '%(SupportedByMinNonEolTargetFrameworkForTrimming)' == 'true'" />
+ <_TargetFrameworkToSilenceIsAotCompatibleUnsupportedWarning
+ Include="@(_DecomposedTargetFramework->'%(Identity)')"
+ Condition="'%(SupportsAot)' == 'true' And '%(SupportedByMinNonEolTargetFrameworkForAot)' == 'true'" />
+ <_TargetFrameworkToSilenceEnableSingleFileAnalyzerUnsupportedWarning
+ Include="@(_DecomposedTargetFramework)"
+ Condition="'%(SupportsSingleFile)' == 'true' And '%(SupportedByMinNonEolTargetFrameworkForSingleFile)' == 'true'" />
+
+
+
+
+ <_SilenceIsTrimmableUnsupportedWarning Condition="'$(_SilenceIsTrimmableUnsupportedWarning)' == '' And
+ @(_TargetFrameworkToSilenceIsTrimmableUnsupportedWarning->Count()) > 0">true
+ <_SilenceIsAotCompatibleUnsupportedWarning Condition="'$(_SilenceIsAotCompatibleUnsupportedWarning)' == '' And
+ @(_TargetFrameworkToSilenceIsAotCompatibleUnsupportedWarning->Count()) > 0">true
+ <_SilenceEnableSingleFileAnalyzerUnsupportedWarning Condition="'$(_SilenceEnableSingleFileAnalyzerUnsupportedWarning)' == '' And
+ @(_TargetFrameworkToSilenceEnableSingleFileAnalyzerUnsupportedWarning->Count()) > 0">true
+
+
+
+
+
+
+
+
+
+
+
+ <_BeforePublishNoBuildTargets>
+ BuildOnlySettings;
+ _PreventProjectReferencesFromBuilding;
+ ResolveReferences;
+ PrepareResourceNames;
+ ComputeIntermediateSatelliteAssemblies;
+ ComputeEmbeddedApphostPaths;
+
+
+ <_CorePublishTargets>
+ PrepareForPublish;
+ ComputeAndCopyFilesToPublishDirectory;
+ $(PublishProtocolProviderTargets);
+ PublishItemsOutputGroup;
+
+
+ <_PublishNoBuildAlternativeDependsOn>$(_BeforePublishNoBuildTargets);$(_CorePublishTargets)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(PublishDir)\
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_OrphanPublishFileWrites Include="@(_PriorPublishFileWrites)" Exclude="@(_CurrentPublishFileWrites)"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_NormalizedPublishDir>$([MSBuild]::NormalizeDirectory($(PublishDir)))
+
+
+
+
+
+
+ <_PublishCleanFile Condition="'$(PublishCleanFile)'==''">PublishOutputs.$(_NormalizedPublishDirHash.Substring(0, 10)).txt
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CurrentPublishFileWritesUnfiltered Include="@(ResolvedFileToPublish->'$(_NormalizedPublishDir)%(RelativePath)')"/>
+ <_CurrentPublishFileWritesUnfiltered Include="$(_NormalizedPublishDir)$(AssemblyName)$(_NativeExecutableExtension)" Condition="'$(UseAppHost)' == 'true'"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ResolvedFileToPublishPreserveNewest Include="@(ResolvedFileToPublish)"
+ Condition="'%(ResolvedFileToPublish.CopyToPublishDirectory)'=='PreserveNewest'" />
+
+ <_ResolvedFileToPublishAlways Include="@(ResolvedFileToPublish)"
+ Condition="'%(ResolvedFileToPublish.CopyToPublishDirectory)'=='Always'" />
+
+
+
+
+ <_ResolvedUnbundledFileToPublishPreserveNewest
+ Include="@(_ResolvedFileToPublishPreserveNewest)"
+ Condition="'$(PublishSingleFile)' != 'true' or
+ '%(_ResolvedFileToPublishPreserveNewest.ExcludeFromSingleFile)'=='true'" />
+
+ <_ResolvedUnbundledFileToPublishAlways
+ Include="@(_ResolvedFileToPublishAlways)"
+ Condition="'$(PublishSingleFile)' != 'true' or
+ '%(_ResolvedFileToPublishAlways.ExcludeFromSingleFile)'=='true'" />
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+ false
+
+
+
+
+
+
+
+
+
+ @(IntermediateAssembly->'%(Filename)%(Extension)')
+ PreserveNewest
+
+
+
+
+ $(ProjectDepsFileName)
+ PreserveNewest
+
+
+
+
+ $(ProjectRuntimeConfigFileName)
+ PreserveNewest
+
+
+
+
+ @(AppConfigWithTargetPath->'%(TargetPath)')
+ PreserveNewest
+
+
+
+
+ @(_DebugSymbolsIntermediatePath->'%(Filename)%(Extension)')
+ PreserveNewest
+ true
+
+
+
+
+ %(IntermediateSatelliteAssembliesWithTargetPath.Culture)\%(Filename)%(Extension)
+ PreserveNewest
+
+
+
+
+ %(Filename)%(Extension)
+ PreserveNewest
+
+
+
+
+
+
+
+
+
+
+ <_ResolvedCopyLocalPublishAssets Remove="@(_ResolvedCopyLocalPublishAssetsRemoved)"/>
+
+
+
+
+ %(_ResolvedCopyLocalPublishAssets.DestinationSubDirectory)%(Filename)%(Extension)
+ PreserveNewest
+
+
+
+
+ @(FinalDocFile->'%(Filename)%(Extension)')
+ PreserveNewest
+
+
+
+
+ shims/%(_EmbeddedApphostPaths.ShimRuntimeIdentifier)/%(_EmbeddedApphostPaths.Filename)%(_EmbeddedApphostPaths.Extension)
+ PreserveNewest
+
+
+
+ <_FilesToDrop Include="@(ResolvedFileToPublish)"
+ Condition="'$(PublishSingleFile)' == 'true' and
+ '%(ResolvedFileToPublish.DropFromSingleFile)' == 'true'"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ResolvedCopyLocalPublishAssets Include="@(RuntimePackAsset)"
+ Condition="('$(SelfContained)' == 'true' Or '%(RuntimePackAsset.RuntimePackAlwaysCopyLocal)' == 'true') and '%(RuntimePackAsset.AssetType)' != 'pgodata'" />
+
+
+
+
+ <_ResolvedCopyLocalPublishAssets Remove="@(_NativeRestoredAppHostNETCore)" />
+
+
+
+ <_ResolvedCopyLocalPublishAssets Include="@(_ResolvedCopyLocalBuildAssets)"
+ Condition="'%(_ResolvedCopyLocalBuildAssets.CopyToPublishDirectory)' != 'false' "/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_PublishSatelliteResources Include="@(_ResolvedCopyLocalPublishAssets)"
+ Condition="'%(_ResolvedCopyLocalPublishAssets.AssetType)' == 'resources'" />
+
+
+
+
+
+
+
+ <_ResolvedCopyLocalPublishAssets Remove="@(_PublishSatelliteResources)" />
+ <_ResolvedCopyLocalPublishAssets Include="@(_FilteredPublishSatelliteResources)" />
+
+
+
+
+
+
+
+
+ <_ResolvedCopyLocalPublishAssets Include="@(ReferenceCopyLocalPaths)"
+ Exclude="@(_ResolvedCopyLocalBuildAssets);@(RuntimePackAsset)"
+ Condition="('$(PublishReferencesDocumentationFiles)' == 'true' or '%(ReferenceCopyLocalPaths.Extension)' != '.xml') and '%(ReferenceCopyLocalPaths.Private)' != 'false'">
+ %(ReferenceCopyLocalPaths.DestinationSubDirectory)%(ReferenceCopyLocalPaths.Filename)%(ReferenceCopyLocalPaths.Extension)
+
+
+
+
+
+
+
+
+
+
+ %(_SourceItemsToCopyToPublishDirectoryAlways.TargetPath)
+ Always
+ True
+
+
+
+ %(_SourceItemsToCopyToPublishDirectory.TargetPath)
+ PreserveNewest
+ True
+
+
+
+
+
+
+
+
+
+
+
+ <_GCTPDIKeepDuplicates>false
+ <_GCTPDIKeepMetadata>CopyToPublishDirectory;ExcludeFromSingleFile;TargetPath
+
+
+
+
+
+
+
+
+
+
+
+ <_SourceItemsToCopyToPublishDirectoryAlways KeepDuplicates=" '$(_GCTPDIKeepDuplicates)' != 'false' "
+ KeepMetadata="$(_GCTPDIKeepMetadata)"
+ Include="@(_AllChildProjectPublishItemsWithTargetPath->'%(FullPath)')"
+ Condition="'%(_AllChildProjectPublishItemsWithTargetPath.CopyToPublishDirectory)'=='Always'"/>
+
+ <_SourceItemsToCopyToPublishDirectory KeepDuplicates=" '$(_GCTPDIKeepDuplicates)' != 'false' "
+ KeepMetadata="$(_GCTPDIKeepMetadata)"
+ Include="@(_AllChildProjectPublishItemsWithTargetPath->'%(FullPath)')"
+ Condition="'%(_AllChildProjectPublishItemsWithTargetPath.CopyToPublishDirectory)'=='PreserveNewest'"/>
+
+
+
+
+ <_AllChildProjectPublishItemsWithTargetPath Remove="@(_AllChildProjectPublishItemsWithTargetPath)"/>
+
+
+
+
+ <_SourceItemsToCopyToPublishDirectoryAlways KeepMetadata="$(_GCTPDIKeepMetadata)"
+ Include="@(ContentWithTargetPath->'%(FullPath)')"
+ Condition="'%(ContentWithTargetPath.CopyToPublishDirectory)'=='Always'"/>
+ <_SourceItemsToCopyToPublishDirectory KeepMetadata="$(_GCTPDIKeepMetadata)"
+ Include="@(ContentWithTargetPath->'%(FullPath)')"
+ Condition="'%(ContentWithTargetPath.CopyToPublishDirectory)'=='PreserveNewest'"/>
+
+
+
+ <_SourceItemsToCopyToPublishDirectoryAlways KeepMetadata="$(_GCTPDIKeepMetadata)"
+ Include="@(EmbeddedResource->'%(FullPath)')"
+ Condition="'%(EmbeddedResource.CopyToPublishDirectory)'=='Always'"/>
+ <_SourceItemsToCopyToPublishDirectory KeepMetadata="$(_GCTPDIKeepMetadata)"
+ Include="@(EmbeddedResource->'%(FullPath)')"
+ Condition="'%(EmbeddedResource.CopyToPublishDirectory)'=='PreserveNewest'"/>
+
+
+
+ <_CompileItemsToPublish Include="@(Compile->'%(FullPath)')"
+ Condition="'%(Compile.CopyToPublishDirectory)'=='Always' or '%(Compile.CopyToPublishDirectory)'=='PreserveNewest'"/>
+
+
+
+
+
+
+
+ <_SourceItemsToCopyToPublishDirectoryAlways KeepMetadata="$(_GCTPDIKeepMetadata)"
+ Include="@(_CompileItemsToPublishWithTargetPath)"
+ Condition="'%(_CompileItemsToPublishWithTargetPath.CopyToPublishDirectory)'=='Always'"/>
+ <_SourceItemsToCopyToPublishDirectory KeepMetadata="$(_GCTPDIKeepMetadata)"
+ Include="@(_CompileItemsToPublishWithTargetPath)"
+ Condition="'%(_CompileItemsToPublishWithTargetPath.CopyToPublishDirectory)'=='PreserveNewest'"/>
+
+
+
+ <_SourceItemsToCopyToPublishDirectoryAlways KeepMetadata="$(_GCTPDIKeepMetadata)"
+ Include="@(_NoneWithTargetPath->'%(FullPath)')"
+ Condition="'%(_NoneWithTargetPath.CopyToPublishDirectory)'=='Always'"/>
+ <_SourceItemsToCopyToPublishDirectory KeepMetadata="$(_GCTPDIKeepMetadata)"
+ Include="@(_NoneWithTargetPath->'%(FullPath)')"
+ Condition="'%(_NoneWithTargetPath.CopyToPublishDirectory)'=='PreserveNewest'"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Always
+
+
+ PreserveNewest
+
+
+
+ Always
+
+
+ PreserveNewest
+
+
+
+ Always
+
+
+ PreserveNewest
+
+
+ <_NoneWithTargetPath Condition="'%(_NoneWithTargetPath.CopyToOutputDirectory)'=='Always' and '%(_NoneWithTargetPath.CopyToPublishDirectory)' == ''">
+ Always
+
+ <_NoneWithTargetPath Condition="'%(_NoneWithTargetPath.CopyToOutputDirectory)'=='PreserveNewest' and '%(_NoneWithTargetPath.CopyToPublishDirectory)' == ''">
+ PreserveNewest
+
+
+
+
+
+
+ <_ComputeManagedRuntimePackAssembliesIfSelfContained>_ComputeManagedRuntimePackAssemblies
+
+
+
+
+
+
+
+
+ <_ManagedRuntimeAssembly Include="@(RuntimeCopyLocalItems)" />
+
+
+ <_ManagedRuntimeAssembly Include="@(UserRuntimeAssembly)" />
+
+
+ <_ManagedRuntimeAssembly Include="@(IntermediateAssembly)" />
+
+
+
+
+ <_ManagedRuntimeAssembly Include="@(_ManagedRuntimePackAssembly)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ManagedRuntimePackAssembly Include="@(RuntimePackAsset)"
+ Condition="'%(RuntimePackAsset.AssetType)' == 'runtime'
+ or '%(RuntimePackAsset.Filename)' == 'System.Private.Corelib'" />
+
+
+
+
+
+
+ <_TrimRuntimeAssets Condition="'$(PublishSingleFile)' == 'true' and '$(SelfContained)' == 'true'">true
+ <_UseBuildDependencyFile Condition="'@(_ExcludeFromPublishPackageReference)' == '' and
+ '@(RuntimeStorePackages)' == '' and
+ '$(PreserveStoreLayout)' != 'true' and
+ '$(PublishTrimmed)' != 'true' and
+ '$(_TrimRuntimeAssets)' != 'true'">true
+
+
+
+
+
+
+
+
+ <_FilesToBundle Include="@(ResolvedFileToPublish)"
+ Condition="'%(ResolvedFileToPublish.ExcludeFromSingleFile)' != 'true'"/>
+
+
+
+
+
+ $(AssemblyName)$(_NativeExecutableExtension)
+ $(PublishDir)$(PublishedSingleFileName)
+
+
+
+
+
+
+
+
+
+
+ $(PublishedSingleFileName)
+
+
+
+
+
+ <_GenerateSingleFileBundlePropertyInputsCacheToHash Include="$(PublishedSingleFilePath)" />
+ <_GenerateSingleFileBundlePropertyInputsCacheToHash Include="$(TraceSingleFileBundler)" />
+ <_GenerateSingleFileBundlePropertyInputsCacheToHash Include="$(IncludeSymbolsInSingleFile)" />
+ <_GenerateSingleFileBundlePropertyInputsCacheToHash Include="$(IncludeAllContentForSelfExtract)" />
+ <_GenerateSingleFileBundlePropertyInputsCacheToHash Include="$(IncludeNativeLibrariesForSelfExtract)" />
+ <_GenerateSingleFileBundlePropertyInputsCacheToHash Include="$(EnableCompressionInSingleFile)" />
+ <_GenerateSingleFileBundlePropertyInputsCacheToHash Include="$(PublishedSingleFileName)" />
+ <_GenerateSingleFileBundlePropertyInputsCacheToHash Include="$(RuntimeIdentifier)" />
+ <_GenerateSingleFileBundlePropertyInputsCacheToHash Include="$(PublishDir)" />
+ <_GenerateSingleFileBundlePropertyInputsCacheToHash Include="$(_TargetFrameworkVersionWithoutV)" />
+ <_GenerateSingleFileBundlePropertyInputsCacheToHash Include="@(FilesToBundle)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+ false
+ false
+ $(IncludeAllContentForSelfExtract)
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(PublishDepsFilePath)
+ $(IntermediateOutputPath)$(ProjectDepsFileName)
+
+
+
+
+
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(PublishDepsFilePath)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(PublishSingleFile)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(MSBuildProjectFullPath)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(ProjectAssetsFile)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(IntermediateDepsFilePath)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(TargetFramework)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(AssemblyName)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(TargetExt)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(Version)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(IncludeMainProjectInDepsFile)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(RuntimeIdentifier)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(MicrosoftNETPlatformLibrary)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(SelfContained)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(IncludeFileVersionsInDependencyFile)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(RuntimeIdentifierGraphPath)" />
+ <_GeneratePublishDependencyFilePropertyInputsCacheToHash Include="$(IncludeProjectsNotInAssetsFileInDepsFile)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(PublishDir)$(ProjectDepsFileName)
+ <_IsSingleFilePublish Condition="'$(PublishSingleFile)' == ''">false
+ <_IsSingleFilePublish Condition="'$(PublishSingleFile)' != ''">$(PublishSingleFile)
+
+
+
+
+
+
+
+ <_ResolvedNuGetFilesForPublish Include="@(NativeCopyLocalItems)" Condition="'%(NativeCopyLocalItems.CopyToPublishDirectory)' != 'false'" />
+ <_ResolvedNuGetFilesForPublish Include="@(ResourceCopyLocalItems)" Condition="'%(ResourceCopyLocalItems.CopyToPublishDirectory)' != 'false'" />
+ <_ResolvedNuGetFilesForPublish Include="@(RuntimeCopyLocalItems)" Condition="'%(RuntimeCopyLocalItems.CopyToPublishDirectory)' != 'false'" />
+ <_ResolvedNuGetFilesForPublish Remove="@(_PublishConflictPackageFiles)" Condition="'%(_PublishConflictPackageFiles.ConflictItemType)' != 'Reference'" />
+
+
+
+
+
+
+
+ $(ProjectDepsFileName)
+
+
+
+
+
+
+
+
+
+
+ <_PackAsToolShimRuntimeIdentifiers Condition="@(_PackAsToolShimRuntimeIdentifiers) ==''" Include="$(PackAsToolShimRuntimeIdentifiers)"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(PublishItemsOutputGroupDependsOn);
+ ResolveReferences;
+ ComputeResolvedFilesToPublishList;
+ _ComputeFilesToBundle;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets
new file mode 100644
index 0000000000000000000000000000000000000000..b1afd97cd30546109c02ead12eb224f61a4b4b73
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets
@@ -0,0 +1,354 @@
+
+
+
+
+
+ <_UsingDefaultRuntimeIdentifier>true
+ win7-x64
+ win7-x86
+
+
+
+
+ true
+
+
+
+
+
+ $(PublishSelfContained)
+
+
+
+
+ true
+
+
+
+ $(NETCoreSdkPortableRuntimeIdentifier)
+
+
+
+ $(PublishRuntimeIdentifier)
+
+
+
+ <_UsingDefaultPlatformTarget>true
+
+
+
+
+
+
+
+
+ x86
+
+
+
+
+
+ x64
+
+
+
+
+
+ arm
+
+
+
+
+
+ arm64
+
+
+
+
+
+ AnyCPU
+
+
+
+
+
+
+
+ <_SelfContainedWasSpecified Condition="'$(SelfContained)' != ''">true
+
+
+
+
+ true
+
+ false
+ <_RuntimeIdentifierUsesAppHost Condition="$(RuntimeIdentifier.StartsWith('ios')) or $(RuntimeIdentifier.StartsWith('tvos')) or $(RuntimeIdentifier.StartsWith('maccatalyst')) or $(RuntimeIdentifier.StartsWith('android')) or $(RuntimeIdentifier.StartsWith('browser'))">false
+ <_RuntimeIdentifierUsesAppHost Condition="'$(_RuntimeIdentifierUsesAppHost)' == ''">true
+ true
+ false
+
+
+
+
+ $(NETCoreSdkRuntimeIdentifier)
+ win-x64
+ win-x86
+ win-arm
+ win-arm64
+
+ $(DefaultAppHostRuntimeIdentifier.Replace("arm64", "x64"))
+
+ $(DefaultAppHostRuntimeIdentifier.Replace("arm64", "x64"))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ $(IntermediateOutputPath)$(RuntimeIdentifier)\
+ $(OutputPath)$(RuntimeIdentifier)\
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Analyzers.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Analyzers.targets
new file mode 100644
index 0000000000000000000000000000000000000000..38a69d2b5599c7dc89afeb9aa0796f29085730ce
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Analyzers.targets
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+ <_NoneAnalysisLevel>4.0
+
+ <_LatestAnalysisLevel>8.0
+ <_PreviewAnalysisLevel>9.0
+
+ latest
+ $(_TargetFrameworkVersionWithoutV)
+
+
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevel), '-(.)*', ''))
+ $([System.Text.RegularExpressions.Regex]::Replace($(AnalysisLevel), '$(AnalysisLevelPrefix)-', ''))
+
+
+ $(_NoneAnalysisLevel)
+ $(_LatestAnalysisLevel)
+ $(_PreviewAnalysisLevel)
+
+
+ $(AnalysisLevelPrefix)
+ $(AnalysisLevel)
+
+
+
+
+ 9999
+
+ 4
+
+ $(_TargetFrameworkVersionWithoutV.Substring(0, 1))
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+
+
+ false
+ false
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.BeforeCommon.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.BeforeCommon.targets
new file mode 100644
index 0000000000000000000000000000000000000000..db891dae7895675b438cf2652e99dc731ffc0ea4
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.BeforeCommon.targets
@@ -0,0 +1,295 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ <_IsExecutable Condition="'$(OutputType)' == 'Exe' or '$(OutputType)'=='WinExe'">true
+
+
+
+ $(_IsExecutable)
+ <_UsingDefaultForHasRuntimeOutput>true
+
+
+
+
+
+
+ Debug
+ AnyCPU
+ $(Platform)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_IsNETCoreOrNETStandard Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'">true
+ <_IsNETCoreOrNETStandard Condition="'$(TargetFrameworkIdentifier)' == '.NETStandard'">true
+
+
+
+
+ true
+ true
+ true
+
+
+ true
+
+
+
+
+ true
+
+
+ true
+
+
+ .dll
+
+
+ false
+
+
+
+
+ $(PreserveCompilationContext)
+
+
+
+
+ publish
+
+ $(OutputPath)$(RuntimeIdentifier)\$(PublishDirName)\
+ $(OutputPath)$(PublishDirName)\
+
+
+
+
+
+
+
+ <_SDKImplicitReference Include="System"/>
+ <_SDKImplicitReference Include="System.Data"/>
+ <_SDKImplicitReference Include="System.Drawing"/>
+ <_SDKImplicitReference Include="System.Xml"/>
+
+
+
+
+ <_SDKImplicitReference Include="System.Core" Condition=" '$(_TargetFrameworkVersionWithoutV)' >= '3.5' "/>
+ <_SDKImplicitReference Include="System.Runtime.Serialization" Condition=" '$(_TargetFrameworkVersionWithoutV)' >= '3.5' "/>
+ <_SDKImplicitReference Include="System.Xml.Linq" Condition=" '$(_TargetFrameworkVersionWithoutV)' >= '3.5' "/>
+
+
+ <_SDKImplicitReference Include="System.Numerics" Condition=" '$(_TargetFrameworkVersionWithoutV)' >= '4.0' "/>
+
+
+ <_SDKImplicitReference Include="System.IO.Compression.FileSystem" Condition=" '$(_TargetFrameworkVersionWithoutV)' >= '4.5' "/>
+
+ <_SDKImplicitReference Update="@(_SDKImplicitReference)"
+ Pack="false"
+ IsImplicitlyDefined="true" />
+
+
+ <_SDKImplicitReference Remove="@(Reference)" />
+
+
+
+
+
+
+
+ false
+
+
+
+ $(AssetTargetFallback);net461;net462;net47;net471;net472;net48;net481
+
+
+
+
+ <_FrameworkIdentifierForImplicitDefine>$(TargetFrameworkIdentifier.Replace('.', '').ToUpperInvariant())
+ <_FrameworkIdentifierForImplicitDefine Condition=" '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionGreaterThanOrEquals($(TargetFrameworkVersion), 5.0)) ">NET
+ $(_FrameworkIdentifierForImplicitDefine)
+ <_FrameworkIdentifierForImplicitDefine Condition=" '$(TargetFrameworkIdentifier)' == '.NETFramework'">NET
+
+ <_FrameworkVersionForImplicitDefine>$(TargetFrameworkVersion.TrimStart('vV'))
+ <_FrameworkVersionForImplicitDefine>$(_FrameworkVersionForImplicitDefine.Replace('.', '_'))
+ <_FrameworkVersionForImplicitDefine Condition=" '$(TargetFrameworkIdentifier)' == '.NETFramework'">$(_FrameworkVersionForImplicitDefine.Replace('_', ''))
+
+ $(_FrameworkIdentifierForImplicitDefine)$(_FrameworkVersionForImplicitDefine)
+
+ $(TargetFrameworkIdentifier.Replace('.', '').ToUpperInvariant())
+
+
+
+
+
+ <_PlatformIdentifierForImplicitDefine>$(TargetPlatformIdentifier.ToUpperInvariant())
+ <_PlatformVersionForImplicitDefine>$(TargetPlatformVersion.Replace('.', '_'))
+
+
+ <_ImplicitDefineConstant Include="$(_PlatformIdentifierForImplicitDefine)" />
+ <_ImplicitDefineConstant Include="$(_PlatformIdentifierForImplicitDefine)$(_PlatformVersionForImplicitDefine)" />
+
+
+
+
+
+
+ <_SupportedFrameworkVersions Include="@(SupportedNETCoreAppTargetFramework->'%(Identity)'->TrimStart('.NETCoreApp,Version=v'))" Condition=" '$(TargetFrameworkIdentifier)' == '.NETCoreApp' " />
+ <_SupportedFrameworkVersions Include="@(SupportedNETFrameworkTargetFramework->'%(Identity)'->TrimStart('.NETFramework,Version=v'))" Condition=" '$(TargetFrameworkIdentifier)' == '.NETFramework' " />
+ <_SupportedFrameworkVersions Include="@(SupportedNETStandardTargetFramework->'%(Identity)'->TrimStart('.NETStandard,Version=v'))" Condition=" '$(TargetFrameworkIdentifier)' == '.NETStandard' " />
+ <_CompatibleFrameworkVersions Include="@(_SupportedFrameworkVersions)" Condition=" $([MSBuild]::VersionLessThanOrEquals(%(Identity), $(TargetFrameworkVersion))) " />
+ <_FormattedCompatibleFrameworkVersions Include="@(_CompatibleFrameworkVersions)" Condition=" '$(TargetFrameworkIdentifier)' == '.NETCoreApp' or '$(TargetFrameworkIdentifier)' == '.NETStandard' " />
+ <_FormattedCompatibleFrameworkVersions Include="@(_CompatibleFrameworkVersions->'%(Identity)'->Replace('.', ''))" Condition=" '$(TargetFrameworkIdentifier)' == '.NETFramework' " />
+ <_ImplicitDefineConstant Include="@(_FormattedCompatibleFrameworkVersions->'$(_FrameworkIdentifierForImplicitDefine)%(Identity)_OR_GREATER'->Replace('.', '_'))"
+ Condition=" '$(TargetFrameworkIdentifier)' != '.NETCoreApp' or $([MSBuild]::VersionGreaterThanOrEquals(%(_FormattedCompatibleFrameworkVersions.Identity), 5.0)) " />
+ <_ImplicitDefineConstant Include="@(_FormattedCompatibleFrameworkVersions->'NETCOREAPP%(Identity)_OR_GREATER'->Replace('.', '_'))"
+ Condition=" '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionLessThan(%(_FormattedCompatibleFrameworkVersions.Identity), 5.0)) " />
+
+
+
+
+
+
+ <_SupportedPlatformCompatibleVersions Include="@(SdkSupportedTargetPlatformVersion)" Condition=" %(Identity) != '' and $([MSBuild]::VersionLessThanOrEquals(%(Identity), $(TargetPlatformVersion))) " />
+ <_ImplicitDefineConstant Include="@(_SupportedPlatformCompatibleVersions->Distinct()->'$(TargetPlatformIdentifier.ToUpper())%(Identity)_OR_GREATER'->Replace('.', '_'))" />
+
+
+
+
+
+
+ <_DefineConstantsWithoutTrace Include="$(DefineConstants)" />
+ <_DefineConstantsWithoutTrace Remove="TRACE"/>
+
+
+
+ @(_DefineConstantsWithoutTrace)
+
+
+
+
+
+
+ $(DefineConstants);@(_ImplicitDefineConstant)
+ $(FinalDefineConstants),@(_ImplicitDefineConstant->'%(Identity)=-1', ',')
+
+
+
+
+
+ false
+ true
+
+
+
+ $(AssemblyName).xml
+ $(IntermediateOutputPath)$(AssemblyName).xml
+
+
+
+
+
+
+
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+ true
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.BeforeCommonCrossTargeting.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.BeforeCommonCrossTargeting.targets
new file mode 100644
index 0000000000000000000000000000000000000000..784469ead3edae23b5f53d79722ae5ee3b3677ca
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.BeforeCommonCrossTargeting.targets
@@ -0,0 +1,28 @@
+
+
+
+
+
+ Debug
+ AnyCPU
+ $(Platform)
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.CSharp.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.CSharp.props
new file mode 100644
index 0000000000000000000000000000000000000000..d1b0d8e2eb6e11103935b746e74f70479f6a33d3
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.CSharp.props
@@ -0,0 +1,36 @@
+
+
+
+
+ 1701;1702
+
+
+ $(WarningsAsErrors);NU1605
+
+
+ $(DefineConstants);
+ $(DefineConstants)TRACE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.CSharp.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.CSharp.targets
new file mode 100644
index 0000000000000000000000000000000000000000..f113d22b9eb31cf8bdebce431b72f91c0a4e2bcc
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.CSharp.targets
@@ -0,0 +1,50 @@
+
+
+
+ Properties
+
+
+ $(Configuration.ToUpperInvariant())
+
+
+
+ $(ImplicitConfigurationDefine.Replace('-', '_'))
+ $(ImplicitConfigurationDefine.Replace('.', '_'))
+ $(ImplicitConfigurationDefine.Replace(' ', '_'))
+ $(DefineConstants);$(ImplicitConfigurationDefine)
+
+
+ $(DefineConstants);$(VersionlessImplicitFrameworkDefine);$(ImplicitFrameworkDefine);$(BackwardsCompatFrameworkDefine)
+
+
+
+
+
+
+
+
+
+ $(WarningsAsErrors);SYSLIB0011
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Common.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Common.targets
new file mode 100644
index 0000000000000000000000000000000000000000..4ab0c2553f723564cfac3f4eb8c293fad8049442
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Common.targets
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+ $(MSBuildThisFileDirectory)..\tools\
+ net8.0
+ net472
+ $(MicrosoftNETBuildTasksDirectoryRoot)$(MicrosoftNETBuildTasksTFM)\
+ $(MicrosoftNETBuildTasksDirectory)Microsoft.NET.Build.Tasks.dll
+
+
+ Microsoft.NETCore.App;NETStandard.Library
+
+
+
+
+ <_IsExecutable Condition="'$(OutputType)' == 'Exe' or '$(OutputType)'=='WinExe'">true
+ $(_IsExecutable)
+
+
+
+
+ netcoreapp2.2
+
+
+
+ false
+ DotnetTool
+ $(RuntimeIdentifiers);$(PackAsToolShimRuntimeIdentifiers)
+
+
+
+ Preview
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.CrossTargeting.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.CrossTargeting.targets
new file mode 100644
index 0000000000000000000000000000000000000000..7be3d13fd6eaae7c0d885be5d1a51880301c37c7
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.CrossTargeting.targets
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+ <_PublishTargetFrameworks Include="$(TargetFrameworks)" />
+
+
+
+
+
+
+
+
+ <_GetAllRuntimeIdentifiersTargetFrameworks Include="$(TargetFrameworks)" />
+ <_AllRuntimeIdentifiers Include="$(RuntimeIdentifiers);$(RuntimeIdentifier)" />
+
+
+
+
+
+
+
+ @(_AllRuntimeIdentifiers->Distinct())
+
+
+
+
+
+
+
+
+ {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ {F184B08F-C81C-45F6-A57F-5ABD9991F28F}
+
+
+
+
+
+
+ $([System.IO.Path]::GetDirectoryName($(BundledRuntimeIdentifierGraphFile)))/PortableRuntimeIdentifierGraph.json
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.Shared.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.Shared.targets
new file mode 100644
index 0000000000000000000000000000000000000000..13f9169519936156f2a2ae071aa33795f01c21ce
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.Shared.targets
@@ -0,0 +1,254 @@
+
+
+
+
+
+
+
+ true
+ false
+ <_TargetLatestRuntimePatchIsDefault>true
+
+
+
+ true
+
+
+
+
+
+ all
+ true
+
+
+
+ all
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(_TargetFrameworkVersionWithoutV)
+
+
+
+
+
+
+
+
+
+ https://aka.ms/sdkimplicitrefs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_PackageReferenceToAdd Remove="@(_PackageReferenceToAdd)" />
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+ https://aka.ms/sdkimplicititems
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_WindowsDesktopTransitiveFrameworkReference Include="@(TransitiveFrameworkReference)"
+ Condition="'%(Identity)' == 'Microsoft.WindowsDesktop.App' Or
+ '%(Identity)' == 'Microsoft.WindowsDesktop.App.WPF' Or
+ '%(Identity)' == 'Microsoft.WindowsDesktop.App.WindowsForms'" />
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.props
new file mode 100644
index 0000000000000000000000000000000000000000..fec7705b316edd1d47f977b082ecdff4bf43a0f5
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.props
@@ -0,0 +1,93 @@
+
+
+
+
+ $(MSBuildThisFileDirectory)..\..\..\Microsoft.NETCoreSdk.BundledVersions.props
+
+
+
+
+
+
+ false
+
+
+
+ <__WindowsAppSdkDefaultImageIncludes>**/*.png;**/*.bmp;**/*.jpg;**/*.dds;**/*.tif;**/*.tga;**/*.gif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.targets
new file mode 100644
index 0000000000000000000000000000000000000000..8b01a7f760af62bc4449b6fbec4cc91e836cda0f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.targets
@@ -0,0 +1,168 @@
+
+
+
+
+
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+ $(DefaultItemExcludes);$(BaseOutputPath)/**
+
+ $(DefaultItemExcludes);$(BaseIntermediateOutputPath)/**
+
+
+ $(DefaultItemExcludes);**/*.user
+ $(DefaultItemExcludes);**/*.*proj
+ $(DefaultItemExcludes);**/*.sln
+ $(DefaultItemExcludes);**/*.vssscc
+ $(DefaultItemExcludes);**/.DS_Store
+
+
+ $(DefaultExcludesInProjectFolder);$(DefaultItemExcludesInProjectFolder);**/.*/**
+
+
+
+
+
+ 1.6.1
+
+
+ 2.0.3
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([MSBuild]::EnsureTrailingSlash(%(LinkBase)))
+
+
+ %(LinkBase)%(RecursiveDir)%(Filename)%(Extension)
+
+
+
+ $([MSBuild]::EnsureTrailingSlash(%(LinkBase)))
+ %(LinkBase)%(RecursiveDir)%(Filename)%(Extension)
+
+
+
+ $([MSBuild]::EnsureTrailingSlash(%(LinkBase)))
+ %(LinkBase)%(RecursiveDir)%(Filename)%(Extension)
+
+
+
+ $([MSBuild]::EnsureTrailingSlash(%(LinkBase)))
+ %(LinkBase)%(RecursiveDir)%(Filename)%(Extension)
+
+
+
+ $([MSBuild]::EnsureTrailingSlash(%(LinkBase)))
+ %(LinkBase)%(RecursiveDir)%(Filename)%(Extension)
+
+
+
+ $([MSBuild]::EnsureTrailingSlash(%(LinkBase)))
+ %(LinkBase)%(RecursiveDir)%(Filename)%(Extension)
+
+
+
+ $([MSBuild]::EnsureTrailingSlash(%(LinkBase)))
+ %(LinkBase)%(RecursiveDir)%(Filename)%(Extension)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharp.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharp.props
new file mode 100644
index 0000000000000000000000000000000000000000..0d4b8fa8f24302c4c931e4fd6bddcf3b2dd396ce
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharp.props
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+ false
+ true
+
+
+
+
+ $(MSBuildToolsPath)\FSharp\Microsoft.FSharp.NetSdk.props
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.NetSdk.props
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharp.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharp.targets
new file mode 100644
index 0000000000000000000000000000000000000000..a18b81db04025ed867ee552dc856341f6e45e321
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharp.targets
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ $(MSBuildToolsPath)\FSharp\Microsoft.FSharp.Overrides.NetSdk.targets
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Overrides.NetSdk.targets
+
+
+
+
+ $(DefineConstants);$(VersionlessImplicitFrameworkDefine);$(ImplicitFrameworkDefine);$(BackwardsCompatFrameworkDefine)
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharpTargetsShim.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharpTargetsShim.targets
new file mode 100644
index 0000000000000000000000000000000000000000..4226fc9973c444db5735ed33d6c5559ec20c352c
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FSharpTargetsShim.targets
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+ Properties
+
+
+
+ $(Configuration.ToUpperInvariant())
+
+
+
+ $(ImplicitConfigurationDefine.Replace('-', '_'))
+ $(ImplicitConfigurationDefine.Replace('.', '_'))
+ $(DefineConstants);$(ImplicitConfigurationDefine)
+
+
+
+
+ $(MSBuildExtensionsPath)\Microsoft\VisualStudio\Managed\Microsoft.FSharp.DesignTime.targets
+
+
+
+
+
+
+ $(MSBuildToolsPath)\FSharp\Microsoft.FSharp.NetSdk.targets
+ $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.NetSdk.targets
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets
new file mode 100644
index 0000000000000000000000000000000000000000..59b07f2b68f13c51b27b7a6192503ee03e5d836c
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets
@@ -0,0 +1,543 @@
+
+
+
+
+ $(ResolveAssemblyReferencesDependsOn);
+ ResolveTargetingPackAssets;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+ <_NuGetRestoreSupported Condition="('$(Language)' == 'C++' and '$(_EnablePackageReferencesInVCProjects)' != 'true')">false
+
+
+
+ <_PackAsToolShimRuntimeIdentifiers Condition="@(_PackAsToolShimRuntimeIdentifiers) ==''" Include="$(PackAsToolShimRuntimeIdentifiers)"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(RuntimeIdentifier)
+ $(DefaultAppHostRuntimeIdentifier)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+ false
+
+
+
+
+ [%(_PackageToDownload.Version)]
+
+
+
+
+
+
+
+
+
+ <_ImplicitPackageReference Remove="@(PackageReference)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(ResolvedTargetingPack.PackageDirectory)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ApphostsForShimRuntimeIdentifiers Include="%(_ApphostsForShimRuntimeIdentifiersGetPackageDirectory.PackageDirectory)\%(_ApphostsForShimRuntimeIdentifiersGetPackageDirectory.PathInPackage)" >
+ %(_ApphostsForShimRuntimeIdentifiersGetPackageDirectory.RuntimeIdentifier)
+
+
+
+
+
+ %(ResolvedAppHostPack.PackageDirectory)\%(ResolvedAppHostPack.PathInPackage)
+
+
+
+
+ @(ResolvedAppHostPack->'%(Path)')
+
+
+
+
+ %(ResolvedSingleFileHostPack.PackageDirectory)\%(ResolvedSingleFileHostPack.PathInPackage)
+
+
+
+
+ @(ResolvedSingleFileHostPack->'%(Path)')
+
+
+
+
+ %(ResolvedComHostPack.PackageDirectory)\%(ResolvedComHostPack.PathInPackage)
+
+
+
+
+ @(ResolvedComHostPack->'%(Path)')
+
+
+
+
+ %(ResolvedIjwHostPack.PackageDirectory)\%(ResolvedIjwHostPack.PathInPackage)
+
+
+
+
+ @(ResolvedIjwHostPack->'%(Path)')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $([MSBuild]::Unescape($(PackageConflictPreferredPackages)))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ExistingReferenceAssembliesPackageReference Include="@(PackageReference)" Condition="'%(PackageReference.Identity)' == 'Microsoft.NETFramework.ReferenceAssemblies'"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_Parameter1>$(UserSecretsId.Trim())
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.GetRequiredWorkloads.CrossTargeting.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.GetRequiredWorkloads.CrossTargeting.targets
new file mode 100644
index 0000000000000000000000000000000000000000..aab74e99f23b599b1fe79df10fbae69d13790c06
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.GetRequiredWorkloads.CrossTargeting.targets
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportPublishProfile.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportPublishProfile.targets
new file mode 100644
index 0000000000000000000000000000000000000000..95ceee5882ee14f5a6bc06d6c81c6459e89e205b
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportPublishProfile.targets
@@ -0,0 +1,36 @@
+
+
+
+
+ true
+ <_PublishProfileDesignerFolder Condition="'$(AppDesignerFolder)' != ''">$(AppDesignerFolder)
+ <_PublishProfileDesignerFolder Condition="'$(_PublishProfileDesignerFolder)' == ''">Properties
+ <_PublishProfileRootFolder Condition="'$(_PublishProfileRootFolder)' == ''">$(MSBuildProjectDirectory)\$(_PublishProfileDesignerFolder)\PublishProfiles\
+ $([System.IO.Path]::GetFileNameWithoutExtension($(PublishProfile)))
+ $(_PublishProfileRootFolder)$(PublishProfileName).pubxml
+ $(PublishProfileFullPath)
+
+
+ false
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.props
new file mode 100644
index 0000000000000000000000000000000000000000..c8a195c70085c5d1739e8aaa2d78187d03046253
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.props
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.targets
new file mode 100644
index 0000000000000000000000000000000000000000..dc7b5b17da94659698a8b6e46bf49528ced14166
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.ImportWorkloads.targets
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ResolvedSuggestedWorkload Include="@(SuggestedWorkload)"/>
+ <_ResolvedSuggestedWorkload Include="@(SuggestedWorkloadFromReference)"/>
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Shared.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Shared.targets
new file mode 100644
index 0000000000000000000000000000000000000000..77d4578af11c4ab02e68992c84616d03618ffef2
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Shared.targets
@@ -0,0 +1,81 @@
+
+
+
+
+
+ true
+ true
+
+
+
+
+ CurrentArchitecture
+ CurrentRuntime
+
+
+
+ <_NativeLibraryPrefix Condition="'$(_NativeLibraryPrefix)' == '' and !$(RuntimeIdentifier.StartsWith('win'))">lib
+
+ <_NativeLibraryExtension Condition="'$(_NativeLibraryExtension)' == '' and $(RuntimeIdentifier.StartsWith('win'))">.dll
+ <_NativeLibraryExtension Condition="'$(_NativeLibraryExtension)' == '' and $(RuntimeIdentifier.StartsWith('osx'))">.dylib
+ <_NativeLibraryExtension Condition="'$(_NativeLibraryExtension)' == ''">.so
+
+ <_NativeExecutableExtension Condition="'$(_NativeExecutableExtension)' == '' and ($(RuntimeIdentifier.StartsWith('win')) or $(DefaultAppHostRuntimeIdentifier.StartsWith('win')))">.exe
+ <_ComHostLibraryExtension Condition="'$(_ComHostLibraryExtension)' == '' and ($(RuntimeIdentifier.StartsWith('win')) or $(DefaultAppHostRuntimeIdentifier.StartsWith('win')))">.dll
+ <_IjwHostLibraryExtension Condition="'$(_IjwHostLibraryExtension)' == '' and ($(RuntimeIdentifier.StartsWith('win')) or $(DefaultAppHostRuntimeIdentifier.StartsWith('win')))">.dll
+
+ <_DotNetHostExecutableName>dotnet$(_NativeExecutableExtension)
+ <_DotNetAppHostExecutableNameWithoutExtension>apphost
+ <_DotNetAppHostExecutableName>$(_DotNetAppHostExecutableNameWithoutExtension)$(_NativeExecutableExtension)
+
+ <_DotNetSingleFileHostExecutableNameWithoutExtension>singlefilehost
+ <_DotNetComHostLibraryNameWithoutExtension>comhost
+ <_DotNetComHostLibraryName>$(_DotNetComHostLibraryNameWithoutExtension)$(_ComHostLibraryExtension)
+ <_DotNetIjwHostLibraryNameWithoutExtension>Ijwhost
+ <_DotNetIjwHostLibraryName>$(_DotNetIjwHostLibraryNameWithoutExtension)$(_IjwHostLibraryExtension)
+ <_DotNetHostPolicyLibraryName>$(_NativeLibraryPrefix)hostpolicy$(_NativeLibraryExtension)
+ <_DotNetHostFxrLibraryName>$(_NativeLibraryPrefix)hostfxr$(_NativeLibraryExtension)
+
+
+
+
+
+
+
+
+ <_ExcludeFromPublishPackageReference Include="@(PackageReference)"
+ Condition="('%(PackageReference.Publish)' == 'false')" />
+
+
+
+
+
+
+
+ Microsoft.NETCore.App
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.SourceLink.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.SourceLink.props
new file mode 100644
index 0000000000000000000000000000000000000000..9087985d63372d7ffc98dfeca0cd7872860e2012
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.SourceLink.props
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ true
+
+ <_SourceLinkPropsImported>true
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.SourceLink.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.SourceLink.targets
new file mode 100644
index 0000000000000000000000000000000000000000..320acfa3cc39b85a044289742b9286dc72b0d7ec
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.SourceLink.targets
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
+ <_SourceLinkSdkSubDir>build
+ <_SourceLinkSdkSubDir Condition="'$(IsCrossTargetingBuild)' == 'true'">buildMultiTargeting
+
+
+ true
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.VisualBasic.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.VisualBasic.props
new file mode 100644
index 0000000000000000000000000000000000000000..c7e6dc0129ccf16290af00ef86c42492a2aadadb
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.VisualBasic.props
@@ -0,0 +1,34 @@
+
+
+
+
+ 1
+ 41999,42016,42017,42018,42019,42020,42021,42022,42032,42036
+ On
+ Binary
+ Off
+ On
+
+
+ $(WarningsAsErrors);NU1605
+
+
+
+ true
+ true
+
+
+ true
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.VisualBasic.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.VisualBasic.targets
new file mode 100644
index 0000000000000000000000000000000000000000..8fb4b359931cd514785b51ab308cdeed0779be56
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.VisualBasic.targets
@@ -0,0 +1,148 @@
+
+
+
+ $(DisableImplicitFrameworkReferences)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(Configuration.ToUpperInvariant())
+
+
+
+ $(ImplicitConfigurationDefine.Replace('-', '_'))
+ $(ImplicitConfigurationDefine.Replace('.', '_'))
+ $(ImplicitConfigurationDefine.Replace(' ', '_'))
+
+
+
+
+ $(FinalDefineConstants),$(VersionlessImplicitFrameworkDefine)=-1
+ $(FinalDefineConstants),$(ImplicitFrameworkDefine)=-1
+ $(FinalDefineConstants),$(BackwardsCompatFrameworkDefine)=-1
+ $(FinalDefineConstants),$(ImplicitConfigurationDefine)=-1
+
+
+
+
+
+ true
+
+
+
+ Embed
+
+
+
+
+ true
+
+
+ $(FinalDefineConstants),_MyType="Empty"
+
+
+
+
+
+
+
+
+
+ $(WarningsAsErrors);SYSLIB0011
+
+
+
+
+
+ %(ReferencePath.Identity)
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Workloads.CrossTargeting.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Workloads.CrossTargeting.targets
new file mode 100644
index 0000000000000000000000000000000000000000..aab74e99f23b599b1fe79df10fbae69d13790c06
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.Workloads.CrossTargeting.targets
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.props
new file mode 100644
index 0000000000000000000000000000000000000000..f996aa51b9d2cf1bcc30afb66572a5b7e975fc85
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.props
@@ -0,0 +1,172 @@
+
+
+
+
+
+ true
+
+
+
+
+ Debug;Release
+ AnyCPU
+ Debug
+ AnyCPU
+
+
+
+
+
+ true
+
+
+
+
+ Library
+ 512
+ prompt
+ $(MSBuildProjectName)
+ $(MSBuildProjectName.Replace(" ", "_"))
+ true
+
+
+
+
+
+ true
+ false
+
+
+ true
+
+
+
+
+
+
+ <_PlatformWithoutConfigurationInference>$(Platform)
+
+
+ x64
+
+
+ x86
+
+
+ ARM
+
+
+ arm64
+
+
+
+
+
+
+ {CandidateAssemblyFiles}
+ $(AssemblySearchPaths);{HintPathFromItem}
+ $(AssemblySearchPaths);{TargetFrameworkDirectory}
+ $(AssemblySearchPaths);{RawFileName}
+
+
+
+ portable
+
+
+ false
+
+
+ true
+ true
+
+
+ PackageReference
+
+ $(AssemblySearchPaths)
+
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ false
+ true
+ 1.0.3
+ false
+ true
+ true
+
+
+
+
+
+
+
+ $(MSBuildThisFileDirectory)GenerateDeps\GenerateDeps.proj
+
+
+
+
+
+
+
+ <__DisableWorkloadResolverSentinelPath Condition="'$(MSBuildRuntimeType)' == 'Core'">$(MSBuildBinPath)\DisableWorkloadResolver.sentinel
+ <__DisableWorkloadResolverSentinelPath Condition="'$(MSBuildRuntimeType)' != 'Core'">$(MSBuildBinPath)\SdkResolvers\Microsoft.DotNet.MSBuildSdkResolver\DisableWorkloadResolver.sentinel
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets
new file mode 100644
index 0000000000000000000000000000000000000000..12efe3e4ec525fdc4223050210f880fe515d269c
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.targets
@@ -0,0 +1,1356 @@
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(_IsNETCoreOrNETStandard)
+
+
+
+ true
+ false
+ true
+ $(MSBuildProjectDirectory)/runtimeconfig.template.json
+ true
+ true
+ <_GenerateRuntimeConfigurationPropertyInputsCache Condition="'$(_GenerateRuntimeConfigurationPropertyInputsCache)' == ''">$(IntermediateOutputPath)$(MSBuildProjectName).genruntimeconfig.cache
+ <_GenerateRuntimeConfigurationPropertyInputsCache>$([MSBuild]::NormalizePath($(MSBuildProjectDirectory), $(_GenerateRuntimeConfigurationPropertyInputsCache)))
+ <_GeneratePublishDependencyFilePropertyInputsCache Condition="'$(_GeneratePublishDependencyFilePropertyInputsCache)' == ''">$(IntermediateOutputPath)$(MSBuildProjectName).genpublishdeps.cache
+ <_GeneratePublishDependencyFilePropertyInputsCache>$([MSBuild]::NormalizePath($(MSBuildProjectDirectory), $(_GeneratePublishDependencyFilePropertyInputsCache)))
+ <_GenerateSingleFileBundlePropertyInputsCache Condition="'$(_GenerateSingleFileBundlePropertyInputsCache)' == ''">$(IntermediateOutputPath)$(MSBuildProjectName).genbundle.cache
+ <_GenerateSingleFileBundlePropertyInputsCache>$([MSBuild]::NormalizePath($(MSBuildProjectDirectory), $(_GenerateSingleFileBundlePropertyInputsCache)))
+
+
+
+
+ <_UseRidGraphWasSpecified Condition="'$(UseRidGraph)' != ''">true
+
+
+ false
+ true
+
+
+
+ $(BundledRuntimeIdentifierGraphFile)
+
+
+ $([System.IO.Path]::GetDirectoryName($(BundledRuntimeIdentifierGraphFile)))/PortableRuntimeIdentifierGraph.json
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ false
+
+
+
+ $(AssemblyName).deps.json
+ $(TargetDir)$(ProjectDepsFileName)
+ $(AssemblyName).runtimeconfig.json
+ $(TargetDir)$(ProjectRuntimeConfigFileName)
+ $(TargetDir)$(AssemblyName).runtimeconfig.dev.json
+ true
+
+
+
+
+
+ <_DefaultUserProfileRuntimeStorePath>$(HOME)
+ <_DefaultUserProfileRuntimeStorePath Condition="$([MSBuild]::IsOSPlatform(`Windows`))">$(USERPROFILE)
+ <_DefaultUserProfileRuntimeStorePath>$([System.IO.Path]::Combine($(_DefaultUserProfileRuntimeStorePath), '.dotnet', 'store'))
+ $(_DefaultUserProfileRuntimeStorePath)
+
+
+
+ true
+
+
+
+ true
+
+
+
+
+ false
+ true
+
+
+
+
+ true
+
+
+
+ true
+
+
+
+ $(AvailablePlatforms),ARM32
+
+
+
+ $(AvailablePlatforms),ARM64
+
+
+
+ $(AvailablePlatforms),ARM64
+
+
+
+
+ false
+
+
+
+
+ true
+
+
+
+
+
+
+ <_ProjectTypeRequiresBinaryFormatter Condition="'$(UseWindowsForms)' == 'true' AND $([MSBuild]::VersionLessThanOrEquals($(TargetFrameworkVersion), '8.0'))">true
+ <_ProjectTypeRequiresBinaryFormatter Condition="'$(UseWPF)' == 'true' AND $([MSBuild]::VersionLessThanOrEquals($(TargetFrameworkVersion), '8.0'))">true
+
+ <_BinaryFormatterObsoleteAsError>true
+
+ true
+ false
+
+
+
+
+ _CheckForBuildWithNoBuild;
+ $(CoreBuildDependsOn);
+ GenerateBuildDependencyFile;
+ GenerateBuildRuntimeConfigurationFiles
+
+
+
+
+
+ _SdkBeforeClean;
+ $(CoreCleanDependsOn)
+
+
+
+
+
+ _SdkBeforeRebuild;
+ $(RebuildDependsOn)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.0.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ValidRuntimeIdentifierPlatformsForAssets Include="@(_KnownRuntimeIdentiferPlatforms)" />
+
+ <_ValidRuntimeIdentifierPlatformsForAssets Include="@(_KnownRuntimeIdentifierPlatformsForTargetFramework)" Exclude="@(_ExcludedKnownRuntimeIdentiferPlatforms)"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_GenerateRuntimeConfigurationPropertyInputsCacheToHash Include="@(AdditionalProbingPath->'%(Identity)')"/>
+ <_GenerateRuntimeConfigurationPropertyInputsCacheToHash Include="$(EnableDynamicLoading)"/>
+ <_GenerateRuntimeConfigurationPropertyInputsCacheToHash Include="$(RollForward)"/>
+ <_GenerateRuntimeConfigurationPropertyInputsCacheToHash Include="@(RuntimeHostConfigurationOption->'%(Identity)%(Value)')"/>
+ <_GenerateRuntimeConfigurationPropertyInputsCacheToHash Include="$(RuntimeIdentifier)"/>
+ <_GenerateRuntimeConfigurationPropertyInputsCacheToHash Include="$(SelfContained)"/>
+ <_GenerateRuntimeConfigurationPropertyInputsCacheToHash Include="$(TargetFramework)"/>
+ <_GenerateRuntimeConfigurationPropertyInputsCacheToHash Include="$(UserRuntimeConfig)"/>
+ <_GenerateRuntimeConfigurationPropertyInputsCacheToHash Include="$(_WriteIncludedFrameworks)"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_IsRollForwardSupported Condition="'$(_TargetFrameworkVersionWithoutV)' >= '3.0'">true
+ LatestMinor
+
+
+
+
+
+
+ <_WriteIncludedFrameworks Condition="'$(SelfContained)' == 'true' and '$(_TargetFrameworkVersionWithoutV)' >= '3.1'">true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CleaningWithoutRebuilding>true
+ false
+
+
+
+
+
+ <_CleaningWithoutRebuilding>false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(CompileDependsOn);
+ _CreateAppHost;
+ _CreateComHost;
+ _GetIjwHostPaths;
+
+
+
+
+
+
+
+ <_UseWindowsGraphicalUserInterface Condition="($(RuntimeIdentifier.StartsWith('win')) or $(DefaultAppHostRuntimeIdentifier.StartsWith('win'))) and '$(OutputType)'=='WinExe'">true
+ <_EnableMacOSCodeSign Condition="'$(_EnableMacOSCodeSign)' == '' and $([MSBuild]::IsOSPlatform(`OSX`)) and Exists('/usr/bin/codesign') and
+ ($(RuntimeIdentifier.StartsWith('osx')) or $(AppHostRuntimeIdentifier.StartsWith('osx')))">true
+
+
+
+
+
+
+
+
+ $(SingleFileHostSourcePath)
+ $([System.IO.Path]::GetFullPath('$(IntermediateOutputPath)singlefilehost$(_NativeExecutableExtension)'))
+
+
+
+
+
+
+
+
+
+
+ @(_NativeRestoredAppHostNETCore)
+
+
+ $([System.IO.Path]::GetFullPath('$(IntermediateOutputPath)apphost$(_NativeExecutableExtension)'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(AssemblyName).comhost$(_ComHostLibraryExtension)
+ $([System.IO.Path]::GetFullPath('$(IntermediateOutputPath)$(ComHostFileName)'))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CopyAndRenameDotnetHost Condition="'$(_CopyAndRenameDotnetHost)' == ''">true
+
+
+
+ $(AssemblyName)$(_NativeExecutableExtension)
+ PreserveNewest
+ PreserveNewest
+
+
+
+
+
+
+
+ PreserveNewest
+ Never
+
+
+
+
+ $(AssemblyName)$(_NativeExecutableExtension)
+ PreserveNewest
+
+ Always
+
+
+
+
+
+ $(AssemblyName).$(_DotNetComHostLibraryName)
+ PreserveNewest
+ PreserveNewest
+
+
+ %(FileName)%(Extension)
+ PreserveNewest
+ PreserveNewest
+
+
+
+
+
+
+ $(_DotNetIjwHostLibraryName)
+ PreserveNewest
+ PreserveNewest
+
+
+
+
+
+
+
+
+ <_FrameworkReferenceAssemblies Include="@(ReferencePath)"
+ Condition="(%(ReferencePath.FrameworkFile) == 'true' or
+ %(ReferencePath.ResolvedFrom) == 'ImplicitlyExpandDesignTimeFacades')
+ and ('%(ReferencePath.NuGetSourceType)' == '' or
+ '%(ReferencePath.NuGetIsFrameworkReference)' == 'true')" />
+
+
+ <_ReferenceOnlyAssemblies Include="@(ReferencePath)"
+ Exclude="@(_FrameworkReferenceAssemblies)"
+ Condition="%(ReferencePath.CopyLocal) != 'true' and
+ %(ReferencePath.NuGetSourceType) == ''" />
+
+ <_ReferenceAssemblies Include="@(_FrameworkReferenceAssemblies)" />
+ <_ReferenceAssemblies Include="@(_ReferenceOnlyAssemblies)" />
+
+
+
+
+
+
+
+
+ true
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ $(StartWorkingDirectory)
+
+
+
+
+
+ $(StartProgram)
+ $(StartArguments)
+
+
+
+
+
+
+ dotnet
+
+ <_NetCoreRunArguments>exec "$(TargetPath)"
+ $(_NetCoreRunArguments) $(StartArguments)
+ $(_NetCoreRunArguments)
+
+
+
+ $(TargetDir)$(AssemblyName)$(_NativeExecutableExtension)
+ $(StartArguments)
+
+
+
+
+
+ $(TargetPath)
+ $(StartArguments)
+
+
+ mono
+ "$(TargetPath)" $(StartArguments)
+
+
+
+
+
+
+ $([System.IO.Path]::GetFullPath($([System.IO.Path]::Combine('$(MSBuildProjectDirectory)', '$(RunWorkingDirectory)'))))
+
+
+
+
+
+
+
+
+
+
+ $(CreateSatelliteAssembliesDependsOn);
+ CoreGenerateSatelliteAssemblies
+
+
+
+
+
+
+
+
+
+
+ <_AssemblyInfoFile>$(IntermediateOutputPath)%(_SatelliteAssemblyResourceInputs.Culture)\$(TargetName).resources.cs
+ <_OutputAssembly>$(IntermediateOutputPath)%(_SatelliteAssemblyResourceInputs.Culture)\$(TargetName).resources.dll
+
+
+
+
+ <_Parameter1>%(_SatelliteAssemblyResourceInputs.Culture)
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(TargetFrameworkIdentifier)
+ $(_TargetFrameworkVersionWithoutV)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+ false
+
+
+
+
+ false
+
+
+
+
+
+
+ <_UseAttributeForTargetFrameworkInfoPropertyNames Condition="$([MSBuild]::VersionGreaterThanOrEquals($(MSBuildVersion), '17.0'))">true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+
+
+ $(AfterMicrosoftNETSdkTargets);$(MSBuildThisFileDirectory)../../Microsoft.NET.Sdk.WindowsDesktop/targets/Microsoft.NET.Sdk.WindowsDesktop.targets
+
+
+
+
+
+
+
+
+
+
+
+
+ 0.0
+ $(TargetPlatformIdentifier),Version=$(TargetPlatformVersion)
+ $([Microsoft.Build.Utilities.ToolLocationHelper]::GetPlatformSDKDisplayName($(TargetPlatformIdentifier), $(TargetPlatformVersion)))
+
+
+
+
+ $(TargetPlatformVersion)
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.SupportedPlatforms.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.SupportedPlatforms.props
new file mode 100644
index 0000000000000000000000000000000000000000..96f502370534d1659adee04c5c620ebe917fba65
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.SupportedPlatforms.props
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.SupportedTargetFrameworks.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.SupportedTargetFrameworks.props
new file mode 100644
index 0000000000000000000000000000000000000000..33da2fa2deba4879a044ecabb24d98ef49aead41
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.SupportedTargetFrameworks.props
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 9.0
+ 17.8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets
new file mode 100644
index 0000000000000000000000000000000000000000..63544385ab921d42682e5ed097b4b1cc17e6aac9
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.TargetFrameworkInference.targets
@@ -0,0 +1,256 @@
+
+
+
+
+
+
+
+
+
+
+
+ $([MSBuild]::GetTargetFrameworkIdentifier('$(TargetFramework)'))
+ v$([MSBuild]::GetTargetFrameworkVersion('$(TargetFramework)', 2))
+
+
+
+ <_TargetFrameworkVersionWithoutV>$(TargetFrameworkVersion.TrimStart('vV'))
+
+
+
+
+ $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)'))
+ $([MSBuild]::GetTargetPlatformVersion('$(TargetFramework)', 4))
+ $([MSBuild]::GetTargetPlatformVersion('$(TargetFramework)', 2))
+
+
+ Windows
+
+
+
+
+ <_UnsupportedTargetFrameworkError>true
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ v0.0
+
+
+ _
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_EnableDefaultWindowsPlatform>false
+ false
+
+
+
+ 2.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ValidTargetPlatformVersion Include="@(SdkSupportedTargetPlatformVersion)" Condition="'@(SdkSupportedTargetPlatformVersion)' != '' and $([MSBuild]::VersionEquals(%(Identity), $(TargetPlatformVersion)))" />
+
+
+
+ @(_ValidTargetPlatformVersion->Distinct())
+
+
+
+
+
+ true
+ <_ValidTargetPlatformVersions Condition="'@(SdkSupportedTargetPlatformVersion)' != ''" >@(SdkSupportedTargetPlatformVersion, '%0a')
+ <_ValidTargetPlatformVersions Condition="'@(SdkSupportedTargetPlatformVersion)' == ''" >None
+
+
+
+
+
+
+
+
+
+ true
+ true
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Windows.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Windows.props
new file mode 100644
index 0000000000000000000000000000000000000000..7df456e337ce2794ac9359ddbec3a5d00b16b5b1
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Windows.props
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+ true
+
+
+ <_TargetFrameworkVersionValue>0.0
+ <_WindowsDesktopSdkTargetFrameworkVersionFloor>3.0
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Windows.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Windows.targets
new file mode 100644
index 0000000000000000000000000000000000000000..bfa36969b452b97c26c30c3adae6e870c62accd9
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Windows.targets
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+
+ 7.0
+
+
+
+
+ $(TargetPlatformMinVersion)
+ $(SupportedOSPlatformVersion)
+
+
+ $(TargetPlatformVersion)
+ $(TargetPlatformVersion)
+
+
+
+
+ <_WindowsSDKUnresolvedRef Include="@(ResolveAssemblyReferenceUnresolvedAssemblyConflicts)" Condition="'%(Identity)' == 'Microsoft.Windows.SDK.NET' " />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ResolvedProjectReferencePaths Remove="@(_ResolvedProjectReferencePaths)"
+ Condition="('%(_ResolvedProjectReferencePaths.Extension)' == '.winmd') And ('%(_ResolvedProjectReferencePaths.Implementation)' == 'WinRT.Host.dll')"
+ />
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.WindowsSdkSupportedTargetPlatforms.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.WindowsSdkSupportedTargetPlatforms.props
new file mode 100644
index 0000000000000000000000000000000000000000..5e82f9f657921f52b0efc896ee6c88bd4ad900f8
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.WindowsSdkSupportedTargetPlatforms.props
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets
new file mode 100644
index 0000000000000000000000000000000000000000..a8097e29a76a908df0cb7ece7e53b3bac282a179
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolution.targets
@@ -0,0 +1,546 @@
+
+
+
+
+
+
+
+ $(MSBuildProjectExtensionsPath)/project.assets.json
+ $([MSBuild]::NormalizePath($(MSBuildProjectDirectory), $(ProjectAssetsFile)))
+
+
+ $(IntermediateOutputPath)$(MSBuildProjectName).assets.cache
+ $([MSBuild]::NormalizePath($(MSBuildProjectDirectory), $(ProjectAssetsCacheFile)))
+
+
+ false
+
+
+ false
+
+
+ true
+
+ $(IntermediateOutputPath)NuGet\
+
+ true
+ $(TargetPlatformIdentifier),Version=v$([System.Version]::Parse('$(TargetPlatformMinVersion)').ToString(3))
+ $(TargetFrameworkMoniker)
+
+ true
+
+
+ false
+
+
+ true
+
+
+
+
+ <_NugetTargetMonikerAndRID Condition="'$(RuntimeIdentifier)' == ''">$(NuGetTargetMoniker)
+ <_NugetTargetMonikerAndRID Condition="'$(RuntimeIdentifier)' != ''">$(NuGetTargetMoniker)/$(RuntimeIdentifier)
+
+
+
+
+
+
+
+
+
+
+
+ $(ResolveAssemblyReferencesDependsOn);
+ ResolvePackageDependenciesForBuild;
+ _HandlePackageFileConflicts;
+
+
+
+ ResolvePackageDependenciesForBuild;
+ _HandlePackageFileConflicts;
+ $(PrepareResourcesDependsOn)
+
+
+
+
+
+
+ $(RootNamespace)
+
+
+ $(AssemblyName)
+
+
+ $(MSBuildProjectDirectory)
+
+
+ $(TargetFileName)
+
+
+ $(MSBuildProjectFile)
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+ ResolveLockFileReferences;
+ ResolveLockFileAnalyzers;
+ ResolveLockFileCopyLocalFiles;
+ ResolveRuntimePackAssets;
+ RunProduceContentAssets;
+ IncludeTransitiveProjectReferences
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RoslynApiVersion>$([System.Version]::Parse(%(_CodeAnalysisIdentity.Version)).Major).$([System.Version]::Parse(%(_CodeAnalysisIdentity.Version)).Minor)
+ roslyn$(_RoslynApiVersion)
+
+
+
+
+
+
+
+
+ false
+
+
+ true
+
+
+
+ true
+
+
+
+
+ true
+
+
+
+ <_PackAsToolShimRuntimeIdentifiers Condition="@(_PackAsToolShimRuntimeIdentifiers) ==''" Include="$(PackAsToolShimRuntimeIdentifiers)"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_NativeRestoredAppHostNETCore Include="@(NativeCopyLocalItems)"
+ Condition="'%(NativeCopyLocalItems.FileName)%(NativeCopyLocalItems.Extension)' == '$(_DotNetAppHostExecutableName)'"/>
+
+
+
+ <_ApphostsForShimRuntimeIdentifiers Include="@(_ApphostsForShimRuntimeIdentifiersResolvePackageAssets)"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ResolvedCopyLocalBuildAssets Include="@(RuntimeCopyLocalItems)"
+ Condition="'%(RuntimeCopyLocalItems.CopyLocal)' == 'true'" />
+ <_ResolvedCopyLocalBuildAssets Include="@(ResourceCopyLocalItems)"
+ Condition="'%(ResourceCopyLocalItems.CopyLocal)' == 'true'" />
+
+ <_ResolvedCopyLocalBuildAssets Include="@(NativeCopyLocalItems)"
+ Exclude="@(_NativeRestoredAppHostNETCore)"
+ Condition="'%(NativeCopyLocalItems.CopyLocal)' == 'true'" />
+ <_ResolvedCopyLocalBuildAssets Include="@(RuntimeTargetsCopyLocalItems)"
+ Condition="'%(RuntimeTargetsCopyLocalItems.CopyLocal)' == 'true'" />
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolutionStubs.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolutionStubs.targets
new file mode 100644
index 0000000000000000000000000000000000000000..66a14fede9a1c6010746b2cf9072fc5b97201b17
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/targets/Microsoft.PackageDependencyResolutionStubs.targets
@@ -0,0 +1,33 @@
+
+
+
+
+
+ $(ResolveAssemblyReferencesDependsOn);
+ _HandlePackageFileConflicts;
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.Bcl.AsyncInterfaces.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.Bcl.AsyncInterfaces.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6031ba1e94835abd1d276b9700394dbafeb2b46c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.Bcl.AsyncInterfaces.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.Deployment.DotNet.Releases.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.Deployment.DotNet.Releases.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6107083022add413da5c8c3f2225ed97c61d733a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.Deployment.DotNet.Releases.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.DotNet.ApiCompat.Task.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.DotNet.ApiCompat.Task.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b4c7e49367d671efe390531cdd52e083eba11e36
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.DotNet.ApiCompat.Task.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.DotNet.ApiCompatibility.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.DotNet.ApiCompatibility.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5c4940b0fc9abe83830464ff0e646052d5c5c119
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.DotNet.ApiCompatibility.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.DotNet.ApiSymbolExtensions.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.DotNet.ApiSymbolExtensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5c329d9d9cbab695254382fe718393366cc02d7a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.DotNet.ApiSymbolExtensions.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.DotNet.PackageValidation.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.DotNet.PackageValidation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a6d9768f69de3ae82049033838923d7a583595a8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.DotNet.PackageValidation.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.Extensions.DependencyModel.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.Extensions.DependencyModel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..388257069e137f9774591c4e5e86403018effe4f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.Extensions.DependencyModel.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.NET.Build.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.NET.Build.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..54eccc375a8119a246b1d627380297032b69a8fa
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.NET.Build.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.NET.Build.Tasks.dll.config b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.NET.Build.Tasks.dll.config
new file mode 100644
index 0000000000000000000000000000000000000000..34a97ed15e8ca8c55990bc3272d5d5965fa5a50a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.NET.Build.Tasks.dll.config
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.NET.HostModel.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.NET.HostModel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d5e99bab05a96a6ffc486f133194f3b25a0bc924
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Microsoft.NET.HostModel.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Newtonsoft.Json.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Newtonsoft.Json.dll
new file mode 100644
index 0000000000000000000000000000000000000000..341d08fc8b7ea5cda1f12b3d2756b539e1f94ed0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/Newtonsoft.Json.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Common.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Common.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8b05067c3ec9028728591f3bbdf2cb1c4007cb92
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Common.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Configuration.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Configuration.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d97733f0b72ceeceefffceb0c0f55a17f3a1fb65
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Configuration.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.DependencyResolver.Core.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.DependencyResolver.Core.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d0e688cc700e8516bd4150735e8cba1c13c34cc7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.DependencyResolver.Core.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Frameworks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Frameworks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..33d34ac4efbc7b192391ab69ac53c097b6d1d29b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Frameworks.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.LibraryModel.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.LibraryModel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c00a842fcb4ea1dcae8b4edd21e20ff746a81129
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.LibraryModel.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Packaging.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Packaging.dll
new file mode 100644
index 0000000000000000000000000000000000000000..660aa442c02ac7f858e3470fca9bc4460a8a6d26
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Packaging.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.ProjectModel.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.ProjectModel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e536c0ff796c10657d58bdee8ac24318cedf8341
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.ProjectModel.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Protocol.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Protocol.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ef980210d1fbc99d4aa438d2a7af03a8159d8bf1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Protocol.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Versioning.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Versioning.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9a5e1ca780ea8f578571919a41c023669cfb482d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/NuGet.Versioning.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Buffers.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Buffers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f2d83c51416e90dbc31154545b16df3b3f7a7909
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Buffers.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Collections.Immutable.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Collections.Immutable.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ad944dff1cf2f5d8dfa21731223ae29980b2e84c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Collections.Immutable.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Memory.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Memory.dll
new file mode 100644
index 0000000000000000000000000000000000000000..46171997966f26bda11e58586c51b2817bde5cca
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Memory.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Numerics.Vectors.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Numerics.Vectors.dll
new file mode 100644
index 0000000000000000000000000000000000000000..08659724d4f8534ee97a543e93dd6d3c702fcd15
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Numerics.Vectors.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Reflection.Metadata.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Reflection.Metadata.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3abdc4448cebe548d113b77a254af1c68e8ae83d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Reflection.Metadata.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Reflection.MetadataLoadContext.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Reflection.MetadataLoadContext.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ec437a1e7b8a455906562afc377138dc2fea3c49
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Reflection.MetadataLoadContext.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Runtime.CompilerServices.Unsafe.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c5ba4e4047a15b3adc61340c781307d9c6e89413
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Text.Encodings.Web.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Text.Encodings.Web.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3d16c7e9d86d760e037853648c40c16a1ac9860d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Text.Encodings.Web.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Text.Json.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Text.Json.dll
new file mode 100644
index 0000000000000000000000000000000000000000..81822f3947cf5b01545340aa0a61a6657ff4bf76
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Text.Json.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Threading.Tasks.Extensions.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..eeec92852705946904d0e2fa0443d454075781f5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.Threading.Tasks.Extensions.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.ValueTuple.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.ValueTuple.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4ce28fdeac6da139573ed0ff356c2df510692cee
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/System.ValueTuple.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..83d96ed0571a9d2d1280821b349f3babc068d27e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..aed55b5120f2cd2c6ffaa8d3960371c573b0d8c5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3c4a41de1c9b1f60714248ec0b7103609c0bef08
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ccf7e6c2da01bfc18afee1781644a7299b4afbed
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1380781295a08bc22dc58f0438444291d5ba6ce4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..01adf4e1129719f09872eea22f422deb8ea52ae3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/cs/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5a409a1fdd8fd0432748a551c3f84e7f6c7250f9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..be4849f4bbc99a2133d7ad7a783817eaf8b20cb3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b1680bd4efc43be44c328c16c34bf848caeb2f39
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..72f55f56ecb149eaa30e58c58ecd6fe30ca52e94
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..73a5e8780dbe5f0676450ed2787a811c7c8ec22e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..79195c464d4d0a9dde2c5a4ca93977ca08cde211
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/de/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4d4aa038d84099ebe2e30231585d4b906deda7a5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8bfa3cfa9eb5f0545fc6112ff130f851801b8010
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b39ba51b498f494da69fe780bfabadafa589587f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5e01b62e0201beedf82ef2bd028bc3eac72d2ce6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ec6e10010c04e8b899030c6de89f3a31264a2b18
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8d3e5a35e1e4d586d9de653c7bd84b01215d4213
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/es/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ca0bd9c49af68dee0d0abedbf6344e220f6c9353
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a5f2a2792b6292fac71912572dd7edf18e0d61a3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..025aa2a56eb1d042ee11f436ae5cc47eb95aabea
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..82ec20f4085fe5a2a0ec4159a4029cfcbe0214d3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ebbcf253a86684812c01fa19477f57fd399619b5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9d58cf2f0334bbe15016ad1808baba9240771fd4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/fr/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b50f618ba21ae4c0871892c8789f5a719ac2c35f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..446fe6ff7e4f3630c2a459cc524c7e2047f1cee3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..58cca6d3f99cb44eea1126efe1dddcc048d8fa56
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7788afde3ab4047f2f9d1591ea0e26edb1cc3f51
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..182592a334159f0014ac212b8a56cb837968d560
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d916daebffa56688ef9f8c032d8ea051bc918888
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/it/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e2a7f96d9f844865d3ba34f1b9d4fcf3d5e997bb
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c01caa1310f7db7889d7d088dc4994a7ad26cf38
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5f17f94e5a26cc7f5fa5598c84fe6b200355d03a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8f48dd2f4106d40ea044c23734b6d11870e96421
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2e7a4ea91aee03b5ccd6dc2f9480b5e0d5c95d10
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9ac4692b1828608d6b38c39ce90b039e3973ec2a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ja/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..648fb4f04503244fea753b91d84b8dbb9a3b1348
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3024445781d7b8a88a81fdf3c1fe4af1a97fd85d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cf4253dcefd6dd75475ec565beed978663b2b5ab
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..92919ddfaff23db55a464076cc2bef816d35a927
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3dea4537c20c7c5b63be7718dcaf7d3a6e980db2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a4413dba26306631f9b367a55594b3db7ac4607a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ko/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..aed8a59f33889189206cb57c1ccfa409526d370e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e8ed0f968ee66722bed5c7ab90b7edc22fa121ce
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..76e5293e083dfb00ab80e0569ff012e19f516f45
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0c64aa0dde6906e30ab750ca1704ef0ffc918694
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a1a92767f63fc40c37cdf29b689303503ff4ee82
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dd5e392d45d455ebfaee57064d0502decbe1d8b8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pl/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..351efa2472b2047bd3fa809ce3ff80defbc1161a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f4e86743fe450dfdb4c16e16729c267e59959378
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f745772796a3e5f4e2ccc25748a011857298bf9e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1fb9187c6584f0f6a031be6a516ca391dceda830
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8dab287730f37dcc1aaa8990c65a90865c439e90
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..78162ceac95755c88bf562d4c47ef2beef616099
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/pt-BR/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b0d086c2418ccb69f5f880c7a6395724f60a02db
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c60552785f0ffdba78c0a88b8d67de5a5fd26e4a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8570f4caba3af6192de676b5c96720d7739934ed
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7c5d5e7a62171532e31d5b2f4025368e8de9a6b0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e8b3cc65df16e02c13b44a533442d4ff3bf0b710
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ffcbaa315eebdab5c48fca291abe0f2c26efa8c0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/ru/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b68a2df1a9c8abcdd01e828b277565ac7b8765f2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..579cd422b6b6961c547a1907d78e5f8df75793fb
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..940bb675275d2aa77375a4d131926f4900c599e9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..56cfe86f94889b78278044e9382b5dcb7d294fb1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..16f839b9e949060fdadc7c421a7cbad18cfcbea0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1fbeef93e954006edfb92306b90e0801cb12883c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/tr/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..37701c0518234966d63993fc87173235f3061331
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1b7796895ec8d9cf9815ceadf5bb70a5847560b7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..18c0aea878ad59768890594a88d31dc2b10a29ec
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e25cb916e10bf63ab1a3c8cb5dd8a5489f335505
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2ca992eda61e3f48dde5a7082bcc6763d8e9057f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..eb669ff3e7da6b45405330c3cf286b3bd606bd87
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hans/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2670c5b5ba15b6cde9f3fd446258c4aee940728c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a9b0369996d18f13826d4e86c4247f85014dde2f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..192b9b02f732bfd96e26bf0c21f1d573281786f5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b86d728d0a76f46723d628a843f5e616eae34ca9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7e1228c09e50df5803514d1ccb173303474e83f5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dc981d6345fce5b3b9eda2e57917c64c630fdcad
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net472/zh-Hant/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.Deployment.DotNet.Releases.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.Deployment.DotNet.Releases.dll
new file mode 100644
index 0000000000000000000000000000000000000000..679119ba0b9858930d45818ff99bb23a28942b5f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.Deployment.DotNet.Releases.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.DotNet.ApiCompat.Task.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.DotNet.ApiCompat.Task.dll
new file mode 100644
index 0000000000000000000000000000000000000000..be1b70238b475755e03f2eec4151792c623a5b60
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.DotNet.ApiCompat.Task.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.DotNet.ApiCompatibility.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.DotNet.ApiCompatibility.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3f84fe3a77a6341076a2c8c195354090e6c1bfad
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.DotNet.ApiCompatibility.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.DotNet.ApiSymbolExtensions.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.DotNet.ApiSymbolExtensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..62cb9fc87c948381f9e9cbb79a5782964c5c92b5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.DotNet.ApiSymbolExtensions.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.DotNet.PackageValidation.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.DotNet.PackageValidation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..33b1f777f9d9f0c3d2ae6981ca4f7d041ffa2d54
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.DotNet.PackageValidation.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.NET.Build.Tasks.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.NET.Build.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..090e296d4e17872903b4aebbe77c1104916005a1
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/Microsoft.NET.Build.Tasks.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0f81ad46c2175eb8e1d3120bbb4741eae47b29952d1d3fb774b35add1796490e
+size 1160192
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..83d96ed0571a9d2d1280821b349f3babc068d27e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..60d3aa64ca637d866938d0d98f254fe974b27e9e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bb66cfd94a6bcd2c6fbb0703bc1f84477273027d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b0028062ebdbfabe867951e0e7d785f9e775a6de
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b242c75c60cb54da4eb1fbcf3721bfddb85822e8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e2f7eae450d7b1c26197dbce7a63502c7916bc2e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/cs/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5a409a1fdd8fd0432748a551c3f84e7f6c7250f9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8b2fe79e3965b2d488e0b9689916d5a56e233fc5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3faccb4823740e8640ad661292bdb44726d3a52d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fabe5e6259fa027eafd2f5850fd10bf596c04997
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e3e70d7ea46b9eebe3cbba4f559e7b1066c43c5d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4ef9513cd0d7d2f7a17be78dd1562199afc1f46f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/de/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4d4aa038d84099ebe2e30231585d4b906deda7a5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cbdfa1d71a20ab01063c2ad8baafd5ed51e2f389
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..85a9b0629d12be54f976bc34a5155e5ae19587e8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..05f29e344c743aa9f7bf672f8e27ef8d1a966af8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c2c359160f1f7b01d76a1088c8170f8d9874e6f6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d8eeceda7204d894300489fc4025725936606b6b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/es/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ca0bd9c49af68dee0d0abedbf6344e220f6c9353
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..825f3b9be75772b50effc564d54bb4a402273b93
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..01109d92ff2a403ea366f3e2ca6c0be4f000459e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4cf803a42d777ea7fbdd98e9781fcb053757cc1e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b90fbd6366423ec96dba897cdebd0e5ae7473427
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..06cbb9802c05cd248b5e35c88d353a916a2edda1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/fr/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b50f618ba21ae4c0871892c8789f5a719ac2c35f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5df813150565bed443563033833f6e3bcad0929f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a8bd0049472e109a5d8d208718801f754d428f0b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8bbdfa34a0e2761cb3c50a962acc690fa559a613
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a817d9bc7119ff6b023d3675114342c5e2c48eb4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b1bcf9287ec9574f39535bb960884cd83c884c24
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/it/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e2a7f96d9f844865d3ba34f1b9d4fcf3d5e997bb
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..09b46ef3069b52aca4d86e52c4bfcbf86ac0b2f5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..78c1a376442c6abd0804422763256ca7e8361896
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d9f42625c6ce5c043947984cec403c2ad9282c0e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..834a2fc6e013ce29f2d8da84859d9f5e100fda76
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9b687fa819218fd3c25c767a2f839d37148b439c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ja/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..648fb4f04503244fea753b91d84b8dbb9a3b1348
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..98a29e021f9134b4da79af89bec2595395eb82f0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c481f38c33f79ef9bca0f7ecb630984308c29b1d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7b3084dd2e60042aa8630f7e0df3f2cd749fd6bb
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8afd1ea20f61788743c14e02f80074515b4c9e22
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..642e3f23e1ae018d33fa091ea3821f93832570d0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ko/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..aed8a59f33889189206cb57c1ccfa409526d370e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..920be5b54d4a5f7bfffbfda6db0220e0b603217e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..026bfeddd80980949d993489b14a87c22c30e0af
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e0947ddfdc85c35b9449b96857acdc1edb278db3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9536ed11d6d23391d4d8bf411e1e0008c7f2bf6b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a688d7e5f91fa6cc182eca8aaa7ebba1cba2205e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pl/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..351efa2472b2047bd3fa809ce3ff80defbc1161a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5cf7215dcbf2aa16c19af4329b9da9589af654c6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c5f7e70abaad0707566f0d4e9887ec00728bdf76
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1e9e1c7dbf2d8d3e5efb4bd34b86ab7548cb0801
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4ae66642a521a45ea2f1d2d43501b7afe6978500
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..14fda4d3e1f6270c3b2ca7777a4e994998e2ad4f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/pt-BR/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b0d086c2418ccb69f5f880c7a6395724f60a02db
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7146340ba991d5165ef2a5a86f1e269ba1a560a5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cb9ff158a05af24b7043a8d153940665a05f36d4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f593eed21e7a8c07059fba8ff49d67b6f4c8e62e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a466fc4f5bc050550af8ba6b9c0280f7c56cd3e8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..102702f4a2dc316fc03afb34f3ae1e20eb5ca8f3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/ru/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b68a2df1a9c8abcdd01e828b277565ac7b8765f2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..680fdb1ac98b5022dae4e4752036817f01c27415
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2875e68cb4489d0860b4571dffa8f84f2123860c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2cc583284bc84cf21c741a9a52e37d29abaa8097
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..36d1db98e79f44a00025d57fccd8b5e3e28134f5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..adcccd0b368db2248bb3f56f3e02d930bc6de33c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/tr/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..37701c0518234966d63993fc87173235f3061331
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ac0c7dbef9cf9ad240e4de04b05646000824a5cf
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d87028c6894a26a6a2a3be4776f29787a54253d9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..24509b1f9268c49f946ff9c37a6f1fb4c58df213
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7e51ef39e9571e3da6b3647c5ca0a499b67fe79a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4c6c6fa0807fcd93da61bbbd0b3286a8993d1da2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hans/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2670c5b5ba15b6cde9f3fd446258c4aee940728c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.DotNet.ApiCompat.Task.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.DotNet.ApiCompat.Task.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7ed90e42263c40b37d5f1ef829ca2f96257117a4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.DotNet.ApiCompat.Task.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.DotNet.ApiCompatibility.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.DotNet.ApiCompatibility.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..226d6612de0d6da073b3ff29ab5dad485b0df677
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.DotNet.ApiCompatibility.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.DotNet.ApiSymbolExtensions.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.DotNet.ApiSymbolExtensions.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f88ae03096d9dc760e801342926eafd6bbf5000b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.DotNet.ApiSymbolExtensions.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.DotNet.PackageValidation.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.DotNet.PackageValidation.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..de540f3e3a451a1d53b208e852f6a70b60578be7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.DotNet.PackageValidation.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.NET.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.NET.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c8ffa045a41af31c2926da633624beda8e924b3d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.NET.Sdk/tools/net8.0/zh-Hant/Microsoft.NET.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/build/Microsoft.SourceLink.AzureRepos.Git.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/build/Microsoft.SourceLink.AzureRepos.Git.props
new file mode 100644
index 0000000000000000000000000000000000000000..275f1eea08e773e7410a37c2deef4e49b1f1f040
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/build/Microsoft.SourceLink.AzureRepos.Git.props
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/build/Microsoft.SourceLink.AzureRepos.Git.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/build/Microsoft.SourceLink.AzureRepos.Git.targets
new file mode 100644
index 0000000000000000000000000000000000000000..662a67bc236d8427c8b5f47a571f36c7764b94e4
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/build/Microsoft.SourceLink.AzureRepos.Git.targets
@@ -0,0 +1,58 @@
+
+
+
+ <_SourceLinkAzureReposGitAssemblyFile Condition="'$(MSBuildRuntimeType)' != 'Core'">$(MSBuildThisFileDirectory)..\tools\net472\Microsoft.SourceLink.AzureRepos.Git.dll
+ <_SourceLinkAzureReposGitAssemblyFile Condition="'$(MSBuildRuntimeType)' == 'Core'">$(MSBuildThisFileDirectory)..\tools\core\Microsoft.SourceLink.AzureRepos.Git.dll
+
+
+
+
+
+
+ $(SourceLinkUrlInitializerTargets);_InitializeAzureReposGitSourceLinkUrl
+ $(SourceControlManagerUrlTranslationTargets);TranslateAzureReposGitUrlsInSourceControlInformation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_TranslatedSourceRoot Remove="@(_TranslatedSourceRoot)"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/buildMultiTargeting/Microsoft.SourceLink.AzureRepos.Git.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/buildMultiTargeting/Microsoft.SourceLink.AzureRepos.Git.props
new file mode 100644
index 0000000000000000000000000000000000000000..83490ca49ccc609d480d3ec771cb70f107d54072
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/buildMultiTargeting/Microsoft.SourceLink.AzureRepos.Git.props
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/buildMultiTargeting/Microsoft.SourceLink.AzureRepos.Git.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/buildMultiTargeting/Microsoft.SourceLink.AzureRepos.Git.targets
new file mode 100644
index 0000000000000000000000000000000000000000..54933eae71b6d9f4ff28f994d1aa586b3342a9b0
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/buildMultiTargeting/Microsoft.SourceLink.AzureRepos.Git.targets
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/Microsoft.SourceLink.AzureRepos.Git.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/Microsoft.SourceLink.AzureRepos.Git.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ab0d87e0292dff6d65b84dc24aab00daac8312f6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/Microsoft.SourceLink.AzureRepos.Git.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/cs/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/cs/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dd85f224baad6a1c0455e7e90a71eec5bac16932
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/cs/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/de/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/de/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..36daf3da49bd344cb682f2f650ff3255df02a4e7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/de/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/es/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/es/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4dc1a0569d74b6a25affa78c2ba583cf5f7d3967
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/es/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/fr/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/fr/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a08f0632345238361eae1e723d963e5b2f91a6cd
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/fr/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/it/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/it/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..12f46a40496f9dfc43f4b57036f7f389ed86aac6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/it/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/ja/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/ja/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2602807c60b7e88f9835c036544e9ee5f6052ee7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/ja/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/ko/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/ko/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..45d5a0527f1184818d61c5874d965d998a68f8d7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/ko/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/pl/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/pl/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d132d9b1b833cec4ed636e4d7039c64ea16d0950
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/pl/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/pt-BR/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/pt-BR/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4592c79015cd4c94adf466a5432b05a0692048e4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/pt-BR/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/ru/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/ru/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..95f6ae9eb2c5e087404f39108f2b72bf920a96c6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/ru/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/tr/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/tr/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d3a34bffbda39aea7ef0d89b58bbf10c0ecd5ab2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/tr/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/zh-Hans/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/zh-Hans/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..710dd4aac4d70ff733a3a7c5e763731918ff20cc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/zh-Hans/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/zh-Hant/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/zh-Hant/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..98cf107a2b7811f4edffba99b058917a4c84280b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/core/zh-Hant/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/Microsoft.SourceLink.AzureRepos.Git.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/Microsoft.SourceLink.AzureRepos.Git.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0ad5baf6f8f18f16bb6dbb870fd3d98dd656e4ab
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/Microsoft.SourceLink.AzureRepos.Git.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/cs/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/cs/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8e91b2c008f23740105c4c0d9f6052ea8c80224f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/cs/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/de/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/de/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..150250b114896b63cd8449c497ddf730973ad14c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/de/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/es/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/es/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8d01f4b6b18e349c5b32349e83314eaa564e1cd6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/es/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/fr/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/fr/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5e6bb545ad1614eb176f48b7245508b3612ebb3d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/fr/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/it/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/it/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9bffec74136f85bb2d422fbfd3da8c3d5cc530ce
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/it/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/ja/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/ja/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3010e8040856f69579341500716539b5eac56ebf
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/ja/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/ko/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/ko/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3012fcad9c220829ec55857fd659b5564df76758
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/ko/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/pl/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/pl/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d9226ba482941ae1572ef395d09a10b9027a9478
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/pl/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/pt-BR/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/pt-BR/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b449ba8fca59f9a3cf3c9494ab484d7b6134b4b2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/pt-BR/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/ru/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/ru/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a368ba7600503305cf187d78a54aa884bd4835dd
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/ru/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/tr/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/tr/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fd4529658683ab60eb37cdfa4dce4c58b2f22f07
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/tr/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/zh-Hans/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/zh-Hans/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..99aa49741b00cb0380fe2c100d33e3db4367aee8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/zh-Hans/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/zh-Hant/Microsoft.SourceLink.AzureRepos.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/zh-Hant/Microsoft.SourceLink.AzureRepos.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9b330a5c01e9418943e3d5cfd4668ac1ad4dd9d1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.AzureRepos.Git/tools/net472/zh-Hant/Microsoft.SourceLink.AzureRepos.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/build/Microsoft.SourceLink.Bitbucket.Git.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/build/Microsoft.SourceLink.Bitbucket.Git.props
new file mode 100644
index 0000000000000000000000000000000000000000..4a3dab871cf0ec9c7c6f14df937874f214715e35
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/build/Microsoft.SourceLink.Bitbucket.Git.props
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/build/Microsoft.SourceLink.Bitbucket.Git.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/build/Microsoft.SourceLink.Bitbucket.Git.targets
new file mode 100644
index 0000000000000000000000000000000000000000..abe07c6e02aa9ef51b26fc585b9019c04a06aa7a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/build/Microsoft.SourceLink.Bitbucket.Git.targets
@@ -0,0 +1,67 @@
+
+
+
+ <_SourceLinkBitbucketAssemblyFile Condition="'$(MSBuildRuntimeType)' != 'Core'">$(MSBuildThisFileDirectory)..\tools\net472\Microsoft.SourceLink.Bitbucket.Git.dll
+ <_SourceLinkBitbucketAssemblyFile Condition="'$(MSBuildRuntimeType)' == 'Core'">$(MSBuildThisFileDirectory)..\tools\core\Microsoft.SourceLink.Bitbucket.Git.dll
+
+
+
+
+
+
+ $(SourceLinkUrlInitializerTargets);_InitializeBitbucketGitSourceLinkUrl
+ $(SourceControlManagerUrlTranslationTargets);TranslateBitbucketGitUrlsInSourceControlInformation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_TranslatedSourceRoot Remove="@(_TranslatedSourceRoot)"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/buildMultiTargeting/Microsoft.SourceLink.Bitbucket.Git.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/buildMultiTargeting/Microsoft.SourceLink.Bitbucket.Git.props
new file mode 100644
index 0000000000000000000000000000000000000000..83490ca49ccc609d480d3ec771cb70f107d54072
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/buildMultiTargeting/Microsoft.SourceLink.Bitbucket.Git.props
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/buildMultiTargeting/Microsoft.SourceLink.Bitbucket.Git.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/buildMultiTargeting/Microsoft.SourceLink.Bitbucket.Git.targets
new file mode 100644
index 0000000000000000000000000000000000000000..54933eae71b6d9f4ff28f994d1aa586b3342a9b0
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/buildMultiTargeting/Microsoft.SourceLink.Bitbucket.Git.targets
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/Microsoft.SourceLink.Bitbucket.Git.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/Microsoft.SourceLink.Bitbucket.Git.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1887172d49208e4d4fe148bfe3d622a7cadc92e0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/Microsoft.SourceLink.Bitbucket.Git.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/cs/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/cs/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..31c202a0d10b97abb02824872ae9953d66d04016
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/cs/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/de/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/de/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..566e804b7a2975e6580bceb8b0356ba6ee677fa8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/de/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/es/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/es/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..30e684893e565405e3100b7233a6abe258f078f6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/es/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/fr/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/fr/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fbddff50a51ef41bb12dde6c66fdcbd61651c9b1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/fr/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/it/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/it/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..60c3862bc5a3e7bd87a68fa642b149a2247c9652
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/it/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/ja/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/ja/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a13db375f3ca141eead790fcd29a68149bc4f99a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/ja/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/ko/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/ko/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ea2c2a945ff04912a29779825dbc985d4bda093a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/ko/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/pl/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/pl/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d087df84a525b76c3947f5554c05f38da03021cc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/pl/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/pt-BR/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/pt-BR/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c68cf4bcc0304bd3228c2eb604006e3091270b37
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/pt-BR/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/ru/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/ru/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ce0e16987d43aadcc7bd540c629df7cc109b2808
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/ru/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/tr/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/tr/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..98f6e211a13e4bd0882368889bf66094a313dfe2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/tr/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/zh-Hans/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/zh-Hans/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9a7b3bf1c82c901363bf8a29bdeca7cfcdcf12c2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/zh-Hans/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/zh-Hant/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/zh-Hant/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fb3ac301204ecfb8b1a9e2a46e5fef3e7d1e3056
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/core/zh-Hant/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/Microsoft.SourceLink.Bitbucket.Git.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/Microsoft.SourceLink.Bitbucket.Git.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fc87e740261a1cd06da60db77b18d6d92cc340b5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/Microsoft.SourceLink.Bitbucket.Git.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/cs/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/cs/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..84c44ba3fa9f6ade53002f5c50787e5b1ea0338f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/cs/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/de/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/de/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fbe6ec0bf6aa4e3793cfc712ad6a089b6d6aa823
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/de/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/es/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/es/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a004e6538aa79aa1997e0715abc678a280e2e986
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/es/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/fr/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/fr/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..908dddf4f4a4a6273340c7a76aae1d6cbf76123e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/fr/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/it/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/it/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7cd88837f5a4c163cadf0ca7f6fcc82ee97a8806
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/it/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/ja/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/ja/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4ccee2569596c56a5040c7c8e939a625740c6d0d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/ja/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/ko/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/ko/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..25d7efceee88d951a792f3e239f3174a0ef4cfbe
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/ko/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/pl/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/pl/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b98dfe2ae60e2182cfe268c113af20606ad504c3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/pl/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/pt-BR/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/pt-BR/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..940ff5e75b5274371fe5e06d9b3a7527d9fd5c57
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/pt-BR/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/ru/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/ru/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d8102e7ca06c66151f9c1d96d351bb2fc9fe990e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/ru/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/tr/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/tr/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..628fb5618cfe9b36d6785f881fa26380094151dc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/tr/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/zh-Hans/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/zh-Hans/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b4de04f3d27e1bb87a382cf6955996840b3ceaf2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/zh-Hans/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/zh-Hant/Microsoft.SourceLink.Bitbucket.Git.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/zh-Hant/Microsoft.SourceLink.Bitbucket.Git.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2f4ea114b8eed3eb654a873e543444936cd29340
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Bitbucket.Git/tools/net472/zh-Hant/Microsoft.SourceLink.Bitbucket.Git.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/build/InitializeSourceControlInformation.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/build/InitializeSourceControlInformation.targets
new file mode 100644
index 0000000000000000000000000000000000000000..13a973b95c0250405f5089bb35b365a6c1130896
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/build/InitializeSourceControlInformation.targets
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(RepositoryUrl)
+ $(ScmRepositoryUrl)
+
+
+
+
+ %(SourceRoot.ScmRepositoryUrl)
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/build/Microsoft.SourceLink.Common.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/build/Microsoft.SourceLink.Common.props
new file mode 100644
index 0000000000000000000000000000000000000000..14bca9c9951a60015ef4d81dd7936c3fddf517a4
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/build/Microsoft.SourceLink.Common.props
@@ -0,0 +1,19 @@
+
+
+
+ <_MicrosoftSourceLinkCommonAssemblyFile Condition="'$(MSBuildRuntimeType)' != 'Core'">$(MSBuildThisFileDirectory)..\tools\net472\Microsoft.SourceLink.Common.dll
+ <_MicrosoftSourceLinkCommonAssemblyFile Condition="'$(MSBuildRuntimeType)' == 'Core'">$(MSBuildThisFileDirectory)..\tools\core\Microsoft.SourceLink.Common.dll
+
+
+
+
+ true
+
+
+ true
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/build/Microsoft.SourceLink.Common.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/build/Microsoft.SourceLink.Common.targets
new file mode 100644
index 0000000000000000000000000000000000000000..85d03b52121989e54ed3048ee9639d6cc48eef8f
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/build/Microsoft.SourceLink.Common.targets
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+ <_SourceLinkFilePath>$(IntermediateOutputPath)$(MSBuildProjectName).sourcelink.json
+
+
+
+
+
+
+
+
+
+
+
+ <_GenerateSourceLinkFileBeforeTargets>Link
+ <_GenerateSourceLinkFileDependsOnTargets>ComputeLinkSwitches
+
+
+
+ <_GenerateSourceLinkFileBeforeTargets>CoreCompile
+ <_GenerateSourceLinkFileDependsOnTargets/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(Link.AdditionalOptions) /sourcelink:"$(SourceLink)"
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/buildMultiTargeting/Microsoft.SourceLink.Common.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/buildMultiTargeting/Microsoft.SourceLink.Common.props
new file mode 100644
index 0000000000000000000000000000000000000000..83490ca49ccc609d480d3ec771cb70f107d54072
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/buildMultiTargeting/Microsoft.SourceLink.Common.props
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/buildMultiTargeting/Microsoft.SourceLink.Common.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/buildMultiTargeting/Microsoft.SourceLink.Common.targets
new file mode 100644
index 0000000000000000000000000000000000000000..ef3c396b98812cdbbd04b0b72e4f8ead6e28cbaa
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/buildMultiTargeting/Microsoft.SourceLink.Common.targets
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+ true
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/Microsoft.SourceLink.Common.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/Microsoft.SourceLink.Common.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1d642581cedd84c1fed98cf3c8f0d043ddbacb16
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/Microsoft.SourceLink.Common.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/cs/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/cs/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5e5af20fb58cd4e22461e3b43a4e6c25ff484c49
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/cs/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/de/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/de/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..780a5d35cc34f1823073b5293cd0d381afa87631
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/de/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/es/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/es/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2fc534e60dc49b6063b03825a574326537d3502f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/es/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/fr/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/fr/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1411542f746e69bf3c0c364a6fcef40d320f8efe
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/fr/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/it/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/it/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d2622dc7dc29084e9cfaaace919d7b264ff7078b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/it/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/ja/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/ja/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..afbbc364431d5c80f4142c42124feceb9b485594
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/ja/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/ko/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/ko/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..86467eb605bcffb8aa5c299a5a884127551efbe2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/ko/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/pl/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/pl/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4a22ab362e6d1c132713ce93b81280e117e7a223
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/pl/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/pt-BR/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/pt-BR/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..62af4ddee2c9e5264294c4a6e1783faa7ed5e6ee
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/pt-BR/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/ru/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/ru/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f01c73449ef4aef3fad0f51508850ac9e00c24a9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/ru/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/tr/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/tr/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..23809ea6e150841dd3766b3785abc56a798e0161
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/tr/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/zh-Hans/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/zh-Hans/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a020e8c4fd6a671d96af51d5dd30dceed213e952
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/zh-Hans/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/zh-Hant/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/zh-Hant/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b960a762ad696f7b8279bca72b2d7887cafc0d3a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/core/zh-Hant/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/Microsoft.SourceLink.Common.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/Microsoft.SourceLink.Common.dll
new file mode 100644
index 0000000000000000000000000000000000000000..362e4b605f793a3378ab680590cc8cd272d3b61d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/Microsoft.SourceLink.Common.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/cs/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/cs/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..10449990a00ee6c7007dfb3f02baafa68ac251d3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/cs/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/de/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/de/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8644f1bbd4deab2245c2f0da012efacbb43a7568
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/de/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/es/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/es/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..36007885dedc39ae3bad27e2643be1a635be41fa
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/es/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/fr/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/fr/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..54e249d2ed0e1931258897ae4544e36a6a100523
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/fr/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/it/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/it/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..78d30cdacf252f66e6e710e64939c9032f978769
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/it/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/ja/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/ja/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..51e827438672639ebbb7b96320cf08bf45b4e5b2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/ja/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/ko/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/ko/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7a834d1d7a2a0690d158227af7d80bfc876fe921
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/ko/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/pl/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/pl/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c353cd2644998ee16e3fa5bbd00f04c266a8e5ce
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/pl/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/pt-BR/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/pt-BR/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bcc42f10ab6b45fd459552c09219e8839ade162d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/pt-BR/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/ru/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/ru/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2e27d71922cca854548d81313d0109e7d2c80439
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/ru/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/tr/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/tr/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fa7cd974886f0bb9b08a2c83b6000c690352b6c2
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/tr/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/zh-Hans/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/zh-Hans/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..64062a1741304686cc9b170db407d807304ed81b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/zh-Hans/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/zh-Hant/Microsoft.SourceLink.Common.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/zh-Hant/Microsoft.SourceLink.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..50309d2a7be96dbc9212c45d13f42341979fe836
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.Common/tools/net472/zh-Hant/Microsoft.SourceLink.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/build/Microsoft.SourceLink.GitHub.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/build/Microsoft.SourceLink.GitHub.props
new file mode 100644
index 0000000000000000000000000000000000000000..69fd26e95abe644028351dda75ca7650c2313911
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/build/Microsoft.SourceLink.GitHub.props
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/build/Microsoft.SourceLink.GitHub.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/build/Microsoft.SourceLink.GitHub.targets
new file mode 100644
index 0000000000000000000000000000000000000000..6c271010076f0afce061b0796f808db114190a4d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/build/Microsoft.SourceLink.GitHub.targets
@@ -0,0 +1,67 @@
+
+
+
+ <_SourceLinkGitHubAssemblyFile Condition="'$(MSBuildRuntimeType)' != 'Core'">$(MSBuildThisFileDirectory)..\tools\net472\Microsoft.SourceLink.GitHub.dll
+ <_SourceLinkGitHubAssemblyFile Condition="'$(MSBuildRuntimeType)' == 'Core'">$(MSBuildThisFileDirectory)..\tools\core\Microsoft.SourceLink.GitHub.dll
+
+
+
+
+
+
+ $(SourceLinkUrlInitializerTargets);_InitializeGitHubSourceLinkUrl
+ $(SourceControlManagerUrlTranslationTargets);TranslateGitHubUrlsInSourceControlInformation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_TranslatedSourceRoot Remove="@(_TranslatedSourceRoot)"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/buildMultiTargeting/Microsoft.SourceLink.GitHub.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/buildMultiTargeting/Microsoft.SourceLink.GitHub.props
new file mode 100644
index 0000000000000000000000000000000000000000..83490ca49ccc609d480d3ec771cb70f107d54072
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/buildMultiTargeting/Microsoft.SourceLink.GitHub.props
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/buildMultiTargeting/Microsoft.SourceLink.GitHub.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/buildMultiTargeting/Microsoft.SourceLink.GitHub.targets
new file mode 100644
index 0000000000000000000000000000000000000000..54933eae71b6d9f4ff28f994d1aa586b3342a9b0
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/buildMultiTargeting/Microsoft.SourceLink.GitHub.targets
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/Microsoft.SourceLink.GitHub.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/Microsoft.SourceLink.GitHub.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a1e1d47fa55ded89257f3c60b986d69fbc851437
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/Microsoft.SourceLink.GitHub.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/cs/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/cs/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..48f9c1fa91aeca89d3ce798f551e0a1574efa3c8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/cs/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/de/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/de/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..830e25b3d8bdb2a0fd7aa8b63ab021903cf50ea6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/de/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/es/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/es/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c375707934e50ec9b8fae108df774e11443a6a2f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/es/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/fr/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/fr/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..752e6562cb769382b8d36d93eac995403fed7a4f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/fr/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/it/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/it/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dfcba6176d61ee786834eced6abb7f64ae495907
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/it/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/ja/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/ja/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..431bc2f46faa25aec73212dcf7038227562f564e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/ja/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/ko/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/ko/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0d1f4e1c3b47217d8b61e3f4797a916fcd6bb713
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/ko/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/pl/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/pl/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..605883edac3215c478f832d363780b99b2af9b33
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/pl/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/pt-BR/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/pt-BR/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..95ccf3ae472c2a26b3ba7de6fe48f004508741b3
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/pt-BR/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/ru/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/ru/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7de621b38c7de867bf6be16f293f684613caa50e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/ru/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/tr/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/tr/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..deaa9bb4f2257f941390b4f71e2a2f833a56d447
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/tr/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/zh-Hans/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/zh-Hans/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b97a3d2404b081e40b5de897750f54312752c6a7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/zh-Hans/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/zh-Hant/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/zh-Hant/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e8cd79789b39f20d86832753bfaa4fc8ef4f5bbc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/core/zh-Hant/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/Microsoft.SourceLink.GitHub.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/Microsoft.SourceLink.GitHub.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b5499336f35d80820951de28e16fc7b1c78b8025
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/Microsoft.SourceLink.GitHub.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/cs/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/cs/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..230124f63ffb45d5ed7787407e1fe8c664b2ff4b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/cs/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/de/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/de/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fa6d82852ae1e7ad37dd8d4fbb703fad555d65ce
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/de/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/es/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/es/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cedf98d10f9fdfc87b061aa0e6d89961266518af
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/es/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/fr/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/fr/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ab12bb3df70c3de27d762a4836bfd132fd8c2f7c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/fr/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/it/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/it/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..57b83a30eeb8ef0ddf5c8f09285d88793162f09c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/it/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/ja/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/ja/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e9b1e6f9988604baa635570e84468a86e33fcc1b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/ja/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/ko/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/ko/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..02fba2257a55163e998f837e43c5621a073c85fd
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/ko/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/pl/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/pl/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ba2b484cfd07ffe5728a9d962ddd7439e417287b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/pl/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/pt-BR/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/pt-BR/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..920bfac66fa0ed2c283ede9bfb276875bace9207
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/pt-BR/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/ru/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/ru/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..42b042a8398426bff2d4efaea0ac4760841475e9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/ru/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/tr/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/tr/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1001bf12704997c7461a9e1543d7815dd2c8db5e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/tr/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/zh-Hans/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/zh-Hans/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5c3eba090202ef2696af65b646939a2e823f7777
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/zh-Hans/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/zh-Hant/Microsoft.SourceLink.GitHub.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/zh-Hant/Microsoft.SourceLink.GitHub.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9d2210c69e6ac5eabf00970c6f7f57155d73e4a7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitHub/tools/net472/zh-Hant/Microsoft.SourceLink.GitHub.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/build/Microsoft.SourceLink.GitLab.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/build/Microsoft.SourceLink.GitLab.props
new file mode 100644
index 0000000000000000000000000000000000000000..b3bd93d4ee5eb8e1abdb3f6471c4f19a88c7602c
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/build/Microsoft.SourceLink.GitLab.props
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/build/Microsoft.SourceLink.GitLab.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/build/Microsoft.SourceLink.GitLab.targets
new file mode 100644
index 0000000000000000000000000000000000000000..b763d073a84a9b171ae90dd963791cc4d57f2e45
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/build/Microsoft.SourceLink.GitLab.targets
@@ -0,0 +1,66 @@
+
+
+
+ <_SourceLinkGitLabAssemblyFile Condition="'$(MSBuildRuntimeType)' != 'Core'">$(MSBuildThisFileDirectory)..\tools\net472\Microsoft.SourceLink.GitLab.dll
+ <_SourceLinkGitLabAssemblyFile Condition="'$(MSBuildRuntimeType)' == 'Core'">$(MSBuildThisFileDirectory)..\tools\core\Microsoft.SourceLink.GitLab.dll
+
+
+
+
+
+
+ $(SourceLinkUrlInitializerTargets);_InitializeGitLabSourceLinkUrl
+ $(SourceControlManagerUrlTranslationTargets);TranslateGitLabUrlsInSourceControlInformation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_TranslatedSourceRoot Remove="@(_TranslatedSourceRoot)"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/buildMultiTargeting/Microsoft.SourceLink.GitLab.props b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/buildMultiTargeting/Microsoft.SourceLink.GitLab.props
new file mode 100644
index 0000000000000000000000000000000000000000..83490ca49ccc609d480d3ec771cb70f107d54072
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/buildMultiTargeting/Microsoft.SourceLink.GitLab.props
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/buildMultiTargeting/Microsoft.SourceLink.GitLab.targets b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/buildMultiTargeting/Microsoft.SourceLink.GitLab.targets
new file mode 100644
index 0000000000000000000000000000000000000000..54933eae71b6d9f4ff28f994d1aa586b3342a9b0
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/buildMultiTargeting/Microsoft.SourceLink.GitLab.targets
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/Microsoft.SourceLink.GitLab.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/Microsoft.SourceLink.GitLab.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ed913dd83978d42be6a1cb8b000219b4c2339d71
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/Microsoft.SourceLink.GitLab.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/cs/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/cs/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..67893e264c20197cab7c770f697b8fe2c0e945fa
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/cs/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/de/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/de/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f554f33211b14b84fd4de7f2a33871a4065148ec
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/de/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/es/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/es/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6250c75ddd1839579955ef9d7d382d7f0359f44d
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/es/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/fr/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/fr/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..90db62644e9caf560c80aa8f58e60f8054e3e40f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/fr/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/it/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/it/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..13c3f3eb88ced3ba1c3d26f12624705516c1e433
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/it/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/ja/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/ja/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7c1cfbc88d61209aacb0df7f583c6f29b0f71ef5
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/ja/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/ko/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/ko/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9cd5cc4bee5c06da05eac645ba5267b22b7bf55a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/ko/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/pl/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/pl/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..111388107b2e3100df883445122ed4184c997334
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/pl/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/pt-BR/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/pt-BR/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..051ac2e11ed4bee2891d8f18e858d53fac20bfb9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/pt-BR/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/ru/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/ru/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..623dc328f9caefcbb288ac2bb898553ecadb31df
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/ru/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/tr/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/tr/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1baf95a20ccb771b86fcd6de30e9d485fe594eec
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/tr/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/zh-Hans/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/zh-Hans/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3595755bb72fa8c333b3627c5cffcfc25ff9952f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/zh-Hans/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/zh-Hant/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/zh-Hant/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0f51edfc0f0d7e5042ad7f7dd716ecd0b1243214
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/core/zh-Hant/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/Microsoft.SourceLink.GitLab.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/Microsoft.SourceLink.GitLab.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f3fedec235951eac128457a2b48a038cc66cc96a
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/Microsoft.SourceLink.GitLab.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/cs/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/cs/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..89f0ecc07b22268b0054fcb833baf82eddb18766
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/cs/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/de/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/de/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..57b15739fda8a5cad941bb1613d3e0a41376216f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/de/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/es/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/es/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6c9089212360d817226f27ac04496faf1641ae0b
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/es/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/fr/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/fr/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c872b229004e04f310e79670b4b28b93ea057a27
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/fr/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/it/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/it/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..99b0ac01cd5c979e2b11e9939db7272e5d2fdf88
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/it/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/ja/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/ja/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..686076bbea1459f07304e9a83a05cf0dc79c983c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/ja/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/ko/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/ko/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9ed318a46d79891492cbd4e5e7e7133c345302b7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/ko/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/pl/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/pl/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..209ea2de4a319de36ed7768b7f2732a5d75fe4b6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/pl/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/pt-BR/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/pt-BR/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8841ddd3ebcfcfbe474d88edaac05ea0eae8c6fe
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/pt-BR/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/ru/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/ru/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..38625fb2194428c030056236ab02f4b1f4a2d6d6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/ru/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/tr/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/tr/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..96f332c0057e9de89957f1e10876b92660d9525f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/tr/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/zh-Hans/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/zh-Hans/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..afa2daf135d610795ac1a2be3fbef62e37f29c56
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/zh-Hans/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/zh-Hant/Microsoft.SourceLink.GitLab.resources.dll b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/zh-Hant/Microsoft.SourceLink.GitLab.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c0a1f948806d64b009a1f78934d4a13f2417f7c8
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/Microsoft.SourceLink.GitLab/tools/net472/zh-Hant/Microsoft.SourceLink.GitLab.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Build.Tasks.Pack.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Build.Tasks.Pack.dll
new file mode 100644
index 0000000000000000000000000000000000000000..09d85dcf3f6be96ddfce264afa49d1946b80d51b
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/NuGet.Build.Tasks.Pack.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:84f73a740c4642bd8ab2d6ebce9fde3a9f74e74e92570e53ac7e8a9d88424ead
+size 13165568
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/cs/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/cs/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c5ac621faf36ec9976709b81e1d7c539256ded84
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/cs/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/de/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/de/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c617d77bc5830f60e6a47ebb6eee753d13b9e9bf
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/de/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/es/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/es/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..102415b3e8f7c4c701f1f329a86dd1dbfa5215a1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/es/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/fr/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/fr/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5e044cb05c91fe678e656af359888ee26eb88818
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/fr/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/it/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/it/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1b15f7b2cce16b8d49366e8efe02fa2862ead04c
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/it/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/ja/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/ja/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e450d9d74da0fd5d5e1227f5f3be8b53c9c74752
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/ja/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/ko/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/ko/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b44bf061361f32576e05ff16a0fd7648ba08da3e
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/ko/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/pl/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/pl/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b61b795616ea7c511cdb51f1451be28081cae8a4
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/pl/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/pt-BR/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/pt-BR/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..05247051733b5b5dcf8e395ce17354eeccf3fa55
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/pt-BR/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/ru/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/ru/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f4a1ea4be169ba0fba569a7f369e3dc9d97870c7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/ru/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/tr/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/tr/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d5935a5cc4095888e4261b65cf9444a0c2df32b9
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/tr/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/zh-Hans/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/zh-Hans/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b7b273a718e66c73a55b2ed10f34d82226e239cc
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/zh-Hans/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/zh-Hant/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/zh-Hant/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b611ef5dd5667b9d062dfb26749c4223b92b0a61
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/CoreCLR/zh-Hant/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/NuGet.Build.Tasks.Pack.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/NuGet.Build.Tasks.Pack.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7a0e6e23da677f5fa279446fe3001fa11265fe0a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/NuGet.Build.Tasks.Pack.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a153f2d4e922c63cf80f30ef987012eda872b266a38fec408089377e7998c554
+size 5081640
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/cs/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/cs/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..94823aa14e2e370809a467d665f8f383dcc4dc68
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/cs/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/de/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/de/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8bc56f07ae3ee32c2f184440ef2187f40a2b62eb
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/de/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/es/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/es/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a423481c42d74462b23338a1259670bcdda4594f
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/es/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/fr/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/fr/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..697bdbd6eb9054e1c703ba322926746f48a86de0
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/fr/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/it/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/it/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b53641bbcb4b0dfcb3bd2a12e853c898818e5467
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/it/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/ja/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/ja/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a48673a27a57b185abdcb0bdd924c3b2d320b3b1
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/ja/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/ko/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/ko/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d7e2c71db1b44e99f276b7c3b76f49cac5e94529
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/ko/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/pl/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/pl/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..81f6122d750fe87323925482c1b8e3abba2b8747
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/pl/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/pt-BR/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/pt-BR/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7c0320ca269497d9af101891b5c102eacc5dde08
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/pt-BR/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/ru/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/ru/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7d2999503fa446f0eb8e8b70f85af1d98bf46fe7
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/ru/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/tr/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/tr/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..41a01dc2ec5d15000203d900bf2c43839f0116c6
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/tr/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/zh-Hans/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/zh-Hans/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c4b225eedb7b6f217f57c55c6908ef55f6552423
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/zh-Hans/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/zh-Hant/NuGet.Build.Tasks.Pack.resources.dll b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/zh-Hant/NuGet.Build.Tasks.Pack.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3126975ccb16144b46066b48e2459484eb4eac24
Binary files /dev/null and b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/Desktop/zh-Hant/NuGet.Build.Tasks.Pack.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/NOTICES.txt b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/NOTICES.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0bedd3dab52d8ab02ac76d509470c586e7e48eb8
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/NOTICES.txt
@@ -0,0 +1,1020 @@
+ NOTICES
+
+ This repository incorporates material as listed below or described in the code.
+
+
+
+Licence notice for NuGet
+---------------------------------
+
+Copyright (c) .NET Foundation and Contributors.
+
+All rights reserved.
+
+
+Licensed under the Apache License, Version 2.0 (the "License"); you may not use
+these files except in compliance with the License. You may obtain a copy of the
+License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software distributed
+under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+CONDITIONS OF ANY KIND, either express or implied. See the License for the
+specific language governing permissions and limitations under the License.
+
+
+
+License notice for Lucene.Net.dll
+---------------------------------
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. this License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+
+Some code in src/Lucene.Net/Util/UnicodeUtil.cs was derived from unicode
+conversion examples available at http://www.unicode.org/Public/PROGRAMS/CVTUTF.
+
+Here is the copyright from those sources:
+
+/*
+ * Copyright 2001-2004 Unicode, Inc.
+ *
+ * Disclaimer
+ *
+ * this source code is provided as is by Unicode, Inc. No claims are
+ * made as to fitness for any particular purpose. No warranties of any
+ * kind are expressed or implied. The recipient agrees to determine
+ * applicability of information provided. If this file has been
+ * purchased on magnetic or optical media from Unicode, Inc., the
+ * sole remedy for any claim will be exchange of defective media
+ * within 90 days of receipt.
+ *
+ * Limitations on Rights to Redistribute this Code
+ *
+ * Unicode, Inc. hereby grants the right to freely use the information
+ * supplied in this file in the creation of products supporting the
+ * Unicode Standard, and to make copies of this file in any form
+ * for internal or external distribution as long as this notice
+ * remains attached.
+ */
+
+
+Some code in src/Lucene.Net/Util/ArrayUtil.cs was derived from Python 2.4.2
+sources available at http://www.python.org.
+
+Full license is here:
+
+ http://www.python.org/download/releases/2.4.2/license/
+
+
+Some code in src/Lucene.Net/Util/UnicodeUtil.cs was
+derived from Python 3.1.2 sources available at
+http://www.python.org. Full license is here:
+
+ http://www.python.org/download/releases/3.1.2/license/
+
+
+Some code in src/Lucene.Net/Util/Automaton was
+derived from Brics automaton sources available at
+www.brics.dk/automaton/. Here is the copyright from those sources:
+
+/*
+ * Copyright (c) 2001-2009 Anders Moeller
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+The levenshtein automata tables in src/Lucene.Net/Util/Automaton
+were automatically generated with the moman/finenight FSA package.
+Here is the copyright for those sources:
+
+# Copyright (c) 2010, Jean-Philippe Barrette-LaPierre,
+#
+# 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.
+
+
+Some code in src/Lucene.Net/Util/UnicodeUtil.cs was
+derived from ICU (http://www.icu-project.org)
+The full license is available here:
+ http://source.icu-project.org/repos/icu/icu/trunk/license.html
+
+/*
+ * Copyright (C) 1999-2010, International Business Machines
+ * Corporation and others. All Rights Reserved.
+ *
+ * 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, and/or sell copies of the
+ * Software, and to permit persons to whom the Software is furnished to do so,
+ * provided that the above copyright notice(s) and this permission notice appear
+ * in all copies of the Software and that both the above copyright notice(s) and
+ * this permission notice appear in supporting documentation.
+ *
+ * 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 OF THIRD PARTY RIGHTS.
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE
+ * LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
+ * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder shall not
+ * be used in advertising or otherwise to promote the sale, use or other
+ * dealings in this Software without prior written authorization of the
+ * copyright holder.
+ */
+
+
+The following license applies to the Snowball stemmers:
+
+Copyright (c) 2001, Dr Martin Porter
+Copyright (c) 2002, Richard Boulton
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the copyright holders nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+
+this SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF this SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+The following license applies to src/Lucene.Net.Analysis.Common/Analysis/En/KStemmer.cs:
+
+Copyright © 2003,
+Center for Intelligent Information Retrieval,
+University of Massachusetts, Amherst.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+this list of conditions and the following disclaimer in the documentation
+and/or other materials provided with the distribution.
+
+3. The names "Center for Intelligent Information Retrieval" and
+"University of Massachusetts" must not be used to endorse or promote products
+derived from this software without prior written permission. To obtain
+permission, contact info@ciir.cs.umass.edu.
+
+THIS SOFTWARE IS PROVIDED BY UNIVERSITY OF MASSACHUSETTS AND OTHER CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+========
+
+The following license applies to the Morfologik project:
+
+Copyright (c) 2006 Dawid Weiss
+Copyright (c) 2007-2011 Dawid Weiss, Marcin Miłkowski
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+ * Neither the name of Morfologik nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+---
+
+The dictionary comes from Morfologik project. Morfologik uses data from
+Polish ispell/myspell dictionary hosted at http://www.sjp.pl/slownik/en/ and
+is licenced on the terms of (inter alia) LGPL and Creative Commons
+ShareAlike. The part-of-speech tags were added in Morfologik project and
+are not found in the data from sjp.pl. The tagset is similar to IPI PAN
+tagset.
+
+---
+
+The following license applies to the Morfeusz project,
+used by org.apache.lucene.analysis.morfologik.
+
+BSD-licensed dictionary of Polish (SGJP)
+http://sgjp.pl/morfeusz/
+
+Copyright © 2011 Zygmunt Saloni, Włodzimierz Gruszczyński,
+ Marcin Woliński, Robert Wołosz
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the
+ distribution.
+
+THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDERS “AS IS” AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+========
+
+The code in
+src/Lucene.Net/Support/C5.Suppport.cs
+src/Lucene.Net/Support/TreeDictionary.cs
+src/Lucene.Net/Support/TreeSet.cs
+src/Lucene.Net.Tests/Support/C5
+src/Lucene.Net.Tests/Support/TestTreeDictionary.cs
+src/Lucene.Net.Tests/Support/TestTreeSet.cs
+falls under the following license:
+
+ Copyright (c) 2003-2016 Niels Kokholm, Peter Sestoft, and Rasmus Lystrøm
+ 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.
+
+========
+
+The code in src/Lucene.Net/Support/LurchTable.cs falls under the following license:
+
+Copyright 2012-2014 by Roger Knapp, Licensed under the Apache License, Version 2.0
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+========
+
+Some code in src/Lucene.Net/Support/LimitedConcurrencyLevelTaskScheduler.cs
+was derived from the MSDN web site and falls under the following license:
+
+MICROSOFT LIMITED PUBLIC LICENSE version 1.1
+This license governs use of code marked as "sample" or "example" available on this web site
+without a license agreement, as provided under the section above titled
+"NOTICE SPECIFIC TO SOFTWARE AVAILABLE ON THIS WEB SITE." If you use such
+code (the "software"), you accept this license. If you do not accept the
+license, do not use the software.
+
+1. Definitions
+The terms "reproduce," "reproduction," "derivative works," and "distribution" have the
+same meaning here as under U.S. copyright law.
+A "contribution" is the original software, or any additions or changes to the software.
+A "contributor" is any person that distributes its contribution under this license.
+"Licensed patents" are a contributor’s patent claims that read directly on its contribution.
+
+2. Grant of Rights
+(A) Copyright Grant - Subject to the terms of this license, including the license conditions
+and limitations in section 3, each contributor grants you a non-exclusive, worldwide,
+royalty-free copyright license to reproduce its contribution, prepare derivative works
+of its contribution, and distribute its contribution or any derivative works that you create.
+(B) Patent Grant - Subject to the terms of this license, including the license conditions
+and limitations in section 3, each contributor grants you a non-exclusive, worldwide,
+royalty-free license under its licensed patents to make, have made, use, sell,
+offer for sale, import, and/or otherwise dispose of its contribution in the
+software or derivative works of the contribution in the software.
+
+3. Conditions and Limitations
+(A) No Trademark License- This license does not grant you rights to use any contributors’
+name, logo, or trademarks.
+(B) If you bring a patent claim against any contributor over patents that you claim are
+infringed by the software, your patent license from such contributor to the software
+ends automatically.
+(C) If you distribute any portion of the software, you must retain all copyright, patent,
+trademark, and attribution notices that are present in the software.
+(D) If you distribute any portion of the software in source code form, you may do so only
+under this license by including a complete copy of this license with your distribution.
+If you distribute any portion of the software in compiled or object code form, you may
+only do so under a license that complies with this license.
+(E) The software is licensed "as-is." You bear the risk of using it. The contributors
+give no express warranties, guarantees or conditions. You may have additional consumer
+rights under your local laws which this license cannot change. To the extent permitted
+under your local laws, the contributors exclude the implied warranties of merchantability,
+fitness for a particular purpose and non-infringement.
+(F) Platform Limitation - The licenses granted in sections 2(A) and 2(B) extend only
+to the software or derivative works that you create that run directly on a Microsoft
+Windows operating system product, Microsoft run-time technology (such as the .NET
+Framework or Silverlight), or Microsoft application platform (such as Microsoft
+Office or Microsoft Dynamics).
+
+========
+
+Some code in src/Lucene.Net/Support/LinkedHashMap.cs falls under the following license:
+
+The MIT License (MIT)
+
+Copyright (c) 2014 matarillo
+
+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.
+
+========
+
+Some code in src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer and
+src/Lucene.Net.Tests.Analysis.Stempel/Egothor.Stemmer falls
+under the following license
+
+ Egothor Software License version 1.00
+ Copyright (C) 1997-2004 Leo Galambos.
+ Copyright (C) 2002-2004 "Egothor developers"
+ on behalf of the Egothor Project.
+ All rights reserved.
+
+ This software is copyrighted by the "Egothor developers". If this
+ license applies to a single file or document, the "Egothor developers"
+ are the people or entities mentioned as copyright holders in that file
+ or document. If this license applies to the Egothor project as a
+ whole, the copyright holders are the people or entities mentioned in
+ the file CREDITS. This file can be found in the same location as this
+ license in the distribution.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are
+ met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, the list of contributors, this list of conditions, and the
+ following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, the list of contributors, this list of conditions, and the
+ disclaimer that follows these conditions in the documentation
+ and/or other materials provided with the distribution.
+ 3. The name "Egothor" must not be used to endorse or promote products
+ derived from this software without prior written permission. For
+ written permission, please contact Leo.G@seznam.cz
+ 4. Products derived from this software may not be called "Egothor",
+ nor may "Egothor" appear in their name, without prior written
+ permission from Leo.G@seznam.cz.
+
+ In addition, we request that you include in the end-user documentation
+ provided with the redistribution and/or in the software itself an
+ acknowledgement equivalent to the following:
+ "This product includes software developed by the Egothor Project.
+ http://egothor.sf.net/"
+
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE EGOTHOR PROJECT OR ITS CONTRIBUTORS BE LIABLE
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+ OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This software consists of voluntary contributions made by many
+ individuals on behalf of the Egothor Project and was originally
+ created by Leo Galambos (Leo.G@seznam.cz).
+
+========
+
+The code RectangularArrays classes falls under the following license
+
+ Copyright © 2007 - 2013 Tangible Software Solutions Inc.
+ this class can be used by anyone provided that the copyright notice remains intact.
+
+========
+
+src/Lucene.Net.Suggest/Suggest/Jaspell/JaspellTernarySearchTrie.cs
+falls under the following license
+
+ Copyright (c) 2005 Bruno Martins
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. Neither the name of the organization nor the names of its contributors
+ may be used to endorse or promote products derived from this software
+ without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ THE POSSIBILITY OF SUCH DAMAGE.
+
+========
+
+The code in
+src/Lucene.Net.Benchmark/Support/Sax
+falls under the following license:
+
+// http://www.saxproject.org
+// Written by David Megginson
+// NO WARRANTY! This class is in the public domain.
+
+---
+
+The code in build/dotnet-install.ps1 falls under the following license:
+
+The MIT License (MIT)
+
+Copyright (c) 2015 .NET Foundation
+
+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.
+
+---
+
+The code in build/psake.cmd, build/psake.ps1, build/psake.psd1, and build/psake.psm1
+falls under the following license:
+
+psake
+Copyright (c) 2012-13 James Kovacs, Damian Hickey and Contributors
+
+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.
+
+
+
+License notice for Newtonsoft.Json.dll
+--------------------------------------
+
+The MIT License (MIT)
+
+Copyright (c) 2007 James Newton-King
+
+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.
+
+
+
+License notice for Microsoft.Web.XmlTransform.dll
+--------------------------------------
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/README.md b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..483c9cdca9a235d11f61f3fbf7bb9a90ee3d8830
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/README.md
@@ -0,0 +1 @@
+NuGet tasks for MSBuild and dotnet pack.
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/build/NuGet.Build.Tasks.Pack.targets b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/build/NuGet.Build.Tasks.Pack.targets
new file mode 100644
index 0000000000000000000000000000000000000000..a76be1eaaea940409784ca856de87d76f20ee503
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/build/NuGet.Build.Tasks.Pack.targets
@@ -0,0 +1,542 @@
+
+
+
+
+
+
+ ..\CoreCLR\NuGet.Build.Tasks.Pack.dll
+ ..\Desktop\NuGet.Build.Tasks.Pack.dll
+
+
+
+
+
+
+
+
+
+
+ $(AssemblyName)
+ $(Version)
+ true
+ _LoadPackInputItems; _GetTargetFrameworksOutput; _WalkEachTargetPerFramework; _GetPackageFiles; $(GenerateNuspecDependsOn)
+ $(Description)
+ Package Description
+ false
+ true
+ true
+ tools
+ lib
+ content;contentFiles
+ $(BeforePack); _IntermediatePack; GenerateNuspec; $(PackDependsOn)
+ true
+ symbols.nupkg
+ DeterminePortableBuildCapabilities
+ false
+ false
+ .dll; .exe; .winmd; .json; .pri; .xml
+ $(DefaultAllowedOutputExtensionsInPackageBuildOutputFolder) ;$(AllowedOutputExtensionsInPackageBuildOutputFolder)
+ .pdb; .mdb; $(AllowedOutputExtensionsInPackageBuildOutputFolder); $(AllowedOutputExtensionsInSymbolsPackageBuildOutputFolder)
+ .pdb
+ false
+
+
+
+ $(GenerateNuspecDependsOn)
+
+
+
+ Build;$(GenerateNuspecDependsOn)
+
+
+
+
+
+
+
+
+ $(TargetFramework)
+
+
+
+
+ $(MSBuildProjectExtensionsPath)
+ $(BaseOutputPath)$(Configuration)\
+ $(BaseIntermediateOutputPath)$(Configuration)\
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFrameworks/>
+
+
+
+
+
+
+
+ <_TargetFrameworks Include="$(_ProjectFrameworks.Split(';'))" />
+
+
+
+
+
+
+
+
+
+ <_PackageFilesToDelete Include="@(_OutputPackItems)"/>
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(PrivateRepositoryUrl)
+ $(SourceRevisionId)
+
+
+
+
+
+
+
+ $(MSBuildProjectFullPath)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectPathWithVersion Include="$(MSBuildProjectFullPath)">
+ $(PackageVersion)
+ 1.0.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_TfmWithDependenciesSuppressed Include="$(TargetFramework)" Condition="'$(SuppressDependenciesWhenPacking)' == 'true'"/>
+
+
+
+
+
+
+ $(TargetFramework)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(TfmSpecificPackageFile.RecursiveDir)
+ %(TfmSpecificPackageFile.BuildAction)
+
+
+
+
+
+
+ <_TargetPathsToSymbolsWithTfm Include="@(DebugSymbolsProjectOutputGroupOutput)">
+ $(TargetFramework)
+
+
+
+ <_TargetPathsToSymbolsWithTfm Include="@(TfmSpecificDebugSymbolsFile)" />
+
+
+
+
+
+
+ <_PathToPriFile Include="$(ProjectPriFullPath)">
+ $(ProjectPriFullPath)
+ $(ProjectPriFileName)
+
+
+
+
+
+
+
+ <_PackageFilesToExclude Include="@(Content)" Condition="'%(Content.Pack)' == 'false'"/>
+
+
+
+ <_PackageFiles Include="@(Content)" Condition=" %(Content.Pack) != 'false' ">
+ Content
+
+ <_PackageFiles Include="@(Compile)" Condition=" %(Compile.Pack) == 'true' ">
+ Compile
+
+ <_PackageFiles Include="@(None)" Condition=" %(None.Pack) == 'true' ">
+ None
+
+ <_PackageFiles Include="@(EmbeddedResource)" Condition=" %(EmbeddedResource.Pack) == 'true' ">
+ EmbeddedResource
+
+ <_PackageFiles Include="@(ApplicationDefinition)" Condition=" %(ApplicationDefinition.Pack) == 'true' ">
+ ApplicationDefinition
+
+ <_PackageFiles Include="@(Page)" Condition=" %(Page.Pack) == 'true' ">
+ Page
+
+ <_PackageFiles Include="@(Resource)" Condition=" %(Resource.Pack) == 'true' ">
+ Resource
+
+ <_PackageFiles Include="@(SplashScreen)" Condition=" %(SplashScreen.Pack) == 'true' ">
+ SplashScreen
+
+ <_PackageFiles Include="@(DesignData)" Condition=" %(DesignData.Pack) == 'true' ">
+ DesignData
+
+ <_PackageFiles Include="@(DesignDataWithDesignTimeCreatableTypes)" Condition=" %(DesignDataWithDesignTimeCreatableTypes.Pack) == 'true' ">
+ DesignDataWithDesignTimeCreatableTypes
+
+ <_PackageFiles Include="@(CodeAnalysisDictionary)" Condition=" %(CodeAnalysisDictionary.Pack) == 'true' ">
+ CodeAnalysisDictionary
+
+ <_PackageFiles Include="@(AndroidAsset)" Condition=" %(AndroidAsset.Pack) == 'true' ">
+ AndroidAsset
+
+ <_PackageFiles Include="@(AndroidResource)" Condition=" %(AndroidResource.Pack) == 'true' ">
+ AndroidResource
+
+ <_PackageFiles Include="@(BundleResource)" Condition=" %(BundleResource.Pack) == 'true' ">
+ BundleResource
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/buildCrossTargeting/NuGet.Build.Tasks.Pack.targets b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/buildCrossTargeting/NuGet.Build.Tasks.Pack.targets
new file mode 100644
index 0000000000000000000000000000000000000000..a76be1eaaea940409784ca856de87d76f20ee503
--- /dev/null
+++ b/dotnet/sdk/8.0.402/Sdks/NuGet.Build.Tasks.Pack/buildCrossTargeting/NuGet.Build.Tasks.Pack.targets
@@ -0,0 +1,542 @@
+
+
+
+
+
+
+ ..\CoreCLR\NuGet.Build.Tasks.Pack.dll
+ ..\Desktop\NuGet.Build.Tasks.Pack.dll
+
+
+
+
+
+
+
+
+
+
+ $(AssemblyName)
+ $(Version)
+ true
+ _LoadPackInputItems; _GetTargetFrameworksOutput; _WalkEachTargetPerFramework; _GetPackageFiles; $(GenerateNuspecDependsOn)
+ $(Description)
+ Package Description
+ false
+ true
+ true
+ tools
+ lib
+ content;contentFiles
+ $(BeforePack); _IntermediatePack; GenerateNuspec; $(PackDependsOn)
+ true
+ symbols.nupkg
+ DeterminePortableBuildCapabilities
+ false
+ false
+ .dll; .exe; .winmd; .json; .pri; .xml
+ $(DefaultAllowedOutputExtensionsInPackageBuildOutputFolder) ;$(AllowedOutputExtensionsInPackageBuildOutputFolder)
+ .pdb; .mdb; $(AllowedOutputExtensionsInPackageBuildOutputFolder); $(AllowedOutputExtensionsInSymbolsPackageBuildOutputFolder)
+ .pdb
+ false
+
+
+
+ $(GenerateNuspecDependsOn)
+
+
+
+ Build;$(GenerateNuspecDependsOn)
+
+
+
+
+
+
+
+
+ $(TargetFramework)
+
+
+
+
+ $(MSBuildProjectExtensionsPath)
+ $(BaseOutputPath)$(Configuration)\
+ $(BaseIntermediateOutputPath)$(Configuration)\
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectFrameworks/>
+
+
+
+
+
+
+
+ <_TargetFrameworks Include="$(_ProjectFrameworks.Split(';'))" />
+
+
+
+
+
+
+
+
+
+ <_PackageFilesToDelete Include="@(_OutputPackItems)"/>
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(PrivateRepositoryUrl)
+ $(SourceRevisionId)
+
+
+
+
+
+
+
+ $(MSBuildProjectFullPath)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectPathWithVersion Include="$(MSBuildProjectFullPath)">
+ $(PackageVersion)
+ 1.0.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_TfmWithDependenciesSuppressed Include="$(TargetFramework)" Condition="'$(SuppressDependenciesWhenPacking)' == 'true'"/>
+
+
+
+
+
+
+ $(TargetFramework)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %(TfmSpecificPackageFile.RecursiveDir)
+ %(TfmSpecificPackageFile.BuildAction)
+
+
+
+
+
+
+ <_TargetPathsToSymbolsWithTfm Include="@(DebugSymbolsProjectOutputGroupOutput)">
+ $(TargetFramework)
+
+
+
+ <_TargetPathsToSymbolsWithTfm Include="@(TfmSpecificDebugSymbolsFile)" />
+
+
+
+
+
+
+ <_PathToPriFile Include="$(ProjectPriFullPath)">
+ $(ProjectPriFullPath)
+ $(ProjectPriFileName)
+
+
+
+
+
+
+
+ <_PackageFilesToExclude Include="@(Content)" Condition="'%(Content.Pack)' == 'false'"/>
+
+
+
+ <_PackageFiles Include="@(Content)" Condition=" %(Content.Pack) != 'false' ">
+ Content
+
+ <_PackageFiles Include="@(Compile)" Condition=" %(Compile.Pack) == 'true' ">
+ Compile
+
+ <_PackageFiles Include="@(None)" Condition=" %(None.Pack) == 'true' ">
+ None
+
+ <_PackageFiles Include="@(EmbeddedResource)" Condition=" %(EmbeddedResource.Pack) == 'true' ">
+ EmbeddedResource
+
+ <_PackageFiles Include="@(ApplicationDefinition)" Condition=" %(ApplicationDefinition.Pack) == 'true' ">
+ ApplicationDefinition
+
+ <_PackageFiles Include="@(Page)" Condition=" %(Page.Pack) == 'true' ">
+ Page
+
+ <_PackageFiles Include="@(Resource)" Condition=" %(Resource.Pack) == 'true' ">
+ Resource
+
+ <_PackageFiles Include="@(SplashScreen)" Condition=" %(SplashScreen.Pack) == 'true' ">
+ SplashScreen
+
+ <_PackageFiles Include="@(DesignData)" Condition=" %(DesignData.Pack) == 'true' ">
+ DesignData
+
+ <_PackageFiles Include="@(DesignDataWithDesignTimeCreatableTypes)" Condition=" %(DesignDataWithDesignTimeCreatableTypes.Pack) == 'true' ">
+ DesignDataWithDesignTimeCreatableTypes
+
+ <_PackageFiles Include="@(CodeAnalysisDictionary)" Condition=" %(CodeAnalysisDictionary.Pack) == 'true' ">
+ CodeAnalysisDictionary
+
+ <_PackageFiles Include="@(AndroidAsset)" Condition=" %(AndroidAsset.Pack) == 'true' ">
+ AndroidAsset
+
+ <_PackageFiles Include="@(AndroidResource)" Condition=" %(AndroidResource.Pack) == 'true' ">
+ AndroidResource
+
+ <_PackageFiles Include="@(BundleResource)" Condition=" %(BundleResource.Pack) == 'true' ">
+ BundleResource
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/System.CommandLine.dll b/dotnet/sdk/8.0.402/System.CommandLine.dll
new file mode 100644
index 0000000000000000000000000000000000000000..86416273483416376a387be26d7171f9fd7e37cd
Binary files /dev/null and b/dotnet/sdk/8.0.402/System.CommandLine.dll differ
diff --git a/dotnet/sdk/8.0.402/System.Reflection.MetadataLoadContext.dll b/dotnet/sdk/8.0.402/System.Reflection.MetadataLoadContext.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7b1cebeac35c4901c3dddf046141faab513424e3
Binary files /dev/null and b/dotnet/sdk/8.0.402/System.Reflection.MetadataLoadContext.dll differ
diff --git a/dotnet/sdk/8.0.402/System.Resources.Extensions.dll b/dotnet/sdk/8.0.402/System.Resources.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2e3d410a8c48901d767c7c4b2cb4d77fc9bcbcfe
Binary files /dev/null and b/dotnet/sdk/8.0.402/System.Resources.Extensions.dll differ
diff --git a/dotnet/sdk/8.0.402/System.Security.Cryptography.Pkcs.dll b/dotnet/sdk/8.0.402/System.Security.Cryptography.Pkcs.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2ae928e89f0875a76acc029feea32e1fd5b4db07
Binary files /dev/null and b/dotnet/sdk/8.0.402/System.Security.Cryptography.Pkcs.dll differ
diff --git a/dotnet/sdk/8.0.402/System.Security.Cryptography.Xml.dll b/dotnet/sdk/8.0.402/System.Security.Cryptography.Xml.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5141a860fe268a8a9aaab99591e7ef449ceb2e0b
Binary files /dev/null and b/dotnet/sdk/8.0.402/System.Security.Cryptography.Xml.dll differ
diff --git a/dotnet/sdk/8.0.402/System.ServiceProcess.ServiceController.dll b/dotnet/sdk/8.0.402/System.ServiceProcess.ServiceController.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ea2fa6e7ae30d5da99babb4861fb2e84cf494c03
Binary files /dev/null and b/dotnet/sdk/8.0.402/System.ServiceProcess.ServiceController.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/Microsoft.TestPlatform.CoreUtilities.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/Microsoft.TestPlatform.CoreUtilities.dll
new file mode 100644
index 0000000000000000000000000000000000000000..165ff1181642fcd78e7b081663e5e7a32dc573eb
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/Microsoft.TestPlatform.CoreUtilities.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/Microsoft.TestPlatform.CrossPlatEngine.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/Microsoft.TestPlatform.CrossPlatEngine.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f49f76439b99563634970ce12544625bd2c87489
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/Microsoft.TestPlatform.CrossPlatEngine.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.AppContext.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.AppContext.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4ccc058f3999c0f581348c6fed59688ebbdce2c0
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.AppContext.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Collections.Concurrent.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Collections.Concurrent.dll
new file mode 100644
index 0000000000000000000000000000000000000000..26f10d174753ef8308626f7ce37ea6d920fc9b6b
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Collections.Concurrent.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Collections.NonGeneric.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Collections.NonGeneric.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9da235aef1ae7fd994e44b35fd66d8b584a171d5
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Collections.NonGeneric.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Collections.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Collections.dll
new file mode 100644
index 0000000000000000000000000000000000000000..72ac2059f7ae3ac3222cc6703881721db5b1e07c
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Collections.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.ComponentModel.EventBasedAsync.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.ComponentModel.EventBasedAsync.dll
new file mode 100644
index 0000000000000000000000000000000000000000..37742d475238ae8f5727c73142fc5d8d1e90c404
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.ComponentModel.EventBasedAsync.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.ComponentModel.Primitives.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.ComponentModel.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b0c4b683ac068d9552c2fb048cfd9226c762da1f
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.ComponentModel.Primitives.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.ComponentModel.TypeConverter.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.ComponentModel.TypeConverter.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fb42b4494ea61ff03e837e572f4ef7f275e3f73b
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.ComponentModel.TypeConverter.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.ComponentModel.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.ComponentModel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8e2d8297527cc39cdd7200eac4936ed05044b8dc
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.ComponentModel.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Console.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Console.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fe61bccd8dbbc6c23b468472adad37f94bc79f06
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Console.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Data.Common.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Data.Common.dll
new file mode 100644
index 0000000000000000000000000000000000000000..05e3481bb71da9d421b0cf25ac3c3e95f39a8f10
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Data.Common.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.Contracts.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.Contracts.dll
new file mode 100644
index 0000000000000000000000000000000000000000..98f40ebc676aa39a40d9b332c4b4705b5600a92a
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.Contracts.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.FileVersionInfo.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.FileVersionInfo.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3c203b00ca714521944247e2c1838115105a4801
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.FileVersionInfo.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.TextWriterTraceListener.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.TextWriterTraceListener.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a5720da26be14570b88ca971033b768c4101ad25
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.TextWriterTraceListener.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.TraceSource.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.TraceSource.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5474eb2a639d6511aec7b299eb3d499080b8a2d6
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.TraceSource.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.Tracing.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.Tracing.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5b8b2b42db93dfa9b042996ab49240421c99647d
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Diagnostics.Tracing.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Dynamic.Runtime.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Dynamic.Runtime.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d34b388c03e2ada7a7d234347de1f51eaa692df4
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Dynamic.Runtime.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.Compression.ZipFile.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.Compression.ZipFile.dll
new file mode 100644
index 0000000000000000000000000000000000000000..345acbddb562b973cd9abe06d23861d882394a39
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.Compression.ZipFile.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.Compression.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.Compression.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ebbb503e8f7b5d1211448c206c394eec809cbcd9
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.Compression.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.FileSystem.DriveInfo.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.FileSystem.DriveInfo.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5c5939892005b154b94156c2a922e1b09a1a854c
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.FileSystem.DriveInfo.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.FileSystem.Primitives.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.FileSystem.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..de4c49fc9f79b2a4caf09186e0690bc177eb0913
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.FileSystem.Primitives.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.FileSystem.Watcher.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.FileSystem.Watcher.dll
new file mode 100644
index 0000000000000000000000000000000000000000..228d60be71e528bc8989e3cc147a2566b2a72d78
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.FileSystem.Watcher.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.Pipes.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.Pipes.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e5690c468bfef094872c4b168db3b3e3bc3025a6
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.Pipes.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.UnmanagedMemoryStream.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.UnmanagedMemoryStream.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cdd7427dc91918a39cec00cd8b7fa70319b047ec
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.UnmanagedMemoryStream.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e9eb534a33298a27df7a757160595d7a62ac4123
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.IO.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Linq.Expressions.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Linq.Expressions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..63b570c89020e75adcd22f5b6c46e1fa66081309
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Linq.Expressions.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Linq.Parallel.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Linq.Parallel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d8d097ee02ef6ad288000376c1c3f436a9752b7f
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Linq.Parallel.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Linq.Queryable.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Linq.Queryable.dll
new file mode 100644
index 0000000000000000000000000000000000000000..404bbe2162cdb9ca851b8da55268a8e19d7203df
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Linq.Queryable.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.Http.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.Http.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1c5c6fd374c8e5728bd9aceb997ad9181e8f0d09
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.Http.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.NameResolution.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.NameResolution.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e8a65c06b38a142b8ae0d427ef3d25c66924406c
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.NameResolution.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.NetworkInformation.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.NetworkInformation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..543a6cfebdc08c05a7217cd83c650c17a51564f7
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.NetworkInformation.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.Security.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.Security.dll
new file mode 100644
index 0000000000000000000000000000000000000000..eacb8a18fcd43c236f5815949512527e18612d6f
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.Security.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.Sockets.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.Sockets.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9716795eeb1428673b26a1e8c60c2de07958a943
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.Sockets.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.WebHeaderCollection.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.WebHeaderCollection.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0238e690130e6218ec286e1ceab24bb2ce22086f
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.WebHeaderCollection.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.WebSockets.Client.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.WebSockets.Client.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3275912c8c2e3a105f86c593988287ea31993450
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Net.WebSockets.Client.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.ObjectModel.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.ObjectModel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..37e11894e633751c30154fbb1dd703569a0560a5
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.ObjectModel.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Reflection.Metadata.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Reflection.Metadata.dll
new file mode 100644
index 0000000000000000000000000000000000000000..52082366b0a69847cb0e6351ad4ac3690746f6b5
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Reflection.Metadata.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Reflection.Primitives.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Reflection.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2c160e9f6ec9e9c09ca3625d3918dd03afd2b887
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Reflection.Primitives.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Reflection.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Reflection.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ec0b3d230b296df18d03e43f0d684bfe58aace03
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Reflection.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Resources.Reader.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Resources.Reader.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a34c6936d2292bdf63f5c12922e19bf495b56540
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Resources.Reader.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Resources.ResourceManager.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Resources.ResourceManager.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c4a14ceea0bab100966fc590fee6ff0c13ddcf15
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Resources.ResourceManager.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Resources.Writer.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Resources.Writer.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0ce294688c7498fec8a5de8c871a03b9c3d739b8
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Resources.Writer.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.CompilerServices.VisualC.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.CompilerServices.VisualC.dll
new file mode 100644
index 0000000000000000000000000000000000000000..30a2f814f3ed89d05a99d04ef8b58ed635f6e39d
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.CompilerServices.VisualC.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.Handles.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.Handles.dll
new file mode 100644
index 0000000000000000000000000000000000000000..37f15ff035762e3c7e83d35ece0902491a82d5ab
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.Handles.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.InteropServices.RuntimeInformation.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c8d62f4f92da7d8cf43e831aec6630137e8d9267
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.InteropServices.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.InteropServices.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ab5442952cdeceeaee28adba834c85af0b9868be
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.InteropServices.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.Numerics.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.Numerics.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3202cd9b1f34c327535adcaa13e633aa1c008fc5
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.Numerics.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.Serialization.Xml.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.Serialization.Xml.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3a839e24401818cb0a91169969f8d4d3c87c61f9
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Runtime.Serialization.Xml.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Claims.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Claims.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9cb6423355f5ad9e88095141f85e2b4e143dae79
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Claims.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Cryptography.Csp.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Cryptography.Csp.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d7721e716e0f9307559b5ca25cbb65c5acfe5f61
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Cryptography.Csp.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Cryptography.Primitives.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Cryptography.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..35a21ef6e9274895a5d5384f6292dfa24f25e43b
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Cryptography.Primitives.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Cryptography.X509Certificates.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Cryptography.X509Certificates.dll
new file mode 100644
index 0000000000000000000000000000000000000000..53d05b220482b781f4f26a2c47f46cebd138845b
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Cryptography.X509Certificates.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Principal.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Principal.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6d7c2ba7c19250724611019418b49e228770eba4
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.Principal.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.SecureString.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.SecureString.dll
new file mode 100644
index 0000000000000000000000000000000000000000..355a050dd15c622bb2d5172469914b078b01e4fe
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Security.SecureString.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Text.Encoding.Extensions.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Text.Encoding.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4f2b83dce8e4893e7ef3268841d30b7d7efceade
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Text.Encoding.Extensions.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Text.RegularExpressions.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Text.RegularExpressions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1a64a17cc62dcd76f45a733dcd829d6b7a6d6ed5
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Text.RegularExpressions.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.Overlapped.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.Overlapped.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5d7e7b7cdb338e8eb244139bf52f2e56ec64b3ac
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.Overlapped.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.Tasks.Parallel.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.Tasks.Parallel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c4df330cc91b83c6dd75cb7fab815ed8a9c626a8
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.Tasks.Parallel.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.Tasks.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.Tasks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..25999be8cb34bcdb44cf47fa2219340d53828f89
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.Tasks.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.ThreadPool.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.ThreadPool.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9405b8fcaf83bfc7bb124c00cf31ca7be0ee7221
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.ThreadPool.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.Timer.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.Timer.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c9eae71c8e9276176b6ded7a85055fb62f204d1a
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.Timer.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.dll
new file mode 100644
index 0000000000000000000000000000000000000000..deae2be716b5ab8f32e917625878d839067ca082
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Threading.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.ReaderWriter.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.ReaderWriter.dll
new file mode 100644
index 0000000000000000000000000000000000000000..24df9a0fba5107568e69b2e3a10761cef8ab064a
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.ReaderWriter.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.XDocument.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.XDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cbbc4f0b64d3563a9940345b0d549d8a561f0664
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.XDocument.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.XPath.XDocument.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.XPath.XDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0830ed180c3938d41b8445e8a5e66ca3ac8c30f6
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.XPath.XDocument.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.XPath.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.XPath.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8327f2e8349b5441e925a3df1b22645878523305
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.XPath.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.XmlDocument.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.XmlDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4f044b1d4fee84d365b06c6fe40ff69537634e73
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/System.Xml.XmlDocument.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d840d88555721c4d3e0f7c9611cecca64b548899
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6c5a8ea265c7ca21eaa3ce167d17e1d36785e3a0
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dc8e499a677c6b25b93486df0ac5fa246ef8935b
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.TestPlatform.Utilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.TestPlatform.Utilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..929d0e3ee130e04c16e8521ea9658ce4dd70dcd7
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.TestPlatform.Utilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c4096b3737e5fc8ded93b905295f6144963b484f
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9c27d51473a0867aba8b3c445289dce7378de236
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/datacollector.arm64.exe b/dotnet/sdk/8.0.402/TestHostNetFramework/datacollector.arm64.exe
new file mode 100644
index 0000000000000000000000000000000000000000..713bea8b56e9bc205f81411ff4f799f2d80098f8
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/datacollector.arm64.exe differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/datacollector.arm64.exe.config b/dotnet/sdk/8.0.402/TestHostNetFramework/datacollector.arm64.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..9e5fb277e98d2140721dfa784c81afa19a997002
--- /dev/null
+++ b/dotnet/sdk/8.0.402/TestHostNetFramework/datacollector.arm64.exe.config
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/datacollector.exe.config b/dotnet/sdk/8.0.402/TestHostNetFramework/datacollector.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..9e5fb277e98d2140721dfa784c81afa19a997002
--- /dev/null
+++ b/dotnet/sdk/8.0.402/TestHostNetFramework/datacollector.exe.config
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1ae0081637ff9e96305d3e95c50d31ea52c1610e
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.TestPlatform.CoreUtilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.TestPlatform.CoreUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a9ef090f3207dd4d4429f5bbfc860f05e59e589d
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.TestPlatform.CoreUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1788952e311815e098828d5e38a3bc672f981a52
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.TestPlatform.Utilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.TestPlatform.Utilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ee057102445393115b8de3aac8b014c7c95741af
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.TestPlatform.Utilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9684a437451199bd5f025403e50c403fab50dcbc
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ee345a65f7990bda5a87bd8a669c96eae8d59637
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..896ab38b24dc853a82fad7dce0362961a8e04990
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..26b474fc2597875e1856af848171466c3d4ad282
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a5e86c636b9ebc2180595f1aacb78e8ac0323b58
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.TestPlatform.Utilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.TestPlatform.Utilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1ba6d9b092af9bbf4f4d25aa080d89df76a56052
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.TestPlatform.Utilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6eb5b03a42238cf48d3abd665e22a8647d788f5b
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..78061a55b687dc1fe79c91a5509b61ae0c28204d
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/netstandard.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/netstandard.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1f1ab22caa4b935f74e18660b85cc19e38d0ef35
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/netstandard.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..61bca8cf568925b46a22009e6f134583b614c8ba
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0e206c2cebdd936bac676a6a247e94e950471e93
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1654c68675b28fa5edf6aaf6b0ee0cd88d492443
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.TestPlatform.Utilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.TestPlatform.Utilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..03649400fcbe6a85b6bc4dfd4877d2192d3da2ad
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.TestPlatform.Utilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1eec54790ca38511e8bb23957d40df16725079e6
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..92b3939f5e9c2330c221372d38f4cb845ca9fd90
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..02c7dffe68191ab8b2f706e64bd494d150136d64
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..79d7913723140bf3ff9ea3335bb4a2c98df465a6
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dbdf83404d8dbdd7fdc501b02217495be19af8ee
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.TestPlatform.Utilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.TestPlatform.Utilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3aca8689ebfaa8332ae8aafb0434a31c1b0cbc1a
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.TestPlatform.Utilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c0583d5dee51ec733059e52651af806a9cc07163
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6fce52dca44348a714f80b4451b75d51b7bbbc4f
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.arm64.exe b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.arm64.exe
new file mode 100644
index 0000000000000000000000000000000000000000..06420f120334dcfe82f8db2b2f7501f8b2b22f26
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.arm64.exe differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.arm64.exe.config b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.arm64.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..0bced684a627fb4ebdef3115d6a1e51ab5cfea45
--- /dev/null
+++ b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.arm64.exe.config
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.exe b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.exe
new file mode 100644
index 0000000000000000000000000000000000000000..4931459969e6b61cd212aadc7cb18d4b68c76378
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.exe differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.exe.config b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..0bced684a627fb4ebdef3115d6a1e51ab5cfea45
--- /dev/null
+++ b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.exe.config
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net47.arm64.exe.config b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net47.arm64.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..0bced684a627fb4ebdef3115d6a1e51ab5cfea45
--- /dev/null
+++ b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net47.arm64.exe.config
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net47.x86.exe.config b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net47.x86.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..0bced684a627fb4ebdef3115d6a1e51ab5cfea45
--- /dev/null
+++ b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net47.x86.exe.config
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.arm64.exe b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.arm64.exe
new file mode 100644
index 0000000000000000000000000000000000000000..c07257a06c081f9044034db46ad0e9fdcb70d52e
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.arm64.exe differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.arm64.exe.config b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.arm64.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..0bced684a627fb4ebdef3115d6a1e51ab5cfea45
--- /dev/null
+++ b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.arm64.exe.config
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.exe b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.exe
new file mode 100644
index 0000000000000000000000000000000000000000..5731bda5875aba4b23779555f7d2e2c8836af940
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.exe differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.exe.config b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..0bced684a627fb4ebdef3115d6a1e51ab5cfea45
--- /dev/null
+++ b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.exe.config
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.x86.exe b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.x86.exe
new file mode 100644
index 0000000000000000000000000000000000000000..87dd06aa95f57c1aed2635305a99225e9861b453
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.x86.exe differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.x86.exe.config b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.x86.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..0bced684a627fb4ebdef3115d6a1e51ab5cfea45
--- /dev/null
+++ b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net471.x86.exe.config
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net472.exe b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net472.exe
new file mode 100644
index 0000000000000000000000000000000000000000..53d7537ee035ab72b34a64e7f1de705a8c730af8
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net472.exe differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net472.x86.exe b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net472.x86.exe
new file mode 100644
index 0000000000000000000000000000000000000000..c46de7250a743d6506b1b3c5e40a4adb57dede09
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net472.x86.exe differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net472.x86.exe.config b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net472.x86.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..0bced684a627fb4ebdef3115d6a1e51ab5cfea45
--- /dev/null
+++ b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net472.x86.exe.config
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net48.arm64.exe b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net48.arm64.exe
new file mode 100644
index 0000000000000000000000000000000000000000..aca50a1b48927265ab8046b1e783f9877c85f381
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net48.arm64.exe differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net48.exe b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net48.exe
new file mode 100644
index 0000000000000000000000000000000000000000..b4b3b35a1488a51d1114c5695c7fd566002a238f
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net48.exe differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net48.x86.exe b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net48.x86.exe
new file mode 100644
index 0000000000000000000000000000000000000000..5ec5fda6ae5026c1cdf9fc8333ba88f36234a984
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net48.x86.exe differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net48.x86.exe.config b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net48.x86.exe.config
new file mode 100644
index 0000000000000000000000000000000000000000..0bced684a627fb4ebdef3115d6a1e51ab5cfea45
--- /dev/null
+++ b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.net48.x86.exe.config
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.x86.exe b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.x86.exe
new file mode 100644
index 0000000000000000000000000000000000000000..f20a9254c0f5bcb478b441ddf8a7abdba981b656
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/testhost.x86.exe differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/x64/msdia140.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/x64/msdia140.dll
new file mode 100644
index 0000000000000000000000000000000000000000..08cb29082092e168f1f249ca0980faf03ab728bc
--- /dev/null
+++ b/dotnet/sdk/8.0.402/TestHostNetFramework/x64/msdia140.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5888260ae847f80ee157166f13ee0223b62859929b3f1f7aeec5088d9b01a785
+size 1893408
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/x64/msdia140.dll.manifest b/dotnet/sdk/8.0.402/TestHostNetFramework/x64/msdia140.dll.manifest
new file mode 100644
index 0000000000000000000000000000000000000000..f77a8a5c17e170eba111016b2a91a12f3d3b4af9
--- /dev/null
+++ b/dotnet/sdk/8.0.402/TestHostNetFramework/x64/msdia140.dll.manifest
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..18ef29f2be3b4d8221813186d5a68435693525db
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2b24e7d4fa35e2fc635a49efd6c917bf3dc326a5
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0b5b80ce6249ce0531ed2853d69f99aa84086c51
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.TestPlatform.Utilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.TestPlatform.Utilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3c62acdce74abe06897d1c82f21c95986ad61823
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.TestPlatform.Utilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..49ed39ac1b87d413dabfbdcd7be73fe7385814ed
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a2f9f89200aeaee0b5e2cf8123beaf1961ad9752
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0ca17b2f4bc5332e0b5979fd93a1ec2ea5a425fd
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..12936be5e819f5f25c38ad06adc734dd2c0c7f94
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e584178a3a82051a64a7a4cb0112ce1071afee68
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.TestPlatform.Utilities.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.TestPlatform.Utilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..28e15f6beae214424493184c2ac447bf5500d9a7
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.TestPlatform.Utilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f453d986b169baa0fe7c66e7ddf8b747af80299e
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4485493e3196e691354a87cc365bcf3d4c1065a6
Binary files /dev/null and b/dotnet/sdk/8.0.402/TestHostNetFramework/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/MSBuild.resources.dll b/dotnet/sdk/8.0.402/cs/MSBuild.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..645b2041fbe0ba7a94aeb999a6ff20fa6cad1e64
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/MSBuild.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.Build.Tasks.Core.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.Build.Tasks.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6131065f9c0a19000452a9178f16d05510b346ff
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.Build.Tasks.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.Build.Utilities.Core.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.Build.Utilities.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..972b60862ed776337be50c9f267e1ba25dbbd191
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.Build.Utilities.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.Build.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d9dfbb8f06db650d9de473880a6f6933fc4ba1cc
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.CodeCoverage.IO.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.CodeCoverage.IO.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8102248e6f80d6815425e41c090a7c5efb29fe8b
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.CodeCoverage.IO.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..83d96ed0571a9d2d1280821b349f3babc068d27e
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.DotNet.Cli.Sln.Internal.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.DotNet.Cli.Sln.Internal.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1dd5f7d825b3f5b711581b780dc2835f6bc9feca
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.DotNet.Cli.Sln.Internal.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.DotNet.Cli.Utils.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.DotNet.Cli.Utils.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f6c53fb477c4cdf997c66bcd10fbbd8f60d0b7d5
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.DotNet.Cli.Utils.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.DotNet.Configurer.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.DotNet.Configurer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a836b0ba07086b5cc357ff3d478c326518efe5c9
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.DotNet.Configurer.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.DotNet.TemplateLocator.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.DotNet.TemplateLocator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..eb731f683987eff085645e611765d3c8b4682de8
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.DotNet.TemplateLocator.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2aa0e3ca8ef649eef36f7b502ed98988a8f469f4
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Cli.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Cli.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e644ef606e96733f40b3bb2b6d41e95b61575b64
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Cli.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Core.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..969d83d8408be8ef4f8a6f0604a883d3cb602be9
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Edge.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Edge.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..823e771b065eea93c5e243f6cc76b03f7d0757d4
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Edge.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..96723dcd53139f6ef86e4af25d77695ed0420f8c
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Utils.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Utils.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..554423d78dc9240f1876cf0fa5bd2c752e9cd8da
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.TemplateEngine.Utils.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.TemplateSearch.Common.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.TemplateSearch.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f3352ec292b8efa200172f4843b4057c0e2450fb
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.TemplateSearch.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.Build.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6a4c32f6c695c83bdda079931c963c9163bd4ab9
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d840d88555721c4d3e0f7c9611cecca64b548899
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6c5a8ea265c7ca21eaa3ce167d17e1d36785e3a0
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dc8e499a677c6b25b93486df0ac5fa246ef8935b
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.Utilities.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.Utilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..929d0e3ee130e04c16e8521ea9658ce4dd70dcd7
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.Utilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0906b24c5fa5e2156f73d0cc1365acec3cd020f3
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.VisualStudio.TestPlatform.Client.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.VisualStudio.TestPlatform.Client.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d706ea03b47fd818483a1526d4b7203b6a79003c
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.VisualStudio.TestPlatform.Client.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c4096b3737e5fc8ded93b905295f6144963b484f
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/dotnet/sdk/8.0.402/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9c27d51473a0867aba8b3c445289dce7378de236
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/NuGet.Build.Tasks.Console.resources.dll b/dotnet/sdk/8.0.402/cs/NuGet.Build.Tasks.Console.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b50a44042262a43a61e0334a2dec9d733d4ce675
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/NuGet.Build.Tasks.Console.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/NuGet.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/cs/NuGet.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..72845f39e96ff866d15f223ea9f55b4423c7ce23
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/NuGet.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/NuGet.CommandLine.XPlat.resources.dll b/dotnet/sdk/8.0.402/cs/NuGet.CommandLine.XPlat.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f8083f393104a8f2ebb5f94b82f58eb17eb24ede
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/NuGet.CommandLine.XPlat.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/NuGet.Commands.resources.dll b/dotnet/sdk/8.0.402/cs/NuGet.Commands.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1bd8e15459a7ef89525eefe514d132ea5d6fc7f4
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/NuGet.Commands.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/NuGet.Common.resources.dll b/dotnet/sdk/8.0.402/cs/NuGet.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6df1f3e6efb97a8c18bc624853c8b0a46b086a6c
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/NuGet.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/NuGet.Configuration.resources.dll b/dotnet/sdk/8.0.402/cs/NuGet.Configuration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a0398b5a359d3c3b7d1e443fb62ce895c0d37991
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/NuGet.Configuration.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/NuGet.Credentials.resources.dll b/dotnet/sdk/8.0.402/cs/NuGet.Credentials.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9c01b64d768945fa481d91434d60c9a9fcc935d6
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/NuGet.Credentials.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/NuGet.DependencyResolver.Core.resources.dll b/dotnet/sdk/8.0.402/cs/NuGet.DependencyResolver.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c5c8395c91a0045d87b907e196eaa5797cae8941
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/NuGet.DependencyResolver.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/NuGet.Frameworks.resources.dll b/dotnet/sdk/8.0.402/cs/NuGet.Frameworks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..74a9ab3103e2cfc47e4b8949ae8e0529040f3a65
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/NuGet.Frameworks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/NuGet.LibraryModel.resources.dll b/dotnet/sdk/8.0.402/cs/NuGet.LibraryModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4250455860a31ab0ca693bc0ca78558b84f1969e
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/NuGet.LibraryModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/NuGet.Packaging.resources.dll b/dotnet/sdk/8.0.402/cs/NuGet.Packaging.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d56bb4b8f85b402d8c8b0d4500a8757e2e872b31
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/NuGet.Packaging.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/NuGet.ProjectModel.resources.dll b/dotnet/sdk/8.0.402/cs/NuGet.ProjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0f6d9b96363d61de5076a72510abd6e2c55f1a4c
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/NuGet.ProjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/NuGet.Protocol.resources.dll b/dotnet/sdk/8.0.402/cs/NuGet.Protocol.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2d5b0fb3f964e0a51875fa0f1d933bfc59b8d8aa
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/NuGet.Protocol.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/NuGet.Versioning.resources.dll b/dotnet/sdk/8.0.402/cs/NuGet.Versioning.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a857b87bb99ba6d98b2ac8c9847aad6d518ff10b
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/NuGet.Versioning.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/System.CommandLine.resources.dll b/dotnet/sdk/8.0.402/cs/System.CommandLine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b34525c000440cf7fe64880d634743474a51d737
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/System.CommandLine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/dotnet.resources.dll b/dotnet/sdk/8.0.402/cs/dotnet.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a6beeafa3aab3cbfb820a29b966d1fbb494368f0
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/dotnet.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/cs/vstest.console.resources.dll b/dotnet/sdk/8.0.402/cs/vstest.console.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..395680e3ec94cb177b9920f8a7b536216479c25d
Binary files /dev/null and b/dotnet/sdk/8.0.402/cs/vstest.console.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/datacollector.dll b/dotnet/sdk/8.0.402/datacollector.dll
new file mode 100644
index 0000000000000000000000000000000000000000..af51328f20b3531d01656bec53d41f113165ff8e
Binary files /dev/null and b/dotnet/sdk/8.0.402/datacollector.dll differ
diff --git a/dotnet/sdk/8.0.402/dotnet.deps.json b/dotnet/sdk/8.0.402/dotnet.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..2b1b198a77a445a825303609c05e8a7b686e9303
--- /dev/null
+++ b/dotnet/sdk/8.0.402/dotnet.deps.json
@@ -0,0 +1,1970 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "dotnet.deps.json/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.Build": "17.11.4",
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.Build.NuGetSdkResolver": "6.11.1-rc.2",
+ "Microsoft.Build.Runtime": "17.11.4",
+ "Microsoft.Build.Tasks.Core": "17.11.4",
+ "Microsoft.Build.Utilities.Core": "17.11.4",
+ "Microsoft.CodeAnalysis.CSharp.CodeStyle": "4.11.0-3.24365.8",
+ "Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0-preview.23614.1",
+ "Microsoft.CodeAnalysis.VisualBasic.CodeStyle": "4.11.0-3.24365.8",
+ "Microsoft.DiaSymReader.Pdb2Pdb": "1.1.0-beta2-19575-01",
+ "Microsoft.DotNet.Cli": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.XliffTasks": "1.0.0-beta.23475.1",
+ "Microsoft.FSharp.Compiler": "12.8.400-beta.24351.2",
+ "Microsoft.NET.Sdk.Razor.SourceGenerators.Transport": "9.0.0-preview.24420.1",
+ "Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver": "8.0.402-servicing.24466.16",
+ "Microsoft.NET.StringTools": "17.11.4",
+ "Microsoft.Net.Compilers.Toolset": "4.11.0-3.24365.8",
+ "Microsoft.TestPlatform.Build": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.CLI": "17.11.0-release-24352-05",
+ "NuGet.Build.Tasks": "6.11.1-rc.2",
+ "NuGet.Build.Tasks.Console": "6.11.1-rc.2",
+ "NuGet.Common": "6.11.1-rc.2",
+ "NuGet.Localization": "6.11.1-rc.2",
+ "NuGet.ProjectModel": "6.11.1-rc.2",
+ "System.CodeDom": "8.0.0",
+ "System.Resources.Extensions": "8.0.0",
+ "System.Security.Cryptography.ProtectedData": "8.0.0",
+ "System.Text.Encoding.CodePages": "8.0.0",
+ "dotnet-format": "8.3.536002",
+ "tool_msbuild": "8.0.402-servicing.24466.16",
+ "tool_nuget": "8.0.402-servicing.24466.16",
+ "dotnet": "8.0.402.0"
+ },
+ "runtime": {}
+ },
+ "dotnet-format/8.3.536002": {},
+ "Microsoft.ApplicationInsights/2.21.0": {
+ "dependencies": {
+ "System.Diagnostics.DiagnosticSource": "5.0.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.ApplicationInsights.dll": {
+ "assemblyVersion": "2.21.0.429",
+ "fileVersion": "2.21.0.429"
+ }
+ }
+ },
+ "Microsoft.AspNetCore.DeveloperCertificates.XPlat/8.0.8-servicing.24369.8": {
+ "runtime": {
+ "lib/net8.0/Microsoft.AspNetCore.DeveloperCertificates.XPlat.dll": {
+ "assemblyVersion": "8.0.8.0",
+ "fileVersion": "8.0.824.36908"
+ }
+ }
+ },
+ "Microsoft.Build/17.11.4": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.NET.StringTools": "17.11.4",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Configuration.ConfigurationManager": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0",
+ "System.Reflection.MetadataLoadContext": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.Build.Framework/17.11.4": {
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.Framework.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.Build.Localization/17.11.4-preview-24406-09": {},
+ "Microsoft.Build.NuGetSdkResolver/6.11.1-rc.2": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.11.4",
+ "NuGet.Commands": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.NuGetSdkResolver.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "Microsoft.Build.Runtime/17.11.4": {
+ "dependencies": {
+ "Microsoft.Build": "17.11.4",
+ "Microsoft.Build.Tasks.Core": "17.11.4",
+ "System.CodeDom": "8.0.0",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Configuration.ConfigurationManager": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0",
+ "System.Reflection.MetadataLoadContext": "8.0.0",
+ "System.Resources.Extensions": "8.0.0",
+ "System.Security.Cryptography.Pkcs": "8.0.0",
+ "System.Security.Cryptography.Xml": "8.0.1"
+ }
+ },
+ "Microsoft.Build.Tasks.Core/17.11.4": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.Build.Utilities.Core": "17.11.4",
+ "Microsoft.NET.StringTools": "17.11.4",
+ "System.CodeDom": "8.0.0",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Configuration.ConfigurationManager": "8.0.0",
+ "System.Resources.Extensions": "8.0.0",
+ "System.Security.Cryptography.Pkcs": "8.0.0",
+ "System.Security.Cryptography.Xml": "8.0.1"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.Tasks.Core.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.Build.Utilities.Core/17.11.4": {
+ "dependencies": {
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.NET.StringTools": "17.11.4",
+ "System.Collections.Immutable": "8.0.0",
+ "System.Configuration.ConfigurationManager": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Build.Utilities.Core.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.CSharp.CodeStyle/4.11.0-3.24365.8": {},
+ "Microsoft.CodeAnalysis.NetAnalyzers/8.0.0-preview.23614.1": {},
+ "Microsoft.CodeAnalysis.VisualBasic.CodeStyle/4.11.0-3.24365.8": {},
+ "Microsoft.Deployment.DotNet.Releases/2.0.0-preview.1.23463.1": {
+ "dependencies": {
+ "System.Text.Json": "8.0.4"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.Deployment.DotNet.Releases.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.23.46301"
+ }
+ }
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {},
+ "Microsoft.DotNet.XliffTasks/1.0.0-beta.23475.1": {},
+ "Microsoft.Extensions.Configuration/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Configuration.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Configuration.Abstractions/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Configuration.Binder/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Configuration.Binder.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.DependencyInjection.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.324.11423"
+ }
+ }
+ },
+ "Microsoft.Extensions.DependencyModel/8.0.1": {
+ "dependencies": {
+ "System.Text.Encodings.Web": "8.0.0",
+ "System.Text.Json": "8.0.4"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.DependencyModel.dll": {
+ "assemblyVersion": "8.0.0.1",
+ "fileVersion": "8.0.724.31311"
+ }
+ }
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.FileSystemGlobbing/8.0.0": {
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Logging/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection": "8.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Options": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Logging.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Logging.Abstractions/8.0.1": {
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.324.11423"
+ }
+ }
+ },
+ "Microsoft.Extensions.Logging.Configuration/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "8.0.0",
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Configuration.Binder": "8.0.0",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Logging": "8.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Options": "8.0.0",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Logging.Configuration.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Logging.Console/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Logging": "8.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Logging.Configuration": "8.0.0",
+ "Microsoft.Extensions.Options": "8.0.0",
+ "System.Text.Json": "8.0.4"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Logging.Console.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Options/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Options.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0": {
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
+ "Microsoft.Extensions.Configuration.Binder": "8.0.0",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.1",
+ "Microsoft.Extensions.Options": "8.0.0",
+ "Microsoft.Extensions.Primitives": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.Extensions.Primitives/8.0.0": {
+ "runtime": {
+ "lib/net8.0/Microsoft.Extensions.Primitives.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "Microsoft.FSharp.Compiler/12.8.400-beta.24351.2": {},
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24365.8": {},
+ "Microsoft.NET.HostModel/8.0.8-servicing.24366.12": {
+ "dependencies": {
+ "System.Reflection.Metadata": "8.0.0",
+ "System.Text.Json": "8.0.4"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.NET.HostModel.dll": {
+ "assemblyVersion": "8.0.8.0",
+ "fileVersion": "8.0.824.36612"
+ }
+ }
+ },
+ "Microsoft.NET.Sdk.Razor.SourceGenerators.Transport/9.0.0-preview.24420.1": {},
+ "Microsoft.NET.StringTools/17.11.4": {
+ "runtime": {
+ "lib/net8.0/Microsoft.NET.StringTools.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.NETCore.Platforms/1.1.0": {},
+ "Microsoft.NETCore.Targets/2.1.0": {},
+ "Microsoft.TemplateEngine.Abstractions/8.0.400-preview.24360.3": {
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.1"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TemplateEngine.Abstractions.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.36003"
+ }
+ }
+ },
+ "Microsoft.TemplateEngine.Core/8.0.400-preview.24360.3": {
+ "dependencies": {
+ "Microsoft.TemplateEngine.Abstractions": "8.0.400-preview.24360.3",
+ "Microsoft.TemplateEngine.Core.Contracts": "8.0.400-preview.24360.3",
+ "Microsoft.TemplateEngine.Utils": "8.0.400-preview.24360.3"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TemplateEngine.Core.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.36003"
+ }
+ }
+ },
+ "Microsoft.TemplateEngine.Core.Contracts/8.0.400-preview.24360.3": {
+ "dependencies": {
+ "Microsoft.TemplateEngine.Abstractions": "8.0.400-preview.24360.3"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TemplateEngine.Core.Contracts.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.36003"
+ }
+ }
+ },
+ "Microsoft.TemplateEngine.Edge/8.0.400-preview.24360.3": {
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.1",
+ "Microsoft.TemplateEngine.Abstractions": "8.0.400-preview.24360.3",
+ "Microsoft.TemplateEngine.Utils": "8.0.400-preview.24360.3",
+ "Newtonsoft.Json": "13.0.3",
+ "NuGet.Configuration": "6.11.1-rc.2",
+ "NuGet.Credentials": "6.11.1-rc.2",
+ "NuGet.Protocol": "6.11.1-rc.2",
+ "System.IO.Compression": "4.3.0",
+ "System.Runtime.Loader": "4.3.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TemplateEngine.Edge.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.36003"
+ }
+ }
+ },
+ "Microsoft.TemplateEngine.Orchestrator.RunnableProjects/8.0.400-preview.24360.3": {
+ "dependencies": {
+ "Microsoft.TemplateEngine.Core": "8.0.400-preview.24360.3",
+ "Microsoft.TemplateEngine.Core.Contracts": "8.0.400-preview.24360.3",
+ "Newtonsoft.Json": "13.0.3"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.36003"
+ }
+ }
+ },
+ "Microsoft.TemplateEngine.Utils/8.0.400-preview.24360.3": {
+ "dependencies": {
+ "Microsoft.Extensions.Logging.Abstractions": "8.0.1",
+ "Microsoft.TemplateEngine.Abstractions": "8.0.400-preview.24360.3",
+ "Newtonsoft.Json": "13.0.3"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TemplateEngine.Utils.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.36003"
+ }
+ }
+ },
+ "Microsoft.TemplateSearch.Common/8.0.400-preview.24360.3": {
+ "dependencies": {
+ "Microsoft.TemplateEngine.Abstractions": "8.0.400-preview.24360.3",
+ "Newtonsoft.Json": "13.0.3"
+ },
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TemplateSearch.Common.dll": {
+ "assemblyVersion": "8.0.400.0",
+ "fileVersion": "8.4.24.36003"
+ }
+ }
+ },
+ "Microsoft.TestPlatform.Build/17.11.0-release-24352-05": {
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.TestPlatform.Build.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "17.1100.24.35205"
+ }
+ },
+ "runtimeTargets": {}
+ },
+ "Microsoft.TestPlatform.CLI/17.11.0-release-24352-05": {},
+ "Microsoft.Windows.CsWin32/0.3.49-beta": {
+ "dependencies": {
+ "Microsoft.Windows.SDK.Win32Docs": "0.1.42-alpha",
+ "Microsoft.Windows.SDK.Win32Metadata": "55.0.45-preview",
+ "Microsoft.Windows.WDK.Win32Metadata": "0.9.9-experimental",
+ "System.Memory": "4.5.5",
+ "System.Runtime.CompilerServices.Unsafe": "6.0.0"
+ }
+ },
+ "Microsoft.Windows.SDK.Win32Docs/0.1.42-alpha": {},
+ "Microsoft.Windows.SDK.Win32Metadata/55.0.45-preview": {},
+ "Microsoft.Windows.WDK.Win32Metadata/0.9.9-experimental": {
+ "dependencies": {
+ "Microsoft.Windows.SDK.Win32Metadata": "55.0.45-preview"
+ }
+ },
+ "NETStandard.Library/2.0.3": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0"
+ }
+ },
+ "Newtonsoft.Json/13.0.3": {
+ "runtime": {
+ "lib/net6.0/Newtonsoft.Json.dll": {
+ "assemblyVersion": "13.0.0.0",
+ "fileVersion": "13.0.3.27908"
+ }
+ }
+ },
+ "NuGet.Build.Tasks/6.11.1-rc.2": {
+ "dependencies": {
+ "Microsoft.Build.Tasks.Core": "17.11.4",
+ "Microsoft.Build.Utilities.Core": "17.11.4",
+ "NuGet.Commands": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/net8.0/NuGet.Build.Tasks.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ },
+ "runtimeTargets": {}
+ },
+ "NuGet.Build.Tasks.Console/6.11.1-rc.2": {
+ "dependencies": {
+ "Microsoft.Build": "17.11.4",
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.Build.Tasks.Core": "17.11.4",
+ "Microsoft.Build.Utilities.Core": "17.11.4",
+ "NuGet.Build.Tasks": "6.11.1-rc.2"
+ },
+ "runtimeTargets": {}
+ },
+ "NuGet.CommandLine.XPlat/6.11.1-rc.2": {
+ "dependencies": {
+ "Microsoft.Build": "17.11.4",
+ "NuGet.Commands": "6.11.1-rc.2",
+ "System.CommandLine": "2.0.0-beta4.23307.1",
+ "System.Diagnostics.Debug": "4.3.0"
+ },
+ "runtime": {
+ "lib/net8.0/NuGet.CommandLine.XPlat.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Commands/6.11.1-rc.2": {
+ "dependencies": {
+ "Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
+ "Microsoft.Extensions.FileSystemGlobbing": "8.0.0",
+ "NuGet.Credentials": "6.11.1-rc.2",
+ "NuGet.ProjectModel": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.Commands.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Common/6.11.1-rc.2": {
+ "dependencies": {
+ "NuGet.Frameworks": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Common.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Configuration/6.11.1-rc.2": {
+ "dependencies": {
+ "NuGet.Common": "6.11.1-rc.2",
+ "System.Security.Cryptography.ProtectedData": "8.0.0"
+ },
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Configuration.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Credentials/6.11.1-rc.2": {
+ "dependencies": {
+ "NuGet.Protocol": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.Credentials.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.DependencyResolver.Core/6.11.1-rc.2": {
+ "dependencies": {
+ "NuGet.Configuration": "6.11.1-rc.2",
+ "NuGet.LibraryModel": "6.11.1-rc.2",
+ "NuGet.Protocol": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.DependencyResolver.Core.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Frameworks/6.11.1-rc.2": {
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Frameworks.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.LibraryModel/6.11.1-rc.2": {
+ "dependencies": {
+ "NuGet.Common": "6.11.1-rc.2",
+ "NuGet.Versioning": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/netstandard2.0/NuGet.LibraryModel.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Localization/6.11.1-rc.2": {},
+ "NuGet.Packaging/6.11.1-rc.2": {
+ "dependencies": {
+ "Newtonsoft.Json": "13.0.3",
+ "NuGet.Configuration": "6.11.1-rc.2",
+ "NuGet.Versioning": "6.11.1-rc.2",
+ "System.Security.Cryptography.Pkcs": "8.0.0"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.Packaging.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.ProjectModel/6.11.1-rc.2": {
+ "dependencies": {
+ "NuGet.DependencyResolver.Core": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.ProjectModel.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Protocol/6.11.1-rc.2": {
+ "dependencies": {
+ "NuGet.Packaging": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "lib/net5.0/NuGet.Protocol.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "NuGet.Versioning/6.11.1-rc.2": {
+ "runtime": {
+ "lib/netstandard2.0/NuGet.Versioning.dll": {
+ "assemblyVersion": "6.11.1.2",
+ "fileVersion": "6.11.1.2"
+ }
+ }
+ },
+ "runtime.native.System/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0"
+ }
+ },
+ "runtime.native.System.IO.Compression/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0"
+ }
+ },
+ "System.Buffers/4.3.0": {
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.CodeDom/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.CodeDom.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Collections/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Immutable/8.0.0": {},
+ "System.CommandLine/2.0.0-beta4.23307.1": {
+ "runtime": {
+ "lib/net7.0/System.CommandLine.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.23.30701"
+ }
+ }
+ },
+ "System.Configuration.ConfigurationManager/8.0.0": {
+ "dependencies": {
+ "System.Diagnostics.EventLog": "8.0.0",
+ "System.Security.Cryptography.ProtectedData": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.Configuration.ConfigurationManager.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Diagnostics.Debug/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource/5.0.0": {},
+ "System.Diagnostics.EventLog/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.Diagnostics.EventLog.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "0.0.0.0"
+ },
+ "runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Diagnostics.Tracing/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Formats.Asn1/8.0.0": {},
+ "System.Globalization/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.IO/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.Compression/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "System.Buffers": "4.3.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.IO.Compression": "4.3.0"
+ }
+ },
+ "System.Memory/4.5.5": {},
+ "System.Reflection/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0"
+ }
+ },
+ "System.Reflection.MetadataLoadContext/8.0.0": {
+ "dependencies": {
+ "System.Collections.Immutable": "8.0.0",
+ "System.Reflection.Metadata": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.Reflection.MetadataLoadContext.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Reflection.Primitives/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Resources.Extensions/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.Resources.Extensions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Resources.ResourceManager/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0"
+ }
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.0.0": {},
+ "System.Runtime.Extensions/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.Loader/4.3.0": {
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Pkcs/8.0.0": {
+ "dependencies": {
+ "System.Formats.Asn1": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Security.Cryptography.ProtectedData/8.0.0": {
+ "runtime": {
+ "lib/net8.0/System.Security.Cryptography.ProtectedData.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Security.Cryptography.Xml/8.0.1": {
+ "dependencies": {
+ "System.Security.Cryptography.Pkcs": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.Security.Cryptography.Xml.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.524.21615"
+ }
+ }
+ },
+ "System.ServiceProcess.ServiceController/8.0.0": {
+ "dependencies": {
+ "System.Diagnostics.EventLog": "8.0.0"
+ },
+ "runtime": {
+ "lib/net8.0/System.ServiceProcess.ServiceController.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ },
+ "runtimeTargets": {
+ "runtimes/win/lib/net8.0/System.ServiceProcess.ServiceController.dll": {
+ "rid": "win",
+ "assetType": "runtime",
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.23.53103"
+ }
+ }
+ },
+ "System.Text.Encoding/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.CodePages/8.0.0": {},
+ "System.Text.Encodings.Web/8.0.0": {},
+ "System.Text.Json/8.0.4": {
+ "dependencies": {
+ "System.Text.Encodings.Web": "8.0.0"
+ }
+ },
+ "System.Threading/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.0",
+ "Microsoft.NETCore.Targets": "2.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Wcwidth.Sources/1.0.0": {},
+ "Microsoft.DotNet.Cli/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.ApplicationInsights": "2.21.0",
+ "Microsoft.AspNetCore.DeveloperCertificates.XPlat": "8.0.8-servicing.24369.8",
+ "Microsoft.Build": "17.11.4",
+ "Microsoft.Deployment.DotNet.Releases": "2.0.0-preview.1.23463.1",
+ "Microsoft.DotNet.Cli.Sln.Internal": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.Cli.Utils": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.Configurer": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.InternalAbstractions": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.NativeWrapper": "8.0.402-servicing.24466.16",
+ "Microsoft.NET.HostModel": "8.0.8-servicing.24366.12",
+ "Microsoft.TemplateEngine.Cli": "8.0.402-servicing.24466.16",
+ "Microsoft.TemplateEngine.Orchestrator.RunnableProjects": "8.0.400-preview.24360.3",
+ "Microsoft.Win32.Msi": "8.0.402-servicing.24466.16",
+ "Microsoft.Windows.CsWin32": "0.3.49-beta",
+ "NETStandard.Library": "2.0.3",
+ "Newtonsoft.Json": "13.0.3",
+ "System.CommandLine": "2.0.0-beta4.23307.1",
+ "System.ServiceProcess.ServiceController": "8.0.0",
+ "microsoft.dotnet.templateLocator": "8.0.402-servicing.24466.16"
+ },
+ "runtime": {
+ "dotnet.dll": {}
+ }
+ },
+ "Microsoft.DotNet.Cli.Sln.Internal/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.DotNet.Cli.Utils": "8.0.402-servicing.24466.16"
+ },
+ "runtime": {
+ "Microsoft.DotNet.Cli.Sln.Internal.dll": {}
+ }
+ },
+ "Microsoft.DotNet.Cli.Utils/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.Build.Runtime": "17.11.4",
+ "Microsoft.Extensions.DependencyModel": "8.0.1",
+ "NuGet.Frameworks": "6.11.1-rc.2",
+ "NuGet.Packaging": "6.11.1-rc.2",
+ "NuGet.ProjectModel": "6.11.1-rc.2",
+ "NuGet.Versioning": "6.11.1-rc.2",
+ "System.CommandLine": "2.0.0-beta4.23307.1"
+ },
+ "runtime": {
+ "Microsoft.DotNet.Cli.Utils.dll": {}
+ }
+ },
+ "Microsoft.DotNet.Configurer/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.DotNet.Cli.Utils": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.InternalAbstractions": "8.0.402-servicing.24466.16",
+ "NuGet.Common": "6.11.1-rc.2",
+ "NuGet.Configuration": "6.11.1-rc.2"
+ },
+ "runtime": {
+ "Microsoft.DotNet.Configurer.dll": {}
+ }
+ },
+ "Microsoft.DotNet.InternalAbstractions/8.0.402-servicing.24466.16": {
+ "runtime": {
+ "Microsoft.DotNet.InternalAbstractions.dll": {}
+ }
+ },
+ "Microsoft.DotNet.NativeWrapper/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.Deployment.DotNet.Releases": "2.0.0-preview.1.23463.1"
+ },
+ "runtime": {
+ "Microsoft.DotNet.NativeWrapper.dll": {}
+ }
+ },
+ "microsoft.dotnet.templateLocator/8.0.402-servicing.24466.16": {
+ "runtime": {
+ "Microsoft.DotNet.TemplateLocator.dll": {}
+ }
+ },
+ "Microsoft.NET.Sdk.WorkloadManifestReader/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.Deployment.DotNet.Releases": "2.0.0-preview.1.23463.1",
+ "System.Text.Json": "8.0.4"
+ },
+ "runtime": {
+ "Microsoft.NET.Sdk.WorkloadManifestReader.dll": {}
+ }
+ },
+ "Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.DotNet.Cli.Utils": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.NativeWrapper": "8.0.402-servicing.24466.16",
+ "Microsoft.NET.Sdk.WorkloadManifestReader": "8.0.402-servicing.24466.16"
+ },
+ "runtime": {
+ "Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver.dll": {}
+ }
+ },
+ "Microsoft.TemplateEngine.Cli/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.DotNet.Cli.Utils": "8.0.402-servicing.24466.16",
+ "Microsoft.DotNet.Configurer": "8.0.402-servicing.24466.16",
+ "Microsoft.Extensions.Logging.Console": "8.0.0",
+ "Microsoft.TemplateEngine.Edge": "8.0.400-preview.24360.3",
+ "Microsoft.TemplateSearch.Common": "8.0.400-preview.24360.3",
+ "System.CommandLine": "2.0.0-beta4.23307.1",
+ "Wcwidth.Sources": "1.0.0"
+ },
+ "runtime": {
+ "Microsoft.TemplateEngine.Cli.dll": {}
+ }
+ },
+ "Microsoft.Win32.Msi/8.0.402-servicing.24466.16": {
+ "runtime": {
+ "Microsoft.Win32.Msi.dll": {}
+ }
+ },
+ "tool_msbuild/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "Microsoft.Build": "17.11.4",
+ "Microsoft.Build.Framework": "17.11.4",
+ "Microsoft.Build.Localization": "17.11.4-preview-24406-09",
+ "Microsoft.Build.Runtime": "17.11.4",
+ "Microsoft.Build.Tasks.Core": "17.11.4",
+ "Microsoft.Build.Utilities.Core": "17.11.4",
+ "Microsoft.NET.StringTools": "17.11.4",
+ "System.Resources.Extensions": "8.0.0"
+ },
+ "runtime": {}
+ },
+ "tool_nuget/8.0.402-servicing.24466.16": {
+ "dependencies": {
+ "NuGet.CommandLine.XPlat": "6.11.1-rc.2"
+ },
+ "runtime": {}
+ },
+ "dotnet/8.0.402.0": {
+ "runtime": {
+ "dotnet.dll": {
+ "assemblyVersion": "8.0.402.0",
+ "fileVersion": "8.4.224.46616"
+ }
+ }
+ },
+ "MSBuild/15.1.0.0": {
+ "runtime": {
+ "MSBuild.dll": {
+ "assemblyVersion": "15.1.0.0",
+ "fileVersion": "17.11.4.40609"
+ }
+ }
+ },
+ "Microsoft.DotNet.SdkResolver/8.0.402.0": {
+ "runtime": {
+ "Microsoft.DotNet.SdkResolver.dll": {
+ "assemblyVersion": "8.0.402.0",
+ "fileVersion": "8.4.224.46616"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "dotnet.deps.json/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "dotnet-format/8.3.536002": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HOEaUi+7nEKAc/Njlb4G8WjRknGW70RLbq0wGx9JMNhNpCr2py4+eWRyy/AcwwbnZpkdrwTLIXzQCdc8V7x57w==",
+ "path": "dotnet-format/8.3.536002",
+ "hashPath": "dotnet-format.8.3.536002.nupkg.sha512"
+ },
+ "Microsoft.ApplicationInsights/2.21.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-btZEDWAFNo9CoYliMCriSMTX3ruRGZTtYw4mo2XyyfLlowFicYVM2Xszi5evDG95QRYV7MbbH3D2RqVwfZlJHw==",
+ "path": "microsoft.applicationinsights/2.21.0",
+ "hashPath": "microsoft.applicationinsights.2.21.0.nupkg.sha512"
+ },
+ "Microsoft.AspNetCore.DeveloperCertificates.XPlat/8.0.8-servicing.24369.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-NynBEGG82wLLOBiqVH8HzzTg0SmzIS7GB41FpjmmIMQcWDxUbLtbfiOzVp4L6ULMnfS8aR51FclTVWJc9VuoKw==",
+ "path": "microsoft.aspnetcore.developercertificates.xplat/8.0.8-servicing.24369.8",
+ "hashPath": "microsoft.aspnetcore.developercertificates.xplat.8.0.8-servicing.24369.8.nupkg.sha512"
+ },
+ "Microsoft.Build/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-UMC7DfeFEHY2GGHHaghybUuUlLaByFHEFudR2PehMgDBuRuLAUePp1iaa4eFtVzepRzMtIbeSCVJCzzX3NV2Gg==",
+ "path": "microsoft.build/17.11.4",
+ "hashPath": "microsoft.build.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.Build.Framework/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-u28uDihlqxtt8h2dL1ZJOZ7TRkxBK+HGr+3FgQpILVo7Q7gErkw8mYW9R+RM5PtxvZTdYb/4MWDL66vdIsANBQ==",
+ "path": "microsoft.build.framework/17.11.4",
+ "hashPath": "microsoft.build.framework.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.Build.Localization/17.11.4-preview-24406-09": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-LSPBAn0N+7mlpffIz6vSBuppLEQacR46vk+0JZTmKiVekDvvOPTh3gi/4ZKckFMdlRhMqaIF3nP7x05YwT5OlQ==",
+ "path": "microsoft.build.localization/17.11.4-preview-24406-09",
+ "hashPath": "microsoft.build.localization.17.11.4-preview-24406-09.nupkg.sha512"
+ },
+ "Microsoft.Build.NuGetSdkResolver/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-uLdfJHcx+wOpK3NuvmfYTQ63+oe2brdGKbA6TPQRjcGLIElqDdU/dsMInS+lHqmQ79rK4fjHSJCEYsBySGTlTg==",
+ "path": "microsoft.build.nugetsdkresolver/6.11.1-rc.2",
+ "hashPath": "microsoft.build.nugetsdkresolver.6.11.1-rc.2.nupkg.sha512"
+ },
+ "Microsoft.Build.Runtime/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1HrDZhz7P2oK7aadN7JzHCZqIf02did4a8i2l9fqaA9EkdQK8sXpepYuOvEGaEdCWS9jToG42ZtomMrKPKxjKA==",
+ "path": "microsoft.build.runtime/17.11.4",
+ "hashPath": "microsoft.build.runtime.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.Build.Tasks.Core/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-i3a0+1fuIxr3XgqpVBD2gnPRmZNOgYrPZs9sZViQH1HnjCrgxOpTZtdsXV+G7OyO4q05S5nfAQdSHUxNjnoE4A==",
+ "path": "microsoft.build.tasks.core/17.11.4",
+ "hashPath": "microsoft.build.tasks.core.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.Build.Utilities.Core/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-b2CEJMgVuv5fkhaR6TXjgocIa6YQbseowRj15q3/IyH343EPr+CrxXAZs6Xp6uZDE8A3ynsLPlufFUMkjUl37A==",
+ "path": "microsoft.build.utilities.core/17.11.4",
+ "hashPath": "microsoft.build.utilities.core.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.CSharp.CodeStyle/4.11.0-3.24365.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-niH7DBMouAo+dMPQ278iWcsom4L2PDI2ozKMzy0VP38hVmX/E6y0OPsYcC+ZflCUQUoprosces56CnQrS4HDbg==",
+ "path": "microsoft.codeanalysis.csharp.codestyle/4.11.0-3.24365.8",
+ "hashPath": "microsoft.codeanalysis.csharp.codestyle.4.11.0-3.24365.8.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.NetAnalyzers/8.0.0-preview.23614.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-2dmbYPDsW+B7bey/TefoHMR41RSQ+kWCkWrrvyJH7mE6IOG4Y2mewWzh+acH+s3ZUMOo5xt0DboBADBgTiBGXg==",
+ "path": "microsoft.codeanalysis.netanalyzers/8.0.0-preview.23614.1",
+ "hashPath": "microsoft.codeanalysis.netanalyzers.8.0.0-preview.23614.1.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.VisualBasic.CodeStyle/4.11.0-3.24365.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-upFSFF7ZMYeyRrG7zPQsY6qEtuoLejkZyQkuMyFnzh75yiozJpaNx97gI6DYZNVaRjklBzoP05zBMucVnCUm8A==",
+ "path": "microsoft.codeanalysis.visualbasic.codestyle/4.11.0-3.24365.8",
+ "hashPath": "microsoft.codeanalysis.visualbasic.codestyle.4.11.0-3.24365.8.nupkg.sha512"
+ },
+ "Microsoft.Deployment.DotNet.Releases/2.0.0-preview.1.23463.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kFl9hFWzrV1H1KgTHZn0bNRixsxxeK5m2XHMSWsqaWEnMQTbxkLEpS3UHWInf5lpQffnQvt2uVEJAKJ6wjf4Nw==",
+ "path": "microsoft.deployment.dotnet.releases/2.0.0-preview.1.23463.1",
+ "hashPath": "microsoft.deployment.dotnet.releases.2.0.0-preview.1.23463.1.nupkg.sha512"
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kY6eTNkeWLHvfOjg97Q7tgQKrPpX+Y3fR6fS4nyfpgFLHBxHriLBR4v3e9t71it91gIMEeKUqOqrFJ7Pj48eHA==",
+ "path": "microsoft.diasymreader.pdb2pdb/1.1.0-beta2-19575-01",
+ "hashPath": "microsoft.diasymreader.pdb2pdb.1.1.0-beta2-19575-01.nupkg.sha512"
+ },
+ "Microsoft.DotNet.XliffTasks/1.0.0-beta.23475.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZsVfWaPacITS006a49PPf35ZyzxWEUTUu4FBU6GhT882cs4Ow7ryvjq6yh82nGdXCi4XMjoUm5vl7XDsUW90QQ==",
+ "path": "microsoft.dotnet.xlifftasks/1.0.0-beta.23475.1",
+ "hashPath": "microsoft.dotnet.xlifftasks.1.0.0-beta.23475.1.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Configuration/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==",
+ "path": "microsoft.extensions.configuration/8.0.0",
+ "hashPath": "microsoft.extensions.configuration.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Configuration.Abstractions/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==",
+ "path": "microsoft.extensions.configuration.abstractions/8.0.0",
+ "hashPath": "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Configuration.Binder/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mBMoXLsr5s1y2zOHWmKsE9veDcx8h1x/c3rz4baEdQKTeDcmQAPNbB54Pi/lhFO3K431eEq6PFbMgLaa6PHFfA==",
+ "path": "microsoft.extensions.configuration.binder/8.0.0",
+ "hashPath": "microsoft.extensions.configuration.binder.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.DependencyInjection/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-V8S3bsm50ig6JSyrbcJJ8bW2b9QLGouz+G1miK3UTaOWmMtFwNNNzUf4AleyDWUmTrWMLNnFSLEQtxmxgNQnNQ==",
+ "path": "microsoft.extensions.dependencyinjection/8.0.0",
+ "hashPath": "microsoft.extensions.dependencyinjection.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fGLiCRLMYd00JYpClraLjJTNKLmMJPnqxMaiRzEBIIvevlzxz33mXy39Lkd48hu1G+N21S7QpaO5ZzKsI6FRuA==",
+ "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.1",
+ "hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.1.nupkg.sha512"
+ },
+ "Microsoft.Extensions.DependencyModel/8.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5Ou6varcxLBzQ+Agfm0k0pnH7vrEITYlXMDuE6s7ZHlZHz6/G8XJ3iISZDr5rfwfge6RnXJ1+Wc479mMn52vjA==",
+ "path": "microsoft.extensions.dependencymodel/8.0.1",
+ "hashPath": "microsoft.extensions.dependencymodel.8.0.1.nupkg.sha512"
+ },
+ "Microsoft.Extensions.FileProviders.Abstractions/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==",
+ "path": "microsoft.extensions.fileproviders.abstractions/8.0.0",
+ "hashPath": "microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.FileSystemGlobbing/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==",
+ "path": "microsoft.extensions.filesystemglobbing/8.0.0",
+ "hashPath": "microsoft.extensions.filesystemglobbing.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Logging/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-tvRkov9tAJ3xP51LCv3FJ2zINmv1P8Hi8lhhtcKGqM+ImiTCC84uOPEI4z8Cdq2C3o9e+Aa0Gw0rmrsJD77W+w==",
+ "path": "microsoft.extensions.logging/8.0.0",
+ "hashPath": "microsoft.extensions.logging.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Logging.Abstractions/8.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-RIFgaqoaINxkM2KTOw72dmilDmTrYA0ns2KW4lDz4gZ2+o6IQ894CzmdL3StM2oh7QQq44nCWiqKqc4qUI9Jmg==",
+ "path": "microsoft.extensions.logging.abstractions/8.0.1",
+ "hashPath": "microsoft.extensions.logging.abstractions.8.0.1.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Logging.Configuration/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ixXXV0G/12g6MXK65TLngYN9V5hQQRuV+fZi882WIoVJT7h5JvoYoxTEwCgdqwLjSneqh1O+66gM8sMr9z/rsQ==",
+ "path": "microsoft.extensions.logging.configuration/8.0.0",
+ "hashPath": "microsoft.extensions.logging.configuration.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Logging.Console/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-e+48o7DztoYog+PY430lPxrM4mm3PbA6qucvQtUDDwVo4MO+ejMw7YGc/o2rnxbxj4isPxdfKFzTxvXMwAz83A==",
+ "path": "microsoft.extensions.logging.console/8.0.0",
+ "hashPath": "microsoft.extensions.logging.console.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Options/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JOVOfqpnqlVLUzINQ2fox8evY2SKLYJ3BV8QDe/Jyp21u1T7r45x/R/5QdteURMR5r01GxeJSBBUOCOyaNXA3g==",
+ "path": "microsoft.extensions.options/8.0.0",
+ "hashPath": "microsoft.extensions.options.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Options.ConfigurationExtensions/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-0f4DMRqEd50zQh+UyJc+/HiBsZ3vhAQALgdkcQEalSH1L2isdC7Yj54M3cyo5e+BeO5fcBQ7Dxly8XiBBcvRgw==",
+ "path": "microsoft.extensions.options.configurationextensions/8.0.0",
+ "hashPath": "microsoft.extensions.options.configurationextensions.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.Extensions.Primitives/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==",
+ "path": "microsoft.extensions.primitives/8.0.0",
+ "hashPath": "microsoft.extensions.primitives.8.0.0.nupkg.sha512"
+ },
+ "Microsoft.FSharp.Compiler/12.8.400-beta.24351.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-NUf/eYanrGFm7n7OHxjiCDdbvVXLqMwZdrXoqMTu13NQynD3Ku2C5ZMK+h3xE5rszaKSbHKgFki/D9SDofnGJA==",
+ "path": "microsoft.fsharp.compiler/12.8.400-beta.24351.2",
+ "hashPath": "microsoft.fsharp.compiler.12.8.400-beta.24351.2.nupkg.sha512"
+ },
+ "Microsoft.Net.Compilers.Toolset/4.11.0-3.24365.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fvKVAMRbXJpDUvURL6CNmMcgVhzq3pSg5Uc0X0LUHQXaVpFy6sXITjt8xm6vtIkYdusvmHfO6JW48KBDk8/xjw==",
+ "path": "microsoft.net.compilers.toolset/4.11.0-3.24365.8",
+ "hashPath": "microsoft.net.compilers.toolset.4.11.0-3.24365.8.nupkg.sha512"
+ },
+ "Microsoft.NET.HostModel/8.0.8-servicing.24366.12": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-6mvrxgAodQrAEjuVoZw3Tbpg2y6Yy8b6OpalVUvZocs0ADgD/uJAJqs73XEyk4kX8Dv/s1VBumPCRiKBPk2Jgw==",
+ "path": "microsoft.net.hostmodel/8.0.8-servicing.24366.12",
+ "hashPath": "microsoft.net.hostmodel.8.0.8-servicing.24366.12.nupkg.sha512"
+ },
+ "Microsoft.NET.Sdk.Razor.SourceGenerators.Transport/9.0.0-preview.24420.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+dF3UHv9G/+OMlkcWA5hqTOul10dNugPPTUFi13YxH/QNcEReE00lmvmsCnKx9Ecide58ewlfaUxKhcYRNTugg==",
+ "path": "microsoft.net.sdk.razor.sourcegenerators.transport/9.0.0-preview.24420.1",
+ "hashPath": "microsoft.net.sdk.razor.sourcegenerators.transport.9.0.0-preview.24420.1.nupkg.sha512"
+ },
+ "Microsoft.NET.StringTools/17.11.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mudqUHhNpeqIdJoUx2YDWZO/I9uEDYVowan89R6wsomfnUJQk6HteoQTlNjZDixhT2B4IXMkMtgZtoceIjLRmA==",
+ "path": "microsoft.net.stringtools/17.11.4",
+ "hashPath": "microsoft.net.stringtools.17.11.4.nupkg.sha512"
+ },
+ "Microsoft.NETCore.Platforms/1.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
+ "path": "microsoft.netcore.platforms/1.1.0",
+ "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
+ },
+ "Microsoft.NETCore.Targets/2.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-x188gIZXOwFXkPXyGavEcPGcR6RGvjFOES2QzskN4gERZjWPN34qhRsZVMC0CLJfQLGSButarcgWxPPM4vmg0w==",
+ "path": "microsoft.netcore.targets/2.1.0",
+ "hashPath": "microsoft.netcore.targets.2.1.0.nupkg.sha512"
+ },
+ "Microsoft.TemplateEngine.Abstractions/8.0.400-preview.24360.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-X3hvdZWNPKMb684/fUdBUHr+8UgUy2VyYXcQD16fQk/IKVsn6u5NGwNlb8OsrJEQbjAY+AclWJ7gUbvUyVHYrg==",
+ "path": "microsoft.templateengine.abstractions/8.0.400-preview.24360.3",
+ "hashPath": "microsoft.templateengine.abstractions.8.0.400-preview.24360.3.nupkg.sha512"
+ },
+ "Microsoft.TemplateEngine.Core/8.0.400-preview.24360.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-uebod1Ovaj8eHq/t4UBuSHAJ7r3ZKJ06e5T5L9JI3MoSAMlKr5DPFlOACunHnSI/K7FPdai6vr0rMdZY1QJWGw==",
+ "path": "microsoft.templateengine.core/8.0.400-preview.24360.3",
+ "hashPath": "microsoft.templateengine.core.8.0.400-preview.24360.3.nupkg.sha512"
+ },
+ "Microsoft.TemplateEngine.Core.Contracts/8.0.400-preview.24360.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-e5PFmBS0mu8489828k9Z/wCqN0u/R4DKgYTj33MjzXWrxUz1ETtAv9KVqWvSjwsW2Qwr4rSZCuiqPIkinfT4lA==",
+ "path": "microsoft.templateengine.core.contracts/8.0.400-preview.24360.3",
+ "hashPath": "microsoft.templateengine.core.contracts.8.0.400-preview.24360.3.nupkg.sha512"
+ },
+ "Microsoft.TemplateEngine.Edge/8.0.400-preview.24360.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-4xJBZeNVR7OrcCQA45sVBywDEvKlYitxOQ9jRP22JdHsd18iPsSxkHYrZ1B7kf5EFD8FarOmx55PBDCViSvbDw==",
+ "path": "microsoft.templateengine.edge/8.0.400-preview.24360.3",
+ "hashPath": "microsoft.templateengine.edge.8.0.400-preview.24360.3.nupkg.sha512"
+ },
+ "Microsoft.TemplateEngine.Orchestrator.RunnableProjects/8.0.400-preview.24360.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-I1V5dcPJTB701/FAQyJqpikEBWaGGvOlhLY5ebySLws7ZjczN09QcPB0AQMcNbv6YFLGJEYZZIWLvZ4E1VRKXA==",
+ "path": "microsoft.templateengine.orchestrator.runnableprojects/8.0.400-preview.24360.3",
+ "hashPath": "microsoft.templateengine.orchestrator.runnableprojects.8.0.400-preview.24360.3.nupkg.sha512"
+ },
+ "Microsoft.TemplateEngine.Utils/8.0.400-preview.24360.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-IY/DhCsDH5JDW7bu9Hq/tcWhf/2Jxd+wpFZtt0HXHmLaTJgVa1t4agJlPrJV3MCeWkeUpOoaj4YkgiDJPCaJdQ==",
+ "path": "microsoft.templateengine.utils/8.0.400-preview.24360.3",
+ "hashPath": "microsoft.templateengine.utils.8.0.400-preview.24360.3.nupkg.sha512"
+ },
+ "Microsoft.TemplateSearch.Common/8.0.400-preview.24360.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-stZV6XtRCum1EXp9XOR7QMsxjSxz/mDP8yYYwN0subtqJVMT54g6A18aAHhKHR3zcmlkITa12WzTdpXw6JuImw==",
+ "path": "microsoft.templatesearch.common/8.0.400-preview.24360.3",
+ "hashPath": "microsoft.templatesearch.common.8.0.400-preview.24360.3.nupkg.sha512"
+ },
+ "Microsoft.TestPlatform.Build/17.11.0-release-24352-05": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-NPjQbUwEZvu7hM0Svl7OquhxJpAPW3tiYkhkojr7DeU7RIjCXpYO8/v38EqGN1B0V+Y9jEzBuHOtrwuqWFG8GQ==",
+ "path": "microsoft.testplatform.build/17.11.0-release-24352-05",
+ "hashPath": "microsoft.testplatform.build.17.11.0-release-24352-05.nupkg.sha512"
+ },
+ "Microsoft.TestPlatform.CLI/17.11.0-release-24352-05": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-G0HxY9N24NAqwtwQERRfGq0ll2fewx4LlP65Veb56FUR/0oV2bsK4D7uifYz+6DIoPp3V72NDW44G4/asIziHg==",
+ "path": "microsoft.testplatform.cli/17.11.0-release-24352-05",
+ "hashPath": "microsoft.testplatform.cli.17.11.0-release-24352-05.nupkg.sha512"
+ },
+ "Microsoft.Windows.CsWin32/0.3.49-beta": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-/iAXplVDKESFyLz/MShuVYVx62YFvFePpq3qrzREl8KScQqG6Z2kV7r9UJTjQS1g+hfy3V+e4m1x9lsu24YNSg==",
+ "path": "microsoft.windows.cswin32/0.3.49-beta",
+ "hashPath": "microsoft.windows.cswin32.0.3.49-beta.nupkg.sha512"
+ },
+ "Microsoft.Windows.SDK.Win32Docs/0.1.42-alpha": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Z/9po23gUA9aoukirh2ItMU2ZS9++Js9Gdds9fu5yuMojDrmArvY2y+tq9985tR3cxFxpZO1O35Wjfo0khj5HA==",
+ "path": "microsoft.windows.sdk.win32docs/0.1.42-alpha",
+ "hashPath": "microsoft.windows.sdk.win32docs.0.1.42-alpha.nupkg.sha512"
+ },
+ "Microsoft.Windows.SDK.Win32Metadata/55.0.45-preview": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-2i1kVIk8rMuMCYtoeYeWbmCRLqNgb63Berac3Gv+J/pjp0oucopasKgLQNslryhsgBl4xex9ENhJX2MXEW5vdA==",
+ "path": "microsoft.windows.sdk.win32metadata/55.0.45-preview",
+ "hashPath": "microsoft.windows.sdk.win32metadata.55.0.45-preview.nupkg.sha512"
+ },
+ "Microsoft.Windows.WDK.Win32Metadata/0.9.9-experimental": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-cncPlxLqR25mFOuvpxZPgXgJqRmXyV5eTULj/9w8AQvO/c1xJDEapohRsWkYaia7hCR/EwEzBHr7RU9u93T03w==",
+ "path": "microsoft.windows.wdk.win32metadata/0.9.9-experimental",
+ "hashPath": "microsoft.windows.wdk.win32metadata.0.9.9-experimental.nupkg.sha512"
+ },
+ "NETStandard.Library/2.0.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==",
+ "path": "netstandard.library/2.0.3",
+ "hashPath": "netstandard.library.2.0.3.nupkg.sha512"
+ },
+ "Newtonsoft.Json/13.0.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
+ "path": "newtonsoft.json/13.0.3",
+ "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
+ },
+ "NuGet.Build.Tasks/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-lWlF4oIFSzuXuWx/ztybJKVe85lMTSzBRqUw18suXHbQ2JMmeUU06kP7Sb3Ggi2c+duB5kAVeFxhy0gNROXjbw==",
+ "path": "nuget.build.tasks/6.11.1-rc.2",
+ "hashPath": "nuget.build.tasks.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Build.Tasks.Console/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+T0SsDZ0n84WwQAQwSwBPID9jRSMJyJg7CpdozvgyZNeH3lH4DgVQXgTR0BKvkwjYuF3oXczCF2D6xWqtLQ8Nw==",
+ "path": "nuget.build.tasks.console/6.11.1-rc.2",
+ "hashPath": "nuget.build.tasks.console.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.CommandLine.XPlat/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Id8IkAN3C5uM656vLsYbMkKXQHGQN8Zgco01/9g8AabIWvQc4DTkIXP3owtVMb6jzCCYXmp/tWU1tadoohengQ==",
+ "path": "nuget.commandline.xplat/6.11.1-rc.2",
+ "hashPath": "nuget.commandline.xplat.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Commands/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yeXe0dkVIxaiUjrVSJIXpyM1ZAAgG99usbbtJbTGBXBDtRUkS/sJdgjEufob26Y9ayBkxkatDKmiqPfnT/wCtg==",
+ "path": "nuget.commands/6.11.1-rc.2",
+ "hashPath": "nuget.commands.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Common/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-t/o+SJ5ZTMowggXRvaWc1cGT73eLyRUTZEK0WL1JIC5IHjd1oZnPX9bCIH6tUiXG2GwxoGx5xPyCRiazPfZ81A==",
+ "path": "nuget.common/6.11.1-rc.2",
+ "hashPath": "nuget.common.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Configuration/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-Sn87k19VGoOPLk2HlKk3eQBZyGfzrxUEoSVOJZRYz+4gOwgwT/IHplVJZ2A3KgdF/oJh2Za3ElZ9LKtD7AaimQ==",
+ "path": "nuget.configuration/6.11.1-rc.2",
+ "hashPath": "nuget.configuration.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Credentials/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-2SMqlEN0wACZmv1zMDI1aLQ9py10XvmU94q5jLqrLgAA3fn0cPnpd7k1UiUZykZ7tP6/eCPVkKE/zZWqUZksoQ==",
+ "path": "nuget.credentials/6.11.1-rc.2",
+ "hashPath": "nuget.credentials.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.DependencyResolver.Core/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-KovFNhmC/UclHESmWkfIGqx+3e74jb0DF9pGMgXyku1Wz+Ro+95TRLICM31v3ic2xKytP5HONB91t9JPpR87og==",
+ "path": "nuget.dependencyresolver.core/6.11.1-rc.2",
+ "hashPath": "nuget.dependencyresolver.core.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Frameworks/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mOAT+L1Ae3tOLFVbB5T1bzjLzz6xUPcHiX3PZHVE+WMH02TrvixsZBhz1fNpoPMUwGrvaENqx9NkmMUWqReMDw==",
+ "path": "nuget.frameworks/6.11.1-rc.2",
+ "hashPath": "nuget.frameworks.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.LibraryModel/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ks666K1wnI/a4aqfEOUy/IFwWCUcwkt44o2VjUpt8tt/wcVukCXPmdAFavdTReGHI3LziiBoi84ngs+LpCK6/g==",
+ "path": "nuget.librarymodel/6.11.1-rc.2",
+ "hashPath": "nuget.librarymodel.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Localization/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-e1U93UQv2Pto5T1BsFFOpjlJFL6s7a8VlJ7HYqBPG7V5OxU9f4wm7v2vEyXaUHrcVz91FGrdxbFDpLEpMdX9QQ==",
+ "path": "nuget.localization/6.11.1-rc.2",
+ "hashPath": "nuget.localization.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Packaging/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-lmAU57eyjvdGzm2z5DoedYqT7dwBsf5tDey1lJCe9mf/I7DiExDdNxpp1EeUQ6zfsrr0JxHJfRccbCEYm5elXA==",
+ "path": "nuget.packaging/6.11.1-rc.2",
+ "hashPath": "nuget.packaging.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.ProjectModel/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-29O6/7MQgDcI9qp8+Mb6ODuqNfTLMGjGPtguiX2OKdwxeLYuxIDK3wS/4W99ASPQZVKyRR85PJL30Iinn7Zixw==",
+ "path": "nuget.projectmodel/6.11.1-rc.2",
+ "hashPath": "nuget.projectmodel.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Protocol/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-HRbZwJ+feiG4FH39A8rB+uahDfn38MLzZebLpItkYO4Nl7gjNzRUyHKlqNpzeLtY3OfBu2d3cywKQeHG11pLTQ==",
+ "path": "nuget.protocol/6.11.1-rc.2",
+ "hashPath": "nuget.protocol.6.11.1-rc.2.nupkg.sha512"
+ },
+ "NuGet.Versioning/6.11.1-rc.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-IBaspwPk8dI6wfC4n7SaGSUOwYZ8QUhmzJoh7ukBPgL4S9nZ3NPLT3SXuewYHy7hs4MuPpqZIE6uQ/CM5ulzvA==",
+ "path": "nuget.versioning/6.11.1-rc.2",
+ "hashPath": "nuget.versioning.6.11.1-rc.2.nupkg.sha512"
+ },
+ "runtime.native.System/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "path": "runtime.native.system/4.3.0",
+ "hashPath": "runtime.native.system.4.3.0.nupkg.sha512"
+ },
+ "runtime.native.System.IO.Compression/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-INBPonS5QPEgn7naufQFXJEp3zX6L4bwHgJ/ZH78aBTpeNfQMtf7C6VrAFhlq2xxWBveIOWyFzQjJ8XzHMhdOQ==",
+ "path": "runtime.native.system.io.compression/4.3.0",
+ "hashPath": "runtime.native.system.io.compression.4.3.0.nupkg.sha512"
+ },
+ "System.Buffers/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ratu44uTIHgeBeI0dE8DWvmXVBSo4u7ozRZZHOMmK/JPpYyo0dAfgSiHlpiObMQ5lEtEyIXA40sKRYg5J6A8uQ==",
+ "path": "system.buffers/4.3.0",
+ "hashPath": "system.buffers.4.3.0.nupkg.sha512"
+ },
+ "System.CodeDom/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-WTlRjL6KWIMr/pAaq3rYqh0TJlzpouaQ/W1eelssHgtlwHAH25jXTkUphTYx9HaIIf7XA6qs/0+YhtLEQRkJ+Q==",
+ "path": "system.codedom/8.0.0",
+ "hashPath": "system.codedom.8.0.0.nupkg.sha512"
+ },
+ "System.Collections/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "path": "system.collections/4.3.0",
+ "hashPath": "system.collections.4.3.0.nupkg.sha512"
+ },
+ "System.Collections.Immutable/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==",
+ "path": "system.collections.immutable/8.0.0",
+ "hashPath": "system.collections.immutable.8.0.0.nupkg.sha512"
+ },
+ "System.CommandLine/2.0.0-beta4.23307.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-L9AshOole+4UHIUZJ6qxFAzLtO1kUc5FB/JRVV+jypq3DopJWkFr2+WUqGDdehnKuF6PLo6XNJb2HjpK8LE4UQ==",
+ "path": "system.commandline/2.0.0-beta4.23307.1",
+ "hashPath": "system.commandline.2.0.0-beta4.23307.1.nupkg.sha512"
+ },
+ "System.Configuration.ConfigurationManager/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JlYi9XVvIREURRUlGMr1F6vOFLk7YSY4p1vHo4kX3tQ0AGrjqlRWHDi66ImHhy6qwXBG3BJ6Y1QlYQ+Qz6Xgww==",
+ "path": "system.configuration.configurationmanager/8.0.0",
+ "hashPath": "system.configuration.configurationmanager.8.0.0.nupkg.sha512"
+ },
+ "System.Diagnostics.Debug/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "path": "system.diagnostics.debug/4.3.0",
+ "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512"
+ },
+ "System.Diagnostics.DiagnosticSource/5.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-tCQTzPsGZh/A9LhhA6zrqCRV4hOHsK90/G7q3Khxmn6tnB1PuNU0cRaKANP2AWcF9bn0zsuOoZOSrHuJk6oNBA==",
+ "path": "system.diagnostics.diagnosticsource/5.0.0",
+ "hashPath": "system.diagnostics.diagnosticsource.5.0.0.nupkg.sha512"
+ },
+ "System.Diagnostics.EventLog/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fdYxcRjQqTTacKId/2IECojlDSFvp7LP5N78+0z/xH7v/Tuw5ZAxu23Y6PTCRinqyu2ePx+Gn1098NC6jM6d+A==",
+ "path": "system.diagnostics.eventlog/8.0.0",
+ "hashPath": "system.diagnostics.eventlog.8.0.0.nupkg.sha512"
+ },
+ "System.Diagnostics.Tracing/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "path": "system.diagnostics.tracing/4.3.0",
+ "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512"
+ },
+ "System.Formats.Asn1/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-AJukBuLoe3QeAF+mfaRKQb2dgyrvt340iMBHYv+VdBzCUM06IxGlvl0o/uPOS7lHnXPN6u8fFRHSHudx5aTi8w==",
+ "path": "system.formats.asn1/8.0.0",
+ "hashPath": "system.formats.asn1.8.0.0.nupkg.sha512"
+ },
+ "System.Globalization/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "path": "system.globalization/4.3.0",
+ "hashPath": "system.globalization.4.3.0.nupkg.sha512"
+ },
+ "System.IO/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "path": "system.io/4.3.0",
+ "hashPath": "system.io.4.3.0.nupkg.sha512"
+ },
+ "System.IO.Compression/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-YHndyoiV90iu4iKG115ibkhrG+S3jBm8Ap9OwoUAzO5oPDAWcr0SFwQFm0HjM8WkEZWo0zvLTyLmbvTkW1bXgg==",
+ "path": "system.io.compression/4.3.0",
+ "hashPath": "system.io.compression.4.3.0.nupkg.sha512"
+ },
+ "System.Memory/4.5.5": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
+ "path": "system.memory/4.5.5",
+ "hashPath": "system.memory.4.5.5.nupkg.sha512"
+ },
+ "System.Reflection/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "path": "system.reflection/4.3.0",
+ "hashPath": "system.reflection.4.3.0.nupkg.sha512"
+ },
+ "System.Reflection.Metadata/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==",
+ "path": "system.reflection.metadata/8.0.0",
+ "hashPath": "system.reflection.metadata.8.0.0.nupkg.sha512"
+ },
+ "System.Reflection.MetadataLoadContext/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-SZxrQ4sQYnIcdwiO3G/lHZopbPYQ2lW0ioT4JezgccWUrKaKbHLJbAGZaDfkYjWcta1pWssAo3MOXLsR0ie4tQ==",
+ "path": "system.reflection.metadataloadcontext/8.0.0",
+ "hashPath": "system.reflection.metadataloadcontext.8.0.0.nupkg.sha512"
+ },
+ "System.Reflection.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "path": "system.reflection.primitives/4.3.0",
+ "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
+ },
+ "System.Resources.Extensions/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-psnQ6GRQOvt+evda5C4nD5EuV49mz2Tv0DD2JDVDEbE/TKoMukxSkGJcsBJ0pajpPuFRr67syFYlkJ4Wj6A5Zw==",
+ "path": "system.resources.extensions/8.0.0",
+ "hashPath": "system.resources.extensions.8.0.0.nupkg.sha512"
+ },
+ "System.Resources.ResourceManager/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "path": "system.resources.resourcemanager/4.3.0",
+ "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "path": "system.runtime/4.3.0",
+ "hashPath": "system.runtime.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.CompilerServices.Unsafe/6.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==",
+ "path": "system.runtime.compilerservices.unsafe/6.0.0",
+ "hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512"
+ },
+ "System.Runtime.Extensions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "path": "system.runtime.extensions/4.3.0",
+ "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.Handles/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "path": "system.runtime.handles/4.3.0",
+ "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.InteropServices/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "path": "system.runtime.interopservices/4.3.0",
+ "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.Loader/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==",
+ "path": "system.runtime.loader/4.3.0",
+ "hashPath": "system.runtime.loader.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Pkcs/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ULmp3xoOwNYjOYp4JZ2NK/6NdTgiN1GQXzVVN1njQ7LOZ0d0B9vyMnhyqbIi9Qw4JXj1JgCsitkTShboHRx7Eg==",
+ "path": "system.security.cryptography.pkcs/8.0.0",
+ "hashPath": "system.security.cryptography.pkcs.8.0.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.ProtectedData/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-+TUFINV2q2ifyXauQXRwy4CiBhqvDEDZeVJU7qfxya4aRYOKzVBpN+4acx25VcPB9ywUN6C0n8drWl110PhZEg==",
+ "path": "system.security.cryptography.protecteddata/8.0.0",
+ "hashPath": "system.security.cryptography.protecteddata.8.0.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Xml/8.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-hqu2ztecOf3BYg5q1R7QcyliX9L7r3mfsWtaRitAxcezH8hyZMB7zCmhi186hsUZXk1KxsAHXwyPEW+xvUED6g==",
+ "path": "system.security.cryptography.xml/8.0.1",
+ "hashPath": "system.security.cryptography.xml.8.0.1.nupkg.sha512"
+ },
+ "System.ServiceProcess.ServiceController/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-jtYVG3bpw2n/NvNnP2g/JLri0D4UtfusTvLeH6cZPNAEjJXJVGspS3wLgVvjNbm+wjaYkFgsXejMTocV1T5DIQ==",
+ "path": "system.serviceprocess.servicecontroller/8.0.0",
+ "hashPath": "system.serviceprocess.servicecontroller.8.0.0.nupkg.sha512"
+ },
+ "System.Text.Encoding/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "path": "system.text.encoding/4.3.0",
+ "hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
+ },
+ "System.Text.Encoding.CodePages/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-OZIsVplFGaVY90G2SbpgU7EnCoOO5pw1t4ic21dBF3/1omrJFpAGoNAVpPyMVOC90/hvgkGG3VFqR13YgZMQfg==",
+ "path": "system.text.encoding.codepages/8.0.0",
+ "hashPath": "system.text.encoding.codepages.8.0.0.nupkg.sha512"
+ },
+ "System.Text.Encodings.Web/8.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==",
+ "path": "system.text.encodings.web/8.0.0",
+ "hashPath": "system.text.encodings.web.8.0.0.nupkg.sha512"
+ },
+ "System.Text.Json/8.0.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-bAkhgDJ88XTsqczoxEMliSrpijKZHhbJQldhAmObj/RbrN3sU5dcokuXmWJWsdQAhiMJ9bTayWsL1C9fbbCRhw==",
+ "path": "system.text.json/8.0.4",
+ "hashPath": "system.text.json.8.0.4.nupkg.sha512"
+ },
+ "System.Threading/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "path": "system.threading/4.3.0",
+ "hashPath": "system.threading.4.3.0.nupkg.sha512"
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "path": "system.threading.tasks/4.3.0",
+ "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
+ },
+ "Wcwidth.Sources/1.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-86tmwfGXRz7GJQXBnoTFoMvqSqd6irfkEkRzQFR54W/nweaR8cUvzY8x++z+B/+eUPSuqD2Ah1iPJHgthy4pzg==",
+ "path": "wcwidth.sources/1.0.0",
+ "hashPath": "wcwidth.sources.1.0.0.nupkg.sha512"
+ },
+ "Microsoft.DotNet.Cli/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.DotNet.Cli.Sln.Internal/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.DotNet.Cli.Utils/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.DotNet.Configurer/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.DotNet.InternalAbstractions/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.DotNet.NativeWrapper/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "microsoft.dotnet.templateLocator/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.NET.Sdk.WorkloadManifestReader/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.NET.Sdk.WorkloadMSBuildSdkResolver/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.TemplateEngine.Cli/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.Win32.Msi/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "tool_msbuild/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "tool_nuget/8.0.402-servicing.24466.16": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "dotnet/8.0.402.0": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "MSBuild/15.1.0.0": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.DotNet.SdkResolver/8.0.402.0": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/dotnet.dll b/dotnet/sdk/8.0.402/dotnet.dll
new file mode 100644
index 0000000000000000000000000000000000000000..04f1b8621aedb8cf2809b6f431a0178b8e308e9d
--- /dev/null
+++ b/dotnet/sdk/8.0.402/dotnet.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:68309ece5bc5907c217977f13659a981c0ec6afe9986609fbf943cd08ce1754e
+size 2539008
diff --git a/dotnet/sdk/8.0.402/dotnet.runtimeconfig.json b/dotnet/sdk/8.0.402/dotnet.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..1324b30a0847af3aa203b5a473d317efd8671bba
--- /dev/null
+++ b/dotnet/sdk/8.0.402/dotnet.runtimeconfig.json
@@ -0,0 +1,13 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ },
+ "configProperties": {
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/it/MSBuild.resources.dll b/dotnet/sdk/8.0.402/it/MSBuild.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2392d9814041ba5f2041518e187e5a2b9780d383
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/MSBuild.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.Build.Tasks.Core.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.Build.Tasks.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1747f336e98e29166eec9c49eb2a4a4481c0b7b4
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.Build.Tasks.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.Build.Utilities.Core.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.Build.Utilities.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fc0f5c82e4513515a6486f209c2ae8978aec4aaf
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.Build.Utilities.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.Build.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6238a67ff2ad4a85c0f53e872b37291045136410
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.CodeCoverage.IO.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.CodeCoverage.IO.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cb2e2600ea09cd270a489228b4a58ebc06b2520a
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.CodeCoverage.IO.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b50f618ba21ae4c0871892c8789f5a719ac2c35f
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.DotNet.Cli.Sln.Internal.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.DotNet.Cli.Sln.Internal.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..64a5c5d58b7f255c0e383360e339ec661dbd3c2f
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.DotNet.Cli.Sln.Internal.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.DotNet.Cli.Utils.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.DotNet.Cli.Utils.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..acfd293a177e193e240dfd5aacd618da3218b113
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.DotNet.Cli.Utils.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.DotNet.Configurer.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.DotNet.Configurer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1ea9e270e3e2fc9177facd9dbdfc8e58a026c270
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.DotNet.Configurer.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.DotNet.TemplateLocator.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.DotNet.TemplateLocator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..77ac05425d5ccba7978ae2cbb66f87ec22adccff
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.DotNet.TemplateLocator.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b328863366de02a946b3b3d429f11f66e923f895
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Cli.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Cli.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f9bf8e7a9bb56e14fb0499d8100be0e96d74a357
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Cli.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Core.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0d16fc7ed8691f856999f9e8127c4c95ab5237b6
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Edge.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Edge.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5afda836b02713e77f218040cfec8334152295a1
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Edge.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8dd5b37cc0cfba37405022c0a8eda2e3063d800d
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Utils.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Utils.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b9a36e655dea211b99d1cb8c240c65003c426d9c
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.TemplateEngine.Utils.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.TemplateSearch.Common.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.TemplateSearch.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a614e6c3be3cb8e3384a869479902b8fb5c59125
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.TemplateSearch.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.Build.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9099fb5c92179311894b8f0020af5983fd69300a
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1ae0081637ff9e96305d3e95c50d31ea52c1610e
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.CoreUtilities.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.CoreUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a9ef090f3207dd4d4429f5bbfc860f05e59e589d
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.CoreUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1788952e311815e098828d5e38a3bc672f981a52
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.Utilities.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.Utilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ee057102445393115b8de3aac8b014c7c95741af
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.Utilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5cbd55370311690222f92715f710b85296037291
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.VisualStudio.TestPlatform.Client.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.VisualStudio.TestPlatform.Client.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e70c6b905b0811fb4b92422a9acb94e0eab619fd
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.VisualStudio.TestPlatform.Client.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9684a437451199bd5f025403e50c403fab50dcbc
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/dotnet/sdk/8.0.402/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ee345a65f7990bda5a87bd8a669c96eae8d59637
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/NuGet.Build.Tasks.Console.resources.dll b/dotnet/sdk/8.0.402/it/NuGet.Build.Tasks.Console.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0f730fa49491eca73c012be965292ada7b2eaed0
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/NuGet.Build.Tasks.Console.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/NuGet.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/it/NuGet.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..541627d70b655bd6a9cbc9a4f3c7edf619b526cd
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/NuGet.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/NuGet.CommandLine.XPlat.resources.dll b/dotnet/sdk/8.0.402/it/NuGet.CommandLine.XPlat.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..906e3c4ab23c1a318432bb807bb7b55980e1a17a
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/NuGet.CommandLine.XPlat.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/NuGet.Commands.resources.dll b/dotnet/sdk/8.0.402/it/NuGet.Commands.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a4b0ecc1bf7eedd7a070f5cde13006f79bb29a0c
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/NuGet.Commands.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/NuGet.Common.resources.dll b/dotnet/sdk/8.0.402/it/NuGet.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a683ce3997a3f4653fe34cf6a6e55d44d8670cda
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/NuGet.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/NuGet.Configuration.resources.dll b/dotnet/sdk/8.0.402/it/NuGet.Configuration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..226748b8bbe0d5f3e95507238b24a27792e569d8
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/NuGet.Configuration.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/NuGet.Credentials.resources.dll b/dotnet/sdk/8.0.402/it/NuGet.Credentials.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..14bc20607b4204c5effadf576a45d2c1d148cda7
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/NuGet.Credentials.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/NuGet.DependencyResolver.Core.resources.dll b/dotnet/sdk/8.0.402/it/NuGet.DependencyResolver.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f9a886195576d90e99420c1b6c1ea4d1b88ca83b
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/NuGet.DependencyResolver.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/NuGet.Frameworks.resources.dll b/dotnet/sdk/8.0.402/it/NuGet.Frameworks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6b9419bc57e48730ada93c605374ec20b044a21c
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/NuGet.Frameworks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/NuGet.LibraryModel.resources.dll b/dotnet/sdk/8.0.402/it/NuGet.LibraryModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7b358ba4a5ebeea6c88729b479c42a079302e36c
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/NuGet.LibraryModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/NuGet.Packaging.resources.dll b/dotnet/sdk/8.0.402/it/NuGet.Packaging.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7f1d6d0090a413cac9150317d41d2251b23ca9a7
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/NuGet.Packaging.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/NuGet.ProjectModel.resources.dll b/dotnet/sdk/8.0.402/it/NuGet.ProjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..05cb97230a91f137a5f997f18d2051ba8102eb7e
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/NuGet.ProjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/NuGet.Protocol.resources.dll b/dotnet/sdk/8.0.402/it/NuGet.Protocol.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c475d0e971f17bb0b9835cc5520892012f75adb9
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/NuGet.Protocol.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/NuGet.Versioning.resources.dll b/dotnet/sdk/8.0.402/it/NuGet.Versioning.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1c2ef8509346117e55deeaa101cf0cd6c39a2803
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/NuGet.Versioning.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/System.CommandLine.resources.dll b/dotnet/sdk/8.0.402/it/System.CommandLine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..46e9fe20a963a8d236a4a5e5ba63158dc5f1046f
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/System.CommandLine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/dotnet.resources.dll b/dotnet/sdk/8.0.402/it/dotnet.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fe437040826a971728ddc9f7698b7e204c9162fb
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/dotnet.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/it/vstest.console.resources.dll b/dotnet/sdk/8.0.402/it/vstest.console.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c2e7eb8ad55501816d5310294d6b2ba21016edc3
Binary files /dev/null and b/dotnet/sdk/8.0.402/it/vstest.console.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/MSBuild.resources.dll b/dotnet/sdk/8.0.402/ja/MSBuild.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6ddf5fc397dd09ce4792e4de8a7822b91805f796
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/MSBuild.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.Build.Tasks.Core.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.Build.Tasks.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d9599990daf6a30605e2399cd5134db24fa24c5c
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.Build.Tasks.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.Build.Utilities.Core.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.Build.Utilities.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5f18a389c41ffa43ec7f3b060be57ba79e02e388
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.Build.Utilities.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.Build.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..292e2c3aa66890bfd5b9c4c79f2bbe533da2ddfd
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.CodeCoverage.IO.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.CodeCoverage.IO.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b270081e52c5f6d9f9bd76473ac28b11b4292a85
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.CodeCoverage.IO.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e2a7f96d9f844865d3ba34f1b9d4fcf3d5e997bb
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.DotNet.Cli.Sln.Internal.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.DotNet.Cli.Sln.Internal.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ee4fab3d914482bfb29f7d096bb31d94709a4f92
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.DotNet.Cli.Sln.Internal.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.DotNet.Cli.Utils.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.DotNet.Cli.Utils.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..547e2ee5d80b937eb555a03a8b6de792863dbb90
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.DotNet.Cli.Utils.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.DotNet.Configurer.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.DotNet.Configurer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e0b5a3ed40ceb5a97f6439d544318103aceea1e5
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.DotNet.Configurer.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.DotNet.TemplateLocator.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.DotNet.TemplateLocator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..53c492e20da8495396bf6813dd11e8ee2bf5fe19
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.DotNet.TemplateLocator.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9f1353d9e4b6579c9e40b872a4d6bb7d2c443257
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Cli.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Cli.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c08fd48f9de6ad229f84f3ed8109e15ae31818e1
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Cli.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Core.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a1684c3932d308bc144ca978daece557aaeda267
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Edge.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Edge.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5a2ac1b129462e295935f3ba0acdf122bc51d932
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Edge.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2030e70541e83a86ccae5931d3473e99194ce298
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Utils.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Utils.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1a72a97f2a5fac546d5f25cecc8419cea92d847e
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.TemplateEngine.Utils.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.TemplateSearch.Common.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.TemplateSearch.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e7e7230c083afb142df88b236863574ae49a419b
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.TemplateSearch.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.Build.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1bcdb4f4c62fcc9b6db9aa9ba1a56e4b56c7878b
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..896ab38b24dc853a82fad7dce0362961a8e04990
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..26b474fc2597875e1856af848171466c3d4ad282
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a5e86c636b9ebc2180595f1aacb78e8ac0323b58
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.Utilities.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.Utilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1ba6d9b092af9bbf4f4d25aa080d89df76a56052
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.Utilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cb8c7cc92eebc8919c02de501e5e088039726e06
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.VisualStudio.TestPlatform.Client.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.VisualStudio.TestPlatform.Client.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8c5a57a5b0b4f915f128e95f1fd8069613931bd3
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.VisualStudio.TestPlatform.Client.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6eb5b03a42238cf48d3abd665e22a8647d788f5b
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/dotnet/sdk/8.0.402/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..78061a55b687dc1fe79c91a5509b61ae0c28204d
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/NuGet.Build.Tasks.Console.resources.dll b/dotnet/sdk/8.0.402/ja/NuGet.Build.Tasks.Console.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c0b91b23272dd91bfcef44965606b17331436fa1
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/NuGet.Build.Tasks.Console.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/NuGet.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/ja/NuGet.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a0c8c9813266986c1f2acdb5064636759a571d11
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/NuGet.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/NuGet.CommandLine.XPlat.resources.dll b/dotnet/sdk/8.0.402/ja/NuGet.CommandLine.XPlat.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ad1d2a081fa3fb47b5019cfb9544c62219dec6cb
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/NuGet.CommandLine.XPlat.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/NuGet.Commands.resources.dll b/dotnet/sdk/8.0.402/ja/NuGet.Commands.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..deaf5e2e298747956856b54a71174127925b705c
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/NuGet.Commands.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/NuGet.Common.resources.dll b/dotnet/sdk/8.0.402/ja/NuGet.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a6a7e03b24852e130c7e38b9533eaf81fcec51e3
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/NuGet.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/NuGet.Configuration.resources.dll b/dotnet/sdk/8.0.402/ja/NuGet.Configuration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0bed07fd55161e196e572251a8228b4717e2710a
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/NuGet.Configuration.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/NuGet.Credentials.resources.dll b/dotnet/sdk/8.0.402/ja/NuGet.Credentials.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cf4ad6b51c52f622c1ce0580e90091dd4d7e8571
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/NuGet.Credentials.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/NuGet.DependencyResolver.Core.resources.dll b/dotnet/sdk/8.0.402/ja/NuGet.DependencyResolver.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2290dc6e6580f8e76991569c8de678c5d55a418c
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/NuGet.DependencyResolver.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/NuGet.Frameworks.resources.dll b/dotnet/sdk/8.0.402/ja/NuGet.Frameworks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4f53b38138f4e3c7bd2e38d0160e179b163f9fb5
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/NuGet.Frameworks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/NuGet.LibraryModel.resources.dll b/dotnet/sdk/8.0.402/ja/NuGet.LibraryModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a16b545935fa6b1282a709d40bb854a3d5866a83
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/NuGet.LibraryModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/NuGet.Packaging.resources.dll b/dotnet/sdk/8.0.402/ja/NuGet.Packaging.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b51d0bbe351ee5156e1dd04487d668e42694630e
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/NuGet.Packaging.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/NuGet.ProjectModel.resources.dll b/dotnet/sdk/8.0.402/ja/NuGet.ProjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4c80e60dead3283f5ac3bdfd7b78d10b9cc99ba9
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/NuGet.ProjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/NuGet.Protocol.resources.dll b/dotnet/sdk/8.0.402/ja/NuGet.Protocol.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f6075f2ad38a2e9afc01114c7f9dbcb45a4b564a
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/NuGet.Protocol.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/NuGet.Versioning.resources.dll b/dotnet/sdk/8.0.402/ja/NuGet.Versioning.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..37da50fc70fbe93e4091d87912d6d150392d945a
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/NuGet.Versioning.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/System.CommandLine.resources.dll b/dotnet/sdk/8.0.402/ja/System.CommandLine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..52e4197d01ca650bc5ba93a2f288ea5cf4b496da
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/System.CommandLine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/dotnet.resources.dll b/dotnet/sdk/8.0.402/ja/dotnet.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..697b313bd8ad98f288dcfee34802a4ebd8bd82fe
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/dotnet.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ja/vstest.console.resources.dll b/dotnet/sdk/8.0.402/ja/vstest.console.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7b94c9708384aad7e1754700da9175dd0f1bff39
Binary files /dev/null and b/dotnet/sdk/8.0.402/ja/vstest.console.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/MSBuild.resources.dll b/dotnet/sdk/8.0.402/pl/MSBuild.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3efd65b07432c62e97b583c07d94271407a04533
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/MSBuild.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.Build.Tasks.Core.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.Build.Tasks.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ad7a0c6a2e669aae27d071710767f07d14562211
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.Build.Tasks.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.Build.Utilities.Core.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.Build.Utilities.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fedaca00df7275a4f31144d20fa32ad632e42822
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.Build.Utilities.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.Build.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..de4b42d08935b8c5a0f691c52e80c43d19c04f68
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.CodeCoverage.IO.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.CodeCoverage.IO.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b2ec6002ebbbb5c233d19e59b1c73fd94dda6c55
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.CodeCoverage.IO.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..aed8a59f33889189206cb57c1ccfa409526d370e
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.DotNet.Cli.Sln.Internal.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.DotNet.Cli.Sln.Internal.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1cc5682e47910dc7779a7374693121c298aaf113
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.DotNet.Cli.Sln.Internal.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.DotNet.Cli.Utils.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.DotNet.Cli.Utils.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..99d7c375cdbfa151f627c272770e1f69c7e9096c
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.DotNet.Cli.Utils.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.DotNet.Configurer.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.DotNet.Configurer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3c91242e23f1895a60ae43af834165ce758bd6af
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.DotNet.Configurer.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.DotNet.TemplateLocator.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.DotNet.TemplateLocator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1aea9b226c3581b3a95d7e717fee2765ad788a8b
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.DotNet.TemplateLocator.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ced339a46a012c690f9ea83b4347b836d86218f8
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Cli.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Cli.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fea9a58e3ed229b80bd29ede66d0f4f3792debd1
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Cli.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Core.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f19bf36e5a12d3595e5348146483b2bb8b001b9c
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Edge.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Edge.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fb47f2fb80dfffd3e96d5ac25c89938800a59298
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Edge.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9403c7881ca5000df3c2c1a77e27e7a300dbe2b9
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Utils.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Utils.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d4094b9599ee7d17ef4cb8046654797996ce14c6
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.TemplateEngine.Utils.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.TemplateSearch.Common.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.TemplateSearch.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3bf3f992b3f98dd5d2dd7057047ebdd6ece6084d
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.TemplateSearch.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.Build.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a434ba9080787257690ad6e4bafbecd5fc66eb34
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..61bca8cf568925b46a22009e6f134583b614c8ba
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0e206c2cebdd936bac676a6a247e94e950471e93
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1654c68675b28fa5edf6aaf6b0ee0cd88d492443
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.Utilities.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.Utilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..03649400fcbe6a85b6bc4dfd4877d2192d3da2ad
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.Utilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e7d56953b1f3eb90173372b18e9743aa696f472f
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.VisualStudio.TestPlatform.Client.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.VisualStudio.TestPlatform.Client.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7934114ef63de4a40633394bc7dd7a06a04bc0c8
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.VisualStudio.TestPlatform.Client.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1eec54790ca38511e8bb23957d40df16725079e6
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/dotnet/sdk/8.0.402/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..92b3939f5e9c2330c221372d38f4cb845ca9fd90
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/NuGet.Build.Tasks.Console.resources.dll b/dotnet/sdk/8.0.402/pl/NuGet.Build.Tasks.Console.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c7ea1d03add8bc263613da0aa2b18f585f82a52b
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/NuGet.Build.Tasks.Console.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/NuGet.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/pl/NuGet.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f98b2f7c12ab59df2c5e41ffefcf63ce92b6a291
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/NuGet.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/NuGet.CommandLine.XPlat.resources.dll b/dotnet/sdk/8.0.402/pl/NuGet.CommandLine.XPlat.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ea5e637079e2ac3c6e97a5e8e188143c40224dc8
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/NuGet.CommandLine.XPlat.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/NuGet.Commands.resources.dll b/dotnet/sdk/8.0.402/pl/NuGet.Commands.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1e7ffdb0e0b025dabead8344c362bcc5c14c7c92
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/NuGet.Commands.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/NuGet.Common.resources.dll b/dotnet/sdk/8.0.402/pl/NuGet.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ac905643330da2aed2a5ceb17366abc0aed4894b
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/NuGet.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/NuGet.Configuration.resources.dll b/dotnet/sdk/8.0.402/pl/NuGet.Configuration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d468324204465f49c0cd91faedc366167a82b701
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/NuGet.Configuration.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/NuGet.Credentials.resources.dll b/dotnet/sdk/8.0.402/pl/NuGet.Credentials.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..11cdf012585d311c178557eb3b56551a2403ab3e
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/NuGet.Credentials.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/NuGet.DependencyResolver.Core.resources.dll b/dotnet/sdk/8.0.402/pl/NuGet.DependencyResolver.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8b4f77672399ea31ec46ef07ccaffc87c83d0aca
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/NuGet.DependencyResolver.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/NuGet.Frameworks.resources.dll b/dotnet/sdk/8.0.402/pl/NuGet.Frameworks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0a36038ec011571be3f9bdb4fc7801568dfe9adc
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/NuGet.Frameworks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/NuGet.LibraryModel.resources.dll b/dotnet/sdk/8.0.402/pl/NuGet.LibraryModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e6c3b510b609a1b71d6c51eded6f6295c03e90ee
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/NuGet.LibraryModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/NuGet.Packaging.resources.dll b/dotnet/sdk/8.0.402/pl/NuGet.Packaging.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e290726e4e6334f636e60bd3b6712789843bf896
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/NuGet.Packaging.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/NuGet.ProjectModel.resources.dll b/dotnet/sdk/8.0.402/pl/NuGet.ProjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..523b6b2a31a42a254d2a85c4bc8c9e370d99a67f
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/NuGet.ProjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/NuGet.Protocol.resources.dll b/dotnet/sdk/8.0.402/pl/NuGet.Protocol.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..94b726aa8ff32279c109f494ae8f6dede4057934
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/NuGet.Protocol.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/NuGet.Versioning.resources.dll b/dotnet/sdk/8.0.402/pl/NuGet.Versioning.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9888cbee2847857927727b2b539542b0852799a3
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/NuGet.Versioning.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/System.CommandLine.resources.dll b/dotnet/sdk/8.0.402/pl/System.CommandLine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..60cfa5bcf056f44187a370264ff63095527c3bcd
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/System.CommandLine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/dotnet.resources.dll b/dotnet/sdk/8.0.402/pl/dotnet.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9b3ed25e03fce973c3094f1a5d535b12b274f58e
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/dotnet.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/pl/vstest.console.resources.dll b/dotnet/sdk/8.0.402/pl/vstest.console.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5a4848101fc2c3dbfb2680a5a04b435aa42abdb5
Binary files /dev/null and b/dotnet/sdk/8.0.402/pl/vstest.console.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ref/Microsoft.Build.Framework.dll b/dotnet/sdk/8.0.402/ref/Microsoft.Build.Framework.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ad9fcff928658aff24eea4a71081d8362c56b196
Binary files /dev/null and b/dotnet/sdk/8.0.402/ref/Microsoft.Build.Framework.dll differ
diff --git a/dotnet/sdk/8.0.402/ref/Microsoft.Build.Utilities.Core.dll b/dotnet/sdk/8.0.402/ref/Microsoft.Build.Utilities.Core.dll
new file mode 100644
index 0000000000000000000000000000000000000000..45960a8d2c31f17461a34fbb57b812b51fe3cdb6
Binary files /dev/null and b/dotnet/sdk/8.0.402/ref/Microsoft.Build.Utilities.Core.dll differ
diff --git a/dotnet/sdk/8.0.402/ref/mscorlib.dll b/dotnet/sdk/8.0.402/ref/mscorlib.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e74299a04cd2def1a4399f49a9b6728d74bf2906
Binary files /dev/null and b/dotnet/sdk/8.0.402/ref/mscorlib.dll differ
diff --git a/dotnet/sdk/8.0.402/ref/netstandard.dll b/dotnet/sdk/8.0.402/ref/netstandard.dll
new file mode 100644
index 0000000000000000000000000000000000000000..829b8d5f180535a8cbc6655ca04bd6fba4aa9216
--- /dev/null
+++ b/dotnet/sdk/8.0.402/ref/netstandard.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1799854d01a89d141fecc4c4548b01e51fa57118c9b18eac66a752f3bbe98c02
+size 1319560
diff --git a/dotnet/sdk/8.0.402/ru/MSBuild.resources.dll b/dotnet/sdk/8.0.402/ru/MSBuild.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fd35b8cc2286e6bc27c2cea0243bc69748a205f9
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/MSBuild.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.Build.Tasks.Core.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.Build.Tasks.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f51a2a404d5cd6d6b81ea8e0899cc1c18dea7128
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.Build.Tasks.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.Build.Utilities.Core.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.Build.Utilities.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a10cf790f13210ae62e88779848fea583bec16d6
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.Build.Utilities.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.Build.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..95020f91a7aa699a4b93e19daab9d7243a8e9ff7
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.CodeCoverage.IO.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.CodeCoverage.IO.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e01356b345e14ebc5b610e6bdedbb9b6b5ae78b7
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.CodeCoverage.IO.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b0d086c2418ccb69f5f880c7a6395724f60a02db
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.DotNet.Cli.Sln.Internal.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.DotNet.Cli.Sln.Internal.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0866b43588d0de00c6bd88fd0398642582480bb2
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.DotNet.Cli.Sln.Internal.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.DotNet.Cli.Utils.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.DotNet.Cli.Utils.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..de957b937016c1c0414a84519685e93c79872c0a
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.DotNet.Cli.Utils.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.DotNet.Configurer.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.DotNet.Configurer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c1b4a3241d1c261c10550c41b4acc543d326cabe
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.DotNet.Configurer.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.DotNet.TemplateLocator.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.DotNet.TemplateLocator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..647f5d3450a4d334e41e29a9bc8d7f7fde797363
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.DotNet.TemplateLocator.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..88da2de71144e3739892f3357e6a8f5cc137fd80
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Cli.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Cli.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f496e3c77c54bcbcd832336421d38e98eef25c1b
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Cli.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Core.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8075c43f502f3998f305944c73f306ac7f6daa16
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Edge.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Edge.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5982284c5c938811f50ba3e2301cae49dbb68d92
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Edge.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d16d0f5ca4da67eb3594875f1869c0b968c026a8
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Utils.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Utils.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4de8c77b193e36781e5dc5012c1ddbebcff31b70
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.TemplateEngine.Utils.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.TemplateSearch.Common.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.TemplateSearch.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..043a6ad8a06ab8aae6ada42c666d5122518d3437
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.TemplateSearch.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.Build.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2165b2bc16b9e9bf23b0ca76d87be91e0caa4818
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..02c7dffe68191ab8b2f706e64bd494d150136d64
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..79d7913723140bf3ff9ea3335bb4a2c98df465a6
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dbdf83404d8dbdd7fdc501b02217495be19af8ee
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.Utilities.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.Utilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3aca8689ebfaa8332ae8aafb0434a31c1b0cbc1a
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.Utilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ebc6331e98373acda357283f7edfc04143524b0e
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.VisualStudio.TestPlatform.Client.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.VisualStudio.TestPlatform.Client.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8fb953a029a8b693ea45188f4778756eb1b36187
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.VisualStudio.TestPlatform.Client.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c0583d5dee51ec733059e52651af806a9cc07163
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/dotnet/sdk/8.0.402/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6fce52dca44348a714f80b4451b75d51b7bbbc4f
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/NuGet.Build.Tasks.Console.resources.dll b/dotnet/sdk/8.0.402/ru/NuGet.Build.Tasks.Console.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fbf5affd2609df3eefc14249d64425d0bfe4cfd8
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/NuGet.Build.Tasks.Console.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/NuGet.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/ru/NuGet.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6487515336116a2d74ba391d81b774c7fb061cc0
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/NuGet.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/NuGet.CommandLine.XPlat.resources.dll b/dotnet/sdk/8.0.402/ru/NuGet.CommandLine.XPlat.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..712d25c1e8055b12d235995162ac5ac8e8c45a93
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/NuGet.CommandLine.XPlat.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/NuGet.Commands.resources.dll b/dotnet/sdk/8.0.402/ru/NuGet.Commands.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ad645d355733aa9bf2ea2f538dd89fd7ebde773d
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/NuGet.Commands.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/NuGet.Common.resources.dll b/dotnet/sdk/8.0.402/ru/NuGet.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c3a5c8fc95bde5f792124e8e844e4f9af346ab6e
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/NuGet.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/NuGet.Configuration.resources.dll b/dotnet/sdk/8.0.402/ru/NuGet.Configuration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..822dae7fc70c021fafd8603387a27b75aed8ef83
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/NuGet.Configuration.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/NuGet.Credentials.resources.dll b/dotnet/sdk/8.0.402/ru/NuGet.Credentials.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cc2945085ed631d80c78f0b66d6a3c7eea156dd4
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/NuGet.Credentials.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/NuGet.DependencyResolver.Core.resources.dll b/dotnet/sdk/8.0.402/ru/NuGet.DependencyResolver.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e0a853486891674e3589e1b5409af4ef889ebbfe
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/NuGet.DependencyResolver.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/NuGet.Frameworks.resources.dll b/dotnet/sdk/8.0.402/ru/NuGet.Frameworks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..eb75c976d11032b6d3aa56c1d1d3ff40b30cdb93
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/NuGet.Frameworks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/NuGet.LibraryModel.resources.dll b/dotnet/sdk/8.0.402/ru/NuGet.LibraryModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9aa759d27eb3ddddda043d9ef7d28829e277bc6c
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/NuGet.LibraryModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/NuGet.Packaging.resources.dll b/dotnet/sdk/8.0.402/ru/NuGet.Packaging.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7dc0ffbbb1ad914cea2f549387baf7597dbb394d
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/NuGet.Packaging.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/NuGet.ProjectModel.resources.dll b/dotnet/sdk/8.0.402/ru/NuGet.ProjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..458afe31915578390162728889fcbf700aeb3870
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/NuGet.ProjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/NuGet.Protocol.resources.dll b/dotnet/sdk/8.0.402/ru/NuGet.Protocol.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4cbcce1af1c6900cf7773a1df1b6cb0564221463
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/NuGet.Protocol.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/NuGet.Versioning.resources.dll b/dotnet/sdk/8.0.402/ru/NuGet.Versioning.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b493973f8e19aa4cc2538d9880c9d80044f17cb2
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/NuGet.Versioning.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/System.CommandLine.resources.dll b/dotnet/sdk/8.0.402/ru/System.CommandLine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7209e89e61239ff5abac4683cfa3a55108a0df65
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/System.CommandLine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/dotnet.resources.dll b/dotnet/sdk/8.0.402/ru/dotnet.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cfe7c0b5880e39c6b4611d9c2f76378d554d4ad5
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/dotnet.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/ru/vstest.console.resources.dll b/dotnet/sdk/8.0.402/ru/vstest.console.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..77db739b7b47d32d323c1a8e40aece91ba9d4423
Binary files /dev/null and b/dotnet/sdk/8.0.402/ru/vstest.console.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/runtimes/any/native/Microsoft.TestPlatform.targets b/dotnet/sdk/8.0.402/runtimes/any/native/Microsoft.TestPlatform.targets
new file mode 100644
index 0000000000000000000000000000000000000000..002a31cc7a31b9199df6e8eb30f9e1b433b9fab2
--- /dev/null
+++ b/dotnet/sdk/8.0.402/runtimes/any/native/Microsoft.TestPlatform.targets
@@ -0,0 +1,157 @@
+
+
+
+
+ Microsoft.TestPlatform.Build.dll
+ $([System.IO.Path]::Combine($(MSBuildThisFileDirectory),"vstest.console.dll"))
+ False
+ False
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/runtimes/any/native/NuGet.RestoreEx.targets b/dotnet/sdk/8.0.402/runtimes/any/native/NuGet.RestoreEx.targets
new file mode 100644
index 0000000000000000000000000000000000000000..8007924797404b46b787975b533b5f29dc14a344
--- /dev/null
+++ b/dotnet/sdk/8.0.402/runtimes/any/native/NuGet.RestoreEx.targets
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/runtimes/any/native/NuGet.props b/dotnet/sdk/8.0.402/runtimes/any/native/NuGet.props
new file mode 100644
index 0000000000000000000000000000000000000000..1ba0814915ed5d4c20f5d51150b84788b0040065
--- /dev/null
+++ b/dotnet/sdk/8.0.402/runtimes/any/native/NuGet.props
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+ true
+
+
+
+
+ <_DirectoryPackagesPropsFile Condition="'$(_DirectoryPackagesPropsFile)' == ''">Directory.Packages.props
+ <_DirectoryPackagesPropsBasePath Condition="'$(_DirectoryPackagesPropsBasePath)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove('$(MSBuildProjectDirectory)', '$(_DirectoryPackagesPropsFile)'))
+ $([MSBuild]::NormalizePath('$(_DirectoryPackagesPropsBasePath)', '$(_DirectoryPackagesPropsFile)'))
+
+
+
+
+
+ true
+
+
+
diff --git a/dotnet/sdk/8.0.402/runtimes/any/native/NuGet.targets b/dotnet/sdk/8.0.402/runtimes/any/native/NuGet.targets
new file mode 100644
index 0000000000000000000000000000000000000000..6bb5f4a5100c257934b4e8f894643cc83a597d44
--- /dev/null
+++ b/dotnet/sdk/8.0.402/runtimes/any/native/NuGet.targets
@@ -0,0 +1,1546 @@
+
+
+
+
+
+ true
+
+ NuGet.Build.Tasks.dll
+
+ false
+
+ true
+ true
+
+ false
+
+ WarnAndContinue
+
+ $(BuildInParallel)
+ true
+
+ <_RestoreSolutionFileUsed Condition=" '$(_RestoreSolutionFileUsed)' == '' AND '$(SolutionDir)' != '' AND $(MSBuildProjectFullPath.EndsWith('.metaproj')) == 'true' ">true
+
+ $(MSBuildInteractive)
+
+ true
+
+ true
+
+ <_CentralPackageVersionsEnabled Condition="'$(ManagePackageVersionsCentrally)' == 'true' AND '$(CentralPackageVersionsFileImported)' == 'true'">true
+
+
+
+
+
+ true
+
+ low
+
+ all
+ direct
+
+
+
+
+ <_GenerateRestoreGraphProjectEntryInputProperties>ExcludeRestorePackageImports=true
+
+
+ <_GenerateRestoreGraphProjectEntryInputProperties Condition=" '$(RestoreUseCustomAfterTargets)' == 'true' ">
+ $(_GenerateRestoreGraphProjectEntryInputProperties);
+ NuGetRestoreTargets=$(MSBuildThisFileFullPath);
+ RestoreUseCustomAfterTargets=$(RestoreUseCustomAfterTargets);
+ CustomAfterMicrosoftCommonCrossTargetingTargets=$(MSBuildThisFileFullPath);
+ CustomAfterMicrosoftCommonTargets=$(MSBuildThisFileFullPath);
+
+
+
+ <_GenerateRestoreGraphProjectEntryInputProperties Condition=" '$(_RestoreSolutionFileUsed)' == 'true' ">
+ $(_GenerateRestoreGraphProjectEntryInputProperties);
+ _RestoreSolutionFileUsed=true;
+ SolutionDir=$(SolutionDir);
+ SolutionName=$(SolutionName);
+ SolutionFileName=$(SolutionFileName);
+ SolutionPath=$(SolutionPath);
+ SolutionExt=$(SolutionExt);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ContinueOnError)
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ContinueOnError)
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ContinueOnError)
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_FrameworkReferenceForRestore
+ Include="@(FrameworkReference)"
+ Condition="'%(FrameworkReference.IsTransitiveFrameworkReference)' != 'true'"/>
+
+
+
+
+
+
+
+ $(ContinueOnError)
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ exclusionlist
+
+
+
+
+ <_FilteredRestoreGraphProjectInputItemsTmp
+ Include="@(RestoreGraphProjectInputItems)"
+ Condition=" '%(RestoreGraphProjectInputItems.Extension)' == '.csproj' Or
+ '%(RestoreGraphProjectInputItems.Extension)' == '.vbproj' Or
+ '%(RestoreGraphProjectInputItems.Extension)' == '.fsproj' Or
+ '%(RestoreGraphProjectInputItems.Extension)' == '.nuproj' Or
+ '%(RestoreGraphProjectInputItems.Extension)' == '.proj' Or
+ '%(RestoreGraphProjectInputItems.Extension)' == '.msbuildproj' Or
+ '%(RestoreGraphProjectInputItems.Extension)' == '.vcxproj' " />
+
+
+
+
+ <_FilteredRestoreGraphProjectInputItemsTmp
+ Include="@(RestoreGraphProjectInputItems)"
+ Condition=" '%(RestoreGraphProjectInputItems.Extension)' != '.metaproj'
+ AND '%(RestoreGraphProjectInputItems.Extension)' != '.shproj'
+ AND '%(RestoreGraphProjectInputItems.Extension)' != '.vcxitems'
+ AND '%(RestoreGraphProjectInputItems.Extension)' != '.vdproj'
+ AND '%(RestoreGraphProjectInputItems.Extension)' != '' " />
+
+
+
+
+ <_FilteredRestoreGraphProjectInputItemsTmp
+ Include="@(RestoreGraphProjectInputItems)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_GenerateRestoreGraphProjectEntryInput Include="@(FilteredRestoreGraphProjectInputItems)" Condition=" '$(RestoreRecursive)' != 'true' " />
+ <_GenerateRestoreGraphProjectEntryInput Include="@(_RestoreProjectPathItems)" Condition=" '$(RestoreRecursive)' == 'true' " />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RestoreGraphEntry Include="$([System.Guid]::NewGuid())" Condition=" '$(RestoreProjectStyle)' != 'Unknown' ">
+ RestoreSpec
+ $(MSBuildProjectFullPath)
+
+
+
+
+
+
+
+
+ netcoreapp1.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_HasPackageReferenceItems Condition="'@(PackageReference)' != ''">true
+
+
+ <_HasPackageReferenceItems Condition="@(PackageReference->Count()) > 0">true
+
+
+
+
+
+
+
+
+ <_HasPackageReferenceItems />
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+ <_RestoreProjectFramework/>
+ <_TargetFrameworkToBeUsed Condition=" '$(_TargetFrameworkOverride)' == '' ">$(TargetFrameworks)
+
+
+
+
+
+
+
+
+ <_RestoreTargetFrameworksOutputFiltered Include="$(_RestoreProjectFramework.Split(';'))" />
+
+
+
+
+
+
+ <_RestoreTargetFrameworkItems Include="$(TargetFrameworks.Split(';'))" />
+
+
+ <_RestoreTargetFrameworkItems Include="$(_TargetFrameworkOverride)" />
+
+
+
+
+
+
+
+ $(SolutionDir)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RestoreSettingsPerFramework Include="$([System.Guid]::NewGuid())">
+ $(RestoreAdditionalProjectSources)
+ $(RestoreAdditionalProjectFallbackFolders)
+ $(RestoreAdditionalProjectFallbackFoldersExcludes)
+
+
+
+
+
+
+
+
+
+ $(MSBuildProjectExtensionsPath)
+
+
+
+
+
+
+
+
+ <_RestoreProjectName>$(MSBuildProjectName)
+ <_RestoreProjectName Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' AND '$(AssemblyName)' != '' ">$(AssemblyName)
+ <_RestoreProjectName Condition=" '$(PackageReferenceCompatibleProjectStyle)' == 'true' AND '$(PackageId)' != '' ">$(PackageId)
+
+
+
+
+ <_RestoreProjectVersion>1.0.0
+ <_RestoreProjectVersion Condition=" '$(Version)' != '' ">$(Version)
+ <_RestoreProjectVersion Condition=" '$(PackageVersion)' != '' ">$(PackageVersion)
+
+
+
+
+ <_RestoreCrossTargeting>true
+
+
+
+
+ <_RestoreSkipContentFileWrite Condition=" '$(TargetFrameworks)' == '' AND '$(TargetFramework)' == '' ">true
+
+
+
+
+ <_RestoreGraphEntry Include="$([System.Guid]::NewGuid())">
+ ProjectSpec
+ $(_RestoreProjectVersion)
+ $(MSBuildProjectFullPath)
+ $(MSBuildProjectFullPath)
+ $(_RestoreProjectName)
+ $(_OutputSources)
+ $(_OutputFallbackFolders)
+ $(_OutputPackagesPath)
+ $(RestoreProjectStyle)
+ $(RestoreOutputAbsolutePath)
+ $(RuntimeIdentifiers);$(RuntimeIdentifier)
+ $(RuntimeSupports)
+ $(_RestoreCrossTargeting)
+ $(RestoreLegacyPackagesDirectory)
+ $(ValidateRuntimeIdentifierCompatibility)
+ $(_RestoreSkipContentFileWrite)
+ $(_OutputConfigFilePaths)
+ $(TreatWarningsAsErrors)
+ $(WarningsAsErrors)
+ $(WarningsNotAsErrors)
+ $(NoWarn)
+ $(RestorePackagesWithLockFile)
+ $(NuGetLockFilePath)
+ $(RestoreLockedMode)
+ <_CentralPackageVersionsEnabled>$(_CentralPackageVersionsEnabled)
+ $(CentralPackageFloatingVersionsEnabled)
+ $(CentralPackageVersionOverrideEnabled)
+ $(CentralPackageTransitivePinningEnabled)
+ $(NuGetAudit)
+ $(NuGetAuditLevel)
+ $(NuGetAuditMode)
+
+
+
+
+
+ <_RestoreGraphEntry Include="$([System.Guid]::NewGuid())">
+ ProjectSpec
+ $(MSBuildProjectFullPath)
+ $(MSBuildProjectFullPath)
+ $(_RestoreProjectName)
+ $(_OutputSources)
+ $(RestoreOutputAbsolutePath)
+ $(_OutputFallbackFolders)
+ $(_OutputPackagesPath)
+ $(_CurrentProjectJsonPath)
+ $(RestoreProjectStyle)
+ $(_OutputConfigFilePaths)
+
+
+
+
+
+ <_RestoreGraphEntry Include="$([System.Guid]::NewGuid())">
+ ProjectSpec
+ $(MSBuildProjectFullPath)
+ $(MSBuildProjectFullPath)
+ $(_RestoreProjectName)
+ $(RestoreProjectStyle)
+ $(MSBuildProjectDirectory)\packages.$(MSBuildProjectName).config
+ $(MSBuildProjectDirectory)\packages.config
+ $(RestorePackagesWithLockFile)
+ $(NuGetLockFilePath)
+ $(RestoreLockedMode)
+ $(_OutputSources)
+ $(SolutionDir)
+ $(_OutputRepositoryPath)
+ $(_OutputConfigFilePaths)
+ $(_OutputPackagesPath)
+ @(_RestoreTargetFrameworksOutputFiltered)
+ $(NuGetAudit)
+ $(NuGetAuditLevel)
+
+
+
+
+
+ <_RestoreGraphEntry Include="$([System.Guid]::NewGuid())">
+ ProjectSpec
+ $(MSBuildProjectFullPath)
+ $(MSBuildProjectFullPath)
+ $(_RestoreProjectName)
+ $(RestoreProjectStyle)
+ @(_RestoreTargetFrameworksOutputFiltered)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RestoreGraphEntry Include="$([System.Guid]::NewGuid())">
+ TargetFrameworkInformation
+ $(MSBuildProjectFullPath)
+ $(PackageTargetFallback)
+ $(AssetTargetFallback)
+ $(TargetFramework)
+ $(TargetFrameworkIdentifier)
+ $(TargetFrameworkVersion)
+ $(TargetFrameworkMoniker)
+ $(TargetFrameworkProfile)
+ $(TargetPlatformMoniker)
+ $(TargetPlatformIdentifier)
+ $(TargetPlatformVersion)
+ $(TargetPlatformMinVersion)
+ $(CLRSupport)
+ $(RuntimeIdentifierGraphPath)
+ $(WindowsTargetPlatformMinVersion)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RestoreProjectPathItems Include="$(_RestoreGraphAbsoluteProjectPaths)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_GenerateRestoreProjectPathWalkOutputs Include="$(MSBuildProjectFullPath)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_RestorePackagesPathOverride>$(RestorePackagesPath)
+
+
+
+
+
+
+ <_RestorePackagesPathOverride>$(RestoreRepositoryPath)
+
+
+
+
+
+
+ <_RestoreSourcesOverride>$(RestoreSources)
+
+
+
+
+
+
+ <_RestoreFallbackFoldersOverride>$(RestoreFallbackFolders)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_TargetFrameworkOverride Condition=" '$(TargetFrameworks)' == '' ">$(TargetFramework)
+
+
+
+
+
+
+
+ <_ValidProjectsForRestore Include="$(MSBuildProjectFullPath)" />
+
+
+
+
+
+
+
diff --git a/dotnet/sdk/8.0.402/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll b/dotnet/sdk/8.0.402/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cad384deb1ac9dac3e5cd07b3214be8f790e6892
Binary files /dev/null and b/dotnet/sdk/8.0.402/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll differ
diff --git a/dotnet/sdk/8.0.402/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll b/dotnet/sdk/8.0.402/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll
new file mode 100644
index 0000000000000000000000000000000000000000..054b60d341a7be5c9b6d336d65ead5a02109ae3d
Binary files /dev/null and b/dotnet/sdk/8.0.402/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll differ
diff --git a/dotnet/sdk/8.0.402/runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll b/dotnet/sdk/8.0.402/runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4214497bcf07dd475e1801a095b9ac2dee271d27
Binary files /dev/null and b/dotnet/sdk/8.0.402/runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll differ
diff --git a/dotnet/sdk/8.0.402/runtimes/win/lib/net8.0/System.ServiceProcess.ServiceController.dll b/dotnet/sdk/8.0.402/runtimes/win/lib/net8.0/System.ServiceProcess.ServiceController.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1ef9670de011caf87d6a0ca70e3ddaf8cd020502
Binary files /dev/null and b/dotnet/sdk/8.0.402/runtimes/win/lib/net8.0/System.ServiceProcess.ServiceController.dll differ
diff --git a/dotnet/sdk/8.0.402/testhost-1.1.runtimeconfig.json b/dotnet/sdk/8.0.402/testhost-1.1.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..0daebf348830bbe2808ca1a4f5db6c2aee1156b7
--- /dev/null
+++ b/dotnet/sdk/8.0.402/testhost-1.1.runtimeconfig.json
@@ -0,0 +1,9 @@
+{
+ "runtimeOptions": {
+ "tfm": "netcoreapp1.1",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/testhost-2.0.runtimeconfig.json b/dotnet/sdk/8.0.402/testhost-2.0.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..4c64216ac5c3266bcbc4c8619b10f48f165fa4ea
--- /dev/null
+++ b/dotnet/sdk/8.0.402/testhost-2.0.runtimeconfig.json
@@ -0,0 +1,9 @@
+{
+ "runtimeOptions": {
+ "tfm": "netcoreapp2.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/testhost-3.0.runtimeconfig.json b/dotnet/sdk/8.0.402/testhost-3.0.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..cf400900be1223a6066a93914000116bfd135e2a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/testhost-3.0.runtimeconfig.json
@@ -0,0 +1,9 @@
+{
+ "runtimeOptions": {
+ "tfm": "netcoreapp3.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/testhost-3.1.runtimeconfig.json b/dotnet/sdk/8.0.402/testhost-3.1.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..b2bc0aca0664cbe5fa7ea28e4dc2de5aeffe80ca
--- /dev/null
+++ b/dotnet/sdk/8.0.402/testhost-3.1.runtimeconfig.json
@@ -0,0 +1,9 @@
+{
+ "runtimeOptions": {
+ "tfm": "netcoreapp3.1",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/testhost-5.0.runtimeconfig.json b/dotnet/sdk/8.0.402/testhost-5.0.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..d5dbd0a5cb1e27717b9384a61383f34cfd8b9fda
--- /dev/null
+++ b/dotnet/sdk/8.0.402/testhost-5.0.runtimeconfig.json
@@ -0,0 +1,9 @@
+{
+ "runtimeOptions": {
+ "tfm": "net5.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/testhost-6.0.runtimeconfig.json b/dotnet/sdk/8.0.402/testhost-6.0.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..498d29911036d70335991479311fa37d461494a3
--- /dev/null
+++ b/dotnet/sdk/8.0.402/testhost-6.0.runtimeconfig.json
@@ -0,0 +1,9 @@
+{
+ "runtimeOptions": {
+ "tfm": "net6.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/testhost-7.0.runtimeconfig.json b/dotnet/sdk/8.0.402/testhost-7.0.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..8c87daf76a53e1fb3ecb3c4179710be216d272e4
--- /dev/null
+++ b/dotnet/sdk/8.0.402/testhost-7.0.runtimeconfig.json
@@ -0,0 +1,9 @@
+{
+ "runtimeOptions": {
+ "tfm": "net7.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/testhost-8.0.runtimeconfig.json b/dotnet/sdk/8.0.402/testhost-8.0.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..7450bcf9b8f42d982e171c216ad5d53baa4d6a65
--- /dev/null
+++ b/dotnet/sdk/8.0.402/testhost-8.0.runtimeconfig.json
@@ -0,0 +1,9 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/testhost-latest.runtimeconfig.json b/dotnet/sdk/8.0.402/testhost-latest.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..9e87f74d3af9723a038a725303ce0df1e439f165
--- /dev/null
+++ b/dotnet/sdk/8.0.402/testhost-latest.runtimeconfig.json
@@ -0,0 +1,10 @@
+{
+ "runtimeOptions": {
+ "tfm": "netcoreapp1.0",
+ "rollForward": "latestMajor",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/testhost.dll b/dotnet/sdk/8.0.402/testhost.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4cf3d777ff33dfadbc4ed0779e64639a119b884c
Binary files /dev/null and b/dotnet/sdk/8.0.402/testhost.dll differ
diff --git a/dotnet/sdk/8.0.402/trustedroots/codesignctl.pem b/dotnet/sdk/8.0.402/trustedroots/codesignctl.pem
new file mode 100644
index 0000000000000000000000000000000000000000..d053664294972507661489e8a1bb67338115d3b3
--- /dev/null
+++ b/dotnet/sdk/8.0.402/trustedroots/codesignctl.pem
@@ -0,0 +1,8670 @@
+-----BEGIN CERTIFICATE-----
+MIIFUTCCAzmgAwIBAgIIAPtxJlitmeUwDQYJKoZIhvcNAQELBQAwNjEWMBQGA1UE
+AwwNQ0FFRElDT00gUm9vdDEPMA0GA1UECgwGRURJQ09NMQswCQYDVQQGEwJFUzAe
+Fw0xNDA1MjExMTA2MzVaFw0zNDA1MjExMDIwMDBaMDYxFjAUBgNVBAMMDUNBRURJ
+Q09NIFJvb3QxDzANBgNVBAoMBkVESUNPTTELMAkGA1UEBhMCRVMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQDbgMroSXTH0zgu8cUjYvw2jC8efjkL6Qb0
+VZulmCmU7YZHMoPzxZJ6BdcpAj4Wwyh/NWQpenm7oeIeYRSN5wDQ3KJUZYrfablx
+R384OBZGp2kxETVM4Sp//21PlT3jXUhNGVMIWmsh1RIwaZeQry3B9X9BX0k2j024
+HhqVX9oPb1wVNcQRvF+Fm72tO1Veu9/Ou69cmWDdH2kaSUgh+QkKz3Kn8PLe5XgZ
+vhLdzYd5Qc4vRdcLkRARBB4SnfI4A18Waa6gCtrA+eugDRgPeV6RneQfFJw0ExkC
+RLpRw+55smAUo6+8SC0oOGgBQ2TKDoaDYtCKGaYn8St7SykhW5rMaEIQyEtPDyOy
+iHzEXG4XcMV3r5XAJaQiCtN8+dhyyNAtvafo0i2LTKFuCvy0QDO7mmv8pOrJ/uA0
+iEPMxrw/ddKlqa/6l7k+t85UoE3AXS7BKNhjVHK4rFr1OvsgYQY69KArOKvMgwxJ
+1G4+bQ8+cy825vNPs8AA0UVJW4z2o5gdhH+ZCsPqCjzD0yR4SGf1GzsOHQ5DsQR1
+waA5dov22QKlHeGeWwe7NldKIU35iWm0bA/Xr6AVJJnn+NdTlOwSv6Sl1+3ujjV3
+d9ymfyBUktZj1nKeTSq2j3PzGaHEsB/mNKMLAD6XSSdhqqoEQTM4tVBRzDYV2x//
+vcpIg0inswIDAQABo2MwYTAdBgNVHQ4EFgQUFM0qWXhjq2EZ6Lg9oeBawHXn+csw
+DwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBQUzSpZeGOrYRnouD2h4FrAdef5
+yzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAD0JGQC2kQJs7A73
+4eJisL8zDf1VEvQImvcrLa73nEfYHwYBE7WO57KCCz2EWUPUB9grXBB6JCzKjejV
+ozmcMczr4Drh1b/Px4d7YP9HOdejRNYIJlvPWlTsiNOOD3k8yKNPpsKOJ/DeEq5e
+Ga3nIlaKWDLg+QbQqSq0NZsMhiZRAJRHUPylxCVh+VjwRXAuSXZ/EdZvtfkpBeEN
+w05YH68d7DfQSvkGBoHT26CWuA6RMHnmUN+IuAupXNQH9MmozH2Pk2MJZAAFKmhm
+Q7uiu/6VrvnEpQqIYkh4JXwqPxFkptMiIEedMtby48ikYXTngsJEuqDRXV+88UQO
+g08cUIXE6eds/Oa4VeGiGoC3kESnhCKXRyLeqzg3z7XyHD5CcLt1tmUoa8t/gjWq
+9vMgeChzB5YwcKUqcVyheaQWuUY9XrQASYWJ0w7fga5YjVjW4cVEeC4cILuiR5e/
+dhQ7qSiPnwt10qE87SvHjpCheqKZMGL8hR01czvztVkiG80IsQyddWrbhTsOh58y
+T5IAAQFMSWiCgEFs+f1xvYv0eApgo56xUh3AiuOexb8rGWqYp7HeFVCfqpQlj6mA
+gqdyuklkCSdhK268IygzXZ5u8Lm9IDKM3aALmbu0hAQkdSmW96elF7hRBet0rVF5
+lvy7+98JLQiSRM7A0rMYxxQivyHx
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAw
+WjELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAw
+MiA0ODE0NjMwODEwMDAzNjEZMBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0x
+MzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjdaMFoxCzAJBgNVBAYTAkZSMRIwEAYD
+VQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAX
+BgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sO
+ty3tRQgXstmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9M
+CiBtnyN6tMbaLOQdLNyzKNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPu
+I9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8JXrJhFwLrN1CTivngqIkicuQstDuI7pm
+TLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16XdG+RCYyKfHx9WzMfgIh
+C59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq4NYKpkDf
+ePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3Yz
+IoejwpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWT
+Co/1VTp2lc5ZmIoJlXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1k
+JWumIWmbat10TWuXekG9qxf5kBdIjzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5
+hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp//TBt2dzhauH8XwIDAQABo4IB
+GjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
+FBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of
+1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczov
+L3d3d3cuY2VydGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilo
+dHRwOi8vY3JsLmNlcnRpZ25hLmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYr
+aHR0cDovL2NybC5kaGlteW90aXMuY29tL2NlcnRpZ25hcm9vdGNhLmNybDANBgkq
+hkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOItOoldaDgvUSILSo3L
+6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxPTGRG
+HVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH6
+0BGM+RFq7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncB
+lA2c5uk5jR+mUYyZDDl34bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdi
+o2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1
+gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS6Cvu5zHbugRqh5jnxV/v
+faci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaYtlu3zM63
+Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayh
+jWZSaX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw
+3kAP+HwV96LOPNdeE4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDvTCCAqWgAwIBAgIQD2tVL56/kHsPZimpvfTYzjANBgkqhkiG9w0BAQsFADBk
+MQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xNjA0
+BgNVBAMTLVN5bWFudGVjIEVudGVycHJpc2UgTW9iaWxlIFJvb3QgZm9yIE1pY3Jv
+c29mdDAeFw0xMjAzMTUwMDAwMDBaFw0zMjAzMTQyMzU5NTlaMGQxCzAJBgNVBAYT
+AlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjE2MDQGA1UEAxMtU3lt
+YW50ZWMgRW50ZXJwcmlzZSBNb2JpbGUgUm9vdCBmb3IgTWljcm9zb2Z0MIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtT2wcu6R6aVpnBFNevmz+j3ylJsj
+t6YD7GIY/IUSIv7BcX1Uk7mRfWL2yqg4FWX4dz3lgiA61LXRbo0GSb3fgg4khefv
+eC0Y8uALaEY+JBDIV+4ObXGm07FWHNcp1bLqVAUKqDyhuCVSBwWg3+fc7lw7QbWr
+XDMy0s7r6Zb4QPQKujMd+FYDCYL1ZwfEwDTBXfxFu+o8mtV0cW3VhtPC/IW8VOuj
+1fJP1UWvV7zwIsCPokXIdTR33qFtN3Kzc40Ma1O6WeGoPoBX0l9Z7mh1z4Gco8pF
+jDfbBXI0HDIC+NX5LA3aWJ7EF7SbyZDEiFk/cZGQRBi+Iot5ki5CsIuXWwIDAQAB
+o2swaTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAnBgNVHREEIDAe
+pBwwGjEYMBYGA1UEAxMPTVBLSS0yMDQ4LTEtMTExMB0GA1UdDgQWBBRN7N8mBtwk
+EMC2mfTXOcdvGfgmKDANBgkqhkiG9w0BAQsFAAOCAQEAqVdZ0AFUFEavx3lUDGoq
+W9g6HYHkiKMxtPHzNfFGc1xDyf68omoZwL0vX8s4o21u6BRe8nh+RXrhu/Qum0Xr
+4B1QHDRbf5iKhg+H2uRkJnf8Cd8jQU8On/oO+kSF8CmXpJTi9EAtkRx29Khg3nGm
+sAXiT2nZGQuJOuD6qyv68bMy7fx8cGVe0HsRe53oWxpKdqR7UTmsfakMdDjou1Xf
+xM7ApyFauBufAcWnEP59+WoImQHR9jVQOOT2Q+QY2IBM7McE4mGMfUntz7Sl8fKQ
+kgkINXOgIzLK6ZyeHL4LByx3XhdM2pyC4YAbpfPa94i/vzkn+CT+sUvIl+3kEhQl
+iA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF
+ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
+b24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL
+MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
+b3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK
+gXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ
+W0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg
+1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K
+8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r
+2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me
+z/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR
+8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj
+mUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz
+7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6
++XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI
+0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB
+Af8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm
+UjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2
+LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY
++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS
+k5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl
+7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm
+btmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl
+urR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+
+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63
+n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE
+76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H
+9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT
+4PsJYGw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5
+MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g
+Um9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG
+A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg
+Q0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi
+9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk
+M6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB
+/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB
+MAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw
+CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW
+1KyLa2tJElMzrdfkviT8tQp21KW8EA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzAN
+BgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
+c2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hl
+bGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJv
+b3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEwMzcxMlowgaoxCzAJ
+BgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmljIEFj
+YWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5
+MUQwQgYDVQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0
+dXRpb25zIEVDQyBSb290Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKg
+QehLgoRc4vgxEZmGZE4JJS+dQS8KrjVPdJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJa
+jq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoKVlp8aQuqgAkkbH7BRqNC
+MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLQi
+C4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaep
+lSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof
+TUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix
+DzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5k
+IFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMT
+N0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9v
+dENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAxMTIxWjCBpjELMAkG
+A1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNh
+ZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkx
+QDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1
+dGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA
+4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0
+AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe10
+4S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06C
+ojXdFPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV
+9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrD
+gfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6
+Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZYeCsargq
+NhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko
+LfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc
+Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVd
+ctA4GGqd83EkVAswDQYJKoZIhvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0I
+XtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMI
+M4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrMd/K4kPFox/la/vot
+9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+yd+2V
+Z5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/ea
+j8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh
+X9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQ
+l033DlZdwJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdf
+bzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4
+pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK
+e7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0
+vm9qp/UsQu0yrbYhnr68
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGfjCCBGagAwIBAgIEBfXhADANBgkqhkiG9w0BAQ0FADBwMQswCQYDVQQGEwJD
+WjEtMCsGA1UECgwkUHJ2bsOtIGNlcnRpZmlrYcSNbsOtIGF1dG9yaXRhLCBhLnMu
+MRkwFwYDVQQDDBBJLkNBIFJvb3QgQ0EvUlNBMRcwFQYDVQQFEw5OVFJDWi0yNjQz
+OTM5NTAeFw0xNTA1MjcxMjIwMDBaFw00MDA1MjcxMjIwMDBaMHAxCzAJBgNVBAYT
+AkNaMS0wKwYDVQQKDCRQcnZuw60gY2VydGlmaWthxI1uw60gYXV0b3JpdGEsIGEu
+cy4xGTAXBgNVBAMMEEkuQ0EgUm9vdCBDQS9SU0ExFzAVBgNVBAUTDk5UUkNaLTI2
+NDM5Mzk1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqj9VtYmvdhQG
+KmQmlDgPX/bcBG8xRfUK/Tt/m3Jv+EB8/l39NJkFOJRJurHwvfiZXMBR+qoN++Zx
+FYVjESp3BpGSBoiz/BThmUa0KYKuhIPutSaHbviLVUSdQNj/Klqq6H/SZeEUR8J8
+Mf11YQobjIBKnrTiLhRHMe68BVGupn7PEbjFSL0FVMKE5Kdoa/i4+n4oybnP5CFP
+ZcmIaKA42XWlETtMHG5LHtSGbMGtBUfTLJQNzIctGi3D1szehP7sa8DhIxOh05wY
+fuBy11xVvEyzQDEbnEDNmuuADnGu12JuWhZPH/ZlRdGfeoVBGcJ6Os4hkuSUcEy7
+qEHGxLs1zfU6nmOpjaBq0SBEqiq2SKVyw86e5FhIRwl/AkHzDRxtCXjw1xTRoFX8
+EdZaGgB55TvmCMtSnqQJq2vnbJwqLyJ9+7lQst5Q0y8McrnWs7ezCObre6z0tMX2
+wTIfpxkh9dxeN6rHH1ObQz7mnp/aDddWog9TaS1Vv+uGeBG/ptdaTfMOk3Pq/w7Q
+54/xyLPw2BhzbKVyiPFwTEdUtpta0bwmN40Y35trLtsLJbOKsuOtBlxtu30XAwcB
+ijCXiXRtSpR3Luvuz7Aetep29LUUOJXX1dkvP7KkJsxNo1yNCfNeDIUyzlZsAgjx
+S6Orv8hUoAWFdOR1HXq8nDtgPWr9GZECAwEAAaOCAR4wggEaMA4GA1UdDwEB/wQE
+AwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2uQNI+9UYoaE3oO3MaIJM
+UjQ2DTCB1wYDVR0gBIHPMIHMMIHJBgRVHSAAMIHAMIG9BggrBgEFBQcCAjCBsBqB
+rVRlbnRvIGt2YWxpZmlrb3Zhbnkgc3lzdGVtb3Z5IGNlcnRpZmlrYXQgYnlsIHZ5
+ZGFuIHBvZGxlIHpha29uYSAyMjcvMjAwMCBTYi4gdiBwbGF0bmVtIHpuZW5pL1Ro
+aXMgcXVhbGlmaWVkIHN5c3RlbSBjZXJ0aWZpY2F0ZSB3YXMgaXNzdWVkIGFjY29y
+ZGluZyB0byBBY3QgTm8uIDIyNy8yMDAwIENvbGwuMA0GCSqGSIb3DQEBDQUAA4IC
+AQAZVAIlg9silosdlZ6Z2zTOk9AfLntcYCRqDNeFRHgfHEnyFPiDVBmmnTJmuCOm
+O4Yqnzb8F/xQD2DGN/0kqPd5p46/2AcVVF5SDL74ptjIQUTx9hPcgxlbr91k9zMW
+hw8VWvFkvNTnVT8yOIma88xIxWwxcZKaJhfCfEcCbTUnn/Ma4aodDXQRqZN8Qahv
+u46cxQHkc/a6UC7mENS8bxOaOLlpRqUG1vJMbDerPPjbGsZV8Mj4HSFuLwBqseJt
+WgQtfd0JT/bvFC/AEuoJGSsayqBxm7E6Mrz/QxjzfS/1LojpUbbxSZBM/ybHw1nd
+dF/BUF04XJ1oVWlqtEB3yV8yKUhUk8GzISN2oVUwaSM/MUnEoc07dlmVWoK0rXG1
+vqaRzIAVSi/OlK4YVUl1IES48wGbwXgsjhBMp2StrTrrTB1WLn+U1B7QCtXJVIEO
+Hv73lPlhOj817tNgyftIsm7C2b56bpgFcACj0RfHxjSvbPVNj11SDN2Am3pt55jj
+OYVcP4vMRKJANjKTElaQAp4+WWgCH1aIHq/B/g97VY2X2bumk0e6fPhHtjnXjPJA
+bIecDP4t3dxx/A6RCKRDPYpX3d0H66eXUdC6hJmti3n+yQSQgxMr6ZcNZYnyES03
+jku4u9J6OSrF3NBdDd0EJ5ifWP2OhrsFf/DtN5KQ3Zy9/A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEg
+MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2Jh
+bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQx
+MjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjET
+MBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRI
+xutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1k
+ZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxD
+aNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJw
+LnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw
+1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNX
+k7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2
+SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/h
+bguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4n
+WUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpY
+rZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bonvzce
+MgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD
+AQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSu
+bAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN
+nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGt
+Ixg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr61
+55wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLj
+vUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvf
+cDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpz
+oHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZp
+nOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfs
+pA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+v
+JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R
+8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW4
+5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF8TCCA9mgAwIBAgIIVE2lvEA1VlowDQYJKoZIhvcNAQELBQAwgYUxCzAJBgNV
+BAYTAlBUMUIwQAYDVQQKDDlNVUxUSUNFUlQgLSBTZXJ2acOnb3MgZGUgQ2VydGlm
+aWNhw6fDo28gRWxlY3Ryw7NuaWNhIFMuQS4xMjAwBgNVBAMMKU1VTFRJQ0VSVCBS
+b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IDAxMB4XDTE0MDQwNDA4NTk0N1oX
+DTM5MDQwNDA4NTk0N1owgYUxCzAJBgNVBAYTAlBUMUIwQAYDVQQKDDlNVUxUSUNF
+UlQgLSBTZXJ2acOnb3MgZGUgQ2VydGlmaWNhw6fDo28gRWxlY3Ryw7NuaWNhIFMu
+QS4xMjAwBgNVBAMMKU1VTFRJQ0VSVCBSb290IENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5IDAxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAztw/9BluuxVp
+hvTkzec6cDvHmos7gwCBW/sgFlq+v1gAXynmV29+iiwVB1waY4xCXxbd2omERVcX
+lqCcoXUiQRo6/cUXkRP2vmIKvG4lLVvAjBBm9+LW+9xIMaMaqOVNSMmiHHP+j2ZA
+Y3dZBzw9FJ/U94WR0MNC9Rths3eAgCptEgKWi1HZwW8nCxoHNAD/0llMKejXGWPY
+kbQ//I4OJfKhEgdlyjXeq/4WowiMr39+EvRZFgUf6K10eTL3eAK2tMyr2x44YQQZ
+ekFA2loRZHUC/WTR1pRCDyLnZc2vkA4MWzEBmVHvRYx9pTjannxL5Kbos6SC1gM0
+Lk+3Uat3OAn1Bv7cZhsPP/p974xVvuANhpWh3L3EwwjRRR7yvb5w8eYmxrsIsSil
+wqXtiNahwPsj8Sc5zOGEBxm8fvbMOP9uELtG6SOJJIH/AOJRANxSUH0TUH0WPUCN
+07/5imXYYhIpd8K6wkk0T4p5aclLFfM03s+vhuLlyKlWYUwGVFrFbBnq88hEzSQa
+dtFxAFlr2XWbzv0Q/rGDoqW3koZ2m0r3HdyMhaZYrYqmaGkXyW0bps8nSyks3XFC
+GokQ5dWbEl9Ji4S82Ahc+884Qq++0W57kapmQMUFfivQZrbH31L+9EVtI5IhnhIB
+kHOD4qUJDdfA+IWVHmPRPzXalNE32fUCAwEAAaNjMGEwHQYDVR0OBBYEFNU5HJxb
+bwSqopVM7yDdKXSkxUVxMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1Tkc
+nFtvBKqilUzvIN0pdKTFRXEwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUA
+A4ICAQA/51/zIhbeg54g5ILn5Z53yfsrsHQN3xt0Ig9zEKGwF+xMDNQocGpmckRp
+EJN2Nc8v+I88qxl8cZKVcRs3FcIbKHrvbng43/uPmwEg3K/21o0JZtrERqn8lapE
+IxLfR8CwFey1sZ5sD5GqpjrlwQ1gbFBAcFxcyM6zzOvtqogZVqWkyAx65XZAZzO0
+PZbcd8sjePlTW8+N3rGnjlp6ojJjo4jXJWFaXUk6cubPqpSGbG73guCOZ5MoxagN
+Te84rXlKZo2EAQgEefNSxkHnmmIGs/USHuzZAEPT65Z3dOF5+RSUhG26VIIFjN8B
+8jCIgax6L4tDLHY0zjXnh45OCwqlGlexU1q/a9i+AH7G+e5mMQix35QzhJx3T3tk
+L++OD1koIsvwXD4r/TXWlf8D7GVSfr7yGfh71VIsUneakWZBcI3VSecLSH+Krt5F
+Pd3+5tLkksN7zjCgSW43rajTLLY9niHbBlfi8K4G+9nFETehe9sdEXxodiA+9byl
+2Wa1Ia1FJsZdHgKjQcTUfYEZyxeXBg/m7HQARsR13T3wQzSvprz89oL7z8X6sw8l
+pT9mENaegqXbOhN53o2p16aNhtIv2WkN4nV4fklfIquGcChRs3q2oHn61OWDp7B3
+ytsBgu/ivk0v08BN0ONpbnwmm+um+0XvsQSKL6ohBvbm1LxBIw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE
+BhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ
+IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0
+MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNV
+BAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w
+HQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJj
+Dp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBj
+TnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u
+KU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEj
+qcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpm
+MUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12
+ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloP
+zgsMR6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3Gk
+L30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeC
+jGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLwwoC8N9VKejveSswoA
+HQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeFd3mqgnkC
+AwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg
+p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZm
+DRd9FBUb1Ov9H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5
+COmSdI31R9KrO9b7eGZONn356ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ry
+L3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPf
+JWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQHtZa37dG/OaG+svg
+IHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBDF8Io
+2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV
+09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ
+XR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrq
+T8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe
+MTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBY
+MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNV
+BAMTJENlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDEx
+MDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgxCzAJBgNVBAYTAkNOMRowGAYDVQQK
+ExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPX
+JYY1kBaiXW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgO
+gHzKtB0TiGsOqCR3A9DuW/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg
+5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg95k4ot+vElbGs/V6r+kHLXZ1L3PR8du9n
+fwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BKv0mUYQs4kI9dJGwlezt5
+2eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJ
+KoZIhvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8
+fHulwqZm46qwtyeYP0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G
+3CE4Q3RM+zD4F3LBMvzIkRfEzFg3TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yy
+SrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu+sif/a+RZQp4OBXllxcU3fng
+LDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+7Q9LGOHSJDy7
+XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQsw
+CQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMT
+EkNBIFdvU2lnbiBFQ0MgUm9vdDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4
+NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEb
+MBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZIzj0CAQYFK4EEACID
+YgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiUt5v8
+KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES
+1ns2o0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQUqv3VWqP2h4syhf3RMluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB
+1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0Daupn75OcsqF1NnstTJFGG+rrQIwfcf3
+aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYua/GRspBl9JrmkO5K
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDKzCCAhOgAwIBAgICJ7UwDQYJKoZIhvcNAQELBQAwPjELMAkGA1UEBhMCSU4x
+EjAQBgNVBAoTCUluZGlhIFBLSTEbMBkGA1UEAxMSQ0NBIEluZGlhIDIwMTUgU1BM
+MB4XDTE1MDEyOTExMzY0M1oXDTI1MDEyOTExMzY0M1owPjELMAkGA1UEBhMCSU4x
+EjAQBgNVBAoTCUluZGlhIFBLSTEbMBkGA1UEAxMSQ0NBIEluZGlhIDIwMTUgU1BM
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl9c2iT03QQ6RP2sgX/w6
+fjtaXS/DDIdTPBiiyGFzDQgOVh7SbmClV2Xc/s9Qhg9aTqtiiwTKVu/h0Z6udK2q
++j9BWNFVcHA+RckbgHP8CIjki3KoCrUpV7CtCpFBGpxfUH2sFxolWyHwlSvn3zes
+NPMHsPEdwRPvey46xalhkLJ4X1RQPLNaVWO2yxCjb/sN9Lbv5gjeohC/dpd/6tmW
+0dTDcwJxtKmwrKwfFyClR0bWRAI4mb7LFHj+5l/Ef91v6apHFJAR2B2AwBXUjKCZ
+4xkOCg/MGgic1FMHAOAfSb+CgkzPm9hu09QRABJsD31gZ0qMUNvyL+C5eYeDw1zC
+OQIDAQABozMwMTAPBgNVHRMBAf8EBTADAQH/MBEGA1UdDgQKBAhMEXCqj90fBzAL
+BgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAC28jBXKNO1MKCK74VMlSzqX
+qe0moqSrTfsKEm7nNeZnDhiBYjalzMLfGuVoAYFOs5nURxUSnXbpoaYTHbD/fbtX
+4+9Zm8g7UGnGYzqsoMHlkOhkKVxIQWk3rDu73eNVxteSDZWDsChXwqOplqfK3kwe
+mv8+pS4nXttmZyeF76uKXHN8iM1HZvCdg8yEj+Ip9B9Bb7f1IQ31lFZR4/z/E1i3
+nwPuKZ/SAbBinpS9GYZaQ/pqiYGw6lwYh8qAlfvtAb8RGt+VFK4u4q/NkZC6syfD
+bxDY2Q60pXRsgbdfGcz+J06zRZhYGJxXxJJyEs+ngjnV4RCXCoYwRYVjqGtNmvw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFqjCCA5KgAwIBAgIQMmmiv0BrjbRHg2Q8iw3JQzANBgkqhkiG9w0BAQsFADBm
+MQswCQYDVQQGEwJTRTEoMCYGA1UEChMfU3dlZGlzaCBTb2NpYWwgSW5zdXJhbmNl
+IEFnZW5jeTEtMCsGA1UEAxMkU3dlZGlzaCBHb3Zlcm5tZW50IFJvb3QgQXV0aG9y
+aXR5IHYzMB4XDTE1MDkyOTExMzIzMloXDTQwMDkyOTExNDIwOVowZjELMAkGA1UE
+BhMCU0UxKDAmBgNVBAoTH1N3ZWRpc2ggU29jaWFsIEluc3VyYW5jZSBBZ2VuY3kx
+LTArBgNVBAMTJFN3ZWRpc2ggR292ZXJubWVudCBSb290IEF1dGhvcml0eSB2MzCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALoeomkbaE9cj7r0I8deZgV4
+hTZYo6J/Z++iDBaSpEqL4KCSh1U3C8TRxNBAQ5cyUE/slUe3P69DBeWElwnvVlTn
+QzNH/a3xOpuYpOHkUaO5rIwL7iUGCfLTujVnYYzCvSbL12PM14Mz2Uzi7/kbn6jL
+DXYBLXLJIrtokd6QDzs9tEK9GX2fhFw8fkI3hrFgwkiHUk5cV/7Okq7KPla3s56V
+mpT4L6HQoi7CVFpszMzWrUtH0C6HgjOoe1A5pyossVsnCp+t9RTr/I1TsnMrVCP0
+jJeZl/s13My1+jMUJo11pySm6BQuLaaAKIOaP7jKO8f1GOD97I55+6pCbEpLFn7z
+ggNuuucRBqWfhCvSYG3pRu5BWpa5FP0cP4YS8VQmJv1ngC/lqC0oLkO3ZMLv5Ld+
+ltyEiyfZdj2YgVMU3EJFoVRn+doYZpAKtEeQPAHlK6Nm72/7MoPxM30yIWylRRU/
+L/NVkUiTnyXPLTw5O1INGq/H36tvgNiQy55xcmpCaZPqkgA9SQTZo1y6RfsCEP+t
+aXRSpThjmmaIBLIRuhOqOdWDX+1lW1PInVyyhaB4cDVNXCQQpPYxKpJVQdnzF2yZ
+E1j63SjQbBO9W4eNk4OtWClWFbRYJ0qbEWygpmdFOs7Q2M7/kDPsWjFND1IS+632
+YV/kL28NZjDloE/Pz/1fAgMBAAGjVDBSMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
+Af8EBTADAQH/MB0GA1UdDgQWBBScvAHnq2Q19TGbjbX7F5mIAsub8jAQBgkrBgEE
+AYI3FQEEAwIBADANBgkqhkiG9w0BAQsFAAOCAgEAh6tq5OdrJFI99iKDT1MERTKc
+YVoWXJxEtaPRltBA/s9mFV5+QAAgFf2nqmTap2FmaMLdUnEloGq53cDNzoYI1Dw1
+ES999G/S2gyXA2WXg7Q+OssJdI3rBcp66YCwt1EtIpPjmhnu7ZcIIYOtxwqRX8TK
+216vuOeMujpJ0lUDNRkZUErihqe7eD2V/bEfRvJPZvL7v4VktgojGJIJnklFMbbW
+FFee/IlFdH85zMBqaMjPR9DhHsfTLy35LCQ7/Gq6lBPezHLyoh3LH5/Vg3cmXn6b
+oK9pn3jbpcFucVxIQk4r2Hi41Q+lP2zLj5DNR9iQGUmF1mz84quqQr/LE5e/aUR1
+YzUt2qDH/WH3ykE9VJz0NsDkbiFIn11xYoHT8iXmWYxZQSZIp+PrZ2rT7DS3mPfM
+yqM2BpXnyDBZ9//JodHkebzfEx8u2bN10QS3IwkhzB0hHCecDiv6wYcYyfr5SYOM
+Ehb7xRLOOw9C+vAFZX6ox+tSSvmYXnGjrBLHKHEaWnXPh8ofNygcFJ2QUG/Gv0rM
+xyXPMd1bkU52qBHVdmbZv4BzYrDsw/5EvM1ZEwsMLdihzKpiTVRFXqRSo4xXPBQx
+k1TOpRZUXi1Cs+5lqbadP2zOYdlWy97qoFbebYYD+reBaozS2PPXtsCsKYRZIw6b
+l2rmoM7VKlQY71CYeSA=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGCzCCA/OgAwIBAgIQVBIVn6uKdZNElMp3QFYu7zANBgkqhkiG9w0BAQsFADBm
+MQswCQYDVQQGEwJTRTEoMCYGA1UEChMfU3dlZGlzaCBTb2NpYWwgSW5zdXJhbmNl
+IEFnZW5jeTEtMCsGA1UEAxMkU3dlZGlzaCBHb3Zlcm5tZW50IFJvb3QgQXV0aG9y
+aXR5IHYyMB4XDTE1MDUwNTExMTUyM1oXDTQwMDUwNTExMjQxOVowZjELMAkGA1UE
+BhMCU0UxKDAmBgNVBAoTH1N3ZWRpc2ggU29jaWFsIEluc3VyYW5jZSBBZ2VuY3kx
+LTArBgNVBAMTJFN3ZWRpc2ggR292ZXJubWVudCBSb290IEF1dGhvcml0eSB2MjCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMiutUO8QkVLNWM/AkvF/9s2
+1yfFwq5FZqNxhxZNiU9hlOBWRrjQRBPmc5DwYXhBiuAafjesAim+6P8CJsYafAqx
+j2QpotoHitUkhWgZkjLfnylgWG0qhYARNsm2wtOehAy6URHMVOmrBjASjyB3BcDG
+jZqbWci2hehwBwKxHv/Xac8WRothL0LNUqbYDnovhy3GLzwiQ7GTfsMWdtnM14vs
+ERvQyXEUwolJfvGkEKo1PKgbu//sMkDlvSrzpgETyIyXGZDOY/mwa333+YrObuCF
+59uU1XogJaA18Kn3r1ooWgzI83Q5izE7IsxJJclvuFx6LiyW4y+jPsp5d2mRWvjw
+xVM3TlNtSSdWYsrl+XNgqRc7W6Ilry17ybfbzxkROjNxOVlaA+nnLAz/bZxyY2OA
+BVhThtwodRbC5fATWaGB/wUMmai2PGwuxQ4AmIHpg3dmQztajoVFTLLPuT3knDaT
+QHpTFSnUEZC6oWCKnav0Skpq3Yeqwe0F2p5bVuGITyprlSiGZlCh79pKspAKNjdJ
+hZdCeAdn5psgoQxsyc/P/neVhFp6Oxew70z3LZGqzxlvxvkSKOceCqaWzSGwA2JQ
+gwYg5uje30MWFrmBoPCBNFvLwYn28+giuM64Uj5RHrEFuLcDKwusdHVTJOF2uE8l
+dl3v0Zrzbkq4fEv4isAZAgMBAAGjgbQwgbEwDgYDVR0PAQH/BAQDAgEGMBIGA1Ud
+EwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYEFGNrQmBTVxG7yCSJJQJmRHShDSVuMBAG
+CSsGAQQBgjcVAQQDAgEAMBEGA1UdIAQKMAgwBgYEVR0gADBHBgNVHSUEQDA+Bggr
+BgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMEBgorBgEEAYI3CgMMBggrBgEFBQcD
+AwYIKwYBBQUHAwgwDQYJKoZIhvcNAQELBQADggIBACMuqoWXS6RcEK/a+D29k1gv
+ePsZdwM5FkdJclXMh+i9pH/SqySs59RQ7p3Yg8aZIPsWL4jGFzfKix6r0OJsB1i4
+ZJGhEKFpN3Ve/tpzFOaKa77CYCEvwPmjBEg2Wze+2mz96ZaOnvFTfI9lRKdVfQuU
+TlT2/zK9L32cpV5CxEwp4xBkL+bPWjs0VShh0ScSu25Um4FYrNVenVcDoE3R/zd0
+po3z+ZX9Kol1enk3/SZ5Lydzf6kZIOXQX5jolgWPmHnpeRBBKQFD9Wk3zFAQaLXY
+RE4O8pnjJyxqjl+7fbtrcUsGit0q2Ao/W8hyLlhhCg+BaB5Hx+ktuu+N3A6jI8Oy
+LbVHsYu0PidI59wIYgxU/kPXlUq/By9KQH4GpVGHJokF3TzKT/4cJ+nbiB7Asv7j
+7x9+sehZlaBPqwqJAOBzsuccwRdQgIdM0kMZWZXSWxRbClvAfIlxerUKwIpFL+7E
+wP5ULeeVJHcFLu50xqCQsXPcQtagdclYWQWi3hG/WekNpybCbsBGisYe0/XqD309
+cs0ZlUy64GiXjVjAau9597JoarhyNsMkDOgy7b3xn8jv3nXS23aplCc49AFhv2Y4
+j2o93ABbs/xE3wNL+fF2JTX/Uh8IHdClFOmLBit4gyxxXE+Rh2PWDA4FiDyUoLFa
+VBbf3VHDqDYuLIJ8uZqw
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFvDCCA6SgAwIBAgIQIWYVBQUnBQW8irAdrwq+xDANBgkqhkiG9w0BAQsFADB4
+MQswCQYDVQQGEwJUTjE5MDcGA1UEAxMwVHVuaXNpYW4gUm9vdCBDZXJ0aWZpY2F0
+ZSBBdXRob3JpdHkgLSBUdW5Sb290Q0EyMS4wLAYDVQQKEyVOYXRpb25hbCBEaWdp
+dGFsIENlcnRpZmljYXRpb24gQWdlbmN5MB4XDTE1MDUwNTA4NTcwMVoXDTI3MDUw
+NTA4NTcwMVoweDELMAkGA1UEBhMCVE4xOTA3BgNVBAMTMFR1bmlzaWFuIFJvb3Qg
+Q2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gVHVuUm9vdENBMjEuMCwGA1UEChMlTmF0
+aW9uYWwgRGlnaXRhbCBDZXJ0aWZpY2F0aW9uIEFnZW5jeTCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBALAH52L70A1Vzme3V41uDKknVB7rqSSrZ4+PnGEP
+2ygyLzv4LGWSLa66M5LAK57yH15tI12zWB+NocBtdYUKsBNOW1ZGizm9C4K7OkOb
+CLpG7vkX683I1+N1E96uUUgKziCVRp8C7FWMdKpa/PzqCTM1bqNHBsfdfoRoDscS
+ypTD7eZsAm3eAok1swTLRfh8R6TTH9/lXCPi8yJ7uUui/Rc1XUjpv/WzJWOL53jr
+/HUnvYhcpoU/Qd+VfN16Ro/+Htqxq9jTjs0GjMnYUkIRUqKDj1yDe+Qnto8foF49
+0nV9eVOTBpfjA8eWLNoBPHnFO1DosNOhpOLTg31E+BDPoBoq8mWAvXfBmGV2rhIh
+Yso6vr61mcNbxNG/m8AKylgeFabXIV6xTQrlcHiaaOZ0ZjIUKh4Rvoj3BvZVo8Mf
+bheQVdGKQIlWQ9VP5qLJiGQABVE/V7Q8tr5qkXFA8aJc8dftnLZX9lnUKhHl1OW/
+ux7RyNdfRAWbu4k6radDd34VYHyIXZvspVzSRq0Mi1RF1JRRVUVSqlzYEaz4ViJs
+2dIU6bdOQoVURvgBxj0mBnfosjUb8J1CyX/+gCcBUMt/xaxU+mttloxBpKHS57WR
+SG93HIvCK3T+PFzEXZTOq/EglmvBDFpf+eU1uWyjEGfvkapIDu9It3ZYYtm+nkKz
+pL01AgMBAAGjQjBAMB0GA1UdDgQWBBTMc8Wjaikxl6eNoNhUwQp1tiM/pjAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEA
+LvKHSO2Znp8BDDzJCnhTfBg13rblbPQAgOGbi9n6+6r7ZbfSyfXXp8t+ybGicVht
+WTfW4DMQyrXZcttOJTeqpt0dGL31yYqceojuHwLELZJUfVfiXBkYIwJ6XEmVtpjn
+wmBBZUC77Fq3cZxQ8nN2+18N7zXPtGmNhehMkBcDC8mzLiA3YxFipk/jNOD7eVXn
+xsKuQv6wNGxJIw5yB3tmBVVI+xIPoMD6TtH7Pcz+/RZLVlDNESynm/exCs+m6+/d
+jriuQgh8pIyU6obHQ+P3PIrfR9IwQMgtU/VvEUnMIYyWQ08QoEehVo0fHFvYVlvr
+NHbhNTpx1MwhL541KPJa3p7k7kdqEOg4vUq0fQR/Ba5ICrQDvy6zChufy63dTdCH
+IbdHdoKDLcdXvpoVoxswGGyjOnFvZEcoktsRYSCad2Ut+axWE2xLo1//m6To7+dY
+6HueO39qp745ChOUyUhOZmTYU0zsQWv9/DYu1w7fYQt7tUCs3UJJbZ6Av2CV8OnA
+P3u7GOk4tVZOp36KYu+YHvh4QKm72OnltLT542ec7FPPuEK0L5OBNaBs9rogimg9
+923/f9NM93qUaAN3Qzs1UapTEj5HExQ5rNZlj6hG/zwh9NK/0EikfqdRm5cS9Zk0
+FyNWhBNjyzTKH8q6qAcp80MkCkl//Q7UkPCrQyFinI8=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFbzCCA1egAwIBAgISESChaRu/vbm9UpaPI+hIvyYRMA0GCSqGSIb3DQEBDQUA
+MEAxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9w
+ZW5UcnVzdCBSb290IENBIEcyMB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAw
+MFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9wZW5UcnVzdDEdMBsGA1UEAwwU
+T3BlblRydXN0IFJvb3QgQ0EgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQDMtlelM5QQgTJT32F+D3Y5z1zCU3UdSXqWON2ic2rxb95eolq5cSG+Ntmh
+/LzubKh8NBpxGuga2F8ORAbtp+Dz0mEL4DKiltE48MLaARf85KxP6O6JHnSrT78e
+CbY2albz4e6WiWYkBuTNQjpK3eCasMSCRbP+yatcfD7J6xcvDH1urqWPyKwlCm/6
+1UWY0jUJ9gNDlP7ZvyCVeYCYitmJNbtRG6Q3ffyZO6v/v6wNj0OxmXsWEH4db0fE
+FY8ElggGQgT4hNYdvJGmQr5J1WqIP7wtUdGejeBSzFfdNTVY27SPJIjki9/ca1TS
+gSuyzpJLHB9G+h3Ykst2Z7UJmQnlrBcUVXDGPKBWCgOz3GIZ38i1MH/1PCZ1Eb3X
+G7OHngevZXHloM8apwkQHZOJZlvoPGIytbU6bumFAYueQ4xncyhZW+vj3CzMpSZy
+YhK05pyDRPZRpOLAeiRXyg6lPzq1O4vldu5w5pLeFlwoW5cZJ5L+epJUzpM5ChaH
+vGOz9bGTXOBut9Dq+WIyiET7vycotjCVXRIouZW+j1MY5aIYFuJWpLIsEPUdN6b4
+t/bQWVyJ98LVtZR00dX+G7bw5tYee9I8y6jj9RjzIR9u701oBnstXW5DiabA+aC/
+gh7PU3+06yzbXfZqfUAkBXKJOAGTy3HCOV0GEfZvePg3DTmEJwIDAQABo2MwYTAO
+BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUajn6QiL3
+5okATV59M4PLuG53hq8wHwYDVR0jBBgwFoAUajn6QiL35okATV59M4PLuG53hq8w
+DQYJKoZIhvcNAQENBQADggIBAJjLq0A85TMCl38th6aP1F5Kr7ge57tx+4BkJamz
+Gj5oXScmp7oq4fBXgwpkTx4idBvpkF/wrM//T2h6OKQQbA2xx6R3gBi2oihEdqc0
+nXGEL8pZ0keImUEiyTCYYW49qKgFbdEfwFFEVn8nNQLdXpgKQuswv42hm1GqO+qT
+RmTFAHneIWv2V6CG1wZy7HBGS4tz3aAhdT7cHcCP009zHIXZ/n9iyJVvttN7jLpT
+wm+bREx50B1ws9efAvSyB7DH5fitIw6mVskpEndI2S9G/Tvw/HRwkqWOOAgfZDC2
+t0v7NqwQjqBSM2OdAzVWxWm9xiNaJ5T2pBL4LTM8oValX9YZ6e18CL13zSdkzJTa
+TkZQh+D5wVOAHrut+0dSixv9ovneDiK3PTNZbNTe9ZUGMg1RGUFcPk8G97krgCf2
+o6p6fAbhQ8MTOWIaNr3gKC6UAuQpLmBVrkA9sHSSXvAgZJY/X0VdiLWK2gKgW0VU
+3jg9CcCoSmVGFvyqv1ROTVu+OEO3KMqLM6oaJbolXCkvW0pujOotnCr2BXbgd5eA
+iN1nE28daCSLT7d0geX0YJ96Vdc+N9oWaz53rK4YcJUIeSkDiv7BO7M/Gg+kO14f
+WKGVyasvc0rQLW6aWQ9VGHgtPFGml4vmu7JwqkwR3v98KzfUetF3NI/n+UL3PIEM
+S1IK
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICITCCAaagAwIBAgISESDm+Ez8JLC+BUCs2oMbNGA/MAoGCCqGSM49BAMDMEAx
+CzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5U
+cnVzdCBSb290IENBIEczMB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFow
+QDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9wZW5UcnVzdDEdMBsGA1UEAwwUT3Bl
+blRydXN0IFJvb3QgQ0EgRzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARK7liuTcpm
+3gY6oxH84Bjwbhy6LTAMidnW7ptzg6kjFYwvWYpa3RTqnVkrQ7cG7DK2uu5Bta1d
+oYXM6h0UZqNnfkbilPPntlahFVmhTzeXuSIevRHr9LIfXsMUmuXZl5mjYzBhMA4G
+A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRHd8MUi2I5
+DMlv4VBN0BBY3JWIbTAfBgNVHSMEGDAWgBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAK
+BggqhkjOPQQDAwNpADBmAjEAj6jcnboMBBf6Fek9LykBl7+BFjNAk2z8+e2AcG+q
+j9uEwov1NcoG3GRvaBbhj5G5AjEA2Euly8LQCGzpGPta3U1fJAuwACEl74+nBCZx
+4nxp5V2a+EEfOzmTk51V6s2N8fvB
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFazCCA1OgAwIBAgISESBVg+QtPlRWhS2DN7cs3EYRMA0GCSqGSIb3DQEBDQUA
+MD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2Vy
+dHBsdXMgUm9vdCBDQSBHMTAeFw0xNDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBa
+MD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2Vy
+dHBsdXMgUm9vdCBDQSBHMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+ANpQh7bauKk+nWT6VjOaVj0W5QOVsjQcmm1iBdTYj+eJZJ+622SLZOZ5KmHNr49a
+iZFluVj8tANfkT8tEBXgfs+8/H9DZ6itXjYj2JizTfNDnjl8KvzsiNWI7nC9hRYt
+6kuJPKNxQv4c/dMcLRC4hlTqQ7jbxofaqK6AJc96Jh2qkbBIb6613p7Y1/oA/caP
+0FG7Yn2ksYyy/yARujVjBYZHYEMzkPZHogNPlk2dT8Hq6pyi/jQu3rfKG3akt62f
+6ajUeD94/vI4CTYd0hYCyOwqaK/1jpTvLRN6HkJKHRUxrgwEV/xhc/MxVoYxgKDE
+EW4wduOU8F8ExKyHcomYxZ3MVwia9Az8fXoFOvpHgDm2z4QTd28n6v+WZxcIbekN
+1iNQMLAVdBM+5S//Ds3EC0pd8NgAM0lm66EYfFkuPSi5YXHLtaW6uOrc4nBvCGrc
+h2c0798wct3zyT8j/zXhviEpIDCB5BmlIOklynMxdCm+4kLV87ImZsdo/Rmz5yCT
+mehd4F6H50boJZwKKSTUzViGUkAksnsPmBIgJPaQbEfIDbsYIC7Z/fyL8inqh3SV
+4EJQeIQEQWGw9CEjjy3LKCHyamz0GqbFFLQ3ZU+V/YDI+HLlJWvEYLF7bY5KinPO
+WftwenMGE9nTdDckQQoRb5fc5+R+ob0V8rqHDz1oihYHAgMBAAGjYzBhMA4GA1Ud
+DwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSowcCbkahDFXxd
+Bie0KlHYlwuBsTAfBgNVHSMEGDAWgBSowcCbkahDFXxdBie0KlHYlwuBsTANBgkq
+hkiG9w0BAQ0FAAOCAgEAnFZvAX7RvUz1isbwJh/k4DgYzDLDKTudQSk0YcbX8ACh
+66Ryj5QXvBMsdbRX7gp8CXrc1cqh0DQT+Hern+X+2B50ioUHj3/MeXrKls3N/U/7
+/SMNkPX0XtPGYX2eEeAC7gkE2Qfdpoq3DIMku4NQkv5gdRE+2J2winq14J2by5BS
+S7CTKtQ+FjPlnsZlFT5kOwQ/2wyPX1wdaR+v8+khjPPvl/aatxm2hHSco1S1cE5j
+2FddUyGbQJJD+tZ3VTNPZNX70Cxqjm0lpu+F6ALEUz65noe8zDUa3qHpimOHZR4R
+Kttjd5cUvpoUmRGywO6wT/gUITJDT5+rosuoD6o7BlXGEilXCNQ314cnrUlZp5Gr
+RHpejXDbl85IULFzk/bwg2D5zfHhMf1bfHEhYxQUqq/F3pN+aLHsIqKqkHWetUNy
+6mSjhEv9DKgma3GX7lZjZuhCVPnHHd/Qj1vfyDBviP4NxDMcU6ij/UgQ8uQKTuEV
+V/xuZDDCVRHc6qnNSlSsKWNEz0pAoNZoWRsz+e86i9sgktxChL8Bq4fA1SCC28a5
+g4VCXA9DO2pJNdWY9BW/+mGBDAkgGNLQFwzLSABQ6XaCjGTXOqAHVcweMcDvOrRl
+++O/QmueD6i9a5jc2NvLi6Td11n0bt3+qsOR0C5CB8AMTVPNJLFMWx5R9N/pkvo=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICHDCCAaKgAwIBAgISESDZkc6uo+jF5//pAq/Pc7xVMAoGCCqGSM49BAMDMD4x
+CzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBs
+dXMgUm9vdCBDQSBHMjAeFw0xNDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4x
+CzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBs
+dXMgUm9vdCBDQSBHMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABM0PW1aC3/BFGtat
+93nwHcmsltaeTpwftEIRyoa/bfuFo8XlGVzX7qY/aWfYeOKmycTbLXku54uNAm8x
+Ik0G42ByRZ0OQneezs/lf4WbGOT8zC5y0xaTTsqZY1yhBSpsBqNjMGEwDgYDVR0P
+AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNqDYwJ5jtpMxjwj
+FNiPwyCrKGBZMB8GA1UdIwQYMBaAFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMAoGCCqG
+SM49BAMDA2gAMGUCMHD+sAvZ94OX7PNVHdTcswYO/jOYnYs5kGuUIe22113WTNch
+p+e/IQ8rzfcq3IUHnQIxAIYUFuXcsGXCwI4Un78kFmjlvPl5adytRSv3tjFzzAal
+U5ORGpOucGpnutee5WEaXw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFSzCCAzOgAwIBAgIRALZLiAfiI+7IXBKtpg4GofIwDQYJKoZIhvcNAQELBQAw
+PzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eTAeFw0xMjA5MjgwODU4NTFaFw0zNzEyMzExNTU5NTla
+MD8xCzAJBgNVBAYTAlRXMTAwLgYDVQQKDCdHb3Zlcm5tZW50IFJvb3QgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQC2/5c8gb4BWCQnr44BK9ZykjAyG1+bfNTUf+ihYHMwVxAA+lCWJP5Q5ow6ldFX
+eYTVZ1MMKoI+GFy4MCYa1l7GLbIEUQ7v3wxjR+vEEghRK5lxXtVpe+FdyXcdIOxW
+juVhYC386RyA3/pqg7sFtR4jEpyCygrzFB0g5AaPQySZn7YKk1pzGxY5vgW28Yyl
+ZJKPBeRcdvc5w88tvQ7Yy6gOMZvJRg9nU0MEj8iyyIOAX7ryD6uBNaIgIZfOD4k0
+eA/PH07p+4woPN405+2f0mb1xcoxeNLOUNFggmOd4Ez3B66DNJ1JSUPUfr0t4urH
+cWWACOQ2nnlwCjyHKenkkpTqBpIpJ3jmrdc96QoLXvTg1oadLXLLi2RW5vSueKWg
+OTNYPNyoj420ai39iHPplVBzBN8RiD5C1gJ0+yzEb7xs1uCAb9GGpTJXA9ZN9E4K
+mSJ2fkpAgvjJ5E7LUy3Hsbbi08J1J265DnGyNPy/HE7CPfg26QrMWJqhGIZO4uGq
+s3NZbl6dtMIIr69c/aQCb/+4DbvVq9dunxpPkUDwH0ZVbaCSw4nNt7H/HLPLo5wK
+4/7NqrwB7N1UypHdTxOHpPaY7/1J1lcqPKZc9mA3v9g+fk5oKiMyOr5u5CI9ByTP
+isubXVGzMNJxbc5Gim18SjNE2hIvNkvy6fFRCW3bapcOFwIDAQABo0IwQDAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBTVZx3gnHosnMvFmOcdByYqhux0zTAOBgNV
+HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAJA75cJTQijq9TFOjj2Rnk0J
+89ixUuZPrAwxIbvx6pnMg/y2KOTshAcOD06Xu29oRo8OURWV+Do7H1+CDgxxDryR
+T64zLiNB9CZrTxOH+nj2LsIPkQWXqmrBap+8hJ4IKifd2ocXhuGzyl3tOKkpboTe
+Rmv8JxlQpRJ6jH1i/NrnzLyfSa8GuCcn8on3Fj0Y5r3e9YwSkZ/jBI3+BxQaWqw5
+ghvxOBnhY+OvbLamURfr+kvriyL2l/4QOl+UoEtTcT9a4RD4co+WgN2NApgAYT2N
+vC2xR8zaXeEgp4wxXPHj2rkKhkfIoT0Hozymc26Uke1uJDr5yTDRB6iBfSZ9fYTf
+hsmL5a4NHr6JSFEVg5iWL0rrczTXdM3Jb9DCuiv2mv6Z3WAUjhv5nDk8f0OJU+jl
+wqu+Iq0nOJt3KLejY2OngeepaUXrjnhWzAWEx/uttjB8YwWfLYwkf0uLkvw4Hp+g
+pVezbp3YZLhwmmBScMip0P/GnO0QYV7Ngw5u6E0CQUridgR51lQ/ipgyFKDdLZzn
+uoJxo4ZVKZnSKdt1OvfbQ/+2W/u3fjWAjg1srnm3Ni2XUqGwB5wH5Ss2zQOXlL0t
+DjQG/MAWifw3VOTWzz0TBPKR2ck2Lj7FWtClTILD/y58Jnb38/1FoqVuVa4uzM8s
+iTTa9g3nkagQ6hed8vbs
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFyTCCA7GgAwIBAgIDD820MA0GCSqGSIb3DQEBCwUAMIGLMQswCQYDVQQGEwJB
+VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
+bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRgwFgYDVQQLDA9BLVRydXN0LVJv
+b3QtMDUxGDAWBgNVBAMMD0EtVHJ1c3QtUm9vdC0wNTAeFw0xMzA5MjMxMzI0MTFa
+Fw0yMzA5MjAxMTI0MTFaMIGLMQswCQYDVQQGEwJBVDFIMEYGA1UECgw/QS1UcnVz
+dCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
+a2VociBHbWJIMRgwFgYDVQQLDA9BLVRydXN0LVJvb3QtMDUxGDAWBgNVBAMMD0Et
+VHJ1c3QtUm9vdC0wNTCCAiAwDQYJKoZIhvcNAQEBBQADggINADCCAggCggIBAOT7
+jFImpWeBhGjdgsnNqHIBWSI/JOkSpJKXxVDO8kU/a0QFGLp7ca/mjbtt9uTz5dy8
+5HgTI7IKRJ23vTdA1iVEUInOaNLDYqdEoSNFr18GcXZG4Wn/4iHgP88yleqIJqcg
+rMJxXTDJDOxELc7FZXzXB3419g0YFk17q/OqD33e6IyULpPQt25IOMQCIhrfIKWC
+Y79T1UQVBjukO3rctu6Qi0ACtJ/A9nEzWaYi07BoIz/9hMiWsPlwSy80hv0lVZnR
+zXcnOMRtXBnq634ThgGgEEAmRx++FL5fpbg/YKFu4SGOEyV4Lqd6zVivflusP84P
+s/JXfNV7bcnT/K2VrRu/h5hPJ+YLqWg75Cws9RRH16ldgvbim7cg4eUaayx4CI1s
+dYzqN5aJnVnpdDIvGDAYOgQlSwbtxmdnJoBqX4F3MB6e0XSPX4zAVGrspBhhmXod
++Z356Pnx73K+zi8ZknzjKK/RuLhv0GC+eFikLjc6sieJEVGiXom8HcxXZUtJTBMQ
+Aq5Xvkwh8SKqHqCS1FQsuJt8M2gnECodS/8GCgKTgIcZr7+ogxIQjn0QpSuQ6A7g
+FIZF9tflVnOWH4+ePCqjGl4skGaFbwF2vbPwKcgniqmpI7DV8vDK1b22MnDMLxxZ
+v+rDBqRg36uJbkcU74WQa2gjlk4G07EnowPDudm9AgEDozYwNDAPBgNVHRMBAf8E
+BTADAQH/MBEGA1UdDgQKBAhA+blnvgPSCDAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
+hvcNAQELBQADggIBAOIqZcZrWivIqDTLlxEdJh+jss64PCshn5j0Fx8NtnuuyxBt
+g/JjwYiu6cBSQq43nwuZV1LoRX6YlOkpR5/xB8FCCPNzPKprNbNsFSuRMRvkfpLn
+w8WmITjfG77Rn5YNULb1e5SjLaqvt43SOy18ghDUakrJYaOmj6eyoNlUw5d/0YnM
+Y/jZ3zhYlboBUMwK84tJPH8/PajzaMzHmNPZNTD3DoJe+BBhrrxO8Cs0eqKa9tuN
+r+sDTCfD3q5s3VUUrz8d64+atnhJ7rz5HndgAiTc3t7ppfuRphx6skng978dB66G
+y7vZANfLARjv6MOPDAcwcFjB8mPqjP22rePoBzw9WwWHdMs15e8Jt7ughGm8QXFj
+2zKcQeFfftp2bZOjroX65YzJUqwny2CzNixJqQTeuCcrCTHEkpPpjNGkS/2+VlGw
+2LfOnUXDG0gv0bMw935cqVsxP+UFm+F2qdf1KYZzVxy9L9vXGRb0JTTxgxa0MlgL
+sVlO44vQoyuLG0DC9+NSqE5K7nXp7WOZGwb7MI38HleZ7M4UKOOgjS3r7wceDAKO
+jEjMiNqmrXmUtKzpDDC2/wY7FHGVhfuwesuLSFly21AA8reNeSvNBJWSdUkCllSi
+HVSFu2CvfX2qs735cDxZesGB/KxQABgS5LXcXdilWF4dXydpjszb76pXGquE
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDyzCCArOgAwIBAgIDFE3kMA0GCSqGSIb3DQEBBQUAMIGLMQswCQYDVQQGEwJB
+VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
+bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRgwFgYDVQQLDA9BLVRydXN0LVF1
+YWwtMDIxGDAWBgNVBAMMD0EtVHJ1c3QtUXVhbC0wMjAeFw0xNDA3MDExMTIzMzNa
+Fw0yNDA3MDEwOTIzMzNaMIGLMQswCQYDVQQGEwJBVDFIMEYGA1UECgw/QS1UcnVz
+dCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
+a2VociBHbWJIMRgwFgYDVQQLDA9BLVRydXN0LVF1YWwtMDIxGDAWBgNVBAMMD0Et
+VHJ1c3QtUXVhbC0wMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJaR
+q9eOsFm4Ab20Hq2Z/aH86gyWa48uSUjY6eQkguHYuszr3gdcSMYZggFHQgnhfLmf
+ro/27l5rqKhWiDhWs+b+yZ1PNDhRPJy+86ycHMg9XJqErveULBSyZDdgjhSwOyrN
+ibUir/fkf+4sKzP5jjytTKJXD/uCxY4fAd9TjMEVpN3umpIS0ijpYhclYDHvzzGU
+833z5Dwhq5D8bc9jp8YSAHFJ1xzIoO1jmn3jjyjdYPnY5harJtHQL73nDQnfbtTs
+5ThT9GQLulrMgLU4WeyAWWWEMWpfVZFMJOUkmoOEer6A8e5fIAeqdxdsC+JVqpZ4
+CAKel/Arrlj1gFA//jsCAwEAAaM2MDQwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4E
+CgQIQj0rJKbBRc4wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBh
+MfOINQm4XpzF6DmkOmb/ArSXHf5LObqFmIMooNr2TkyzrUTK/NE+mdrm15Rfdts7
+kZVq/ICfQSFeaPvWaAVq4plH/26OjvMTVv7DfgfPBUxDWqlCuDnDnPAVQ+yo/o5i
+BA5uUlMbp5znbDtlxwF/5gWqcn/hKxSUCP1uiOPIlKfeVvsRmBcJAdoixTM/Ic10
+pavJMGOI20onArvQZAUEbXQLA8cs8naxfF6Bo36U9nk6wn7q8VPXhViekByd17F6
+9A+ah0Iqw4SPf9BqNRIe1YxxjDhCmjWt3aoyE3ZFBuGjW+r2ipb/vGU1+2oyy2Fd
+2dMmiMQ7gGhWX9X6gWLd
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGgTCCBGmgAwIBAgIEUVLFjDANBgkqhkiG9w0BAQ0FADCBzzELMAkGA1UEBhMC
+VEgxSTBHBgNVBAoMQEVsZWN0cm9uaWMgVHJhbnNhY3Rpb25zIERldmVsb3BtZW50
+IEFnZW5jeSAoUHVibGljIE9yZ2FuaXphdGlvbikxNzA1BgNVBAsMLlRoYWlsYW5k
+IE5hdGlvbmFsIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxPDA6BgNVBAMM
+M1RoYWlsYW5kIE5hdGlvbmFsIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+LSBHMTAeFw0xMzAzMjcwOTQwMjJaFw0zNjAzMjcxMDEwMjJaMIHPMQswCQYDVQQG
+EwJUSDFJMEcGA1UECgxARWxlY3Ryb25pYyBUcmFuc2FjdGlvbnMgRGV2ZWxvcG1l
+bnQgQWdlbmN5IChQdWJsaWMgT3JnYW5pemF0aW9uKTE3MDUGA1UECwwuVGhhaWxh
+bmQgTmF0aW9uYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTE8MDoGA1UE
+AwwzVGhhaWxhbmQgTmF0aW9uYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1rpK5Izxmi6J
+F8JA84IAMf4TAnplygjYqyKxAppxNEpkWYLlQkbrI/aLWiKxzzbnc20UbfdJlF7v
+5zRZZ/aoz1ZZI4RV4vsaEcqj+YqrZx6CE9CLOZq/D8IPPNZh2OqbzxUOvtTwzD9z
+nAT0onFzfYCwnTHxBvmwE+WISTD2Fn2IVyk6LKKMkJjOERbOTVEP/MeyzPJmGCGA
+BYitudDFC3gB/k7SCIs28VbPbrpzJgvW96VGamlOlranBlbM5i4xn26L7ZwAVUf0
+e6Z6tt8BHUgEC6tCwnBKlL38rFHyqz/W62DfCP/1ErKJKnq5RZklfXzvzxXQSCwQ
+1tS8CCe1hinU49PEKpAS9qIq+YuvFv8C83puz6LLarTgcgv7PoV/4ofgL0Mj+IXJ
+merWQN6g++fedv+PgDnrZxITpvvlo/wmgFlj8tIj6x/GSHNRnbezoFuraoj5v/tx
+UdxutnbvsFvyy4gwugbbG0HTVbSttOogIfzUd7Y9W6EMLSUhUiNS1zRTbRYEUmb4
+1erxLFjyO7HxfkO13IK4XuOH4aOkX+eJDryc6Sk6JafYT2qH1JZElxgWh8JxUoXO
+eoytHme+ui2/oyEnxecw6QaZG7AM475SZZNNYUvyOOaPGPECUpgupg4dBc8m7AEj
+Bzb24BM3qUeIA4dHy92yAR9fZBsEm8UCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB
+/zAOBgNVHQ8BAf8EBAMCAQYwHwYDVR0jBBgwFoAUfyN2t4Mqcfcs0YgP3UxfMgpo
+u38wHQYDVR0OBBYEFH8jdreDKnH3LNGID91MXzIKaLt/MA0GCSqGSIb3DQEBDQUA
+A4ICAQANZRxaB6merEzJX0/dMWzZ4lMdP5GNWrOMvTSeLk3KWNOvWWJJNnOwYXYR
+vos2x5Sq+DZpByDfXC8L9o4CFu9SBjjd7TRgqodeF844bVBN5d/lUb4dBJb03Orl
+2eqO3p90y4KUU4Fs+14s1aF1lk37MFzNYaCeocyCuVJyC4djYXthNHS2Lt3i4Ye1
+SRRhFUdKSz53uQjSNk9YZ0KJgHhaEiPtRTvdvyAmVPxbP2ABGEHjZ3UTtyoVcMzL
+edIU+PPC4CoQ9/lC2NzaCtMBBdtXmMm26wyZCsqMfe87FijA91/hR1HT+AZFB/AL
+usKcmOzSf01+/Qb8c8LCVRJi0CNE3yLk+HnnpRBOPsmOqoPpNuqrecYFhM2WaHx0
+rD8y/67JQOyPUL9QqLdO1a02atcnM/rn2C3ZN5iFG6YM6nsQE3AenojF3D6OuQ1V
+3wHO0El2UdsQYnhBrWljpZUJtxgGb/0EZ9QQD07bO18MY3zrZL1uSwCogfqSMoYw
+jAm/fVg/ZQ2pN9FF42ZpxGj0YqmoHjfZLplJoLAGjEB/hbH18UxLOKAIzCrZlsDs
+wA08LkVXw++V2rbL7ltlqCsyr8kn+RVTN3VYH0vql6IiXGdW4qDMNcSswzFAuZwD
+er3JSA7qahXanLx4b8kV52QD2UkTZkVLLfSEmbPqpxKV5ZMu/A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx
+EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT
+VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5
+NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT
+B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF
+10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz
+0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh
+MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH
+zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc
+46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2
+yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi
+laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP
+oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA
+BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE
+qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm
+4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL
+1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn
+LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF
+H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo
+RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+
+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh
+15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW
+6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW
+nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j
+wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz
+aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy
+KwbQBM0=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBV
+MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNV
+BAMTIUNlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgw
+MTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFX
+b1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvcqN
+rLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1U
+fcIiePyOCbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcScc
+f+Hb0v1naMQFXQoOXXDX2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2
+ZjC1vt7tj/id07sBMOby8w7gLJKA84X5KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4M
+x1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR+ScPewavVIMYe+HdVHpR
+aG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ezEC8wQjch
+zDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDar
+uHqklWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221K
+mYo0SLwX3OSACCK28jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvA
+Sh0JWzko/amrzgD5LkhLJuYwTKVYyrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWv
+HYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0CAwEAAaNCMEAwDgYDVR0PAQH/
+BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R8bNLtwYgFP6H
+EtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
+LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJ
+MuYhOZO9sxXqT2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2e
+JXLOC62qx1ViC777Y7NhRCOjy+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VN
+g64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC2nz4SNAzqfkHx5Xh9T71XXG68pWp
+dIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes5cVAWubXbHssw1ab
+R80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/EaEQ
+PkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGce
+xGATVdVhmVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+
+J7x6v+Db9NpSvd4MVHAxkUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMl
+OtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGikpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWT
+ee5Ehr7XHuQe+w==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBG
+MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNV
+BAMMEkNBIOayg+mAmuagueivgeS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgw
+MTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRl
+ZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k8H/r
+D195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld1
+9AXbbQs5uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExf
+v5RxadmWPgxDT74wwJ85dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnk
+UkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+L
+NVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFyb7Ao65vh4YOhn0pdr8yb
++gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc76DbT52V
+qyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6K
+yX2m+Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0G
+AbQOXDBGVWCvOGU6yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaK
+J/kR8slC/k7e3x9cxKSGhxYzoacXGKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwEC
+AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+BBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUAA4ICAQBqinA4
+WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6
+yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj
+/feTZU7n85iYr83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6
+jBAyvd0zaziGfjk9DgNyp115j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2
+ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0AkLppRQjbbpCBhqcqBT/mhDn4t/lX
+X0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97qA4bLJyuQHCH2u2n
+FoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Yjj4D
+u9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10l
+O1Hm13ZBONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Le
+ie2uPAmvylezkolwQOQvT8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR1
+2KvxAmLBsX5VYc8T1yaw15zLKYs4SgsOkI26oQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFrjCCA5agAwIBAgIQPoxPvOQpg4JNhFWO1TWAzzANBgkqhkiG9w0BAQsFADBx
+MQswCQYDVQQGEwJMVDErMCkGA1UEChMiU2thaXRtZW5pbmlvIHNlcnRpZmlrYXZp
+bW8gY2VudHJhczEZMBcGA1UECxMQQ0EgUk9PVCBTZXJ2aWNlczEaMBgGA1UEAxMR
+U1NDIEdETCBDQSBSb290IEIwHhcNMTMwNjA0MTQyMDE1WhcNMzMwNjA0MTQyMTU1
+WjBxMQswCQYDVQQGEwJMVDErMCkGA1UEChMiU2thaXRtZW5pbmlvIHNlcnRpZmlr
+YXZpbW8gY2VudHJhczEZMBcGA1UECxMQQ0EgUk9PVCBTZXJ2aWNlczEaMBgGA1UE
+AxMRU1NDIEdETCBDQSBSb290IEIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCPlenS68FzJcc4Z/CDjlO8tsvOunPbTyf2IpA/Qr8h1t5igrRvBAVJCTt3
+AddLX1LS2RnHbXwMqToJYuQqGGmMoN3rrBO2DjkRgGlOY1/cPA362YxivmSFMjJZ
+l1CTid/7/9TYZXHHRlWiG5lhH9xQAMgXeehQsAxe5v52pgFOCchwbPqQs17cPQfN
+SaNOVl4ST2RBf34MFcOg3rOjKQZJRKFfbz+BoERN8HsKOCjtEu5jl8N7XYxPcd2V
+OtouqAFGCvNs6LXxHwgA8UCSGyYAMXU5RkkmuaTUcXcRpE8zzAnb2dEhS5JErM54
+YoIX+/oStH3V8obt9H6WFOaNA1KvzRei1Ryl/oGmmu195NkOMmYQj9vZMzGBfilX
+78yyoWDuilu5Zdt/G5osjycxiYoota+xVtQDIu4lT9iavdJsV7yDpkgfLFUHCTQr
+uXksAqWgX3x2nyQyPC2S3+tIV4eh9v4j+jSrifVoG44fqm4OpdIh0u+50bFJVzVa
+hNMe4gJtUhB/4oxNIdsyMhx9zJYiAy1qpwZCbW6Qh/ocXLBP0ANBE/oLU+bBEAJI
+C3dj9KWcUXuYZtfFdjLlb10UYX0Mu22VQNqpJsf3qcvS/ifBK/axaIb+42JSmVCO
+K95BIQcbh/VAHXCtz/3CQ6g1VhFCxcteZqHIqGj3/kxXYTZSgQIDAQABo0IwQDAO
+BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUcgNGh2H2
+HbPUlWO5UHduDauY/i8wDQYJKoZIhvcNAQELBQADggIBAAjbijKBdDNxFuwhhVNI
+Cm8fcuPjBPgutz/zJJVPnO0T4YiCAvZm97exLYAnra64bf4jBxEIq3RhjCgS+fYQ
+NPDPtnyjdS0S1JTfdO6xmKux7iJiS1kff/4aZa1N4qQRPxMhtNg1i3ZApl+9MxHf
+mOMhXh2ju3g2AjvY/WSE2jfNWe38DNB0pGtxPDYSRJ5+bk8KIRxlH0sSbL+Octbd
+PgBwmAFFK+yVkOPTaTjnK51+ZVlb4duFymP+q7/k0P3kUroa5v7GkLp7zvGkYsVH
+viTHoHrlIeHGCOAMiYOPgGn97qDfekw600gqFr+uppW13Wgf+w61BYzRskR8YDBW
+dhe1NU+o1QrrwrVuAu6cXw6jsQGo5VNvfoNBHxXY/+HCthrxRpxkoBrgSsq4prSJ
+JO57lZli1OJAu86jmn0dcvMbgUF3AF7sPKIwBTzNfEg2E8gysGtvnzgoOGlce+bi
+rYO7bRPRLrfRdm9dMF65UEVI1kiAk1HJFqkQXWfGy35nfQVP9CDvJCVe7WdDxvtu
+efuy8sjJzkF8BeCti80KRS7iYp+XkfT5Y+zywmCK3Bv/Iaj/I4eMc42wOswfjzFy
+Cv2Wod8aU9M2trB3Rt4D9sKALm+XI+ERzFGYP+5A//Q9m4h/jLvhWYa9CTQnXJ4K
+kzI7VSqpXgsND6mmUQTimyoR
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEWDCCA0CgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBzjELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEWMBQGA1UEBxMNU29tZXJzZXQgV2VzdDEq
+MCgGA1UEChMhU291dGggQWZyaWNhbiBQb3N0IE9mZmljZSBMaW1pdGVkMRowGAYD
+VQQLExFTQVBPIFRydXN0IENlbnRyZTEdMBsGA1UEAxMUU0FQTyBDbGFzcyAyIFJv
+b3QgQ0ExKTAnBgkqhkiG9w0BCQEWGnBraWFkbWluQHRydXN0Y2VudHJlLmNvLnph
+MB4XDTEwMDkxNTAwMDAwMFoXDTMwMDkxNDAwMDAwMFowgc4xCzAJBgNVBAYTAlpB
+MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxFjAUBgNVBAcTDVNvbWVyc2V0IFdlc3Qx
+KjAoBgNVBAoTIVNvdXRoIEFmcmljYW4gUG9zdCBPZmZpY2UgTGltaXRlZDEaMBgG
+A1UECxMRU0FQTyBUcnVzdCBDZW50cmUxHTAbBgNVBAMTFFNBUE8gQ2xhc3MgMiBS
+b290IENBMSkwJwYJKoZIhvcNAQkBFhpwa2lhZG1pbkB0cnVzdGNlbnRyZS5jby56
+YTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALd8aXxg9Wwm9KocF39d
+1BFL5/Pa53On+qRCSWg/2qVAXAZoX07Mvb6BOCQtzCagRG0DyyPgu96FU0uUX197
+qsgal/7XI5PtsGq92PwAPrOSBOBLvk87mKed7c1j8IHnbJjUbGBVAOW5POY0lV3g
+/XGH6f+B7uV3bxj/88l8pZXdgtwU2aLhvs0nc7tFWz90sWJ4ZhAiLPVo8xeIFjua
+Gx37FK4NuvKQVaLVMNYrlTLHOW57ZdJ3OM5uVqXZI6s4sjtRhcAdG7cRLwVpR9gC
+ypKo4TPehQib7ZDV2CGZcb+29XPvZwiYZNLyKnpLIRbhH1hh3pFHHyGfH/6MI4aD
+GCcCAwEAAaM/MD0wDgYDVR0PAQH/BAQDAgEGMAwGA1UdEwQFMAMBAf8wHQYDVR0O
+BBYEFKudI5P9HzNKMi2qJFryLWSpAZpBMA0GCSqGSIb3DQEBBQUAA4IBAQBWUlG5
+DwLh9i6csTFapvjOvO4ChBUJ8ShSX+fhLL3beQp6v+tintWGRynudDDsTHW1HuOq
+M++t4WpMvzcBvlWDTKlS2DeYUG9o3UdBtywwyG5MByzG00m5tVzSy8zUNsYHDRhP
+P2MAxOy2iPsBZGOt0fd3fGRUKxI9NBWF8KC6eSlfmJtC6q7BqJ8TiYpt6bg4yWHt
+YOz3KlgFm6FgeIMX4X5f6P144GtWKoZ2rlvCXutF5DC4Me1ksV0uwD2ADccnE9N2
+4ob73NuACoHh/Qj5C8QxtGNb54wz5Qa2Umqz1+lr4zJ4MmaUTt2Nd23TJChbVGF3
+Amd1lEtXS+ZsxTlv
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGWDCCBECgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBzjELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEWMBQGA1UEBxMNU29tZXJzZXQgV2VzdDEq
+MCgGA1UEChMhU291dGggQWZyaWNhbiBQb3N0IE9mZmljZSBMaW1pdGVkMRowGAYD
+VQQLExFTQVBPIFRydXN0IENlbnRyZTEdMBsGA1UEAxMUU0FQTyBDbGFzcyAzIFJv
+b3QgQ0ExKTAnBgkqhkiG9w0BCQEWGnBraWFkbWluQHRydXN0Y2VudHJlLmNvLnph
+MB4XDTEwMDkxNTAwMDAwMFoXDTMwMDkxNDAwMDAwMFowgc4xCzAJBgNVBAYTAlpB
+MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxFjAUBgNVBAcTDVNvbWVyc2V0IFdlc3Qx
+KjAoBgNVBAoTIVNvdXRoIEFmcmljYW4gUG9zdCBPZmZpY2UgTGltaXRlZDEaMBgG
+A1UECxMRU0FQTyBUcnVzdCBDZW50cmUxHTAbBgNVBAMTFFNBUE8gQ2xhc3MgMyBS
+b290IENBMSkwJwYJKoZIhvcNAQkBFhpwa2lhZG1pbkB0cnVzdGNlbnRyZS5jby56
+YTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMp4Gge89vu0t4m80BlW
+OCpZnQfqGvn4+GhnXo/vyvf1aonmo5V/qdspJBw10DiWbD5WJP9eYlGQLofonMfa
+vDPxnqFvC44KJPT4TZCmss1eEdPCl0z1X0AdJiRNjQkQC/+7IBuTJhkMQz/pjrwx
+NxBukcpIglZGx7y5Op5GgWbP2ehcEM85nmXDnsVa9EvMRJlmhvRyG6NTSequR80y
+DXDmoKB2B53/WO/kPJHAteTcuAEM0/6zQqA7YQLUN1vXTEWV0nVd9W4wX1dRi7L/
+fsiLnKqjQTcMEJGopoVcucePBVGy0HjS4ktJ6dQapzusqjPmmioDQJhvdFITMZTR
+EsG0yzD5/0S4kltS1jDZM9F14xmlFhW3VFfxVlDOTr4DOy/stjDuFGBeX3o19E5k
+BxHqpQdmG26T4rBPXtbgROCz3K7vuP2os+zs5TmIRLShuxRgZI/WkpPL88xQ3ekH
+yGdn+fCHhJGyAGLpv0oVdMW/BEwFRl0Ky+XqYQDhb0GxNI6mAKJ8pqWm+mxMQ+Wo
+Jpo0mB6HmOdMeNGPnwVVXYpLyc+gC30GkJwYkrLEstfjRdlrc8OXOb8pHgYJVUC6
+vNpIdUPt/kR+PSzmYpED/T2J7370XSSPpQsrsz56KSi8uz+/63eFBCaLlLKQ9euN
+T6JEIlConCpESAB4GaudCJYVAgMBAAGjPzA9MA4GA1UdDwEB/wQEAwIBBjAMBgNV
+HRMEBTADAQH/MB0GA1UdDgQWBBRhs3lSnUqVklGOgiRw045AyMVm0DANBgkqhkiG
+9w0BAQUFAAOCAgEAf8azJIRQN/nEsMUwPBbpUA16urQ70iPl6Yl4auXjGwUekRzO
+BpeNZhYHRO+BuQh+o8c5NLi/mm2NsMEgQi4N9wsGA09uy7y3sC8ZcY2OrwpNWDGL
+RJkqKGaFx4AmZrBHwjmy+k8+Vb3ciSdLczME/ntHkMkFwC0z+LcIgilBQ/0mU+b6
+HzdWjU8Xutj9OoRw2D7wM67EBUhUobnVIT/qPsepMUf3m65KYpjRZyBl3nnhsTIe
+a9/7gGtHXDnHDgiqx6PuKek04pv5dbgm64idtDkRLnD9UQQyuw95hFAhRXwv5Nn/
+JTgGI6tOsQ7cOzEKrdpLAGlrLuLDDMkFAUVm4aWJYRxkmY0LmJCzfmY7C9ir6HUO
+2X+abn3JgyfJvOg0OMJahzJyBwz+1ZTR8MB48oCoRvVrmuzi2RaOivqE9tFSyZyy
+IVZgQ6YQ939Jv74H01BkbQK6KlUsz9nCbq98C0jQ8eGnwq10j4bk7ar6XIN9Quh9
+Bx0HVcwraTK5d4JoxnfyImmmyQpdh5nlcZ59LxMe0vT9CXknWCsKh4Eq+2ojLUsk
+hXQWRxgPCcX+qUgk46zQaT1fU5gyvezgUcFTSrH2O/A0SPWa3tzR4OO9JbNE6Dpz
+yXnQrNHt4gAKX6EdZllKc2jUBXIzOKdrr5HbDceMQOiekIjJ+/4k14Gs894=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGWDCCBECgAwIBAgIBAzANBgkqhkiG9w0BAQUFADCBzjELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEWMBQGA1UEBxMNU29tZXJzZXQgV2VzdDEq
+MCgGA1UEChMhU291dGggQWZyaWNhbiBQb3N0IE9mZmljZSBMaW1pdGVkMRowGAYD
+VQQLExFTQVBPIFRydXN0IENlbnRyZTEdMBsGA1UEAxMUU0FQTyBDbGFzcyA0IFJv
+b3QgQ0ExKTAnBgkqhkiG9w0BCQEWGnBraWFkbWluQHRydXN0Y2VudHJlLmNvLnph
+MB4XDTEwMDkxNTAwMDAwMFoXDTMwMDkxNDAwMDAwMFowgc4xCzAJBgNVBAYTAlpB
+MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxFjAUBgNVBAcTDVNvbWVyc2V0IFdlc3Qx
+KjAoBgNVBAoTIVNvdXRoIEFmcmljYW4gUG9zdCBPZmZpY2UgTGltaXRlZDEaMBgG
+A1UECxMRU0FQTyBUcnVzdCBDZW50cmUxHTAbBgNVBAMTFFNBUE8gQ2xhc3MgNCBS
+b290IENBMSkwJwYJKoZIhvcNAQkBFhpwa2lhZG1pbkB0cnVzdGNlbnRyZS5jby56
+YTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvc7UiaoKOf4BGO2ciS
+dTpVwVEiygt6pDUNxeZXLYPwKm8iODcxbXyFJKIGL0OCPUUwQCUc7lhHQebwngAe
++PQvEbuSsphFLdMfgMl2FBPDzEDmres5YPzPyN8q/YwSUe/PDGTGV+gjUV3nZlLq
+Zr2Tf516KPEZcG6EnzBHt7A5axMs60tNLq8/v/0CE0o55z4zxRCRUb4PR51NUvws
+8+MTogCC4RQMzdKes/Lggdq+mZJT432Zd0Ph4UgpgZ7WBVc6cdw+mK1YcG9Gu34y
+A+KDm1lX9/izzVQW7LatoRwaktHUKZ6PzbPofVDxwoKsur20dVag9UVdGH0sjPF7
+QcyGsZqESwoqXZuW4c36qxYnQeeVNabLiqeW86XMUfktfR5D+9xttbk4vQX7WPou
+0+xeZC2vWAFKfCJG00HLPeSWXklDOLuJ6/ScaTkSA1yEu+WMHurgZrvAv4z+ngpN
+PWg/QHbWMqnqRbhqB1KOzVHxXShjDNNZOPzJ/YLJRSC85ujMogzLe2Q5SUZF9XMc
+apcg6yFC97QgUrdK/XW8yw8MZxFXH/cw8auQzF08lgVi08pVAUtGxYCHHHLQc1Qh
+6tejnNOuf9RT2Sj8V97lP1JKu8gmJEdTHHO6z8a0MM1eccdWvEk4JebFEAl42dQd
+XM1u7duRXKFTFFaqjSeppo4bAgMBAAGjPzA9MA4GA1UdDwEB/wQEAwIBBjAMBgNV
+HRMEBTADAQH/MB0GA1UdDgQWBBQWhC37G+e0HmiY00IgGm5+T5FXAjANBgkqhkiG
+9w0BAQUFAAOCAgEAe+MNYzpkIG3M/Cy46dar29erJilHogxW7XXMlZlSNssg+xE0
+F0JOdQWw2OS4sIQvmBm5+9A5bHIGGMlcinp0CDdIaf0ioV3F13gT8ChCQcPJwzkJ
+B9Sh+DciaeTfMlVvwny5k/GyN3XMrtIzlow29wHt42TpC2hbEKoBNpl8z5qUXf0a
+WWGiZRV9nhdk1J9TmAH9cVfQXUARFj8/RNKvyfwIMn12+NVD6Nw2aAfDTsOWl1fG
+fTZe23Ct/q7UiJ21pGDWo2K+fPk0Hvy79EpyxYMeRmjDDpeDGD3TDgoRNXxplcWr
+KvXIORBNDIkwKYlJG0SXkfTqZSEbPwpDcoIcbRFd4CJFX2FMoqb636NGuuGBYGwy
+tPzk3DYF5DP36493SaqNCu9IiuZBl347q0OH8ghgC2/XWWb9K7svzjNPcuC217NT
+V4nwO7xu4hC/cz5ij6UI6VNnwU7BLkJDp7Kk+RaLQu7cNH9Is5DbJOLI5FM1U5zq
+N4XPv5gGNUcm165t3YSpY1gmQfV1Mi5hnk+TUlL2WiPrwaBzJiUiQpGRkYBP/4jO
+XnPnlsLtCRL3dpapeWKQSYGDnwwyMuJbyt1INKyHjnGVrkzkfHgdp1HDvRH6AtGV
+iXMIRiKJaQDPT4DBTVuUxMqZUZgvDb19VGTUCtonWac3u1YM0AaicrkSuVs=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK
+MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu
+VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw
+MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw
+JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT
+3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU
++ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp
+S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1
+bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi
+T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL
+vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK
+Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK
+dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT
+c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv
+l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N
+iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD
+ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
+6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt
+LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93
+nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3
++wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK
+W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT
+AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq
+l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG
+4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ
+mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A
+7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNV
+BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu
+MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQy
+MDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx
+EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjEw
+ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy3QRk
+D2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/o
+OI7bm+V8u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3A
+fQ+lekLZWnDZv6fXARz2m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJe
+IgpFy4QxTaz+29FHuvlglzmxZcfe+5nkCiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8n
+oc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTaYVKvJrT1cU/J19IG32PK
+/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6vpmumwKj
+rckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD
+3AjLLhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE
+7cderVC6xkGbrPAXZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkC
+yC2fg69naQanMVXVz0tv/wQFx1isXxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLd
+qvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
+DwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ04IwDQYJKoZI
+hvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
+xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaA
+SfX8MPWbTx9BLxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXo
+HqJPYNcHKfyyo6SdbhWSVhlMCrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpB
+emOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5GfbVSUZP/3oNn6z4eGBrxEWi1CXYBmC
+AMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85YmLLW1AL14FABZyb
+7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKSds+x
+DzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvk
+F7mGnjixlAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqF
+a3qdnom2piiZk4hA9z7NUaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsT
+Q6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJa7+h89n07eLw4+1knj0vllJPgFOL
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV
+BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu
+MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy
+MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx
+EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw
+ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe
+NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH
+PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I
+x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe
+QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR
+yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO
+QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912
+H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ
+QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD
+i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs
+nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1
+rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
+DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI
+hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
+tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf
+GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb
+lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka
++elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal
+TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i
+nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3
+gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr
+G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os
+zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x
+L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
+b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
+cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA
+n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc
+biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp
+EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA
+bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu
+YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB
+AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW
+BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI
+QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I
+0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni
+lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9
+B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv
+ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
+IhNzbM8m9Yop5w==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw
+CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
+ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg
+RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
+Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq
+hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf
+Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q
+RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
+BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD
+AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY
+JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv
+6pZjamVFkpUBtA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
+MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
+b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
+2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
+1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
+q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
+tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
+vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
+BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
+5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
+1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
+NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
+Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
+8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
+pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
+MrY=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw
+CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
+ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe
+Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw
+EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x
+IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF
+K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG
+fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO
+Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd
+BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx
+AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/
+oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8
+sycX
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
+RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
+Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y
+ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If
+xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV
+ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO
+DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ
+jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/
+CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi
+EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM
+fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY
+uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK
+chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t
+9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
+ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2
+SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd
++SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc
+fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa
+sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N
+cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N
+0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie
+4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI
+r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1
+/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm
+gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGnTCCBIWgAwIBAgISAu4Am2bYah1n/tqKJW8hWnUbMA0GCSqGSIb3DQEBCwUA
+MFoxOjA4BgNVBAMMMUF1dG9yaWRhZCBDZXJ0aWZpY2Fkb3JhIFJhw616IE5hY2lv
+bmFsIGRlIFVydWd1YXkxDzANBgNVBAoTBkFHRVNJQzELMAkGA1UEBhMCVVkwHhcN
+MTExMTAzMTUwMjQ5WhcNMzExMDI5MTUwMjQ5WjBaMTowOAYDVQQDDDFBdXRvcmlk
+YWQgQ2VydGlmaWNhZG9yYSBSYcOteiBOYWNpb25hbCBkZSBVcnVndWF5MQ8wDQYD
+VQQKEwZBR0VTSUMxCzAJBgNVBAYTAlVZMIICIDANBgkqhkiG9w0BAQEFAAOCAg0A
+MIICCAKCAgEAl8QfKkShgUtIkXXd69qPyhuL8rQ8LMbl9MEe0bgwE29cn+VRln8a
+pBb+0tQdJfbQ5jdgXwCjGansJ79QLQWgXF6T6+No/Zs9uRQ2LeclFRCQGpLJEbEp
+l5NWVWKtR6x/1Qx3ltKTaGox3VTvk/IKT6BfAlrvtkQ+55myjkXeoPfA6EiwR+ze
+QhTbNXugafwewAEpFtozoSGhMjIQdn2ox8Auc4Nk/Fr3mzaMae0gVSN5zfPzbGtg
+XHiN/D2FLLyp93DopcpN2HyY74Z2GITVQCkQJzLn7wNEC0/JKvG2tCug1QOUhCHT
+dPMpbXjwBWquAQ9hH8al8MeCFdk7+92LdGnu5MfH9BHcFFHBhBolVhNrW85fLP2L
+Gy0PyMBVqhhPmJzPoncItDWV2LmLnEkOtBAL/PxHTdSaV/mfer3pV7u0D18VkNho
+bNWFJYMthgxHYpezeU25ZQh3Um9K426AwKyj1bzqSeJl4kxZaoLeK/WqPv5l6FFw
+TTeEBgQ/koPUVijjJdVUyoXuVsAuzvlwEBJfXZ7GvEsQHVZtynLBUwkqEz3Ytfkc
+O0XGhxTQOH6eIV/8dh3/CylC26HEeTnhTdWGUOPy4LPXWZvePx4aA/PUaYZLRxwy
+fzwHCRMQp5sHMHczvGkR0TQ9fBAquB6OvUfe+bJ5VWYhAgf7OSwKF6ECAQOjggFd
+MIIBWTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBiBgNVHR8EWzBZ
+MCygKqAohiZodHRwOi8vd3d3LmFnZXNpYy5ndWIudXkvYWNybi9hY3JuLmNybDAp
+oCegJYYjaHR0cDovL3d3dy51Y2UuZ3ViLnV5L2Fjcm4vYWNybi5jcmwwgbIGA1Ud
+IASBqjCBpzBcBgtghlqE4q4dhIgFADBNMEsGCCsGAQUFBwIBFj9odHRwOi8vd3d3
+LnVjZS5ndWIudXkvaW5mb3JtYWNpb24tdGVjbmljYS9wb2xpdGljYXMvY3BfYWNy
+bi5wZGYwRwYLYIZahOKuHYSIBQEwODA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5h
+Z2VzaWMuZ3ViLnV5L2Fjcm4vY3BzX2Fjcm4ucGRmMB0GA1UdDgQWBBSSnpG4VSg9
+d0IsM6WYX9DJrI21ozANBgkqhkiG9w0BAQsFAAOCAgEAXeerWepJ3L9GQ/2Uu5hw
+lBT6zgNd8X0xE5JOhSQwFGts0+fO5nnV205VThcr15NF3xMMJ2cdx0KQVDDG8ahp
+KLROpm2lNaZQlmhJo+4vC6v8AwJQaPGVKT5xLNza5S3Zdi7uVjN+F6EnAuGhJygh
+ir8B52LHu7IlBNobpiOMfJO6yYvrCvk3t5Q5/U2PfqLcgW8brRQPWyADeEFzZ57S
+lxeQKopUS6d5fyQSkZ87LMc3pAxccmoTnjIJJ+tDMnVf10fDKkVTFVZ2T7sJ6IRg
+Ee9z1edQbmko/evGy8pOE2MNDjcsMR/bp1igsv0NF4ezkq4bKIAftpJ+hhHh9kyY
+f2aLHxNJA0L8+5ic7oaWqS4FfnAcwXfI6V2CuA7OW2QFY+4/Bi02DOkfclserN0m
+9Rw4bv2MPU2G6yfLygONQPMq0YrYNA7CrbWI7YeaioWih+/puTjnaJajAc+CPRxL
+KJ0n9fmZlntI/azQ8DL3OATdTZmuDpKCw/o8GxPHaLdd4JNGuLi4pAzEG8a6Rpbd
+nlUPR532gaWsZVnY3a4GbOBDgsZn2HACNfU2BONKOal1Ah7mP0bPnCwehIgXqiap
+pkOA4MBbo2SDm5rtawFltsE9GOyTGWaUqNMRUJl6iH2vPn+UkDsKw2q3jV/Sp1HR
+Mh+58jJ9d5NtQ+xBaavPyWE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNV
+BAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBC
+aWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNV
+BAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1
+Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMwNTEyMDk0OFoXDTIz
+MDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+
+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhp
+em1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
+ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4vU/kwVRHoViVF56C/UY
+B4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vdhQd2h8y/L5VMzH2nPbxH
+D5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5KCKpbknSF
+Q9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEo
+q1+gElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3D
+k14opz8n8Y4e0ypQBaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcH
+fC425lAcP9tDJMW/hkd5s3kc91r0E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsut
+dEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gzrt48Ue7LE3wBf4QOXVGUnhMM
+ti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAqjqFGOjGY5RH8
+zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
+rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUX
+U8u3Zg5mTPj5dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6
+Jyr+zE7S6E5UMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5
+XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAF
+Nzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAKkEh47U6YA5n+KGCR
+HTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jOXKqY
+GwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c
+77NCR807VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3
++GbHeJAAFS6LrVE1Uweoa2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WK
+vJUawSg5TB9D0pH0clmKuVb8P7Sd2nCcdlqMQ1DujjByTd//SffGqWfZbawCEeI6
+FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEVKV0jq9BgoRJP3vQXzTLl
+yb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gTDx4JnW2P
+AJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpD
+y4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8d
+NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID9zCCAt+gAwIBAgILMTI1MzcyODI4MjgwDQYJKoZIhvcNAQELBQAwWDELMAkG
+A1UEBhMCSlAxHDAaBgNVBAoTE0phcGFuZXNlIEdvdmVybm1lbnQxDTALBgNVBAsT
+BEdQS0kxHDAaBgNVBAMTE0FwcGxpY2F0aW9uQ0EyIFJvb3QwHhcNMTMwMzEyMTUw
+MDAwWhcNMzMwMzEyMTUwMDAwWjBYMQswCQYDVQQGEwJKUDEcMBoGA1UEChMTSmFw
+YW5lc2UgR292ZXJubWVudDENMAsGA1UECxMER1BLSTEcMBoGA1UEAxMTQXBwbGlj
+YXRpb25DQTIgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKaq
+rSVl1gAR1uh6dqr05rRL88zDUrSNrKZPtZJxb0a11a2LEiIXJc5F6BR6hZrkIxCo
++rFnUOVtR+BqiRPjrq418fRCxQX3TZd+PCj8sCaRHoweOBqW3FhEl2LjMsjRFUFN
+dZh4vqtoqV7tR76kuo6hApfek3SZbWe0BSXulMjtqqS6MmxCEeu+yxcGkOGThchk
+KM4fR8fAXWDudjbcMztR63vPctgPeKgZggiQPhqYjY60zxU2pm7dt+JNQCBT2XYq
+0HisifBPizJtROouurCp64ndt295D6uBbrjmiykLWa+2SQ1RLKn9nShjZrhwlXOa
+2Po7M7xCQhsyrLEy+z0CAwEAAaOBwTCBvjAdBgNVHQ4EFgQUVqesqgIdsqw9kA6g
+by5Bxnbne9owDgYDVR0PAQH/BAQDAgEGMHwGA1UdEQR1MHOkcTBvMQswCQYDVQQG
+EwJKUDEYMBYGA1UECgwP5pel5pys5Zu95pS/5bqcMRswGQYDVQQLDBLmlL/lupzo
+qo3oqLzln7rnm6QxKTAnBgNVBAMMIOOCouODl+ODquOCseODvOOCt+ODp+ODs0NB
+MiBSb290MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAH+aCXWs
+B9FydC53VzDCBJzUgKaD56WgG5/+q/OAvdVKo6GPtkxgEefK4WCB10jBIFmlYTKL
+nZ6X02aD2mUuWD7b5S+lzYxzplG+WCigeVxpL0PfY7KJR8q73rk0EWOgDiUX5Yf0
+HbCwpc9BqHTG6FPVQvSCLVMJEWgmcZR1E02qdog8dLHW40xPYsNJTE5t8XB+w3+m
+Bcx4m+mB26jIx1ye/JKSLaaX8ji1bnOVDMA/zqaUMLX6BbfeniCq/BNkyYq6ZO/i
+Y+TYmK5rtT6mVbgzPixy+ywRAPtbFi+E0hOe+gXFwctyTiLdhMpLvNIthhoEdlkf
+SUJiOxMfFui61/0=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID2TCCAsGgAwIBAgICBxUwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQVUx
+DDAKBgNVBAoTA0dPVjEMMAoGA1UECxMDRG9EMQwwCgYDVQQLEwNQS0kxDDAKBgNV
+BAsTA0NBczEQMA4GA1UEAxMHQURPQ0EwMjAeFw0xMTA5MDEwNDI2MDdaFw0xOTAx
+MjcwMjMxMjRaMFcxCzAJBgNVBAYTAkFVMQwwCgYDVQQKEwNHT1YxDDAKBgNVBAsT
+A0RvRDEMMAoGA1UECxMDUEtJMQwwCgYDVQQLEwNDQXMxEDAOBgNVBAMTB0FET0NB
+MDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkUIVId4++/0nRu3Wu
+hyAKlkElK7xGB93LBIaVLEkuvUYMDvdYoGAWhdpdO+N1XkJ9ZGyPwV0pZEGyhbcb
+Rr2F2tc6HbK08Uo9/h7ayO6GnaNqUQvkRZiv2BtIvDwUIu0rnzt/bzM81n2s4HlP
+v2WTyxcqb7x6D+lbX+EMKvtAUjZKXWU4y1nBSLOkkYUWXXh9ws8tM+5ZSsjmYbOG
+H4TIuBpsntFgtII1670jqC+TVFDOJF4xrtNqNCxhhzdGHkOJxoDLIgPTyYUuH5ux
+rDlLTWDyimEb/4OxLHOPiELALbHKnsCVZ3R7luRqeo5BRaA088645+KP81BVZG+5
+ICuTAgMBAAGjga4wgaswDAYDVR0TBAUwAwEB/zBLBgNVHSAERDBCMDgGCSokAYJO
+AQEBATArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3LmRlZmVuY2UuZ292LmF1L3Br
+aTAGBgRVHSAAMA4GA1UdDwEB/wQEAwIBxjAfBgNVHSMEGDAWgBTp553rNb24sitJ
+WPS8kn2LcYoRWjAdBgNVHQ4EFgQU6eed6zW9uLIrSVj0vJJ9i3GKEVowDQYJKoZI
+hvcNAQEFBQADggEBAFbQqMhsybSs8TuBdSsRxPZWtFeuwpIZXJZzCu0uQ5xkKll4
+E7VQjE5qkFTzGT4WGM9DE8kyc/hV4MrQkhk+ZaPegBIcUaUYLMBp3beGMq/wrc/g
+wyPE5fy2PwsF15Y6ZF53jITO8dzNBArcl/EhHMd9MCVd1yA1lcOHHbY/21PiKqT4
+GRc6DBXuswU4Me5Fcd2X+3hxhgL0nzQZc0kQK6B/8cn6oPJYIzEW+BBQgrtd0urv
+ad1ndlU4x6gOA4A4TwAga98rZZPbCK9gbDQgqK1IPxB+psOUAZXhgSyg7YyuVE46
+S8PSws9+AnzvKiy77NrexQGvlEntD8K/DpBpLWs=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEW
+MBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkgRzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1
+OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEsMCoG
+A1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgRzIwggIiMA0G
+CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8Oo1XJ
+JZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsD
+vfOpL9HG4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnoo
+D/Uefyf3lLE3PbfHkffiAez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/
+Q0kGi4xDuFby2X8hQxfqp0iVAXV16iulQ5XqFYSdCI0mblWbq9zSOdIxHWDirMxW
+RST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbsO+wmETRIjfaAKxojAuuK
+HDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8HvKTlXcxN
+nw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM
+0D4LnMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/i
+UUjXuG+v+E5+M5iSFGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9
+Ha90OrInwMEePnWjFqmveiJdnxMaz6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHg
+TuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
+AwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJKoZIhvcNAQEL
+BQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K
+2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfX
+UfEpY9Z1zRbkJ4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl
+6/2o1PXWT6RbdejF0mCy2wl+JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK
+9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG/+gyRr61M3Z3qAFdlsHB1b6uJcDJ
+HgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTcnIhT76IxW1hPkWLI
+wpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/XldblhY
+XzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5l
+IxKVCCIcl85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoo
+hdVddLHRDiBYmxOlsGOm7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulr
+so8uBtjRkcfGEvRM/TAXw8HaOFvjqermobp573PYtlNXLfbQ4ddI
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk
+MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH
+bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX
+DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD
+QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc
+8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke
+hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI
+KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg
+515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO
+xwy8p2Fp8fc74SrL+SvzZpA3
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEk
+MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpH
+bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX
+DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD
+QSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprlOQcJ
+FspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAw
+DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61F
+uOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX
+kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTs
+ewv4n4Q=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL
+BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
+BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00
+MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV
+wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe
+rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341
+68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh
+4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp
+UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o
+abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc
+3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G
+KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt
+hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO
+Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt
+zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD
+ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
+MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2
+cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN
+qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5
+YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv
+b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2
+8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k
+NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj
+ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp
+q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt
+nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL
+BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
+BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00
+MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf
+qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW
+n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym
+c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+
+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1
+o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j
+IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq
+IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz
+8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh
+vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l
+7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG
+cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD
+ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
+AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC
+roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga
+W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n
+lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE
++V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV
+csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd
+dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg
+KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM
+HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4
+WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL
+BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
+BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00
+MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR
+/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu
+FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR
+U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c
+ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR
+FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k
+A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw
+eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl
+sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp
+VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q
+A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+
+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD
+ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
+KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI
+FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv
+oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg
+u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP
+0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf
+3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl
+8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+
+DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN
+PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/
+ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG
+A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3
+d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu
+dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq
+RW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy
+MTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD
+VQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0
+L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g
+Zm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi
+A2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt
+ByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH
+Bz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+BBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC
+R98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX
+hTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF9jCCA96gAwIBAgIQZWNxhdNvRcaPfzH5CYeSgjANBgkqhkiG9w0BAQwFADCB
+lDELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8w
+HQYDVQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMUUwQwYDVQQDEzxTeW1hbnRl
+YyBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+IC0gRzYwHhcNMTIxMDE4MDAwMDAwWhcNMzcxMjAxMjM1OTU5WjCBlDELMAkGA1UE
+BhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYDVQQLExZT
+eW1hbnRlYyBUcnVzdCBOZXR3b3JrMUUwQwYDVQQDEzxTeW1hbnRlYyBDbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzYwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC3DrL6TbyachX7d1vb/UMPywv3
+YC6zK34Mu1PyzE5l8xm7/zUd99Opu0Attd141Kb5N+qFBXttt+YTSwZ8+3ZjjyAd
+LTgrBIXy6LDRX01KIclq2JTqHgJQpqqQB6BHIepm+QSg5oPwxPVeluInTWHDs8GM
+IrZmoQDRVin77cF/JMo9+lqUsITDx7pDHP1kDvEo+0dZ8ibhMblE+avd+76+LDfj
+rAsY0/wBovGkCjWCR0yrvYpe3xOF/CDMSFmvr0FvyyPNypOn3dVfyGQ7/wEDoApP
+LW49hL6vyDKyUymQFfewBZoKPPa5BpDJpeFdoDuw/qi2v/WJKFckOiGGceTciotB
+VeweMCRZ0cBZuHivqlp03iWAMJjtMERvIXAc2xJTDtamKGaTLB/MTzwbgcW59nhv
+0DI6CHLbaw5GF4WU87zvvPekXo7p6bVk5bdLRRIsTDe3YEMKTXEGAJQmNXQfu3o5
+XE475rgD4seTi4QsJUlF3X8jlGAfy+nN9quX92Hn+39igcjcCjBcGHzmzu/Hbh6H
+fLPpysh7avRo/IOlDFa0urKNSgrHl5fFiDAVPRAIVBVycmczM/R8t84AJ1NlziTx
+WmTnNi/yLgLCl99y6AIeoPc9tftoYAP6M6nmEm0G4amoXU48/tnnAGWsthlNe4N/
+NEfq4RhtsYsceavnnQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUOXEIAD7eyIbnkP/k/SEPziQZFvYwDQYJKoZIhvcN
+AQEMBQADggIBAFBriE1gSM5a4yLOZ3yEp80c/ekMA4w2rwqHDmquV64B0Da78v25
+c8FftaiuTKL6ScsHRhY2vePIVzh+OOS/JTNgxtw3nGO7XpgeGrKC8K6mdxGAREeh
+KcXwszrOmPC47NMOgAZ3IzBM/3lkYyJbd5NDS3Wz2ztuO0rd8ciutTeKlYg6EGhw
+OLlbcH7VQ8n8X0/l5ns27vAg7UdXEyYQXhQGDXt2B8LGLRb0rqdsD7yID08sAraj
+1yLmmUc12I2lT4ESOhF9s8wLdfMecKMbA+r6mujmLjY5zJnOOj8Mt674Q5mwk25v
+qtkPajGRu5zTtCj7g0x6c4JQZ9IOrO1gxbJdNZjPh34eWR0kvFa62qRa2MzmvB4Q
+jxuMjvPB27e+1LBbZY8WaPNWxSoZFk0PuGWHbSSDuGLc4EdhGoh7zk5//dzGDVqa
+pPO1TPbdMaboHREhMzAEYX0c4D5PjT+1ixIAWn2poQDUg+twuxj4pNIcgS23CBHI
+Jnu21OUPA0Zy1CVAHr5JXW2T8VyyO3VUaTqg7kwiuqya4gitRWMFSlI1dsQ09V4H
+Mq3cfCbRW4+t5OaqG3Wf61206MCpFXxOSgdy30bJ1JGSdVaw4e43NmUoxRXIK3bM
+bW8Zg/T92hXiQeczeUaDV/nxpbZt07zXU+fucW14qZen7iCcGRVyFT0E
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICpzCCAi2gAwIBAgIQTHm1miicdjFk9YlE0JEC3jAKBggqhkjOPQQDAzCBlDEL
+MAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYD
+VQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMUUwQwYDVQQDEzxTeW1hbnRlYyBD
+bGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0g
+RzQwHhcNMTIxMDE4MDAwMDAwWhcNMzcxMjAxMjM1OTU5WjCBlDELMAkGA1UEBhMC
+VVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1h
+bnRlYyBUcnVzdCBOZXR3b3JrMUUwQwYDVQQDEzxTeW1hbnRlYyBDbGFzcyAzIFB1
+YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcq
+hkjOPQIBBgUrgQQAIgNiAARXz+qzOU0/oSHgbi84csaHl/OFC0fnD1HI0fSZm8pZ
+Zf9M+eoLtyXV0vbsMS0yYhLXdoan+jjJZdT+c+KEOfhMSWIT3brViKBfPchPsD+P
+oVAR5JNGrcNfy/GkapVW6MCjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
+BTADAQH/MB0GA1UdDgQWBBQknbzScfcdwiW+IvGJpSwVOzQeXjAKBggqhkjOPQQD
+AwNoADBlAjEAuWZoZdsF0Dh9DvPIdWG40CjEsUozUVj78jwQyK5HeHbKZiQXhj5Q
+Vm6lLZmIuL0kAjAD6qfnqDzqnWLGX1TamPR3vU+PGJyRXEdrQE0QHbPhicoLIsga
+xcX+i93B3294n5E=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD
+TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx
+MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j
+aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP
+T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03
+sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL
+TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5
+/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp
+7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz
+EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt
+hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP
+a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot
+aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg
+TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV
+PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv
+cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL
+tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd
+BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
+ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT
+ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL
+jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS
+ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy
+P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19
+xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d
+Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN
+5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe
+/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z
+AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ
+5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix
+RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1
+dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p
+YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw
+NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK
+EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl
+cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
+c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz
+dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ
+fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns
+bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD
+75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP
+FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV
+HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp
+5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu
+b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA
+A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p
+6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
+TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7
+dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys
+Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI
+l7WdmplNsDz4SgCbZN2fOUvRJ9e4
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDNzCCAh+gAwIBAgICJxwwDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCR1Ix
+HTAbBgNVBAoTFEF0aGVucyBFeGNoYW5nZSBTLkEuMRYwFAYDVQQDEw1BVEhFWCBS
+b290IENBMB4XDTEwMTAxODE1NTYwM1oXDTMwMTAxNzIxMDAwMFowRDELMAkGA1UE
+BhMCR1IxHTAbBgNVBAoTFEF0aGVucyBFeGNoYW5nZSBTLkEuMRYwFAYDVQQDEw1B
+VEhFWCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzRo9
+MLWzOLK/eruuodbXhfAiOqSJacThYgTJcNM8MxLi5jjld6QkRGQNt65MWt3hGAY+
+7ZtaBfXh3hLtNircR9mRUZntsb9qc6EKCCSoio0cC1nTv3AjVUSgjDDFzm1PsOy+
+84wx3wpa3NNXXAWgM5U7l49UC7j1a33Hxay1eY4GOPGoKVU9mjbQJ180ahJ4FyjZ
+mEns2VpS2iY6+u5MpiaOqD5VH7If4bWb+To19u2RHP0LECT9H/nT4wAlsQslwLd9
+mjwHOoAL1qj+kUXowdLFIm/T5XEftiw2tFig7c1KaORqV/ShdezXAJnV9plc607J
+u9cao0VZAA+MO9t0NQIDAQABozMwMTAPBgNVHRMBAf8EBTADAQH/MBEGA1UdDgQK
+BAhD4oDou9K3wTALBgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAD8BY3UH
+Mitfdf92jtOpuG/MUD2EV08og+h8o26ivPfCuq46q07QD5IouN1bLNvl1h86k+GR
+DteqXwFhLD5hT96VFU3MPeoy4qP++Bap8rwp/CmefXKlXaFrAtVfSPSgO8sYRvA9
+F1WD0ClhkbuaQUnRE75BlPI+wySrn8drQpBCeX5aUfs8XgshH8vZSBMVsWp/A8TR
+ulHScImqCEqHHPZ6mLHUUQVVxpAXb8PgBMB69C8YolZCcy62spvROb4JwgJKJBf5
+96y9cQe/leKX5aGECI2y4kSh3IkwO6gMBXpddgBPHm9xfys52kVCOTHSqTJA1Dhj
+E5Y3mkld2cf9uEw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE
+AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw
+CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ
+BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND
+VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb
+qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY
+HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo
+G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA
+lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr
+IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/
+0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH
+k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47
+4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO
+m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa
+cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl
+uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI
+KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls
+ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG
+AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2
+VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT
+VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG
+CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA
+cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA
+QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA
+7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA
+cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA
+QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA
+czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu
+aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt
+aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud
+DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF
+BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp
+D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU
+JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m
+AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD
+vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms
+tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH
+7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h
+I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA
+h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF
+d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H
+pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDHjCCAgagAwIBAgIDB7HTMA0GCSqGSIb3DQEBDQUAMDcxCzAJBgNVBAYTAlNJ
+MQ8wDQYDVQQKEwZIYWxjb20xFzAVBgNVBAMTDkhhbGNvbSBSb290IENBMB4XDTEy
+MDIwODA5NTU0MVoXDTMyMDIwODA5NTU0MVowNzELMAkGA1UEBhMCU0kxDzANBgNV
+BAoTBkhhbGNvbTEXMBUGA1UEAxMOSGFsY29tIFJvb3QgQ0EwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCJuYXK/vR1fX/snUI3urqNvOw9FwP92UVl1s3J
+Tl+MSFyXCFcUiy2cPJBJmc9pr0mN2xwBsG7p9OqRZ13Ks2lP2MzBDT3uqgN24Mlw
+op/+65vQtsmW0/D7W9DwB6tMXk2k4kdeBWh0po4iR+5+02eEVDeSRw7zo+wVGvNt
+e78ZNSGPgkusVJwJzW62wVe90Ek9b59zjrFsfr3+1rs9A+jmTBq07q+0g04ykFT2
+ThvhL86lNBqOoyD52T4ia29u4/rZM1wIoPcVAD2cEJJKVc2Asgaq/dePt1qSJyQP
+MzwouvEfaLV3KV6uwtqNNnDiejIbI6bexWENmqUSILXzllm1AgMBAAGjMzAxMA8G
+A1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECE6U2Ipjws95MAsGA1UdDwQEAwIBBjAN
+BgkqhkiG9w0BAQ0FAAOCAQEAKb7nseT6A6IPr3ZZnfhOU008BIOfoeKM9pTZtK5o
+KlZrMlMogwdyTLBOqB2BgyFnAzfRjMbBToTpNDvT9fUnto0jBVK4TDLyLtrRKn0+
+gwMq0rHjmumKg0LwLAqhUw/AK+KPGk6VuUW8S2c6vTLzraWPj8Mu6vb0e2LQbm7F
+YTETZuZnSZk7L4BPenxzigMNX/WzMigKisDh+bijJu7cG1fPdhpPU772SotXFysv
+mYaq3ozatqhs32g21mGLbsBzTrc5RfR9zknE8x35qXds7++SFRMnmUbon6mKG58p
+L6IdPtYrx+RVEDoY97N7Ty7HACLt5DHQ57jkVE/BgEUlbg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAw
+ZzELMAkGA1UEBhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdp
+dGFsIENlcnRpZmljYXRlIFNlcnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290
+IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcNMzEwNjI1MDg0NTA4WjBnMQswCQYD
+VQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2Vy
+dGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYgQ0Eg
+MjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7Bx
+UglgRCgzo3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD
+1ycfMQ4jFrclyxy0uYAyXhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPH
+oCE2G3pXKSinLr9xJZDzRINpUKTk4RtiGZQJo/PDvO/0vezbE53PnUgJUmfANykR
+HvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8LiqG12W0OfvrSdsyaGOx9/
+5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaHZa0zKcQv
+idm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHL
+OdAGalNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaC
+NYGu+HuB5ur+rPQam3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f
+46Fq9mDU5zXNysRojddxyNMkM3OxbPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCB
+UWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDixzgHcgplwLa7JSnaFp6LNYth
+7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/BAQDAgGGMB0G
+A1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED
+MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWB
+bj2ITY1x0kbBbkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6x
+XCX5145v9Ydkn+0UjrgEjihLj6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98T
+PLr+flaYC/NUn81ETm484T4VvwYmneTwkLbUwp4wLh/vx3rEUMfqe9pQy3omywC0
+Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7XwgiG/W9mR4U9s70
+WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH59yL
+Gn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm
+7JFe3VE/23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4S
+nr8PyQUQ3nqjsTzyP6WqJ3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VN
+vBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyAHmBR3NdUIR7KYndP+tiPsys6DXhyyWhB
+WkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/giuMod89a2GQ+fYWVq6nTI
+fI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuWl8PVP3wb
+I+2ksx0WckNLIOFZfsLorSa/ovc=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDHzCCAgegAwIBAgIEGZk8PzANBgkqhkiG9w0BAQUFADAiMQswCQYDVQQGEwJD
+TjETMBEGA1UEChMKQ0ZDQSBHVCBDQTAeFw0xMTA2MTMwODE1MDlaFw0yNjA2MDkw
+ODE1MDlaMCIxCzAJBgNVBAYTAkNOMRMwEQYDVQQKEwpDRkNBIEdUIENBMIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv3PGWiuMePZYt/zSF5ClK3TsgSyT
+zVLMbuQqyyShMeStMG7jmCIx1yGbn9UPNy9auziit3kmZ9YNxRcqnLlUBOENdYZu
+2MzFgGcbyIwtACaGPHp5Prapwk4gsDeXxoV2EoIK51S7i/49ruPsa1hD9qU361ii
+vZDE5fvKa8owbLd7ifYx0oz/T8KWJUOpcTUlCxjhrMijJLZxk4zxXfycEAV7/8Bb
+4LGXrR/Y/kX1wB+dW0c5HAb622aF2yQj6nvSOSD46yqyGlHzlFooAk6nXEduz/zZ
+6OZhWhYnxxUNmNno0wM1kCnfsi+NEHcjyLh60xFhavP/gZKl7EJLaE6A1wIDAQAB
+o10wWzAfBgNVHSMEGDAWgBSMdlDOJdN5Kzz0bZ2a4Z4FT+g9JTAMBgNVHRMEBTAD
+AQH/MAsGA1UdDwQEAwIBxjAdBgNVHQ4EFgQUjHZQziXTeSs89G2dmuGeBU/oPSUw
+DQYJKoZIhvcNAQEFBQADggEBAL67lljU3YmJDyzN+mNFdg05gJqN+qhFYT0hVejO
+aMcZ6cKxB8KLOy/PYYWQp1IXMjqvCgUVyMbO3Y6UJgb40GDus27UDbpa3augfFBy
+ptWQk1bXWTnb6H+zlXhTgVJSX/SSgQLB+yK50QNXp37L+8BGvBN0TCgrdpJpH8FQ
+kRHFTN4LlIwXg4yvN4e06mtvolo1QWGFL5wXwPu5DqJhBkd2vJAJmHQN0ggvveQN
+cvGmX8N8wH3qvNOrIJHLXAWMnag1+jZWuwnzhF3W8eIsntl+8YKg4bcvfu35e6AA
+uLLeHXnhgfNSWZoUXefCEfOawzp4I75OZt6kOWnymDosCgA=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFoTCCA4mgAwIBAgIBATANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTDEZ
+MBcGA1UEChMQRGlnaWRlbnRpdHkgQi5WLjEkMCIGA1UEAxMbRGlnaWRlbnRpdHkg
+TDMgUm9vdCBDQSAtIEcyMB4XDTExMDQyOTEwNDQxOVoXDTMxMTExMDEwNDQxOVow
+TjELMAkGA1UEBhMCTkwxGTAXBgNVBAoTEERpZ2lkZW50aXR5IEIuVi4xJDAiBgNV
+BAMTG0RpZ2lkZW50aXR5IEwzIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBALgRo0XeAUdWDWK4jrpYZlz6MsZrgG64f/hT337fYqjB
+V0+aRSXISkUtUzgksyCsT+qt/5oQr3/iDsq0DiQlkc52jhCpL5lTp5BLBItterlB
+G9MBeYyfQWu5kNeBEhoHltAJr+nkaiFTgLiGnmJoQ62zahX69m0DMmo1sVATSMd6
+tSETnASc2pP5aivBpxj99sB+Wfb75w4Rtdwj6hzvZwVXzhfp8Xux0TIkjM9l59S8
+NhlwfKInIdaA0i0VT0q14FWQlVGTIYDznEQf/x1VVeTiEBGUFlPQ/q/z75e6RuJ3
+W8vWolkRiKbnVUHDkmUdIxRiFH8lciD2pIcpbwf8/uDQGNKX+RSONsboDBiX8XYc
+9CTa40r5t0wSGWfz8OFT+13kwHRjXyWRCtk+9DOs5At1X87mmLxUDZ2iMcUVVF0i
+HIs6VKYN0dcjOqw+qkoXZHYtDftU5euCPDlBQ53hrnlgz2bux3GDewxrCdueok1O
+RpNot/pn4dq/35GA2qOiia1ebMxLd3Vkb40k44iIC+M/6b+n5VZiDYN/vWphyJCJ
+eFsMrxIq4pOtZOfZRS72sMirRe5wOG+7NT4W/quew2Yv874JYNVvgL1N26+N/gxg
+M2sP6J1rxDB3nyxQONCYaew36J4P5GLq+v8RRFTZ782TdZFM4YllppS5U/n5SWPF
+AgMBAAGjgYkwgYYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0OBBYEFCsjIGC9LYqIR6ytK74CObqY1OyYMEQGA1UdIAQ9MDswOQYEVR0gADAx
+MC8GCCsGAQUFBwIBFiNodHRwOi8vcGtpLmRpZ2lkZW50aXR5LmV1L3ZhbGlkYXRp
+ZTANBgkqhkiG9w0BAQsFAAOCAgEAqf3vuo8bfjISZx1BDS2mi8/y9K1WeH4KmNib
+qNG0SywmrOTSf2c3vQmN5blzETpuCcdXZAchNPgOXSrYkXzxVFG8nPAMakL0PAFO
+k0VBPazzmEsecR4zWTL/fDDwXOThvi0uterdYiEOPbQNlfzJuNm6oPdip+3DA64I
+LEHV70NxOLcUcq4/9BR0R9jejFF5zu+xVKxwR5Z+LS7dm+6hAS4Z775YYHEtrZdb
+WmAwyzKCYk5W5WdqtNIxVHI/AtC8MDmPt0MJKh8mOwzHfB2bgGCEDuku0vkVu1vg
+iqQA6eMp+yhbvTZFYCFDMf9woV9cg1uXfA23U1nsmLVO4imx1HxG4+jjQ+o6ljUf
+U/EEFiXjLPNooaaR3xX7vZ/mTp7CVGt+IlfjpJxcIiUfga+ZyN8RFUhD+LMzqSN/
+DjOPvEYdQ7Q7YPWXhRmiFrBV3BpwKWXa2X4JFzTribrpYZLY3jRjPEpVar/ahu3O
+M967U2/PHNqUT3ZUrGVVEFOayLhr3AbmuuVR1UF/H8TAQaFgkTTzE4LRoXfT90zk
+Gf/XRJqwtbzcyl6P3M7xoGk24ESSLpn6vK+zx3g6VWbHa6XkaSbpNB0fKpcK6Xep
+d1tzSDKBv//R7IPFcINpnpgbw1ffkZUcgPyN6JaDBdOfeoh7+uhX8cGEKL3N1hzM
+peJJCnM=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFkzCCA3ugAwIBAgIRAJBmYahiPWVEdwQ/cZrDlwwwDQYJKoZIhvcNAQEFBQAw
+OzELMAkGA1UEBhMCU0UxETAPBgNVBAoMCEluZXJhIEFCMRkwFwYDVQQDDBBTSVRI
+UyBSb290IENBIHYxMB4XDTEyMDMyOTA3NTQ0OVoXDTMyMDMyOTA3NTQ0OVowOzEL
+MAkGA1UEBhMCU0UxETAPBgNVBAoMCEluZXJhIEFCMRkwFwYDVQQDDBBTSVRIUyBS
+b290IENBIHYxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwO3mnqis
+qP/YNbn8+/CVTz89RyPRksnJ+PDiH4atiD/gAM9PEZVhPaXWIBnRiNLCVglFIKEq
+6iLD6rrMQmmeuIWfcMBsp75vo1zdQ4gHzcop32l6Hy2fVmobYiAhYcZQS2V1SUa/
+XNcpHsIehULhDjhNwzZxQkRROtFYzMm0qmxAx4PxxwmfSvNr8wcWNfSCjl6LhNxx
+ebn7bldFt8VwOv9CAtE0v4VwbU+P5x8ZIffVNLzuWeYuIvNxgmIZnwVkfDsicRil
+LcF4WJnRr96UQAYZdhNQhyPLR1eubMUT6pqFUsPKVyYf3hZtrXF+8thh/eY2TnEa
+ndMgNa0SIVh1NouJFqQ3KM+ggzpAo8oR77TlkBvjZZJnmG8OKeVnGNeI+o22x3ql
+oH+RHqu2+XSYdlJgL1o3majb0T7WhGpvUtO02hrHuLLRlBEfxYiJ6Vupo5Tmon1N
+pzKJod4ma83Vo/IyG9o1E4kRSU2/RjG76S0T+A4Apf4D9VZGPI8TK+Dlxx4D34rq
+RoVFhtntXgu4ZJP00FguKY1FV02JdZBlzGo7wZyAubSANQOO324qk76mvgoBRG9A
+c6oqghyEdn9p3bG7kljoQFFyXPc+OUT6pZmgf42LsEFYd60ixaDAuv0xmTVq2ckg
+Gl7zvbwIf91JLS+dkRANW6g/z7RXcztb4GcCAwEAAaOBkTCBjjAPBgNVHRMBAf8E
+BTADAQH/MEwGA1UdIARFMEMwQQYJKoVwSggBAgEBMDQwMgYIKwYBBQUHAgEWJmh0
+dHA6Ly9jcHMuc2l0aHMuc2Uvc2l0aHNyb290Y2F2MS5odG1sMA4GA1UdDwEB/wQE
+AwIBBjAdBgNVHQ4EFgQUMvmdT2npmI2g1ox9+R3Oozy6dhUwDQYJKoZIhvcNAQEF
+BQADggIBAB8/43hYyArKNCIJ2LIFi9FlnOHX130KwByYpSRSODPaZCIjgK7+PYC+
+T4/dg/YNTDNa1aM7UIpSWiYUc1GU5FKXY9u3Bqjvj63i7d6jvyDRRtsteOgsJ0Sc
+POy3F/yJl/Ojol7CWVPgz+S1ATtjUyjTr2ZLNDmvYQ4+m+6zidaToDsBxLMjVBA8
+TdeqsNrZbMowRC3dsihiikFg8kATbLB8PkHgi6Y08eeuUYcDjpl/2Wii9pwNeYKy
+n98kyGZg6LZIRCfIa1a3RIXOArfTinFcV1FXIYzqwlEPUD+AqwRNyVLd5KXyLh9t
+dbqHHZAL7hiEgHO7i5WEimENTl1in+NmDPs2DifTSPgGiAalX+5+XN2tCh09HKpA
+eZh5uFCMNo0LCjYL1T7nXYHdbNxtsW8NdJ4sL8IF8kQRsjP6gcVKbT5F1izia18u
+5EOVURuZMQXfJRtz0XucxHNJ+2Jg2Wlj3dE+ZW1H+mRMA1hQ2aa+5Spo6z+LEPHm
+uyIGKJqgpJhpbza01A0ODH3AKTG7LAMn4WenvdGLLraHxArgCQuCoeZPWJ372Phh
+4cqXxLi3UDnMMU79LRwa9kfjbOwbBeh/FzUQhNoz5zTmtaTrxCIHSvabWNgPnED7
+sYtfov2Z6qJ7WWLRXq7RSnIYK0s2OXIHmlrwYzrPG/nP3UhzWXDk
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFljCCA36gAwIBAgIQUqy+BxFJl7sfv4cbJRe/pDANBgkqhkiG9w0BAQUFADBl
+MQswCQYDVQQGEwJNTzETMBEGA1UEChMKTWFjYW8gUG9zdDFBMD8GA1UEAxM4TWFj
+YW8gUG9zdCBlU2lnblRydXN0IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+KEcwMikwHhcNMTAwMTA2MDAwMDAwWhcNMjAwMTA1MjM1OTU5WjBlMQswCQYDVQQG
+EwJNTzETMBEGA1UEChMKTWFjYW8gUG9zdDFBMD8GA1UEAxM4TWFjYW8gUG9zdCBl
+U2lnblRydXN0IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKEcwMikwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2+IendMxdI16uq5bc1yQoHaQU
+ZtegaIxenUXU1CnTswvrrRbqnVIRyaThcOXdvg4cEXfrn6NweBePuT4XU2mp6/VV
++ZWX6d85dp4fUhe0GwAS0M0846pJ0Z5BNzb1Yc0jD1ex9k3T2w1CUwKI9PCphotX
+z3IK1ZRLWto35T1HWWe+045W1Vc50Cfbn0lPqBZUv3hfzxydXqELjIMDswwUyVqp
+u//GrlnP9WUfI4kBU4rVWxedm/+YUQ9DSfeqLO3l6YY6M1Bz3FKla2OE6ROifMd3
+GvOqqQ0LTk4dRMNyO5lZ50EiOyxUXhIxlmhBGdXtdae5V1sR9pqkSS9i8wuYURuz
+M0LSzNRhGcPT3Jv7k7JizTb7jOkabhqxOSSOXdk+O4Z8iOa3JwP4lVGwv1A3/vhO
+EwEbJy2bktByV9ejmlboa6P3Vd5AXeIIH1y7UaaetN0OphpZYmeGcxCVnZXNur/Y
+nCoOi3aZk9RLsOhUPw3YivmAz0H9AXpFfH3WPU75Yk9BJXyqbVhWGwe0c6ofER88
+ulMj4O1KzZaJ3EjQTWLLkwf2oK5TF3xfXAccBUyrTGqqwg+gGWt5ecJ8s6n9PfvM
+fHHFu74lbSGn+9a+YPO1qalsdBg/qJ5CYEHyOS0dwg1z8uCxtkoaGL13aRnX0nqx
+3JY1mtgmhYO2EynC4wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
+/wQEAwIBBjAdBgNVHQ4EFgQUAoG3tmb4kkVtwnHSn+wv07ofuf8wDQYJKoZIhvcN
+AQEFBQADggIBAFhTi77PQbJPttXeSmjNZc/GQIqsS5pbY2298T9ZUELQ35rjX1aR
+s1ub2UUGQ++TG/0zdx0GVDhI8VSMOlNrO3E1CXZl6VcPQ/aRmt4Qu7pokioly2dE
+CWu/nZdmy6lFtr43mR11Jb49PGNsv6kTR8dyjMvDz/T2hwWZiReoNCDx36EnZ9On
+I++rWYM9GtgqzcKtSjAMBjogi6T42kY3Qy60iR2Ec4pgvmQxJ0LA63JhbczefHMr
+6L85Ql55keyAG6o2dk4h6IYElwkoy0fnQNQsXhpeSPqux+kE6kckm77xR57V1XrR
+XtSF8gsjBJjUK5pWckZMQZoz8JK0v0HUvZuws/H1E9avW9Ty0UHwR116vHpZ8X1g
+aJQOSk+BkiKqH8Q8vhw6OkzwcKF/u5/c0sWk8SZu4fMmqXD78YmWYhVcWaC1I/qW
+arIakj0NJEoruAj+b9/cwu6W/86/e7j5hO9BO+RNuYeRusZfyO3wy4vTD5H2IN6R
+mMbnSGTRzlMS7sQVbdyAUBsTYE95W/wanP6in6ARM5HJS206ZpYt0zj42ZmBtEQm
+f7HnnnBtHW31IgnkrBk2+ycF2Hqb2byeG9oZN9jx3RWYZBuPU/AonawUul9pz5Yj
+7lasmc06j9VeGeZiEzpf64tfFsA74dGTj1ZhNwXQeRv9qLwPedKz5tNm
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF
+MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD
+bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha
+ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM
+HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03
+UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42
+tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R
+ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM
+lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp
+/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G
+A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G
+A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj
+dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy
+MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl
+cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js
+L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL
+BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni
+acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
+o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K
+zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8
+PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y
+Johw1+qRzT65ysCQblrGXnRl11z+o+I=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF
+MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD
+bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw
+NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV
+BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn
+ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0
+3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z
+qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR
+p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8
+HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw
+ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea
+HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw
+Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh
+c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E
+RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt
+dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku
+Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp
+3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
+nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF
+CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na
+xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX
+KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGoTCCBImgAwIBAgIBATANBgkqhkiG9w0BAQ0FADCBlzELMAkGA1UEBhMCQlIx
+EzARBgNVBAoTCklDUC1CcmFzaWwxPTA7BgNVBAsTNEluc3RpdHV0byBOYWNpb25h
+bCBkZSBUZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxNDAyBgNVBAMTK0F1
+dG9yaWRhZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVpcmEgdjIwHhcNMTAw
+NjIxMTkwNDU3WhcNMjMwNjIxMTkwNDU3WjCBlzELMAkGA1UEBhMCQlIxEzARBgNV
+BAoTCklDUC1CcmFzaWwxPTA7BgNVBAsTNEluc3RpdHV0byBOYWNpb25hbCBkZSBU
+ZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxNDAyBgNVBAMTK0F1dG9yaWRh
+ZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVpcmEgdjIwggIiMA0GCSqGSIb3
+DQEBAQUAA4ICDwAwggIKAoICAQC6RqQO3edA8rWgfFKVV0X8bYTzhgHJhQOtmKvS
+8l4Fmcm7b2Jn/XdEuQMHPNIbAGLUcCxCg3lmq5lWroG8akm983QPYrfrWwdmlEIk
+nUasmkIYMPAkqFFB6quV8agrAnhptSknXpwuc8b+I6Xjps79bBtrAFTrAK1POkw8
+5wqIW9pemgtW5LVUOB3yCpNkTsNBklMgKs/8dG7U2zM4YuT+jkxYHPePKk3/xZLZ
+CVK9z3AAnWmaM2qIh0UhmRZRDTTfgr20aah8fNTd0/IVXEvFWBDqhRnLNiJYKnIM
+mpbeys8IUWG/tAUpBiuGkP7pTcMEBUfLz3bZf3Gmh3sVQOQzgHgHHaTyjptAO8ly
+UN9pvvAslh+QtdWudONltIwa6Wob+3JcxYJU6uBTB8TMEun33tcv1EgvRz8mYQSx
+Epoza7WGSxMr0IadR+1p+/yEEmb4VuUOimx2xGsaesKgWhLRI4lYAXwIWNoVjhXZ
+fn03tqRF9QOFzEf6i3lFuGZiM9MmSt4c6dR/5m0muTx9zQ8oCikPm91jq7mmRxqE
+14WkA2UGBEtSjYM0Qn8xjhEu5rNnlUB+l3pAAPkRbIM4WK0DM1umxMHFsKwNqQbw
+pmkBNLbp+JRITz6mdQnsSsU74MlesDL/n2lZzzwwbw3OJ1fsWhto/+xPb3gyPnnF
+tF2VfwIDAQABo4H1MIHyME4GA1UdIARHMEUwQwYFYEwBAQAwOjA4BggrBgEFBQcC
+ARYsaHR0cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJyL0RQQ2FjcmFpei5wZGYw
+PwYDVR0fBDgwNjA0oDKgMIYuaHR0cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJy
+L0xDUmFjcmFpenYyLmNybDAfBgNVHSMEGDAWgBQMOSA6twEfy9cofUGgx/pKrTIk
+vjAdBgNVHQ4EFgQUDDkgOrcBH8vXKH1BoMf6Sq0yJL4wDwYDVR0TAQH/BAUwAwEB
+/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIBAFmaFGkYbX0pQ3B9
+dpth33eOGnbkqdbLdqQWDEyUEsaQ0YEDxa0G2S1EvLIJdgmAOWcAGDRtBgrmtRBZ
+SLp1YPw/jh0YVXArnkuVrImrCncke2HEx5EmjkYTUTe2jCcK0w3wmisig4OzvYM1
+rZs8vHiDKTVhNvgRcTMgVGNTRQHYE1qEO9dmEyS3xEbFIthzJO4cExeWyCXoGx7P
+34VQbTzq91CeG5fep2vb1nPSz3xQwLCM5VMSeoY5rDVbZ8fq1PvRwl3qDpdzmK4p
+v+Q68wQ2UCzt3h7bhegdhAnu86aDM1tvR3lPSLX8uCYTq6qz9GER+0Vn8x0+bv4q
+SyZEGp+xouA82uDkBTp4rPuooU2/XSx3KZDNEx3vBijYtxTzW8jJnqd+MRKKeGLE
+0QW8BgJjBCsNid3kXFsygETUQuwq8/JAhzHVPuIKMgwUjdVybQvm/Y3kqPMFjXUX
+d5sKufqQkplliDJnQwWOLQsVuzXxYejZZ3ftFuXoAS1rND+Og7P36g9KHj41hJ2M
+gDQ/qZXow63EzZ7KFBYsGZ7kNou5uaNCJQc+w+XVaE+gZhyms7ZzHJAaP0C5GlZC
+cIf/by0PEf0e//eFMBUO4xcx7ieVzMnpmR6Xx21bB7UFaj3yRd+6gnkkcC6bgh9m
+qaVtJ8z2KqLRX4Vv4EadqtKlTlUO
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBk
+MQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0
+YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3Qg
+Q0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2MjUwNzM4MTRaMGQxCzAJBgNVBAYT
+AmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZp
+Y2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvEr
+jw0DzpPMLgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r
+0rk0X2s682Q2zsKwzxNoysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f
+2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJwDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVP
+ACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpHWrumnf2U5NGKpV+GY3aF
+y6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1aSgJA/MTA
+tukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL
+6yxSNLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0
+uPoTXGiTOmekl9AbmbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrAL
+acywlKinh/LTSlDcX3KwFnUey7QYYpqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velh
+k6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3qPyZ7iVNTA6z00yPhOgpD/0Q
+VAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0hBBYw
+FDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O
+BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqh
+b97iEoHF8TwuMA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4R
+fbgZPnm3qKhyN2abGu2sEzsOv2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv
+/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ82YqZh6NM4OKb3xuqFp1mrjX2lhI
+REeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLzo9v/tdhZsnPdTSpx
+srpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcsa0vv
+aGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciAT
+woCqISxxOQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99n
+Bjx8Oto0QuFmtEYE3saWmA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5W
+t6NlUe07qxS/TFED6F+KBZvuim6c779o+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N
+8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TCrvJcwhbtkj6EPnNgiLx2
+9CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX5OfNeOI5
+wSsSnqaeG8XmDtkx2Q==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFwzCCA6ugAwIBAgISESGFDLOcajL6vmcbgT+khhWPMA0GCSqGSIb3DQEBCwUA
+MF4xCzAJBgNVBAYTAkZSMQ4wDAYDVQQKEwVBTlNTSTEXMBUGA1UECxMOMDAwMiAx
+MzAwMDc2NjkxJjAkBgNVBAMTHUlHQy9BIEFDIHJhY2luZSBFdGF0IGZyYW5jYWlz
+MB4XDTExMDcwODA5MDAwMFoXDTI4MDQxNTA5MDAwMFowXjELMAkGA1UEBhMCRlIx
+DjAMBgNVBAoTBUFOU1NJMRcwFQYDVQQLEw4wMDAyIDEzMDAwNzY2OTEmMCQGA1UE
+AxMdSUdDL0EgQUMgcmFjaW5lIEV0YXQgZnJhbmNhaXMwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCqfCifETCYzW9uLIUSJjsIBspB/VJPQ73AJidxdhpZ
+ltgJ6weqJk5PPkuh45eHhWaBccm5FXZvd1AYkxAtN4hNF7fzRb0iLrcnmFvHBf29
+M+2i9VMdKCNlv0A1bs5qC8Op9SUMqyLwuMDEfTcMo2J87rTbPSE5p5yJ45uiEPiK
+tkovLphpK2qghtrxCOW+TGcWLSVh89UNCxdERwnURgWdD8CITWHkJMTHaAmvrNKv
+uZUmb4AE/HasqscjtuQGkVVE7GTbmYEc0lZ0/dYyKLvLyTcN+2lsb7qjawaMakAu
+Fzo56tAM31ocum+kMrC4zD53G9OLH4b6/z4+b1yIRufjD/qrHfN9S/hUbk7M3DJa
+Y3iiMq8zeOpD4Ux6TdeUBi3mT6VCkq8oik/DFeypa6nf4N0TArzMff8t5gepvnWW
+6kJeWxreojOzY72rBfmL5r1N0W1WmuuJPJ/AeOS+JXAGxRFzoMjKFMs61PKcKjza
+Xxcz2XYUN6pJh2XZ9NkuGV/5oM2ouUEybXGmpMv3YyLQKeS6gRpqKR2apaRcRlQk
+RdTI7Xp5heyEd25nTWQPQ956g6Sn2Nu1U0z+YsgTw2I2pSgxMpu0lofimcYfVr9G
+o6lkMeXVsUuoZsxbof8W/Ao4KmiPdyUmrZF0hWjIfxrlWhS4fQ63IzHAZLcFL0FY
+VQIDAQABo3sweTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAWBgNV
+HSAEDzANMAsGCSqBegGBXwEBAjAdBgNVHQ4EFgQUn6rTKZbfAOVD4PFjrN4SjsIn
+ePowHwYDVR0jBBgwFoAUn6rTKZbfAOVD4PFjrN4SjsInePowDQYJKoZIhvcNAQEL
+BQADggIBAHW1ddGONmacSPeFDU4Fu02anLQOKKIEvFAwu/SUTJiQhavgUmRP0tIu
+YpOQsIUNiFT7xlRsnuuVeYBeopcWH/JndEGcVfS3aptKFoa9BR9mgHB+ydH1LSFx
+UDmlrYimJhyL1yUcOtbj9MIMn1fBZMhXUSMWI40PI2pWS//6xp81k8YiwGXxr96p
+bBi+V2VZzfQjVWQh2O2VYWkzcmpR9p/llW2O3mtzJxOUXn6XSMAyFr49N+3W3I68
+XC38YqjP9pD3sYsJ6zokYw3IlkXUL3dIQvUtYucnC+ARhhndpxD3YwaRMGladfSs
++aGNl8ag7zofkyVIVjoaiCEZk8OVIEkIVUlNolOcmZxzaS6n9cq3DiXvNyNfkNhD
+fu6EF2onXn/SLT+sPq8wp42RxPSPCR3z95EO4xi63ETJfQVTA7duoPN519EaT9C4
+bIh2wYCYVYVTYc9EV0zeTg0WUfE9iYGufQutirXuVsTGzBELGNT8/Xn7/gQRnCPv
+dnLHjb65Hnh28pocrWNCx9jtbWGQwiEqDwgULSBDJXwYtbegpH25pQwZ/smrPedb
+3q/6VxknhecjDvTNDRkwPorkxhEe8LR9aWObDpaGkOD7A29bWT4dIfVXZ1Ym8ocZ
+B4S6LJA6wyikBVogzalblXU5fyJQCk5/F/ezrNMHpr4tUgowTHgQ
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGMjCCBBqgAwIBAgIQWMv5ZJZxdJVA9K0IrGTk4zANBgkqhkiG9w0BAQsFADBz
+MQswCQYDVQQGEwJJTDEYMBYGA1UECgwPUGVyc29uYWxJRCBMdGQuMR0wGwYDVQQL
+DBRDZXJ0aWZpY2F0ZSBTZXJ2aWNlczErMCkGA1UEAwwiUGVyc29uYWxJRCBUcnVz
+dHdvcnRoeSBSb290Q0EgMjAxMTAeFw0xMTA5MDEwODM1MjFaFw00MTA5MDEwODQ1
+MTZaMHMxCzAJBgNVBAYTAklMMRgwFgYDVQQKDA9QZXJzb25hbElEIEx0ZC4xHTAb
+BgNVBAsMFENlcnRpZmljYXRlIFNlcnZpY2VzMSswKQYDVQQDDCJQZXJzb25hbElE
+IFRydXN0d29ydGh5IFJvb3RDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAsJWMYP4FDmoz7feL4/LV8nzTVkJU9yvyiKX157dshwErab4FSUTY
+2yF6KteKMaEhEJ7T4m5jgoVUhE0oJhviE/dR+y/rEtU9OYxkn6QTh8PYyfopI44J
+j0lGxNTJV1hpnxfPc3Sl7soYucfBMM1POjUIU/jsGvtvMO32nwnw8NDEjjt5Ti6F
+IlzUfXDR/5K6H9RVU2e6KFgt9xOM/KULnDimRhwO6Kp4K/UKMNM7YIbIf6WbomMB
+L9DTEiWFfpbNMbHkm47qLJOkYqg31faP3yGa0z4d4VARcFSbBBedTathzo8qLO95
+5ndFWdZo1bZLmquRSw5hF7lYwp5moY+JwUMgQrB/gJxKKrd6IEHGTcSSb3p+XVu5
+o8lOyuVQZbwAAHlH8EUEsCL7DpiqYR1PYGNyj7WwBJR/EKwZPydiadYcV905Tzjq
+AJr9KJ1AJsBAncSgSchBtWc9oEuUKRKpWCdZBH+P0Yx+DLMIFzSsj7lcvelwoX7C
+pWVh6bYQUI/c5HRh8V9ye39cLy18q9ZDMRAcWXfKSEoYomQLAFlnx9TKw5saCFIV
+vtfFxrcv5mKcpsfY3vAV+645VS1vUHUu/aAHtF96fgSL9pmide3JO9U9z2dSPT7v
+H3CaGDynIAZJDLFlrDO71H9HaYj2ioHundS0xy8D6K4ayVYFZ2moyIECAwEAAaOB
+wTCBvjALBgNVHQ8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBAjAdBgNVHQ4EFgQU
+x38LyC9Xjiny9gGL6yelVo79pB4wEAYJKwYBBAGCNxUBBAMCAQAwagYDVR0gBGMw
+YTBfBggrBgEEAeEYATBTMFEGCCsGAQUFBwIBFkVodHRwOi8vd3d3LmljYS5jby5p
+bC9yZXBvc2l0b3J5L2Nwcy9QZXJzb25hbElEX1ByYWN0aWNlX1N0YXRlbWVudC5w
+ZGYwDQYJKoZIhvcNAQELBQADggIBAEJliyT6khU0Ghz6yM5Nei9739ADQRzUpOH7
+6MytCd0dpAjZqCB9l58MSfGlwubVd0aXfqSQonnpvRpeNIJmCVL8UNGP0Kscov//
+Pe7+I/i/I7PNvuH3z+TYEuOUyE7M13uwN5t36u1cgcjMj8454+RlXd6C2I8jaeFR
+r1+3T5BppJllU7rm/a94Z5RKyMN/jAJPSuaHmPY4t0j4bSh/98ZsJVT9Ltbq2gbi
+sf0HaPCvgIy0wul0FaQav7nKQ1sS54VHXlID8JHg6VBx1CECLHuGkXA2xpy2dPkq
+Vfch+2+gBl3XMBLyUfHJODaPyGZhQdnHS4JoUqP1iQwVvE4qlawxaacb4tTXSPSR
+9QN8eRY+LA1p4Yo3Hp98GFVBL1/npHKbVfPjAbACpYQSakCmq+ShrOsD2bxfJFYn
+rSDgZjVFPUcJ8AWxb3F+QLDQFV4rrFKBqPuD9SxXRIY05BRq4899mnfYbEhcy5rh
+pvu/EaIG5R9xvTS1z73EQhbFKfjUwEyKst7FlIKGm8zgqQZEMSQkTfrt4UIlZqLB
+14AX73qVZUM+ZtMF8QHkQlZEAHhrnTYg+2X/QFzoaDUf4SagggN2A8twRhEkrt8v
+YP3xJwADvUsn27yclzdRK+V4tME2kBCM/z0A1LpIn0jKhzGa7cSaU9LdcxQ/CYKh
+XWVOTSbi
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE
+BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w
+MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
+IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC
+SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1
+ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv
+UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX
+4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9
+KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/
+gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb
+rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ
+51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F
+be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe
+KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F
+v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn
+fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7
+jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz
+ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
+ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL
+e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70
+jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz
+WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V
+SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j
+pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX
+X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok
+fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R
+K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU
+ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU
+LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT
+LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIIODCCBiCgAwIBAgIQDp8XmaWxPZzL7Abro/AOaTANBgkqhkiG9w0BAQsFADCB
+pzELMAkGA1UEBhMCQ0gxOzA5BgNVBAoTMlRoZSBGZWRlcmFsIEF1dGhvcml0aWVz
+IG9mIHRoZSBTd2lzcyBDb25mZWRlcmF0aW9uMREwDwYDVQQLEwhTZXJ2aWNlczEi
+MCAGA1UECxMZQ2VydGlmaWNhdGlvbiBBdXRob3JpdGllczEkMCIGA1UEAxMbU3dp
+c3MgR292ZXJubWVudCBSb290IENBIElJMB4XDTExMDIxNjA5MDAwMFoXDTM1MDIx
+NjA4NTk1OVowgacxCzAJBgNVBAYTAkNIMTswOQYDVQQKEzJUaGUgRmVkZXJhbCBB
+dXRob3JpdGllcyBvZiB0aGUgU3dpc3MgQ29uZmVkZXJhdGlvbjERMA8GA1UECxMI
+U2VydmljZXMxIjAgBgNVBAsTGUNlcnRpZmljYXRpb24gQXV0aG9yaXRpZXMxJDAi
+BgNVBAMTG1N3aXNzIEdvdmVybm1lbnQgUm9vdCBDQSBJSTCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBAKksEu2/wCLphugcN4KDm2gFbxbjiKgBD8txnn9H
+kEvMJXfI8NdpLpFoVyGysgchM+5MpDclmEy0RjJO1vlri1GK7yw38pjV9dS0t+cA
+yu/BE16Uq267nL36a4+r+B42Vmk4ZjrQ9DMNADkCqMUcCyG3XCAMYdCtrs6OXtk6
+6d7/R3x4Vw4ccfRgHN3bmhgpr9mAo5+FhGMzke+9dO7dA3rI+uCE5tm9Tn76bk92
+0V0+qOiHRZB5862u9cJdEU0p94gTydWTcwGr3e39r3f7aU7vj1Icz/UsWmzs/oKb
+23w5q3UjfjiQT5SOLWJYnvfncvyUW3JWxZ2jrqu1tsDXdlAAPD9HiJJaYNS/Mhum
+lEANdnnpPM7ksx3HjPXohjG52CtQSoASidcsUIDmZy+2k5ytrAVSIlMgmQ69l8bh
+2nOpHYnyxFnmh+ZWKw6VAhqHxnn+mWrpdOzwEvkUKCCVljovXVe1b/+TvLYoaiyk
+KHhGYa9BJKTz+gSO8YoZopFz4nePtKf5nP9uUey9H5YT6GORXodob+vYfC4QT1AY
+kMe3dO8zwIHfM+MakytVBCx80iu3Ywz+rXu9tjqXuT0DI3RzA6YsWQBs1dXo7K9C
+zNN/cItgYOeyoLaKUkz+CpbLzzqwWAjuHELJhndCbj+0rJAAWEIcQMRuuEXIvDM2
+370nAgMBAAGjggJcMIICWDAPBgNVHRMBAf8EBTADAQH/MIGdBgNVHSAEgZUwgZIw
+gY8GCGCFdAERAxUBMIGCMEQGCCsGAQUFBwIBFjhodHRwOi8vd3d3LnBraS5hZG1p
+bi5jaC9jcHMvQ1BTXzJfMTZfNzU2XzFfMTdfM18yMV8xLnBkZjA6BggrBgEFBQcC
+AjAuGixUaGlzIGlzIHRoZSBTd2lzcyBHb3Zlcm5tZW50IFJvb3QgQ0EgSUkgQ1BT
+LjCBjwYDVR0fBIGHMIGEMIGBoH+gfYZ7bGRhcDovL2FkbWluZGlyLmFkbWluLmNo
+OjM4OS9jbj1Td2lzcyUyMEdvdmVybm1lbnQlMjBSb290JTIwQ0ElMjBJSSxvdT1D
+ZXJ0aWZpY2F0aW9uJTIwQXV0aG9yaXRpZXMsb3U9U2VydmljZXMsbz1BZG1pbixj
+PUNIMB0GA1UdDgQWBBTlhG+JaT12ABd/wau9rl/BfbrhYjAOBgNVHQ8BAf8EBAMC
+AQYwgeMGA1UdIwSB2zCB2IAU5YRviWk9dgAXf8Grva5fwX264WKhga2kgaowgacx
+CzAJBgNVBAYTAkNIMTswOQYDVQQKEzJUaGUgRmVkZXJhbCBBdXRob3JpdGllcyBv
+ZiB0aGUgU3dpc3MgQ29uZmVkZXJhdGlvbjERMA8GA1UECxMIU2VydmljZXMxIjAg
+BgNVBAsTGUNlcnRpZmljYXRpb24gQXV0aG9yaXRpZXMxJDAiBgNVBAMTG1N3aXNz
+IEdvdmVybm1lbnQgUm9vdCBDQSBJSYIQDp8XmaWxPZzL7Abro/AOaTANBgkqhkiG
+9w0BAQsFAAOCAgEAgzdXdck4UL9BBpZwwtnH17BaAM2jQE/T0vmKh5GyictdpLxv
+Tz5U9so8s8RMi8c+9NnEYt3HVZ7R+dJE5x5Pz+juKxyoAfAzB/vhOxTTz1CRXtjq
+QsZ5WIWq+9zbcMqV+fQOYgJwaUQtaE/RcOooUma3cd4l6KGnb7ChJsfXyiBk3MBz
+PBCiFB70rcE+FJA5NmOIbyjgYKWR92Lkms/StXGeXTv2mSztkToInLSEhUnj4bqm
+tmiztrZPS1xTCldsoQeS9mKeqPqK1vNrpw+yK2a9r0JHCE/o13yfhg/6WoO+LW8A
+BLV2hxav3U86lrQ0V7fi/0H/3kIcZsWF68JyH7gcTu4X8mLvCgSsm6uh8u7uokAk
+HEfeQosYtKlXs088YjIcrWxErbzVHGM4Pckzpvu8KDdERuN6YvqASDXinhuIGUyz
+Qf3ud+BZgBphHjWkQXqzwY1E6cUhWems00TKdoU2FEYKHhY0psQ0d8OCOEghAv4S
+bNrX6rDs9s0szPObCmOA0/ULfQQthA3C2Uwrl/HVVPePswrivVg8mfKvORuQ+Tvn
+t0XnWmp9wZ8UbzBXmBmgB0Pr7tEIhtdJnBIKADsPp0GxSquQs9S9CeeID54kDiv7
+YT1VmdNY5LjHffQVTWUOGHlBybvpmsFZGEQ0YtXoOHvKhRiYhnnNfbpH25U=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIINDCCBhygAwIBAgIRAP11BI16YIaTaUyqADxl0z0wDQYJKoZIhvcNAQELBQAw
+gaYxCzAJBgNVBAYTAkNIMTswOQYDVQQKEzJUaGUgRmVkZXJhbCBBdXRob3JpdGll
+cyBvZiB0aGUgU3dpc3MgQ29uZmVkZXJhdGlvbjERMA8GA1UECxMIU2VydmljZXMx
+IjAgBgNVBAsTGUNlcnRpZmljYXRpb24gQXV0aG9yaXRpZXMxIzAhBgNVBAMTGlN3
+aXNzIEdvdmVybm1lbnQgUm9vdCBDQSBJMB4XDTExMDIxNTA5MDAwMFoXDTM1MDIx
+NTA4NTk1OVowgaYxCzAJBgNVBAYTAkNIMTswOQYDVQQKEzJUaGUgRmVkZXJhbCBB
+dXRob3JpdGllcyBvZiB0aGUgU3dpc3MgQ29uZmVkZXJhdGlvbjERMA8GA1UECxMI
+U2VydmljZXMxIjAgBgNVBAsTGUNlcnRpZmljYXRpb24gQXV0aG9yaXRpZXMxIzAh
+BgNVBAMTGlN3aXNzIEdvdmVybm1lbnQgUm9vdCBDQSBJMIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEAyA5y9AEvhnsLwmOwjWjtHz3euYObXKFdug82JxEE
+rQZUILceoObOvvCZaXIZNWRmMY0svY5CCp/GyqmQLNq8hTAD2TKWlvC+oCINJGzU
+xn9aTFEkLVRyCHwz6cwox2ZlI2lrlbTrvuOH52PX5PsHrRKS6+fkCkOyqd/HkLwm
+W5H5o7eHnJS5EI2IxVhcMrwW7A5XT/6nk3iP4MU5uweIYMFUZeuHvp8xl3E8+ovI
+g2xSluCswO/LaQiVW+Dgu68npMIX8VGfhHZh2CTi/mFtZDVJ6jnEIWK9zOIC/0hr
+OK9px7mSLYIRjb0LiYUq6re0ss1L69H6qvDgTAk8Td/2MR2GMKhBiFdwLCdR3s+L
+Tj8C8lClF+BnG3IMQTEfAaKWPjzbAradlOYCTvPwGYKyCCMT65HNUdOqRsJzmJg/
+usPumvz6za9yCjcTj/mgULPq+z8svPpjVTX00ry4cdKR6+nKylzsUWaonlkFIi+j
+GttP4EViIzxdVfswlSs0os+ntEvAM8k0UZ3TsyvfxeosLMffRB+2jbn+81zNNy+w
+bJxKCL3o9db6cOVpMjdcXwvLP+SIAszKs3gvfb9IsyGwH4h5m1qKcdghhCkPSgQx
+Kr0NIUTOdJ0m00kd+Iao5RJ3xcBzDFCDapBrocr40JXZNYbHEaM7FMfLhlhWDfuD
+9wECAwEAAaOCAlkwggJVMA8GA1UdEwEB/wQFMAMBAf8wgZsGA1UdIASBkzCBkDCB
+jQYIYIV0AREDAQAwgYAwQwYIKwYBBQUHAgEWN2h0dHA6Ly93d3cucGtpLmFkbWlu
+LmNoL2Nwcy9DUFNfMl8xNl83NTZfMV8xN18zXzFfMC5wZGYwOQYIKwYBBQUHAgIw
+LRorVGhpcyBpcyB0aGUgU3dpc3MgR292ZXJubWVudCBSb290IENBIEkgQ1BTLjCB
+jgYDVR0fBIGGMIGDMIGAoH6gfIZ6bGRhcDovL2FkbWluZGlyLmFkbWluLmNoOjM4
+OS9jbj1Td2lzcyUyMEdvdmVybm1lbnQlMjBSb290JTIwQ0ElMjBJLG91PUNlcnRp
+ZmljYXRpb24lMjBBdXRob3JpdGllcyxvdT1TZXJ2aWNlcyxvPUFkbWluLGM9Q0gw
+HQYDVR0OBBYEFLUbg7s7T7LS++UDjtRhXdEajrCiMA4GA1UdDwEB/wQEAwIBBjCB
+4wYDVR0jBIHbMIHYgBS1G4O7O0+y0vvlA47UYV3RGo6woqGBrKSBqTCBpjELMAkG
+A1UEBhMCQ0gxOzA5BgNVBAoTMlRoZSBGZWRlcmFsIEF1dGhvcml0aWVzIG9mIHRo
+ZSBTd2lzcyBDb25mZWRlcmF0aW9uMREwDwYDVQQLEwhTZXJ2aWNlczEiMCAGA1UE
+CxMZQ2VydGlmaWNhdGlvbiBBdXRob3JpdGllczEjMCEGA1UEAxMaU3dpc3MgR292
+ZXJubWVudCBSb290IENBIEmCEQD9dQSNemCGk2lMqgA8ZdM9MA0GCSqGSIb3DQEB
+CwUAA4ICAQAl2t94sCbcn5nrM5zJRbpcY1KNbgNzqnRIxQ0L0hcMLAvSxiWD1FTN
+B4FUL2d2Jafp13+WR3ekHZtF//HY9p5HDnSME8TyvtYHKBg8mHXB2+uSiCbmBmSO
++dL94pk1gdHYdRe1c+rd6BgilRYZClkqItyGWkNPJWg2qdiTAI9excNhhvDSFAmV
+UcR+2FLusI2KiHGl1yin9NwGWCVexFUYCJV0fLgB507Y1vZ8IENIDaPg3lTEqF8A
+SUPTRTuCZW7ui6MBIlaa8c4p5QzEa+3nTvixVYGtcf+E+whX5kfKrYf4Rvj68DWE
+7bTYiJcid6SPFsg8Z9HhbgSse482zd6lCKwqjfWnHZ/Hw5EhQqOGgbkq2LHpOB1U
+CJg5ChHKMg4zzfRM6qhKBukYPkHGz6D24CtrII6nIALrMEGBsOjkrqQYiSvfFPAS
+KW14+k1E+7I05a/zjjX3w84sCxi00HmPE78Di2a4tWHUrA79eD0JrbXSLE9WQZmI
+RAx+Z+Nkn/paKlh3UWmxzSyapzQQBXT6bkVjy4tSrUeRohLIoiYExdAiHgOzspI3
+VFf9iYN1A20tO7PxpKIQfJyTjaNQhDmLlVlB9gJ2Boq8DpDn2TrrrSZeV1PRb8h1
+4KuRe2uhf/kbUKjc/k0G4RWKpBDrHgbPVEgVlii2Ix8a43ylj/o3Vw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDkDCCAnigAwIBAgIQHKAtwVI7am2LXB+VSu2sMDANBgkqhkiG9w0BAQUFADBi
+MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
+MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp
+dHkwHhcNMTEwMTAxMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV
+UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO
+ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz
+c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP
+OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl
+mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF
+BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4
+qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjQjBA
+MB0GA1UdDgQWBBQhMMn7ANdOmNqHqirQpy6xQDGnTDAOBgNVHQ8BAf8EBAMCAQYw
+DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAwomEoOiMZv3/EwUb
+wzqOmEmK+KoAXCb9cmqjfhIblK5U+CGPp5NP9xbvubmzMsAlITFmNywJsP4ysDfs
+PLjOjwiqCJAHXHXV4U4sywIk6aJe6fV4NSIGHPIfiLHhXMyWVPpvScyN8VYD7c8s
+nyfe5cqDRL5GQPlXLtJ/MS3Og9z+cGuE0KOf/5fQqNcC7LEs8O9zOD2ZrMRPAb/V
+aurGLjIpFwrL5mme0Uq19t+OGfiV6UWpDs1tQVkgnnPGbHEcnNRNMKhzCaAV86BF
+JsNb/bu52C3XH/UFMBn2rg+OYo/fyE+G2R1hFrPJ8Lv7x/WvASJH7NjazxzzU2a6
+UwkB+Q==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID0DCCArigAwIBAgIQIKTEf93f4cdTYwcTiHdgEjANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMTAxMDEwMDAw
+MDBaFw0zMDEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
+UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
+2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
+Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
+nKVIrLsm9wIDAQABo0IwQDAdBgNVHQ4EFgQUC1jli8ZMFTekQKkwqSG+RzZaVv8w
+DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
+ggEBAC/JxBwHO89hAgCx2SFRdXIDMLDEFh9sAIsQrK/xR9SuEDwMGvjUk2ysEDd8
+t6aDZK3N3w6HM503sMZ7OHKx8xoOo/lVem0DZgMXlUrxsXrfViEGQo+x06iF3u6X
+HWLrp+cxEmbDD6ZLLkGC9/3JG6gbr+48zuOcrigHoSybJMIPIyaDMouGDx8rEkYl
+Fo92kANr3ryqImhrjKGsKxE5pttwwn1y6TPn/CbxdFqR5p2ErPioBhlG5qfpqjQi
+pKGfeq23sqSaM4hxAjwu1nqyH6LKwN0vEJT9s4yEIHlG1QXUEOTS22RPuFvuG8Ug
+R1uUq27UlTMdphVx8fiUylQ5PsE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDZDCCAkygAwIBAgICC7gwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCTFUx
+FjAUBgNVBAoTDUx1eFRydXN0IHMuYS4xHTAbBgNVBAMTFEx1eFRydXN0IEdsb2Jh
+bCBSb290MB4XDTExMDMxNzA5NTEzN1oXDTIxMDMxNzA5NTEzN1owRDELMAkGA1UE
+BhMCTFUxFjAUBgNVBAoTDUx1eFRydXN0IHMuYS4xHTAbBgNVBAMTFEx1eFRydXN0
+IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsn+n
+QPAiygz267Hxyw6VV0B1r6A/Ps7sqjJX5hmxZ0OYWmt8s7j6eJyqpoSyYBuAQc5j
+zR8XCJmk9e8+EsdMsFeaXHhAePxFjdqRZ9w6Ubltc+a3OY52OrQfBfVpVfmTz3iI
+Sr6qm9d7R1tGBEyCFqY19vx039a0r9jitScRdFmiwmYsaArhmIiIPIoFdRTjuK7z
+CISbasE/MRivJ6VLm6T9eTHemD0OYcqHmMH4ijCc+j4z1aXEAwfh95Z0GAAnOCfR
+K6qq4UFFi2/xJcLcopeVx0IUM115hCNq52XAV6DYXaljAeew5Ivo+MVjuOVsdJA9
+x3f8K7p56aTGEnin/wIDAQABo2AwXjAMBgNVHRMEBTADAQH/MA4GA1UdDwEB/wQE
+AwIBBjAfBgNVHSMEGDAWgBQXFYWJCS8kh28/HRvk8pZ5g0gTzjAdBgNVHQ4EFgQU
+FxWFiQkvJIdvPx0b5PKWeYNIE84wDQYJKoZIhvcNAQELBQADggEBAFrwHNDUUM9B
+fua4nX3DcNBeNv9ujnov3kgR1TQuPLdFwlQlp+HBHjeDtpSutkVIA+qVvuucarQ3
+XB8u02uCgUNbCj8RVWOs+nwIAjegPDkEM/6XMshS5dklTbDG7mgfcKpzzlcD3H0K
+DTPy0lrfCmw7zBFRlxqkIaKFNQLXgCLShLL4wKpov9XrqsMLq6F8K/f1O4fhVFfs
+BSTveUJO84ton+Ruy4KZycwq3FPCH3CDqyEPVrRI/98HIrOM+R2mBN8tAza53W/+
+MYhm/2xtRDSvCHc+JtJy9LtHVpM8mGPhM7uZI5K1g3noHZ9nrWLWidb2/CfeMifL
+hNp3hSGhEiE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIJSTCCBzGgAwIBAgIGBQtBXoJ7MA0GCSqGSIb3DQEBBQUAMIHiMRYwFAYDVQQD
+Ew1BQzEgUkFJWiBNVElOMRIwEAYDVQQFEwlTMjgxOTAwMUUxNTAzBgNVBAsTLFBS
+RVNUQURPUiBERSBTRVJWSUNJT1MgREUgQ0VSVElGSUNBQ0lPTiBNVElOMTEwLwYD
+VQQLEyhTVUJESVJFQ0NJT04gR0VORVJBTCBERSBQUk9DRVNPIERFIERBVE9TMSww
+KgYDVQQKEyNNSU5JU1RFUklPIERFIFRSQUJBSk8gRSBJTk1JR1JBQ0lPTjEPMA0G
+A1UEBxMGTUFEUklEMQswCQYDVQQGEwJFUzAeFw0wOTExMDUxNjE3NDVaFw0xOTEx
+MDMxNjE3NDVaMIHiMRYwFAYDVQQDEw1BQzEgUkFJWiBNVElOMRIwEAYDVQQFEwlT
+MjgxOTAwMUUxNTAzBgNVBAsTLFBSRVNUQURPUiBERSBTRVJWSUNJT1MgREUgQ0VS
+VElGSUNBQ0lPTiBNVElOMTEwLwYDVQQLEyhTVUJESVJFQ0NJT04gR0VORVJBTCBE
+RSBQUk9DRVNPIERFIERBVE9TMSwwKgYDVQQKEyNNSU5JU1RFUklPIERFIFRSQUJB
+Sk8gRSBJTk1JR1JBQ0lPTjEPMA0GA1UEBxMGTUFEUklEMQswCQYDVQQGEwJFUzCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANzNzbG/3iX1/xwzc5k8G6Ft
+9aDEfZs4Zo0J3wNsVzW0E0H+41/mIgRYGLlOaTMEP5XH2U7/MzSnMkAyk1f+ga8l
+Q1wd/XtXC2IIZ2ditOPlWCWA5qqGYkDnTxBhKUkmq018oatbYTGBBmpklE0n+Ese
+0dVD4texbfb2/7RwVfYImbd0AeDznrV85ASICFBZeB8alNvvyMmJ0ze48z2G0RnL
+g1oQBwhPmXQCB/AyUcj75tA8JnZ9cn6sdjfBinUgXEDchD/QSXxNZ6457+TOgOHK
+neYtqy7mEpXa+fvf4+KMPYf7RW5Eq/Z4kicUoV1rT3B7V3Pv+V2oD3Wf7xFgGYSw
+ZEDu2KmG+qXXRfQRb/GGyDRbiEjOut3Nm92I4wE26Kxq6BILsOB7kB6FC0mJAfb/
+gt9YZSKDSNYH0Bxm/GYoOsTD5fiZZSdSWPNr8W8CRIR10KTjaFNhcu/2L6mzrPX0
+9tBc3GlMzHnSpBvIcwY0dLTxasopKMc0hFsj2LoAjMwJwcdvXQSrt08md6k1zyDW
+s/8xadA0+yXsaJYKot2DH8o8j3Q2JVTv9Rh7wiQx0fuCBK4Egtb1Ailx4ZJxdI7b
+qnEdxDvGYiZshjwjVesp0R+ryh5j57NztKe4Kjr2H/uHZYj885/+v+vVHbaoA+ll
+gxmM4BjtF9gcDT2cilh/AgMBAAGjggMBMIIC/TA3BggrBgEFBQcBAQQrMCkwJwYI
+KwYBBQUHMAGGG2h0dHA6Ly9jYS5tdGluLmVzL210aW4vb2NzcDAOBgNVHQ8BAf8E
+BAMCAQYwGwYDVR0RBBQwEoEQYWRtaW5fY2FAbXRpbi5lczAbBgNVHRIEFDASgRBh
+ZG1pbl9jYUBtdGluLmVzMA8GA1UdEwEB/wQFMAMBAf8wcgYDVR0fBGswaTAyoDCg
+LoYsaHR0cDovL2NhLm10aW4uZXMvbXRpbi9jcmwvTVRJTkF1dG9yaWRhZFJhaXow
+M6AxoC+GLWh0dHA6Ly9jYTIubXRpbi5lcy9tdGluL2NybC9NVElOQXV0b3JpZGFk
+UmFpejCBuQYDVR0gBIGxMIGuMIGrBgsrBgEEAYHZBQIEATCBmzAwBggrBgEFBQcC
+ARYkaHR0cDovL2NhLm10aW4uZXMvbXRpbi9EUEN5UG9saXRpY2FzMGcGCCsGAQUF
+BwICMFsaWUNlcnRpZmljYWRvIHJh7XouIENvbnN1bHRlIGxhcyBjb25kaWNpb25l
+cyBkZSB1c28gZW4gaHR0cDovL2NhLm10aW4uZXMvbXRpbi9EUEN5UG9saXRpY2Fz
+MB0GA1UdDgQWBBQzQxizxEsdyx/58E7830rkFWDIgzCCARYGA1UdIwSCAQ0wggEJ
+gBQzQxizxEsdyx/58E7830rkFWDIg6GB6KSB5TCB4jEWMBQGA1UEAxMNQUMxIFJB
+SVogTVRJTjESMBAGA1UEBRMJUzI4MTkwMDFFMTUwMwYDVQQLEyxQUkVTVEFET1Ig
+REUgU0VSVklDSU9TIERFIENFUlRJRklDQUNJT04gTVRJTjExMC8GA1UECxMoU1VC
+RElSRUNDSU9OIEdFTkVSQUwgREUgUFJPQ0VTTyBERSBEQVRPUzEsMCoGA1UEChMj
+TUlOSVNURVJJTyBERSBUUkFCQUpPIEUgSU5NSUdSQUNJT04xDzANBgNVBAcTBk1B
+RFJJRDELMAkGA1UEBhMCRVOCBgULQV6CezANBgkqhkiG9w0BAQUFAAOCAgEAmeOq
+DpHTkqnq/0Rn06AtIGfzEA8aN3ddUkbmarj3iPOCwyr0YQ0sny+GLWHpYFm9t0+v
+kwkc+TN3QJyhfGXcXpCVqfS+gvT8gh0exT3gXK7eLdVjdqvx7CSnIPge6M9xggPd
+jnZiKrUpiBMkrVz0oEq46hOKVo1qL2g5coZYxKSrdXxE5xqEDI0R3Bm5HDbu8/9R
+m7NDyCV+5w5Io+RPBi0VHqCmR5BXO/gvLdsjuusjk7C4UhtgHNQZsG14j0udpwso
+Z0rdeEi9sT6Y1LsV/rNfbR11yB7PD65KGl2HLAZ0bAqFUyReesmgfHGbkl1vSH+2
+WHGyTKYaCSM0UHEVa0fb+74abcKMlC8HZyAiZ2O3q8YZnJYNYuoIpBpw76m5707F
+QLzih1fzA8oomRrAVWB1e2O+ZD+WTkuP/S2mdMDfSTrsVX5m07r975OxY/JbP+12
+odnTDP4ubwqmU0vv0fNHrbke7EwfvtCDU8ObFUX/LgfR2mqSReZsV1skLlFpyTDP
+1/ukATVazafrFG+0t2AiCMVxyJPiviVf9Qz6WFE9e8gvN/mTHCoJ4Gf9lolCyus2
+sNYbplAPWp12/6RPxuwNxOHQ51g+1nnAd00M1bPkmE3dRi5SsOIPDUI2pRAkUii+
+YjVCOcl6lh/u5ktZPyRzi78iS2by2w818TedoCQ=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF7TCCA9WgAwIBAgIQP4vItfyfspZDtWnWbELhRDANBgkqhkiG9w0BAQsFADCB
+iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
+ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMp
+TWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEw
+MzIyMjIwNTI4WhcNMzYwMzIyMjIxMzA0WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
+BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
+c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm
+aWNhdGUgQXV0aG9yaXR5IDIwMTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCygEGqNThNE3IyaCJNuLLx/9VSvGzH9dJKjDbu0cJcfoyKrq8TKG/Ac+M6
+ztAlqFo6be+ouFmrEyNozQwph9FvgFyPRH9dkAFSWKxRxV8qh9zc2AodwQO5e7BW
+6KPeZGHCnvjzfLnsDbVU/ky2ZU+I8JxImQxCCwl8MVkXeQZ4KI2JOkwDJb5xalwL
+54RgpJki49KvhKSn+9GY7Qyp3pSJ4Q6g3MDOmT3qCFK7VnnkH4S6Hri0xElcTzFL
+h93dBWcmmYDgcRGjuKVB4qRTufcyKYMME782XgSzS0NHL2vikR7TmE/dQgfI6B0S
+/Jmpaz6SfsjWaTr8ZL22CZ3K/QwLopt3YEsDlKQwaRLWQi3BQUzK3Kr9j1uDRprZ
+/LHR47PJf0h6zSTwQY9cdNCssBAgBkm3xy0hyFfj0IbzA2j70M5xwYmZSmQBbP3s
+MJHPQTySx+W6hh1hhMdfgzlirrSSL0fzC/hV66AfWdC7dJse0Hbm8ukG1xDo+mTe
+acY1logC8Ea4PyeZb8txiSk190gWAjWP1Xl8TQLPX+uKg09FcYj5qQ1OcunCnAfP
+SRtOBA5jUYxe2ADBVSy2xuDCZU7JNDn1nLPEfuhhbhNfFcRf2X7tHc7uROzLLoax
+7Dj2cO2rXBPB2Q8Nx4CyVe0096yb5MPa50c8prWPMd/FS6/r8QIDAQABo1EwTzAL
+BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUci06AjGQQ7kU
+BU7h6qfHMdEjiTQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQELBQADggIB
+AH9yzw+3xRXbm8BJyiZb/p4T5tPw0tuXX/JLP02zrhmu7deXoKzvqTqjwkGw5biR
+nhOBJAPmCf0/V0A5ISRW0RAvS0CpNoZLtFNXmvvxfomPEf4YbFGq6O0JlbXlccmh
+6Yd1phV/yX43VF50k8XDZ8wNT2uoFwxtCJJ+i92Bqi1wIcM9BhS7vyRep4TXPw8h
+Ir1LAAbblxzYXtTFC1yHblCk6MM4pPvLLMWSZpuFXst6bJN8gClYW1e1QGm6CHmm
+ZGIVnYeWRbVmIyADixxzoNOieTPgUFmG2y/lAiXqcyqfABTINseSO+lOAOzYVgm5
+M0kS0lQLAausR7aRKX1MtHWAUgHoyoL2n8ysnI8X6i8msKtyrAv+nlEex0NVZ09R
+s1fWtuzuUrc66U7h14GIvE+OdbtLqPA1qibUZ2dJsnBMO5PcHd94kIZysjik0dyS
+TclY6ysSXNQ7roxrsIPlAT/4CTL2kzU0Iq/dNw13CYArzUgA8YyZGUcFAenRv9FO
+0OYoQzeZpApKCNmacXPSqs0xE2N2oTdvkjgefRI8ZjLny23h/FKJ3crWZgWalmG+
+oijHHKOnNlA8OqTfSm7mhzvO6/DggTedEzxSjr25HTTGHdUKaj2YKXCMiSrRq4IQ
+SB/c9O+lxbtVGjhjhE63bK2VVOxlIhBJF7jAHscPrFRH
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgICJ44wDQYJKoZIhvcNAQELBQAwOjELMAkGA1UEBhMCSU4x
+EjAQBgNVBAoTCUluZGlhIFBLSTEXMBUGA1UEAxMOQ0NBIEluZGlhIDIwMTEwHhcN
+MTEwMzExMDY0ODUyWhcNMTYwMzExMDY0ODUyWjA6MQswCQYDVQQGEwJJTjESMBAG
+A1UEChMJSW5kaWEgUEtJMRcwFQYDVQQDEw5DQ0EgSW5kaWEgMjAxMTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAIcKHg65oKggmBq4ehX2R/G/0sYn5BJq
+lgRndc2MxuP03crVxBw17k3p5CLUlzjXrGNpSMB8eWK/xyJJW0bB8RgUThgdLKVa
+kriFFa8XVhOOnxYOIpaBhHkjQuxP3q/2v4lPAF7m1wjSlZSaEywEEYPvkY8IVax6
+VkSbxfTUF+vkd02U4UFYEemiqgmGLSYhIPXAzMMVzEwJu93c9VIDeWCPPHk6JTQj
+h0h18kFwTRowCIZ1zlgZqNcVfiPy50m+//5XUnhC8yZ33Xr3YuXLXZYzlJO7xBoW
+rwhX65zl9yN0jekdC7GKlHOZEZHFaKDxig2BrbRRaG5JhgAGUk4pQ+cCAwEAAaMz
+MDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQITQeoY/LbHN8wCwYDVR0PBAQD
+AgEGMA0GCSqGSIb3DQEBCwUAA4IBAQBuFNog8khrZP8qdM1WtcU5D35hHzVZGx0o
+bSN0nXi/q62JALlwhfXoFD7k7J+WZFzSsSIgowic6AxLaCiOVQW/PuBO2tic0G4g
+7P56O8I2R5fYKwizrsLR5gg/Sug6P1b14OU/8mm2eRLg8Dm3GOzS6YQOGDgWikk7
+b1fVOTu/E/DAp83yPR5skad3Y7yr2VY4D0q5GcArjPuXH8an7IbO043j0ft10fH3
+pmPEz+ixpJJFaPLojLGtfi0g+7ilVO3KDY8yHWimMW6wyJ7V+r8Gm28pfXoDSb8r
+e1mTFMXqy/FMKYIOKe6KVHw8zVWCJXIOcU4leE3TTllAys7zmdGi
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE
+AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG
+EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM
+FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC
+REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp
+Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM
+VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+
+SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ
+4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L
+cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi
+eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV
+HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG
+A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3
+DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j
+vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP
+DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc
+maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D
+lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv
+KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHEjCCBPqgAwIBAgIQCb1WBSoTFvRoT3QOqX0cSDANBgkqhkiG9w0BAQsFADB8
+MQswCQYDVQQGEwJFUzFBMD8GA1UEChM4QWdlbmNpYSBOb3RhcmlhbCBkZSBDZXJ0
+aWZpY2FjaW9uIFMuTC5VLiAtIENJRiBCODMzOTU5ODgxKjAoBgNVBAMTIUFOQ0VS
+VCBDZXJ0aWZpY2Fkb3MgTm90YXJpYWxlcyBWMjAeFw0xMDA1MjUxNjU2MTRaFw0z
+MDA1MjUxNjU2MTRaMHwxCzAJBgNVBAYTAkVTMUEwPwYDVQQKEzhBZ2VuY2lhIE5v
+dGFyaWFsIGRlIENlcnRpZmljYWNpb24gUy5MLlUuIC0gQ0lGIEI4MzM5NTk4ODEq
+MCgGA1UEAxMhQU5DRVJUIENlcnRpZmljYWRvcyBOb3RhcmlhbGVzIFYyMIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsua5xh1qKi1Jxfz81GRA0OAULveg
+wv+S80GmtD/avhkUkZR20xXMXn94UHrb2sVFqsscI3lzkKi7ZwFzjs5A+Rqpqofk
+k5IPXGhcXvAGYCtY3DxtPMd6MGsFqpKGcyrS8hqIxNvlWmaOdclCP5uIKEAe9alc
+HvrIQaEwqwuc7haiwS2lhfrtoAzof5ZKe72PmqIYdtKv3bc9EKtSEIiuHeu4MnSW
+9LeqJ/elBw3jlFdqVCB3zR28eS3knLTeUYj+VtY9i6HP+lIejAVzd9YFz2MAUYdh
+41C+mZfh/B4ReWtOas+chQoclirAIDYUxQkXYjv0rerV1/3QOSp409Ciz8hzMAlH
+xU4Z/bgw1A+AmIiGwUxBeiPFQ/1eErg+D7G3gWIMfm/je5rCwkcRIR/PntEwzoPB
+EE1Ad9e1wksyQEL6m7Csz+sh2BnrZMVr3VUtgIdEfEw8qw3YEr80goyxqsS4a+gO
+RnfSiwYdQvusvcnnM7Mib37VLgPFXwUWhnzt457RFncaRtjJ0IzkXFwhBZHxZOSs
+xTeutb1nE64p5bNCxHAJo11M6zcg4/D1czM7wvyOUYU2KsuB2w6JI9ni4Wi6LER3
+PhxAuvBnjhiH8D3X6T9HWzVCzacEzkhyKQUatNGi5w15ipZtZ1ItOyPm+YKc1rN5
+XhTeZUgz/B1C6C0CAwEAAaOCAY4wggGKMA8GA1UdEwEB/wQFMAMBAf8wggElBgNV
+HSAEggEcMIIBGDCCARQGCSsGAQQBgZNoATCCAQUwJQYIKwYBBQUHAgEWGWh0dHA6
+Ly93d3cuYW5jZXJ0LmNvbS9jcHMwgdsGCCsGAQUFBwICMIHOMA0WBkFOQ0VSVDAD
+AgEBHoG8AEEAZwBlAG4AYwBpAGEAIABOAG8AdABhAHIAaQBhAGwAIABkAGUAIABD
+AGUAcgB0AGkAZgBpAGMAYQBjAGkAbwBuAC4AIABQAGEAcwBlAG8AIABkAGUAbACg
+AEcAZQBuAGUAcgBhAGwAIABNAGEAcgB0AGkAbgBlAHoAIABDAGEAbQBwAG8AcwAg
+ADQANgAgADYAYQAgAHAAbABhAG4AdABhACAAMgA4ADAAMQAwACAATQBhAGQAcgBp
+AGQwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBT2Ejqre1jBjUNvdoHS8rjT7xfq
+CzAfBgNVHSMEGDAWgBT2Ejqre1jBjUNvdoHS8rjT7xfqCzANBgkqhkiG9w0BAQsF
+AAOCAgEAVDXTomXJ2TbFU9G0jXI0ibqnCJ/pNRC5uAwG+WSqlZYoqMijgNxWwL9y
+TVa/f10E1a0oW02988MPFbBx2laNQFVXpn1ioq0TaVGqlFC6vQAwUPXdpE4JepQx
+a9tzA73z2hoPjC+yyTe8VNULIzf15Fs3ZolPtMcFpGXcWTCmEyt+Fe3sEBeJUsmd
+36JM7fYPHqZJsA1RszGxUZnLtNEjeNJLqLQdFqag0D4HfmU/Jc5kThsuS02ChRpl
+2+7iA/BZJAWPme95gt/uKjdow2pQAVlfn2jcLFFgK13gUjw7cLgA0zeoPlsedgha
+1Lt2MK75yPKOpI8KdX0amOG/0DaULzzBUtNp6hpgN4yA201txppdjaBhUbs9DeYS
+oJ9vWVZ0MmcK/DcGwTrkK46EH9ohDEmIQ9Ol9YINdobDLMyQu7O4q8bLrsAXUZ7T
+gPck2hzszhKDzk42MDl1+HR2kIKePkBMDBS5Gh5IarAx6oh/gEFAU3s4S4eQYHpL
+zmdGaHV3jgBdILDkkzdtA99YOeiaxaTr7GEzCIUka08G6a2QpTZibOPdfQkfM7+3
+u/fJdQX3W6v6h1mvGmcQfoTcjHDWROkQwdibLtHGQGrq5loPEH1s+1WHuk21cQOe
+F4942lU9V14iCmqY8I0Izd2WQlobzbpvJ7h0J6g/5aDWc8deLyE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHBDCCBOygAwIBAgIQDziMcP6mlV3pXZyHr3kEmTANBgkqhkiG9w0BAQsFADB1
+MQswCQYDVQQGEwJFUzFBMD8GA1UEChM4QWdlbmNpYSBOb3RhcmlhbCBkZSBDZXJ0
+aWZpY2FjaW9uIFMuTC5VLiAtIENJRiBCODMzOTU5ODgxIzAhBgNVBAMTGkFOQ0VS
+VCBDZXJ0aWZpY2Fkb3MgQ0dOIFYyMB4XDTEwMDUyNTE2MzEyMloXDTMwMDUyNTE2
+MzEyM1owdTELMAkGA1UEBhMCRVMxQTA/BgNVBAoTOEFnZW5jaWEgTm90YXJpYWwg
+ZGUgQ2VydGlmaWNhY2lvbiBTLkwuVS4gLSBDSUYgQjgzMzk1OTg4MSMwIQYDVQQD
+ExpBTkNFUlQgQ2VydGlmaWNhZG9zIENHTiBWMjCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAJ1ScOknGIPK6sSZ2KbhLhSvbh4OZMqBN1UnHBd3WGcfjMn5
+wopiZSh0m+LRvlUHdnbufG1OY1seSiV14Aeh0NKCp84PM+u6FMBlskou5WW8ItKv
+Gg7Ky/NkZSssmaOXi4t1MP5m+sFPSzdQjD/z3pl6ToecIEZyl/5WG2ZOoIJTo1zY
+KEYMBRdvONZcnw4lIsGG41waVNuunWV9AJLfqCEhxVsQJnThsXNXZHx9FwMM6vcU
+lw/5xe5ddbDFxgoLtD5J4xnGm0ST/FoVZAqyg/+AXogJ0Mogo1v7283hGncjGHAa
+i+1EP9YaqDY44Z0vp3fEerPAcrJyzR4/EF4aiHSN8BLF969J3JWvK020kMr57u8M
+478WNyNT4yn69HRpaD1XbRRgimRpKGRN+jZH/bgSzsOGqlzcZjkHTzvj48Vors7g
+OVwggz8SCjizAMFcE5ciXjpLNZn4xB7e+YgRjoTJizLy0te/Igc/YHgudRyiuiMS
+0/BPUDnsyXcnx1oqjtO5tXQEmRUvLoZfjwbByuriqB9NfTOEkaSSw9CmSF1mGneE
+IFCc6gQLDCOWz7Gc/Lm6H5eo06sDZS99rlTHeeIcNt1t0gaYAf3O/D9Lw9Ku/4nY
+OTED2LFkdwPG+KON/Cp55xC9uW2RHD6dy7xVfyL+YYT42NSnIXo5XnIy60x1AgMB
+AAGjggGOMIIBijAPBgNVHRMBAf8EBTADAQH/MIIBJQYDVR0gBIIBHDCCARgwggEU
+BgkrBgEEAYGTaAQwggEFMCUGCCsGAQUFBwIBFhlodHRwOi8vd3d3LmFuY2VydC5j
+b20vY3BzMIHbBggrBgEFBQcCAjCBzjANFgZBTkNFUlQwAwIBAR6BvABBAGcAZQBu
+AGMAaQBhACAATgBvAHQAYQByAGkAYQBsACAAZABlACAAQwBlAHIAdABpAGYAaQBj
+AGEAYwBpAG8AbgAuACAAUABhAHMAZQBvACAAZABlAGwAoABHAGUAbgBlAHIAYQBs
+ACAATQBhAHIAdABpAG4AZQB6ACAAQwBhAG0AcABvAHMAIAA0ADYAIAA2AGEAIABw
+AGwAYQBuAHQAYQAgADIAOAAwADEAMAAgAE0AYQBkAHIAaQBkMA4GA1UdDwEB/wQE
+AwIBhjAdBgNVHQ4EFgQUBW7hoZruB6/O9bTTZT0EUOLQm0QwHwYDVR0jBBgwFoAU
+BW7hoZruB6/O9bTTZT0EUOLQm0QwDQYJKoZIhvcNAQELBQADggIBAH9UQBkkykwT
+9hP5XGKVMNW44JOAbNQVRtQnPpJSqtyBY4ZA29Ulr5+TbAr1TaH+VJZdh68Rkw+L
+8uPwH0qf/KnRyVB3X5gICC16i4EQzDsCVFjlxqf098ro9jcGfucR12yFY/eoow7i
+JWIEpPJiU5xHtKdku4Hl1l5WEb5FEWHCZun0DXSoq/lbv4KykaZQ+4d+b7vI6wWi
+uRDXG0IHVc+J5r/7ufBqOVdTcIy9S6Npvx+LplxNZYq5AAnoaL8JJwdNXtpSCYzl
+cZOKzIWO0jdeU9yCbQtWSoR5CvQQJUT1b10aZrXN1RBLh1pO1H/kcazuaJ+8+i5Y
+wcSef6RZheBSDvLHR3UVLSx2jA9FBTVg+Hs7dzJ/KIAJ2jG8cX3hrJHNYAp5IOxu
+O7eE4HLzqUrQL+Rb49Ia1Eq89Xb5fyoZSOvdDs+ZVkW4fdYJjg7Os4RoSYRUNUvk
+mRuv86gU81SYCoB+T7zyZi0m/zCNp/a925qP5eHfu7cyDvmSb2nj5HbTADbxLV7H
+E1/V2Wot6NEba3bLGG4OBRD1WvJJG1m0herKGXTMu1LiN4zCagIlwtJxpJLbjsnW
+qW7QhShtXG0IeAKweQxXbwtaAeOEhAL2z/KrY+sCarnLShjVOSI8VkqqlYjmMAAf
+jSEhyVfuubdEKYhPtiunFO6O7m++FtAT
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1
+MQswCQYDVQQGEwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1
+czEoMCYGA1UEAwwfRUUgQ2VydGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYG
+CSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIwMTAxMDMwMTAxMDMwWhgPMjAzMDEy
+MTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNl
+ZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRyZSBS
+b290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUy
+euuOF0+W2Ap7kaJjbMeMTC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvO
+bntl8jixwKIy72KyaOBhU8E2lf/slLo2rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIw
+WFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw93X2PaRka9ZP585ArQ/d
+MtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtNP2MbRMNE
+1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYD
+VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/
+zQas8fElyalL1BSZMEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYB
+BQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEF
+BQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+RjxY6hUFaTlrg4wCQiZrxTFGGV
+v9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqMlIpPnTX/dqQG
+E5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
+uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIW
+iAYLtqZLICjU3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/v
+GVCJYMzpJJUPwssd8m92kMfMdcGWxZ0=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIJmDCCB4CgAwIBAgIBCjANBgkqhkiG9w0BAQwFADCCAR4xPjA8BgNVBAMTNUF1
+dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9s
+YW5vMQswCQYDVQQGEwJWRTEQMA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlz
+dHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0
+aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBlcmludGVuZGVuY2lh
+IGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUwIwYJ
+KoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NDEz
+NloXDTMwMTIyMzIzNTk1OVowggEeMT4wPAYDVQQDEzVBdXRvcmlkYWQgZGUgQ2Vy
+dGlmaWNhY2lvbiBSYWl6IGRlbCBFc3RhZG8gVmVuZXpvbGFubzELMAkGA1UEBhMC
+VkUxEDAOBgNVBAcTB0NhcmFjYXMxGTAXBgNVBAgTEERpc3RyaXRvIENhcGl0YWwx
+NjA0BgNVBAoTLVNpc3RlbWEgTmFjaW9uYWwgZGUgQ2VydGlmaWNhY2lvbiBFbGVj
+dHJvbmljYTFDMEEGA1UECxM6U3VwZXJpbnRlbmRlbmNpYSBkZSBTZXJ2aWNpb3Mg
+ZGUgQ2VydGlmaWNhY2lvbiBFbGVjdHJvbmljYTElMCMGCSqGSIb3DQEJARYWYWNy
+YWl6QHN1c2NlcnRlLmdvYi52ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBAME77xNS8ZlW47RsBeEaaRZhJoZ4rw785UAFCuPZOAVMqNS1wMYqzy95q6Gk
+UO81ER/ugiQX/KMcq/4HBn83fwdYWxPZfwBfK7BP2p/JsFgzYeFP0BXOLmvoJIzl
+Jb6FW+1MPwGBjuaZGFImWZsSmGUclb51mRYMZETh9/J5CLThR1exStxHQptwSzra
+zNFpkQY/zmj7+YZNA9yDoroVFv6sybYOZ7OxNDo7zkSLo45I7gMwtxqWZ8VkJZkC
+8+p0dX6mkhUT0QAV64Zc9HsZiH/oLhEkXjhrgZ28cF73MXIqLx1fyM4kPH1yOJi/
+R72nMwL7D+Sd6mZgI035TxuHXc2/uOwXfKrrTjaJDz8Jp6DdessOkxIgkKXRjP+F
+K3ze3n4NUIRGhGRtyvEjK95/2g02t6PeYiYVGur6ruS49n0RAaSS0/LJb6XzaAAe
+0mmO2evnEqxIKwy2mZRNPfAVW1l3wCnWiUwryBU6OsbFcFFrQm+00wOicXvOTHBM
+aiCVAVZTb9RSLyi+LJ1llzJZO3pq3IRiiBj38Nooo+2ZNbMEciSgmig7YXaUcmud
+SVQvLSL+Yw+SqawyezwZuASbp7d/0rutQ59d81zlbMt3J7yB567rT2IqIydQ8qBW
+k+fmXzghX+/FidYsh/aK+zZ7Wy68kKHuzEw1Vqkat5DGs+VzAgMBAAGjggLbMIIC
+1zASBgNVHRMBAf8ECDAGAQH/AgECMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52
+ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAzNi0wMB0GA1UdDgQWBBStuyIdxuDS
+Aaj9dlBSk+2YwU2u0zCCAVAGA1UdIwSCAUcwggFDgBStuyIdxuDSAaj9dlBSk+2Y
+wU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRpZmlj
+YWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAw
+DgYDVQQHEwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYD
+VQQKEy1TaXN0ZW1hIE5hY2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25p
+Y2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5kZW5jaWEgZGUgU2VydmljaW9zIGRlIENl
+cnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG9w0BCQEWFmFjcmFpekBz
+dXNjZXJ0ZS5nb2IudmWCAQowCwYDVR0PBAQDAgEGMDcGA1UdEQQwMC6CD3N1c2Nl
+cnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAzNi0wMFQGA1UdHwRN
+MEswJKAioCCGHmh0dHA6Ly93d3cuc3VzY2VydGUuZ29iLnZlL2xjcjAjoCGgH4Yd
+bGRhcDovL2FjcmFpei5zdXNjZXJ0ZS5nb2IudmUwNwYIKwYBBQUHAQEEKzApMCcG
+CCsGAQUFBzABhhtodHRwOi8vb2NzcC5zdXNjZXJ0ZS5nb2IudmUwQAYDVR0gBDkw
+NzA1BgVghl4BAjAsMCoGCCsGAQUFBwIBFh5odHRwOi8vd3d3LnN1c2NlcnRlLmdv
+Yi52ZS9kcGMwDQYJKoZIhvcNAQEMBQADggIBABxZEOVepFHBR7tlsgtV4i+poye8
+4TyKx2wDVqOpKaKbipXYH/e2EmAWvnr0/QOBT/2BgapPgXAeLu/AkhJ7uw+FiMT5
+HUG1uiQqwygmE8r5APvXw1z5aOkbwRgiyaJsZMP4OcNOId3Wwt7ltizJXDjw3l5q
+5Cf0uDPEy2GSM1OozPydzVP7KAvv7X+wj3QitjVXgKiuBa4pCjuypP0949TBkPY/
+zrzkRP7RwX4oL/0AJDIgiMRvGHuRDkiQvJZiYIFtFAAaUbq1XWmNYUccLKxORSCp
+SEWjh0mjeJDdNkJ/2HZv/W2DAcb5f5ggf5YuImCroifAsDUk0Mm/M5kiUw5uH2JM
+JvwkM8rBA8ypF2FjMyTMaEDvr6LihcOIMNNFG+5W6lYKDwpHmzBZ2EnRMJAMJyom
+CChcMh8n160LSeUXUWPP5g07YFEavUMJUOaRtWPmZJeqC5cTAQaGXKUflb5Qjguy
+0mR/26tM5kPG5IWNav6N/ruUVR6RUycI07pnPTqhycHFFLr5Q1zFjiGMgqL9KjIl
+1RaMFVbAmPwuso4ZpBZxw0vdcf5x7CId8MGMmIGHtL8CuMQwMUfCwLCvezNjCt2s
+RZvBzICH9NmYXpyG/poE/2ZK/HthVL5XYwUHxqcBdVnkbjk7APSqnfOfiL/P0SUr
+339z7RaGqZBlD3Ap
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIJmzCCB4OgAwIBAgIBATANBgkqhkiG9w0BAQUFADCCAR4xPjA8BgNVBAMTNUF1
+dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9s
+YW5vMQswCQYDVQQGEwJWRTEQMA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlz
+dHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0
+aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBlcmludGVuZGVuY2lh
+IGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUwIwYJ
+KoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTA3MDIxNjE1MzU1
+MVoXDTI3MDIxMTIzNTk1OVowggEeMT4wPAYDVQQDEzVBdXRvcmlkYWQgZGUgQ2Vy
+dGlmaWNhY2lvbiBSYWl6IGRlbCBFc3RhZG8gVmVuZXpvbGFubzELMAkGA1UEBhMC
+VkUxEDAOBgNVBAcTB0NhcmFjYXMxGTAXBgNVBAgTEERpc3RyaXRvIENhcGl0YWwx
+NjA0BgNVBAoTLVNpc3RlbWEgTmFjaW9uYWwgZGUgQ2VydGlmaWNhY2lvbiBFbGVj
+dHJvbmljYTFDMEEGA1UECxM6U3VwZXJpbnRlbmRlbmNpYSBkZSBTZXJ2aWNpb3Mg
+ZGUgQ2VydGlmaWNhY2lvbiBFbGVjdHJvbmljYTElMCMGCSqGSIb3DQEJARYWYWNy
+YWl6QHN1c2NlcnRlLmdvYi52ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBALcok9KOeQsz+FEa+MXGdAJVJN63wozmjcrg6uCuKguU9VhnC1UzxQjFsUze
+rnpGVwX2QYVnA0NJxyzm9fWMSkimcynnpO85uHeFyk8M1DT7WBR8REn50eK9MqVo
+8tNXAS80lUxxGdm7dbKY4iL9TL8megLnfNBNSUUaLeq11d1NL47W/uW9+hAzWlu6
+aPt3cc/Fpd01XMlGL/K0w9NB5Tv9KQWDerAH6QWIKjMkmxmeQ5USojV55hztS1gP
+snlcPWk+5oPC9H/MkZxTPn8JK9ATXcOpFMAwNn9jgJL7BMljYzV/cZFHS03aurrz
+fnb+hI3leMTpCzlnbFAR/eUSN2JIyu/blsHu3S5aXQiDVxNb+q7NCMqACeza38Zd
+6ONTyaD8gvAV6JR9rY6wB3SqKWr5Nef0wMn9/EJoGhfTli5SIjYmfjYKWj5gzrDU
++vM3gHnlFix6hiskajdswgLEoK+PG7onW2ar6CQpay/U68FcDsn2jIDHhxAIaZIS
+K6FoecIYvZX6P8SlemDBMxuMaepXR9dFHM9hpyCaqzXbume4bscS8paLWQwMduil
+oQjOEP0Ocl7Fnuk4w2Kvek+aL69s0ykp6yPoGs0y03S83FmLfwtIt4rT5LfUYQv9
+3dDBluLOt++Elw3A3HbajirVPI4lzsLFlirwUXqm/Wf7Gy6PAgMBAAGjggLeMIIC
+2jASBgNVHRMBAf8ECDAGAQH/AgECMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52
+ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAzNi0wMB0GA1UdDgQWBBRmDZwMrrrR
+SkMD7hObbfHS1HLVmjCCAVAGA1UdIwSCAUcwggFDgBRmDZwMrrrRSkMD7hObbfHS
+1HLVmqGCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRpZmlj
+YWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAw
+DgYDVQQHEwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYD
+VQQKEy1TaXN0ZW1hIE5hY2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25p
+Y2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5kZW5jaWEgZGUgU2VydmljaW9zIGRlIENl
+cnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG9w0BCQEWFmFjcmFpekBz
+dXNjZXJ0ZS5nb2IudmWCAQEwDgYDVR0PAQH/BAQDAgEGMDcGA1UdEQQwMC6CD3N1
+c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAzNi0wMFQGA1Ud
+HwRNMEswJKAioCCGHmh0dHA6Ly93d3cuc3VzY2VydGUuZ29iLnZlL2xjcjAjoCGg
+H4YdbGRhcDovL2FjcmFpei5zdXNjZXJ0ZS5nb2IudmUwNwYIKwYBBQUHAQEEKzAp
+MCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcC5zdXNjZXJ0ZS5nb2IudmUwQAYDVR0g
+BDkwNzA1BgVghl4BAjAsMCoGCCsGAQUFBwIBFh5odHRwOi8vd3d3LnN1c2NlcnRl
+LmdvYi52ZS9kcGMwDQYJKoZIhvcNAQEFBQADggIBAIIZ7DHkEaEoHIGrJR44YAjG
+9wyGXUMOpagwfBUyBmrhUc2sARNuBhmQJkhYGUUnLwDuDZFx7Y3FwjcZoEYzls1n
+KJM689/pTskFl4gk6xZnRVl8imf2j8P1jWBVzQ+B2AFuuIE0VVHxkya577LkieqR
+5AcTbV+93DRdvy/tsgpNaEUdKQmIgZTb+HbzEUxJHNLJSyqctDuTAZi66gQGG/im
+kSu4raQHHdvcK8XmUoMwwzdhG/vKv6sAfvKTS+lAlZA73lZx8n/0A9wGz8fpEd0A
+dhhUDH3SAxyETKkrtNp2dsv0E2jbEvC6piAUoYvaJcGhZMMxq4dmAxzzwGFhilxR
+xDwv4RYJjxV9xHlRmHzViwVI1/NB7Ob8d5bIDc7w417eSIuel//xAIC8ufVzPsoM
+/12n3mheMLinbec52N0/Wi/gZKbVANl0e/1vWbPd6okO/ou7QE/PGk4aHwq8rA+U
+72NM6WATAicV+rZkR0/qlDVkgfWeIg/Spl5/kqrzAHHwT3YQCNEFZGnPy6sVqPbX
+DQnG50JaARYKLm8z3akalf8gjY5UIJ3PHb39JIqpIKRwU84Q/1RIsqJo9HELd3zM
+rtcHFBfTfa7dx3DPYo30r4mE7LNT9gZ5f9+Ct8eOAvbQ3WoubQGG5r55+c7FZAU2
+EHgFy96xE/FAndEXR872
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC
+Q04xMjAwBgNVBAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24g
+Q2VudGVyMUcwRQYDVQQDDD5DaGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0
+aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMgUm9vdDAeFw0xMDA4MzEwNzExMjVa
+Fw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAGA1UECgwpQ2hpbmEg
+SW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMMPkNo
+aW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRp
+ZmljYXRlcyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z
+7r07eKpkQ0H1UN+U8i6yjUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//
+DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV98YPjUesWgbdYavi7NifFy2cyjw1l1Vx
+zUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2HklY0bBoQCxfVWhyXWIQ8
+hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23KzhmBsUs
+4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54u
+gQEC7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oY
+NJKiyoOCWTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E
+FgQUfHJLOcfA22KlT5uqGDSSosqDglkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3
+j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd50XPFtQO3WKwMVC/GVhMPMdoG
+52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM7+czV0I664zB
+echNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
+ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrI
+zo9uoV1/A3U05K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATy
+wy39FCqQmbkHzJ8=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl
+eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT
+JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx
+MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg
+VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo
+I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng
+o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G
+A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB
+zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW
+RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB
+iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
+cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
+BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw
+MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
+BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
+aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B
+3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY
+tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/
+Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2
+VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT
+79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6
+c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT
+Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l
+c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee
+UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE
+Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
+BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G
+A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF
+Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO
+VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3
+ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs
+8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR
+iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze
+Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ
+XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
+qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB
+VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
+L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
+jjxDah2nGN59PRbxYvnKkKj9
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB
+hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
+BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5
+MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
+EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
+Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR
+6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X
+pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC
+9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV
+/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf
+Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z
++pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w
+qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah
+SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC
+u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf
+Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq
+crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
+FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB
+/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl
+wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM
+4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV
+2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna
+FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ
+CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK
+boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke
+jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL
+S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb
+QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl
+0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB
+NVOFBkpdn627G190
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgIBATANBgkqhkiG9w0BAQsFADBcMQswCQYDVQQGEwJVUzEZ
+MBcGA1UECgwQVmVyaXpvbiBCdXNpbmVzczERMA8GA1UECwwIT21uaVJvb3QxHzAd
+BgNVBAMMFlZlcml6b24gR2xvYmFsIFJvb3QgQ0EwHhcNMDkwNzMwMTQyNzA0WhcN
+MzQwNzMwMTQyNzA0WjBcMQswCQYDVQQGEwJVUzEZMBcGA1UECgwQVmVyaXpvbiBC
+dXNpbmVzczERMA8GA1UECwwIT21uaVJvb3QxHzAdBgNVBAMMFlZlcml6b24gR2xv
+YmFsIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCKAAxw
+Hb/rNIbDmUU1Hn9D96tvJC3NGcIQu7DKKVupIKurcizE4gI5bYK4xRHq+PuznmL4
+Mx6wH8nj9jfbBMg7Y0824oWkJR3HaR8EvWhFE5YHH5RQ9T7FJ1SewElXRI4HY9Sm
+ru0imcxNlmkEE252iZ90FpT5HVS9ornSgwEiDE1EgKr+NYknJaeGicbVGpLjj8WV
+oBRymuhWxQJVHJf5IC7Q9TwTGVr24fkLA4Jpp4y31m+cVj6d6CoJYG1L5vuLmRT3
+NE9lWYCNuVfIojUh2IhxVl3uglctJpAYn5qcnI/v1MVjp1R9R5GHfRoSqBsYb6lv
+sSe65AR0zjcef2bFAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
+BAQDAgEGMB0GA1UdDgQWBBRMOBG4mABbWitwPqp45NVnZ2enfjANBgkqhkiG9w0B
+AQsFAAOCAQEAAV+gsQYB9HnXZRhgPs95oLrCI08j34eWX4EOOBUuXMgCaCkg/Ivu
+pYoYgWRcmDV+OTCCpIKKULW6w+ha1qie4sMX29vE67AKIA3pnuP/YFRH8Tud1Cg8
+oq6j+6qLgiIqNYeQuBxZR5DVnS76SeNlqDbrx+QcaNyzMWyrTs4kgBXIEFkQEXJN
+epyYnMT8YeCzsp1OoMbCWasY1qJVRewpqiU31k5KPQtAweST5PzNkQv45qvMs3bE
+Yr8Z7Ya2ecMpVFS8mX1GV8+mz/RUKpoDZUcBoUIqyyVHbnxeAEuR2fkbEAZw+UIV
+pl+q10Ae/clInZeB6lxowqDniaFTTb/H4w==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFfjCCA2agAwIBAgIJAKqIsFoLsXabMA0GCSqGSIb3DQEBCwUAMEwxCzAJBgNV
+BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxJjAkBgNVBAMTHVN3aXNzU2ln
+biBTaWx2ZXIgUm9vdCBDQSAtIEczMB4XDTA5MDgwNDEzMTkxNFoXDTM3MDgwNDEz
+MTkxNFowTDELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEmMCQG
+A1UEAxMdU3dpc3NTaWduIFNpbHZlciBSb290IENBIC0gRzMwggIiMA0GCSqGSIb3
+DQEBAQUAA4ICDwAwggIKAoICAQC+h5sF5nF8Um9t7Dep6bPczF9/01DqIZsE8D2/
+vo7JpRQWMhDPmfzscK1INmckDBcy1inlSjmxN+umeAxsbxnKTvdR2hro+iE4bJWc
+L9aLzDsCm78mmxFFtrg0Wh2mVEhSyJ14cc5ISsyneIPcaKtmHncH0zYYCNfUbWD4
+8HnTMzYJkmO3BJr1p5baRa90GvyC46hbDjo/UleYfrycjMHAslrfxH7+DKZUdoN+
+ut3nKvRKNk+HZS6lujmNWWEp89OOJHCMU5sRpUcHsnUFXA2E2UTZzckmRFduAn2V
+AdSrJIbuPXD7V/qwKRTQnfLFl8sJyvHyPefYS5bpiC+eR1GKVGWYSNIS5FR3DAfm
+vluc8d0Dfo2E/L7JYtX8yTroibVfwgVSYfCcPuwuTYxykY7IQ8GiKF71gCTc4i+H
+O1MA5cvwsnyNeRmgiM14+MWKWnflBqzdSt7mcG6+r771sasOCLDboD+Uxb4Subx7
+J3m1MildrsUgI5IDe1Q5sIkiVG0S48N46jpA/aSTrOktiDzbpkdmTN/YF+0W3hrW
+10Fmvx2A8aTgZBEpXgwnBWLr5cQEYtHEnwxqVdZYOJxmD537q1SAmZzsSdaCn9pF
+1j9TBgO3/R/shn104KS06DK2qgcj+O8kQZ5jMHj0VN2O8Fo4jhJ/eMdvAlYhM864
+uK1pVQIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
+BgNVHQ4EFgQUoYxFkwoSYwunV18ySn3hIee3PmYwHwYDVR0jBBgwFoAUoYxFkwoS
+YwunV18ySn3hIee3PmYwDQYJKoZIhvcNAQELBQADggIBAIeuYW1IOCrGHNxKLoR4
+ScAjKkW4NU3RBfq5BTPEZL3brVQWKrA+DVoo2qYagHMMxEFvr7g0tnfUW44dC4tG
+kES1s+5JGInBSzSzhzV0op5FZ+1FcWa2uaElc9fCrIj70h2na9rAWubYWWQ0l2Ug
+MTMDT86tCZ6u6cI+GHW0MyUSuwXsULpxQOK93ohGBSGEi6MrHuswMIm/EfVcRPiR
+i0tZRQswDcoMT29jvgT+we3gh/7IzVa/5dyOetTWKU6A26ubP45lByL3RM2WHy3H
+9Qm2mHD/ONxQFRGEO3+p8NgkVMgXjCsTSdaZf0XRD46/aXI3Uwf05q79Wz55uQbN
+uIF4tE2g0DW65K7/00m8Ne1jxrP846thWgW2C+T/qSq+31ROwktcaNqjMqLJTVcY
+UzRZPGaZ1zwCeKdMcdC/2/HEPOcB5gTyRPZIJjAzybEBGesC8cwh+joCMBedyF+A
+P90lrAKb4xfevcqSFNJSgVPm6vwwZzKpYvaTFxUHMV4PG2n19Km3fC2z7YREMkco
+BzuGaUWpxzaWkHJ02BKmcyPRTrm2ejrEKaFQBhG52fQmbmIIEiAW8AFXF9QFNmeX
+61H5/zMkDAUPVr/vPRxSjoreaQ9aH/DVAzFEs5LG6nWorrvHYAOImP/HBIRSkIbh
+tJOpUC/o69I2rDBgp9ADE7UK
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFgTCCA2mgAwIBAgIIIj+pFyDegZQwDQYJKoZIhvcNAQELBQAwTjELMAkGA1UE
+BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEoMCYGA1UEAxMfU3dpc3NTaWdu
+IFBsYXRpbnVtIFJvb3QgQ0EgLSBHMzAeFw0wOTA4MDQxMzM0MDRaFw0zNzA4MDQx
+MzM0MDRaME4xCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxKDAm
+BgNVBAMTH1N3aXNzU2lnbiBQbGF0aW51bSBSb290IENBIC0gRzMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCUoO8TG59EIBvNxaoiu9nyUj56Wlh35o2h
+K8ncpPPksxOUAGKbHPJDUEOBfq8wNkmsGIkMGEW4PsdUbePYmllriholqba1Dbd9
+I/BffagHqfc+hi7IAU3c5jbtHeU3B2kSS+OD0QQcJPAfcHHnGe1zSG6VKxW2VuYC
+31bpm/rqpu7gwsO64MzGyHvXbzqVmzqPvlss0qmgOD7WiOGxYhOO3KswZ82oaqZj
+K4Kwy8c9Tu1y9n2rMk5lAusPmXT4HBoojA5FAJMsFJ9txxue9orce3jjtJRHHU0F
+bYR6kFSynot1woDfhzk/n/tIVAeNoCn1+WBfWnLou5ugQuAIADSjFTwT49YaawKy
+lCGjnUG8KmtOMzumlDj8PccrM7MuKwZ0rJsQb8VORfddoVYDLA1fer0e3h13kGva
+pS2KTOnfQfTnS+x9lUKfTKkJD0OIPz2T5yv0ekjaaMTdEoAxGl0kVCamJCGzTK3a
+Fwg2AlfGnIZwyXXJnnxh2HjmuegUafkcECgSXUt1ULo80GdwVVVWS/s9HNjbeU2X
+37ie2xcs1TUHuFCp9473Vv96Z0NPINnKZtY4YEvulDHWDaJIm/80aZTGNfWWiO+q
+ZsyBputMU/8ydKe2nZhXtLomqfEzM2J+OrADEVf/3G8RI60+xgrQzFS3LcKTHeXC
+pozH2O9T9wIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQUVio/kFj0F1oUstcIG4VbVGpUGigwHwYDVR0jBBgwFoAUVio/
+kFj0F1oUstcIG4VbVGpUGigwDQYJKoZIhvcNAQELBQADggIBAGztiudDqHknm7jP
+hz5kOBiMEUKShjfgWMMb7gQu94TsgxBoDH94LZzCl442ThbYDuprSK1Pnl0NzA2p
+PhiFfsxomTk11tifhsEy+01lsyIUS8iFZtoX/3GRrJxWV95xLFZCv/jNDvCi0//S
+IhX70HgKfuGwWs6ON9upnueVz2PyLA3S+m/zyNX7ALf3NWcQ03tS7BAy+L/dXsmm
+gqTxsL8dLt0l5L1N8DWpkQFH+BAClFvrPusNutUdYyylLqvn4x6j7kuqX7FmAbSC
+WvlGS8fx+N8svv113ZY4mjc6bqXmMhVus5DAOYp0pZWgvg0uiXnNKVaOw15XUcQF
+bwRVj4HpTL1ZRssqvE3JHfLGTwXkyAQN925P2sM6nNLC9enGJHoUPhxCMKgCRTGp
+/FCp3NyGOA9bkz9/CE5qDSc6EHlWwxW4PgaG9tlwZ691eoviWMzGdU8yVcVsFAko
+O/KV5GreLCgHraB9Byjd1Fqj6aZ8E4yZC1J429nR3z5aQ3Z/RmBTws3ndkd8Vc20
+OWQQW5VLNV1EgyTV4C4kDMGAbmkAgAZ3CmaCEAxRbzeJV9vzTOW4ue4jZpdgt1Ld
+2Zb7uoo7oE3OXvBETJDMIU8bOphrjjGD+YMIUssZwTVr7qEVW4g/bazyNJJTpjAq
+E9fmhqhd2ULSx52peovL3+6iMcLl
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFejCCA2KgAwIBAgIJAN7E8kTzHab8MA0GCSqGSIb3DQEBCwUAMEoxCzAJBgNV
+BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxJDAiBgNVBAMTG1N3aXNzU2ln
+biBHb2xkIFJvb3QgQ0EgLSBHMzAeFw0wOTA4MDQxMzMxNDdaFw0zNzA4MDQxMzMx
+NDdaMEoxCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxJDAiBgNV
+BAMTG1N3aXNzU2lnbiBHb2xkIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBAMPon8hlWp1nG8FFl7S0h0NbYWCAnvJ/XvlnRN1E+qu1
+q3f/KhlMzm/Ej0Gf4OLNcuDR1FJhQQkKvwpw++CDaWEpytsimlul5t0XlbBvhI46
+PmRaQfsbWPz9Kz6ypOasyYK8zvaV+Jd37Sb2WK6eJ+IPg+zFNljIe8/Vh6GphxoT
+Z2EBbaZpnOKQ8StoZfPosHz8gj3erdgKAAlEeROc8P5udXvCvLNZAQt8xdUt8L//
+bVfSSYHrtLNQrFv5CxUVjGn/ozkB7fzc3CeXjnuL1Wqm1uAdX80Bkeb1Ipi6LgkY
+OG8TqIHS+yE35y20YueBkLDGeVm3Z3X+vo87+jbsr63ST3Q2AeVXqyMEzEpel89+
+xu+MzJUjaY3LOMcZ9taKABQeND1v2gwLw7qX/BFLUmE+vzNnUxC/eBsJwke6Hq9Y
+9XWBf71W8etW19lpDAfpNzGwEhwy71bZvnorfL3TPbxqM006PFAQhyfHegpnU9t/
+gJvoniP6+Qg6i6GONFpIM19k05eGBxl9iJTOKnzFat+vvKmfzTqmurtU+X+P388O
+WsStmryzOndzg0yTPJBotXxQlRHIgl6UcdBBGPvJxmXszom2ziKzEVs/4J0+Gxho
+DaoDoWdZv2udvPjyZS+aQTpF2F7QNmxvOx5jtI6YTBPbIQ6fe+3qoKpxw+ujoNIl
+AgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
+DgQWBBRclwZGNKvfMMV8xQ1VcWYwtWCPnjAfBgNVHSMEGDAWgBRclwZGNKvfMMV8
+xQ1VcWYwtWCPnjANBgkqhkiG9w0BAQsFAAOCAgEAd0tN3uqFSqssJ9ZFx/FfIMFb
+YO0Hy6Iz3DbPx5TxBsfV2s/NrYQ+/xJIf0HopWZXMMQd5KcaLy1Cwe9Gc7LV9Vr9
+Dnpr0sgxow1IlldlY1UYwPzkisyYhlurDIonN/ojaFlcJtehwcK5Tiz/KV7mlAu+
+zXJPleiP9ve4Pl7Oz54RyawDKUiKqbamNLmsQP/EtnM3scd/qVHbSypHX0AkB4gG
+tySz+3/3sIsz+r8jdaNc/qplGsK+8X2BdwOBsY3XlQ16PEKYt4+pfVDh31IGmqBS
+VHiDB2FSCTdeipynxlHRXGPRhNzC29L6Wxg2fWa81CiXL3WWHIQHrIuOUxG+JCGq
+Z/LBrYic07B4Z3j101gDIApdIPG152XMDiDj1d/mLxkrhWjBBCbPj+0FU6HdBw7r
+QSbHtKksW+NpPWbAYhvAqobAN8MxBIZwOb5rXyFAQaB/5dkPOEtwX0n4hbgrLqof
+k0FD+PuydDwfS1dbt9RRoZJKzr4Qou7YFCJ7uUG9jemIqdGPAxpg/z+HiaCZJyJm
+sD5onnKIUTidEz5FbQXlRrVz7UOGsRQKHrzaDb8eJFxmjw6+of3G62m8Q3nXA3b5
+3IeZuJjEzX9tEPkQvixC/pwpTYNrCr21jsRIiv0hB6aAfR+b6au9gmFECnEnX22b
+kJ6u/zYks2gD1pWMa3M=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
+VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0
+ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G
+CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y
+OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx
+FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp
+Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
+dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP
+kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc
+cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U
+fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7
+N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC
+xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1
++rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM
+Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG
+SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h
+mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk
+ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
+tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c
+2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t
+HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDYTCCAkmgAwIBAgIQG9QO1DTR2hWmADAVAk2kbDANBgkqhkiG9w0BAQUFADA2
+MQswCQYDVQQGEwJTRTERMA8GA1UECgwIQ2FyZWxpbmsxFDASBgNVBAMMC1NJVEhT
+IENBIHYzMB4XDTA1MTEyODEwMjc1MFoXDTE1MTEyODA2MDIzOFowNjELMAkGA1UE
+BhMCU0UxETAPBgNVBAoMCENhcmVsaW5rMRQwEgYDVQQDDAtTSVRIUyBDQSB2MzCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMXZW9HUK39AZ+6hW13R2mq5
+GTHy8CZJAWX8QVTxlpHsKu4ERCQeQJznF1A/6hx87rg3OfzH06+bbl3fPr4F/OrK
+2flFVuGVnLHQWo/+yCqm12ps4G1d7Fx2/uGZR5qpe6fq5m9UAidNUU4oPawGOoGC
+phy9S6TtUhLciirrJ/TBIkoQhFp1tYAiVmXrzIDypeFkvnzeD70nB0wpW6qx77R7
+/4c06KOTQss9YLt308IvXhT4c2+kf6CcAdXVqbsMV4/MwDuReJ6SOXkyTER/xwt9
+3vrMftrM3g3UZrZipjO/bPnV3UdScJTLZeBFtw3Xr5VI10GjOyBQDTwUVZPM6g0C
+AwEAAaNrMGkwEgYDVR0TAQH/BAgwBgEB/wIBADARBglghkgBhvhCAQEEBAMCAgQw
+FAYDVR0gBA0wCzAJBgcqhXBKAQEDMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUfC45
+IzJE6A9OZvINKP5AvsK24qAwDQYJKoZIhvcNAQEFBQADggEBAAhTWogpDfVU2Kux
+g7knaVqqXytYSdS532/rxwbr/Yeav8oS33qeASIlY1KFb6cvDpd0YIzgSIBz3UKN
+Ie0Pcn90Bm5QVjsth+yBWIs2x8oA+6QEti84WI538QbELSwnLRiCC4pfIpQUFWM4
+xqWxuuCsvj4mP5G7HIP8DsrJN7431/B784zYvJAL9AC/VLxqSljnylsMGVNCB5VX
+NbhPllOaqJjdTn1VtJzjusA2ubfcApj49uUwvix3svPJ4gKj5vdEfNZqf9B4vjlz
++AvCH1IADk17xgruYssJ1Q8KMIeCk7zKEaQfCfr6N1DsO+I8JKCAKMz7pt3vN5qp
+Md3f6lE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjET
+MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAk
+BgNVBAMMHUNlcnRpbm9taXMgLSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4
+Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNl
+cnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYwJAYDVQQDDB1DZXJ0
+aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
+ADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jY
+F1AMnmHawE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N
+8y4oH3DfVS9O7cdxbwlyLu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWe
+rP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K
+/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92NjMD2AR5vpTESOH2VwnHu
+7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9qc1pkIuVC
+28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6
+lSTClrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1E
+nn1So2+WLhl+HPNbxxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB
+0iSVL1N6aaLwD4ZFjliCK0wi1F6g530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql09
+5gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna4NH4+ej9Uji29YnfAgMBAAGj
+WzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQN
+jLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
+KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9s
+ov3/4gbIOZ/xWqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZM
+OH8oMDX/nyNTt7buFHAAQCvaR6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q
+619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40nJ+U8/aGH88bc62UeYdocMMzpXDn
+2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1BCxMjidPJC+iKunqj
+o3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjvJL1v
+nxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG
+5ERQL1TEqkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWq
+pdEdnV1j6CTmNhTih60bWfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZb
+dsLLO7XSAPCjDuGtbkD326C00EauFddEwk01+dIL8hf2rGbVJLJP0RyZwG71fet0
+BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/vgt2Fl43N+bYdJeimUV5
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGnTCCBYWgAwIBAgIDATRLMA0GCSqGSIb3DQEBBQUAMIHZMQswCQYDVQQGEwJF
+UzESMBAGA1UECAwJQmFyY2Vsb25hMUcwRQYDVQQHDD5CYXJjZWxvbmEgKHNlZSBj
+dXJyZW50IGFkZHJlc3MgYXQgaHR0cHM6Ly93d3cuYW5mLmVzL2FkZHJlc3MvKTEo
+MCYGA1UECgwfQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjacOzbjEXMBUGA1UE
+CwwOQU5GIENsYXNlIDEgQ0ExEjAQBgNVBAUTCUc2MzI4NzUxMDEWMBQGA1UEAwwN
+QU5GIFNlcnZlciBDQTAeFw0wOTExMzAyMzAwMDBaFw0yMTExMzAyMzAwMDBaMIHZ
+MQswCQYDVQQGEwJFUzESMBAGA1UECAwJQmFyY2Vsb25hMUcwRQYDVQQHDD5CYXJj
+ZWxvbmEgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgaHR0cHM6Ly93d3cuYW5mLmVz
+L2FkZHJlc3MvKTEoMCYGA1UECgwfQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2Fj
+acOzbjEXMBUGA1UECwwOQU5GIENsYXNlIDEgQ0ExEjAQBgNVBAUTCUc2MzI4NzUx
+MDEWMBQGA1UEAwwNQU5GIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAL/qSKeaiDlrLEhABwSTfPe4LX6lN+Jh1iH8kDfLaT5eizffW287
+2LbDiECQ9J0MXBBSsbPlX5EQ5v2ogBRf04u9XL0PI5IJN+Ny0maUC1x0lC9e8k7Y
+A8azzlalHNl7/U8HTNS32l8pTXXyH1XPMiMcRgknHUXs8Yw0id57FqdDXoor6ZRD
+Htc+k21viT287rHIt//JfeNfDW93ePUqLo3Ei5iXMLFGWgtjcNR4x4azf/8nQqqf
+im5toZTK7IcCHNZUS/28iZumYzhmjBaJiZfDUOj2QgGnd30QGZID6F1FyBXFhxsN
+kfLGOZx788AKmfjug29+QncRjsMfHHIvPRsCAwEAAaOCAmowggJmMB0GA1UdDgQW
+BBS+O/a0MbdzJEg5xVcTlHWqn4E/LDCCAQkGA1UdIwSCAQAwgf2AFL479rQxt3Mk
+SDnFVxOUdaqfgT8soYHfpIHcMIHZMQswCQYDVQQGEwJFUzESMBAGA1UECAwJQmFy
+Y2Vsb25hMUcwRQYDVQQHDD5CYXJjZWxvbmEgKHNlZSBjdXJyZW50IGFkZHJlc3Mg
+YXQgaHR0cHM6Ly93d3cuYW5mLmVzL2FkZHJlc3MvKTEoMCYGA1UECgwfQU5GIEF1
+dG9yaWRhZCBkZSBDZXJ0aWZpY2FjacOzbjEXMBUGA1UECwwOQU5GIENsYXNlIDEg
+Q0ExEjAQBgNVBAUTCUc2MzI4NzUxMDEWMBQGA1UEAwwNQU5GIFNlcnZlciBDQYID
+ATRLMAwGA1UdEwQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMDEGCisGAQQBgY8cKgYE
+IxshaHR0cHM6Ly93d3cuYW5mLmVzL0FDL0FDVEFTLzc4OTIzMBgGCisGAQQBgY8c
+EwEEChsIODAxLTM0MDAwOAYIKwYBBQUHAQEELDAqMCgGCCsGAQUFBzABhhxodHRw
+Oi8vd3d3LmFuZi5lcy9BQy9SQy9vY3NwMGMGA1UdHwRcMFowK6ApoCeGJWh0dHBz
+Oi8vd3d3LmFuZi5lcy9BQy9BTkZTZXJ2ZXJDQS5jcmwwK6ApoCeGJWh0dHBzOi8v
+Y3JsLmFuZi5lcy9BQy9BTkZTZXJ2ZXJDQS5jcmwwFgYDVR0SBA8wDYELaW5mb0Bh
+bmYuZXMwFgYDVR0RBA8wDYELaW5mb0BhbmYuZXMwDQYJKoZIhvcNAQEFBQADggEB
+ALXGx7xG+kJcE8GUdTNWvy+nB3PsN+NDdOr5Zk9ejX/w5nnDTfXZOKXMykP0U4CG
+v7zQEV2QxMJAR+vFh5PBtnhemq6H9WIQWUxMbQa+mRMVs7P6HHJ+4CIhAVg1OGii
+5Pjh8PA2UJHgtHfcY4QzkmC4yxby0mM7TFw1OuesAlPFHIEBd8ccER9UMO9UjyX6
+iSeUNKMPFE9v6XPZGGLn7gjoyYN7yDObfESafBqQtdJxid899BxPTlHgyWu2qgse
+2TAP02PV7XD0wYPtBkWaqOq0iTf9WjdH75F5pzX/8Nww7Q0UZ9t8WuCPbTP+PJ4V
+M8PDLQ5dqnwNjjGWTYv/BdU=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw
+NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv
+b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD
+VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2
+MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F
+VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1
+7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X
+Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+
+/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs
+81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm
+dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe
+Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu
+sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4
+pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs
+slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ
+arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD
+VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG
+9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl
+dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
+0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj
+TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed
+Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7
+Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI
+OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7
+vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW
+t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn
+HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx
+SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID5TCCAs2gAwIBAgISESG8J2xVR69YTu/UztYpsqKFMA0GCSqGSIb3DQEBCwUA
+MEwxCzAJBgNVBAYTAkZSMRIwEAYDVQQKEwlLRVlORUNUSVMxDTALBgNVBAsTBFJP
+T1QxGjAYBgNVBAMTEUtFWU5FQ1RJUyBST09UIENBMB4XDTA5MDUyNjAwMDAwMFoX
+DTIwMDUyNjAwMDAwMFowTDELMAkGA1UEBhMCRlIxEjAQBgNVBAoTCUtFWU5FQ1RJ
+UzENMAsGA1UECxMEUk9PVDEaMBgGA1UEAxMRS0VZTkVDVElTIFJPT1QgQ0EwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDG/bMXhaGtJhuVaTUhPaSI+t7b
+YDZAF2nCFGP7uNnCdBU3LpzQIM1pjYQyooVMFLSb8iWzVCqDPy2+D/M7ZNH/oFDv
+d087TuE/C2SFmrpYftLDYtNkJaLUspc8d11jKjOS/M2CDZtUlYf1teuMzVvRyjAv
+yYhGtc0NEbQYj+7RoT5dFegoz9/DkJtszNEMRXezOuuKkB3pr2RqiXupPUN0+uRn
+IqH73E3E9WLJyiW0yYBgM6nde6ACv5YlCl7JXyl7tBeBi22BGdDZg1wFj0FpGmlD
+gJ+or+DpjJGLJyuiJmDND/KkowKDjhiBwheKQxX5bfMdEKRanERhIyF62PvRAgMB
+AAGjgcAwgb0wEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8EBAMCAQYwVwYD
+VR0fBFAwTjBMoEqgSIZGaHR0cDovL3RydXN0Y2VudGVyLWNybC5jZXJ0aWZpY2F0
+Mi5jb20vS2V5bmVjdGlzL0tFWU5FQ1RJU19ST09UX0NBLmNybDAdBgNVHQ4EFgQU
+77cjl9CokX+mz6YhwDSfzHdB4dAwHwYDVR0jBBgwFoAU77cjl9CokX+mz6YhwDSf
+zHdB4dAwDQYJKoZIhvcNAQELBQADggEBABoxaZlCwuVAhaKfksNj1I8hOagZIf56
+/MNNQPMr6EusW0xZk8bcfguvfF+VhWu9x2+6wb74xjpnS5PGBWk+JC3wG5HGPj/s
+QhiTbAMkim75IGcrfG2rNMkqIjMN132P7tI2ZELINZpuGWHLjWfwaKfQJAXmwxe6
+Ra58Q7WAeANNIHMF/EMQnTVpQnWUJYIrpjuQGN7Bqa/zLZW/lafPGJfhWeKirxoW
+YQ33E3FTkzf9PK8AHWyLFK9Gloy2UnzMLU7N4elLCu6a/nqY5ym6G9ocutxrzQQO
+JkCp63M8/lCoESdVvduOS+9PGO0V/72GmGbumiVxNGxQ8bJRy2adTSk=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIDFuNgMA0GCSqGSIb3DQEBCwUAMIGrMQswCQYDVQQGEwJD
+WjE5MDcGA1UEAwwwSS5DQSAtIFN0YW5kYXJkIENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5LCAwOS8yMDA5MS0wKwYDVQQKDCRQcnZuw60gY2VydGlmaWthxI1uw60gYXV0
+b3JpdGEsIGEucy4xMjAwBgNVBAsMKUkuQ0EgLSBQcm92aWRlciBvZiBDZXJ0aWZp
+Y2F0aW9uIFNlcnZpY2VzMB4XDTA5MDkwMTAwMDAwMFoXDTE5MDkwMTAwMDAwMFow
+gasxCzAJBgNVBAYTAkNaMTkwNwYDVQQDDDBJLkNBIC0gU3RhbmRhcmQgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHksIDA5LzIwMDkxLTArBgNVBAoMJFBydm7DrSBjZXJ0
+aWZpa2HEjW7DrSBhdXRvcml0YSwgYS5zLjEyMDAGA1UECwwpSS5DQSAtIFByb3Zp
+ZGVyIG9mIENlcnRpZmljYXRpb24gU2VydmljZXMwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQCoCFYSP/uUg6lgdr1Fg36WNDzPSU7Wz/wg4eGxAhRtrcp+
+UHIpqf2cdyY4ZPdDQT8UggSiQZAC55n3g2J4RIXonQVw1P54oXQ0x6w7hQLd7lFb
+RjtTM9Zn7OwULuPE5bN0gwDMxpbmHIPa3BhQafrdQ9GOQP0WpLeMZYfgvqyXH7Bx
+6wBlVxbObIevl4jwXfeHTToRCqLCRBTAFvJP9duVQq8psymgg1Fu/jxRV5MwJSa6
+O2qGyPYL0XE/nLc6yM5nCYz6QBt6bN7IHKDGXLthGIg/LlkdVvx6RZym2TjZxWDM
+uUFVt8q8Te60p8T2oA68icUBlbFc30/wzMLNQrtfAgMBAAGjVTBTMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMBEGA1UdIAQKMAgwBgYEVR0gADAdBgNV
+HQ4EFgQUwUw4lNWAhkjZIpAs0+4ZENtnR4cwDQYJKoZIhvcNAQELBQADggEBAKPL
+0X10+zV4B5Lo7mjp5FJe8NhjkZSfaPu+W7qp4WN3q1B2xulWR1RQmbQli+jBGXI2
+Wgm+59b6wrYyPUfDUE6ZbpM2xYpRd2PgSTOrPB+K6TvZhrUox8J1cVtmao1YDvN1
+kLWtLIEYzZzYw81P8ftpIJfASM8TRRK1HPY+g+JOXt1ZxmtK4EjO2SqdZTq9L/Dw
+TLwJess3AKQ/Owwj3eP7xkKitLbm0nKFTN+z3hanfh3n1M+tq7NQ5HCM37BwkMmG
+nu58hItkHGvhaBV+yaV04E73WurdEjGrkUCFcQvOKSj5bjgUXB3+7BG/TUN+nl84
+v9fqnpMv0B10tQUJ0yI=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFHjCCBAagAwIBAgIEAKA3oDANBgkqhkiG9w0BAQsFADCBtzELMAkGA1UEBhMC
+Q1oxOjA4BgNVBAMMMUkuQ0EgLSBRdWFsaWZpZWQgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHksIDA5LzIwMDkxLTArBgNVBAoMJFBydm7DrSBjZXJ0aWZpa2HEjW7DrSBh
+dXRvcml0YSwgYS5zLjE9MDsGA1UECww0SS5DQSAtIEFjY3JlZGl0ZWQgUHJvdmlk
+ZXIgb2YgQ2VydGlmaWNhdGlvbiBTZXJ2aWNlczAeFw0wOTA5MDEwMDAwMDBaFw0x
+OTA5MDEwMDAwMDBaMIG3MQswCQYDVQQGEwJDWjE6MDgGA1UEAwwxSS5DQSAtIFF1
+YWxpZmllZCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSwgMDkvMjAwOTEtMCsGA1UE
+CgwkUHJ2bsOtIGNlcnRpZmlrYcSNbsOtIGF1dG9yaXRhLCBhLnMuMT0wOwYDVQQL
+DDRJLkNBIC0gQWNjcmVkaXRlZCBQcm92aWRlciBvZiBDZXJ0aWZpY2F0aW9uIFNl
+cnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtTaEy0KC8M9l
+4lSaWHMs4+sVV1LwzyJYiIQNeCrv1HHm/YpGIdY/Z640ceankjQvIX7m23BK4OSC
+6KO8kZYA3zopOz6GFCOKV2PvLukbc+c2imF6kLHEv6qNA8WxhPbR3xKwlHDwB2yh
+Wzo7V3QVgDRG83sugqQntKYC3LnlTGbJpNP+Az72gpO9AHUn/IBhFk4ksc8lYS2L
+9GCy9CsmdKSBP78p9w8Lx7vDLqkDgt1/zBrcUWmSSb7AE/BPEeMryQV1IdI6nlGn
+BhWkXOYf6GSdayJw86btuxC7viDKNrbp44HjQRaSxnp6O3eto1x4DfiYdw/YbJFe
+7EjkxSQBywIDAQABo4IBLjCCASowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
+BAMCAQYwgecGA1UdIASB3zCB3DCB2QYEVR0gADCB0DCBzQYIKwYBBQUHAgIwgcAa
+gb1UZW50byBjZXJ0aWZpa2F0IGplIHZ5ZGFuIGpha28ga3ZhbGlmaWtvdmFueSBz
+eXN0ZW1vdnkgY2VydGlmaWthdCBwb2RsZSB6YWtvbmEgYy4gMjI3LzIwMDAgU2Iu
+IHYgcGxhdG5lbSB6bmVuaS9UaGlzIGlzIHF1YWxpZmllZCBzeXN0ZW0gY2VydGlm
+aWNhdGUgYWNjb3JkaW5nIHRvIEN6ZWNoIEFjdCBOby4gMjI3LzIwMDAgQ29sbC4w
+HQYDVR0OBBYEFHnL0CPpOmdwkXRP01Hi4CD94Sj7MA0GCSqGSIb3DQEBCwUAA4IB
+AQB9laU214hYaBHPZftbDS/2dIGLWdmdSbj1OZbJ8LIPBMxYjPoEMqzAR74tw96T
+i6aWRa5WdOWaS6I/qibEKFZhJAVXX5mkx2ewGFLJ+0Go+eTxnjLOnhVF2V2s+57b
+m8c8j6/bS6Ij6DspcHEYpfjjh64hE2r0aSpZDjGzKFM6YpqsCJN8qYe2X1qmGMLQ
+wvNdjG+nPzCJOOuUEypIWt555ZDLXqS5F7ZjBjlfyDZjEfS2Es9Idok8alf563Mi
+9/o+Ba46wMYOkk3P1IlU0RqCajdbliioACKDztAqubONU1guZVzV8tuMASVzbJeL
+/GAB7ECTwe1RuKrLYtglMKI9
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGijCCBHKgAwIBAgIQA6OkV7Xw84ZKEWPomP8WnDANBgkqhkiG9w0BAQUFADCB
+mDELMAkGA1UEBhMCTFQxLTArBgNVBAoTJFZJIFJlZ2lzdHJ1IENlbnRyYXMgLSBJ
+LmsuIDEyNDExMDI0NjEuMCwGA1UECxMlUmVnaXN0cnUgQ2VudHJvIFNlcnRpZmlr
+YXZpbW8gQ2VudHJhczEqMCgGA1UEAxMhVkkgUmVnaXN0cnUgQ2VudHJhcyBSQ1ND
+IChSb290Q0EpMB4XDTA4MDcyMTExNDc0NloXDTI0MDcyMTExNDc0NlowgZgxCzAJ
+BgNVBAYTAkxUMS0wKwYDVQQKEyRWSSBSZWdpc3RydSBDZW50cmFzIC0gSS5rLiAx
+MjQxMTAyNDYxLjAsBgNVBAsTJVJlZ2lzdHJ1IENlbnRybyBTZXJ0aWZpa2F2aW1v
+IENlbnRyYXMxKjAoBgNVBAMTIVZJIFJlZ2lzdHJ1IENlbnRyYXMgUkNTQyAoUm9v
+dENBKTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMiZ8iLHs4cVLqfL
+TUarZ5fPD3N3A/dkfHZIMiD0o9hZnRSpH6AekQ4NrfX+Z5KREyAhTQpVbnH6rBfL
+AP0OUAIz26nYvWEa/eAQV7FVeWAZtFR5nvuAMOLIQslSAgjYrC/DcUFUAvWBihLj
+aQKlh6FwfQW+pWK/BbAIlkdvf5OKreCs00LeveaPFOVzKKADm0H65T73OXQuZPSf
+S8D1eJlUa+UVIPzpMnJAq2V1vDxGNNL4EGHHDHjHfMARUdEFNvv4nP8tuOVxLUnw
+V0izk46c+zrJS20x11LVVumELpHUAh2ygAWBxYDKKcE0Z7mvBDBD9q9CR978AS7o
+Qpy+sgsU5DTc3a1ThHrYA1bRwgzUlyn4TPK1HN+dg65fWiVLorAo5b9aC9CcqJxw
+Km0OLuEnv60LbxHT+EYt9JdES8qwyOY2byK6juRSlRbsRGrUUB6YKPlopLrenjDt
+oslSock1ikDhjZub/fFGi6THT3BgUY3ykqnOuowvSVISZ9D1qwQlQHQD4titoXRY
+Ybe1DvN/JSwRY6/xEsP0pHOaZKzupgaP8rycrCipXBXTM63QNsghcGu8Kh/Vq7gB
+WHb8OxFN+/IcSCQR/U2PGSmua+htXrKhDXjO0mODdLTNKUy/m3CITxINRee+D2XE
+1jgk5EoVi9Fq6rs2oaGQpVPIpdZlAgMBAAGjgc0wgcowDgYDVR0PAQH/BAQDAgEG
+MC8GCCsGAQUFBwEDBCMwITAIBgYEAI5GAQEwCwYGBACORgEDAgEKMAgGBgQAjkYB
+BDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS8cz4vnJEMu4/Nd5k+zIXkzFho
+ETAQBgkrBgEEAYI3FQEEAwIBADBFBgNVHSAEPjA8MDoGCysGAQQBgfE3AQEBMCsw
+KQYIKwYBBQUHAgEWHWh0dHA6Ly93d3cucmNzYy5sdC9yZXBvc2l0b3J5MA0GCSqG
+SIb3DQEBBQUAA4ICAQAZeCxRE1+8mU5cpwH83rb+qR2GMRF7epmKs4iSpWDSBGM5
+vK+O2PErRXIyKTwt4tnYPXT6RzWH3BAANkE97ap+sszEGukxtPWR0YRK5/Xcz0Zn
+ApmvuHf6fu0hb5YjFHE/0Fi+qttDLDegHQZpNPBPj3Xus9IBu+wc6Y+pie/41BtB
+Apm+8F+6jizCIXDeUYHY97y4wzODw5fKCXPE6XfIcvRcrQ8Niurt0goBzutXnRXw
+KRXvWZyvrJKCcAyY2CKdL5g1qdGKibzVnVXCLp4HJUb2kk1Q+j2J8t+Tv5OU0Nmv
+V6PzZuaO8eigGxgGk1osiQ02xPogs9wo9WrujzGbWTjYTmqgIyHkhqvl+2Cj0c1a
+LEJJpg5VJCU1/dI6r2tYppFGX2nLvX4mm94IvR7snqb4nHWkQDaVSyJPxrZ9clG8
+48Jozc3li77Awk+bbmXOFrcIiMeH3v8yjMvrQkGs+9fPAUP4b8DWC/D3kunLRV1k
+sffKPLuJCJbJ2g7hcSoP7KRCLeNqD0dHsFOm1oVQlzDXjC5fRiLQrM48XpwecoP9
+DKf4FzK7Yd7jTy8YjoK1hxt0BTBKv2oeSDxUKLFdnZJfmxDjLiKKr902ZH8TdkeD
+NZUalI/1xFNtOb3Vi/XKzxhDBQGTpDbeMNIU87BktcrOlfe6dOyKcz5S015TAA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
+HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs
+ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
+MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD
+VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy
+ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy
+dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p
+OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2
+8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K
+Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe
+hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk
+6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw
+DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q
+AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI
+bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB
+ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z
+qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
+iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn
+0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN
+sSi6
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
+EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
+ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz
+NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
+EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE
+AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD
+E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH
+/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy
+DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh
+GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR
+tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA
+AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
+FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX
+WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu
+9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr
+gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo
+2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
+LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI
+4uJEvlz36hz1
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
+HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
+ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw
+MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
+b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
+aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp
+Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg
+nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1
+HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N
+Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN
+dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0
+HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
+BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G
+CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU
+sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3
+4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg
+8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
+pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1
+mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
+A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
+Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
+MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
+A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
+RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
+gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
+KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
+QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
+XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
+DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
+LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
+RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
+jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
+6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
+mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
+Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
+WD9f
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC
+VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ
+cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ
+BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt
+VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D
+0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9
+ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G
+A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G
+A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs
+aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I
+flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE
+BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz
+dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG
+A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U
+cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf
+qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ
+JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ
++jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS
+s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5
+HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7
+70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG
+V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S
+qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S
+5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia
+C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX
+OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE
+FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
+BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2
+KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
+Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B
+8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ
+MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc
+0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ
+u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF
+u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH
+YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8
+GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO
+RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e
+KeC2uAloGRwYQw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE
+BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
+dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL
+MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
+cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y
+YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua
+kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL
+QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp
+6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG
+yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i
+QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
+KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO
+tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu
+QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ
+Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u
+olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48
+x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE
+BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
+dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL
+MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
+cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP
+Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr
+ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL
+MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1
+yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr
+VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/
+nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
+KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG
+XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj
+vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt
+Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g
+N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC
+nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
+RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
+bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
+IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3
+MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
+LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
+YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
+A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
+K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe
+sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX
+MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT
+XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/
+HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
+4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
+HQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADub
+j1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo
+U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
+zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b
+u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+
+bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er
+fF6adulZkMV8gzURZVE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE
+BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h
+cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEy
+MzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg
+Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9
+thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM
+cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG
+L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i
+NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h
+X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b
+m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy
+Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja
+EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T
+KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF
+6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh
+OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD
+VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD
+VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
+cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBv
+ACAAZABlACAAbABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBl
+AGwAbwBuAGEAIAAwADgAMAAxADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF
+661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx51tkljYyGOylMnfX40S2wBEqgLk9
+am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qkR71kMrv2JYSiJ0L1
+ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaPT481
+PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS
+3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k
+SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF
+3dvd6qJ2gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVM
+ZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0g
+StRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/icz
+Q0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQB
+jLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl
+MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe
+U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX
+DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy
+dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj
+YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV
+OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr
+zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM
+VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ
+hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO
+ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw
+awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs
+OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
+DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF
+coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc
+okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8
+t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy
+1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/
+SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEgDCCA2igAwIBAgIBATANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UEBhMCQlIx
+EzARBgNVBAoTCklDUC1CcmFzaWwxPTA7BgNVBAsTNEluc3RpdHV0byBOYWNpb25h
+bCBkZSBUZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxNDAyBgNVBAMTK0F1
+dG9yaWRhZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVpcmEgdjEwHhcNMDgw
+NzI5MTkxNzEwWhcNMjEwNzI5MTkxNzEwWjCBlzELMAkGA1UEBhMCQlIxEzARBgNV
+BAoTCklDUC1CcmFzaWwxPTA7BgNVBAsTNEluc3RpdHV0byBOYWNpb25hbCBkZSBU
+ZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxNDAyBgNVBAMTK0F1dG9yaWRh
+ZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVpcmEgdjEwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQDOHOi+kzTOybHkVO4J9uykCIWgP8aKxnAwp4CM
+7T4BVAeMGSM7n7vHtIsgseL3QRYtXodmurAH3W/RPzzayFkznRWwn5LIVlRYijon
+ojQem3i1t83lm+nALhKecHgH+o7yTMD45XJ8HqmpYANXJkfbg3bDzsgSu9H/766z
+Yn2aoOS8bn0BLjRg3IfgX38FcFwwFSzCdaM/UANmI2Ys53R3eNtmF9/5Hw2CaI91
+h/fpMXpTT89YYrtAojTPwHCEUJcV2iBL6ftMQq0raI6j2a0FYv4IdMTowcyFE86t
+KDBQ3d7AgcFJsF4uJjjpYwQzd7WAds0qf/I8rF2TQjn0onNFAgMBAAGjgdQwgdEw
+TgYDVR0gBEcwRTBDBgVgTAEBADA6MDgGCCsGAQUFBwIBFixodHRwOi8vYWNyYWl6
+LmljcGJyYXNpbC5nb3YuYnIvRFBDYWNyYWl6LnBkZjA/BgNVHR8EODA2MDSgMqAw
+hi5odHRwOi8vYWNyYWl6LmljcGJyYXNpbC5nb3YuYnIvTENSYWNyYWl6djEuY3Js
+MB0GA1UdDgQWBBRCsixcdAEHvpv/VTM77im7XZG/BjAPBgNVHRMBAf8EBTADAQH/
+MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAWWyKdukZcVeD/qf0
+eg+egdDPBxwMI+kkDVHLM+gqCcN6/w6jgIZgwXCX4MAKVd2kZUyPp0ewV7fzq8TD
+GeOY7A2wG1GRydkJ1ulqs+cMsLKSh/uOTRXsEhQZeAxi6hQ5GArFVdtThdx7KPoV
+caPKdCWCD2cnNNeuUhMC+8XvmoAlpVKeOQ7tOvR4B1/VKHoKSvXQw2f3jFgXbwoA
+oyYQtGAiOkpIpdrgqYTeQ9ufQ6c/KARHki/352R1IdJPgc6qPmQO4w6tVZp+lJs0
+wdCuaU4eo9mzh1facMJafYfN+b833u1WNfe3Ig5Pkrg/CN+cnphe8m+5+pss+M1F
+2HKyIA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDlDCCAnygAwIBAgIBATANBgkqhkiG9w0BAQUFADBqMQswCQYDVQQGEwJJVDEP
+MA0GA1UEBwwGTWlsYW5vMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUy
+MDk2NzElMCMGA1UEAwwcQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBDQSBHMTAeFw0w
+OTA2MjMxNDA2MDBaFw0yMjA2MjUxNDA2MDBaMGoxCzAJBgNVBAYTAklUMQ8wDQYD
+VQQHDAZNaWxhbm8xIzAhBgNVBAoMGkFjdGFsaXMgUy5wLkEuLzAzMzU4NTIwOTY3
+MSUwIwYDVQQDDBxBY3RhbGlzIEF1dGhlbnRpY2F0aW9uIENBIEcxMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwxyGND8nUkJguitg0CErydfpQHU6bFgP
+IzvPhj7UZKtu2urIKtiVRd/JHNIlkp4QmFqLcWnAlen2a2jc97bEDf5u9XA7waSo
+TyCiJwuf8RJ1fM+uf17LeAJYKNcvqtugrnQ9fqv26XKhKs/WkGDf4KA1ysDbBMQH
+VvxmdYyOehOhPAZrGuZ/OZyI5IRvouJ/a5/sAarSxMuy7Jo9uBcYrB9gmTPm6wXd
+zPJpZ7AOvigkQ8stuUeEGfnq5PH1aPSfx3tQUa+i/G93iDG/ktt/nMW1rKEImOdq
+M/7RuwDhtwUIr/OmVog2PeOKSuINnYCGZp/UwqNQuhwS14eKMUq4FQIDAQABo0Uw
+QzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU
+AbvWm1a0fubFWN0smPTKcvZfM4YwDQYJKoZIhvcNAQEFBQADggEBAKEg1suiNG08
+buFV0krQ2bqyN1GIdyfuAkiTRUHidVHyGZQJoPO4fboDgCOgJe8BGbXZGnot40KK
+sYYxD5bsZoTyziMSRpZrMV4Guq+jUqpCIKjRrqqb38QXnlNwAbSpGtpoyGMPtlpz
+U9FpEQYTUudrqAUxt7D8h0bFdYiB8V94AuefrZy7VO1fmWo31etVsyrAQ2BR3LRx
+kiajD8x6PdzAQokXKQhnVGTF+ahEvIRxWJY9Z1d/u6yQs3Eivz66rGYmRRCz8B86
+OmilUDXKtBeRBgEs9w2wcLJbVnW5d5nA2ZWFAi1zZgfJT5kR7lsrqONoIwWo8wQP
+BrsfCY7GWx0=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDyzCCArOgAwIBAgIDA+aUMA0GCSqGSIb3DQEBBQUAMIGLMQswCQYDVQQGEwJB
+VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
+bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRgwFgYDVQQLDA9BLVRydXN0LVF1
+YWwtMDMxGDAWBgNVBAMMD0EtVHJ1c3QtUXVhbC0wMzAeFw0wODA0MjQyMjAwMDBa
+Fw0xODA0MjQyMjAwMDBaMIGLMQswCQYDVQQGEwJBVDFIMEYGA1UECgw/QS1UcnVz
+dCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
+a2VociBHbWJIMRgwFgYDVQQLDA9BLVRydXN0LVF1YWwtMDMxGDAWBgNVBAMMD0Et
+VHJ1c3QtUXVhbC0wMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALOe
+JIgc0s9AA0hqqqWgK72W9XwKn5+rUJDbQc5WgHkqwP2TU3qcW/NZYSSIY6PVGO6b
+hHSEnOyMPdrBhnpvNi4m6349yT6t565LdHcoKyQg/youwpVkEPZ+e8O32hF9nqvt
+L4wZohydjMwzcHUJB/5e+0CkJYwv/bVRZzqoK0yf1midYJukxWOw7nDNKD9KdOpZ
++XXFAAZuH7BjwSqqE138y9JlGzkxIlrCeSJdGfFLwr7OHIgBdPEmQXcyOcaMUGjP
+U4VDig+gj+6OC5KjAEC+wKJZXiyhRLj+HyLTDLrQ6O8p5HI3Sov4FuwiMgcqIyzz
+o9fNyqmnT3K/vBGOqBsCAwEAAaM2MDQwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4E
+CgQIRgbfN/LCNxAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBx
+CNQmRL6A4mtCtSpQ/V3ojGDznLaSgXI4sm+pPoHywzQkU6FRUsilidO83NsSudup
+sFjvwAhmMmLj4fOjWKN3bu7kobtXEWh3Mwj0zVm46l0bCcaszI0Lus3f1pq+q3YA
+rX0WS2Rc35g+a21eLHw5FVlCNyA8n8Pcf/VTNrfix6QijHq+cb1Ns2jIuKmJ/3Ew
+i8+RbfKFLqVKIn5y3tSuse0M7/xFfS3cJK3teQflrU+y6VJ0SbiMUvq9EuQZw/xR
+jRbja2huOZrfKTmlu7GhF8EX43Vq/H2xcjzfwerloxzUnVkbGnQfaSqDVCQY0+7l
+4INXvhvi0B+tbDW+jbpf
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
+MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
+IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
+MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
+FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
+bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
+H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
+uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
+mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
+a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
+E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
+WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
+VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
+Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
+cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
+IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
+AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
+YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
+Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
+c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
+mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50
+cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs
+IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz
+dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy
+NTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu
+dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt
+dGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0
+aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj
+YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T
+RU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN
+cCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW
+wcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1
+U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0
+jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN
+BgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/
+jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
+Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v
+1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R
+nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH
+VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFbjCCA1agAwIBAgIPQupbClERJnzYJ3S3339xMA0GCSqGSIb3DQEBBQUAMDMx
+CzAJBgNVBAYTAlBUMQ0wCwYDVQQKDARTQ0VFMRUwEwYDVQQDDAxFQ1JhaXpFc3Rh
+ZG8wHhcNMDYwNjIzMTM0MTI3WhcNMzAwNjIzMTM0MTI3WjAzMQswCQYDVQQGEwJQ
+VDENMAsGA1UECgwEU0NFRTEVMBMGA1UEAwwMRUNSYWl6RXN0YWRvMIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2++iQ27Iqf1u19+sopKEochZoAyaU/7v
+rswZDXKKpMIzI+/nBnLqbUs6QVIPyUgOLee6ZO6iOkxjXGYpi9+piMW96PH3jkv8
+ATxEEjkqcKLA28Wi31/HS8ao3D1hfEpYwUQyk95wmaEjJlY/o+HqXzBG2Hj1MKOW
+CYmwPfGGkwW2EmoYjfClZDsrh2RePReOC27mmMyXODggjHBaaSu9ZY3NN1lcbNFy
+dFkGTsi3Add3v/BIhqizGl1B1DcXERBfSm6NdcUDQH0hrgDw2/yfbDpmpN/3yt+A
+ZlrZ2H8UoiYZ9K4LIeDKPgXdFth+WdqhsGnDnTQT+mVJOYfudi+NvTwnGQNOrQ4L
+KyzGLnETNSlX6XDcG1HqzZfxlY2yhvomBi+AGpXxmDvu9uWGpc4bAeX06TPKD1VE
+X2iKLMdbZijdlkuDnV4dfhjV/rJg+5pRaMOWjB9oS1BSCzbmMSfk1ykMG9obL+EE
+U7jUeUmwO4FeCIgid+IpwK5yqqu0clK9bLv1unjZnLggbzCNSp0y+fQB5mJ5mEJA
+BXpvHCo/tfvfzRhAjuUQxDlbVvE8VwWr0jlNP/iLI8druUCx4v7/sxwKaR+bjA+0
+H+AK3kj9jV+PmfUBdgU2XY7cM45RbhHiQf3Mt40qXz6S5fKx4KQj4qK3xo0YmylK
+0UZ/9GQgGN0CAwEAAaN/MH0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFHF/Nd71d3FtHRKc4ZCkuvCpg4+AMDsGA1UdIAQ0MDIwMAYE
+VR0gADAoMCYGCCsGAQUFBwIBFhpodHRwOi8vd3d3LmVjZWUuZ292LnB0L2RwYzAN
+BgkqhkiG9w0BAQUFAAOCAgEAjK2ccqW1Z3ZnOIfpOoz+nVk1vpDxAwCgWNiY0b/8
+/PNQ3LRl1dq68IwufA3mCZFfTaP2XXicWF1qcJSjr9svAMkDQGvfUQMWGYwrvJk2
+9sCtkhgTjKftHdLfA5AF7LCTmJv3TVoT+Oeb9zZ23nwm+BE4T0lOs3MfXydb4Z4y
+HvbAmBvZICxclo2GyQtF15Ktir3qV6KjVrYgPOyyxzl+sID+vVErKrTDcmnD+Ucu
+bv+ch+3cdcsQiOC0zi4OUx0L6G4eQkzQvjl4dckU3ieRc6rsaoDw8BeWYk++BMvi
+p+VdD5NFy1lIJhPe3bH1CtoWsagdj35YG7fVCd6Ia86EPqi+UmLK0qGhx8s8FuB2
+VjA/5g9rBnf+ZJ1aanN87t4h6ZpJlze2hH+ikT5F+9daBsWHNdy6SEyGAQhHNrY4
+UJURmXPRN0kK+kJPLxBU00GQ+sjcuxHcDcx9fJvcDpFxhk248hWaKzgXEaHynqhs
+nOPOruLmS4vyigY7B3cCEe6D6p1mhsrwYqnVV4OkFfFFFP4adX+lD9xSdFl1Cvj7
+VUGpXI0xRN3NlE4z0RtBqtvXoTzwxUhtRUE1tXmD5vlN8VY4179AIvsggOMcwllG
+B2MCYQA7m1C7Q8Ow6QqauHb0R2FVZHBPN9mcEaMTsuHdQEK7mNegBovmaFdLDjho
+f7o=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHHzCCBgegAwIBAgIESPx+9TANBgkqhkiG9w0BAQUFADCBrjESMBAGCgmSJomT
+8ixkARkWAnJzMRUwEwYKCZImiZPyLGQBGRYFcG9zdGExEjAQBgoJkiaJk/IsZAEZ
+FgJjYTEWMBQGA1UEAxMNQ29uZmlndXJhdGlvbjERMA8GA1UEAxMIU2VydmljZXMx
+HDAaBgNVBAMTE1B1YmxpYyBLZXkgU2VydmljZXMxDDAKBgNVBAMTA0FJQTEWMBQG
+A1UEAxMNUG9zdGEgQ0EgUm9vdDAeFw0wODEwMjAxMjIyMDhaFw0yODEwMjAxMjUy
+MDhaMIGuMRIwEAYKCZImiZPyLGQBGRYCcnMxFTATBgoJkiaJk/IsZAEZFgVwb3N0
+YTESMBAGCgmSJomT8ixkARkWAmNhMRYwFAYDVQQDEw1Db25maWd1cmF0aW9uMREw
+DwYDVQQDEwhTZXJ2aWNlczEcMBoGA1UEAxMTUHVibGljIEtleSBTZXJ2aWNlczEM
+MAoGA1UEAxMDQUlBMRYwFAYDVQQDEw1Qb3N0YSBDQSBSb290MIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqPK9iL7Ar0S+m0qiYxzWVqsdKbIcqhUeRdGs
+naBh1TX55FqDNmND3jhXFfzwlGL0B4BXg1eosxW8+00jeF/a9seBFr6r3+fcg1Nz
+K7bdY4iNRfMN3X2/6IiwZsFDXTfSbaGcmkbDsz/QwqCKlC6DpjzDYL0szB6LY4J2
+QSjkFWtcDGE5VThByshm6Me4l1IQJnC3B7cJHqYTXq6ZWiZvZD3sxNOluVx2ZK1j
+fYiD4kvMDd7UxtMIQvVbF/Vx4ZEtA5+eHNyLcqToR2QQh2Qwc9jytPFXJpNXy7bH
+DYiLHc8FMF0E1nY36CAyV78PnDPGCIz2tMKpBrBbMKEeLRK6PwIDAQABo4IDQTCC
+Az0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgboGA1UdIASBsjCB
+rzCBrAYLKwYBBAH6OAoKAQEwgZwwMAYIKwYBBQUHAgEWJGh0dHA6Ly93d3cuY2Eu
+cG9zdGEucnMvZG9rdW1lbnRhY2lqYTBoBggrBgEFBQcCAjBcGlpPdm8gamUgZWxl
+a3Ryb25za2kgc2VydGlmaWthdCBST09UIENBIHNlcnZlcmEgU2VydGlmaWthY2lv
+bm9nIHRlbGEgUG9zdGU6ICJQb3N0YSBDQSBSb290Ii4wEQYJYIZIAYb4QgEBBAQD
+AgAHMIIBvAYDVR0fBIIBszCCAa8wgcmggcaggcOkgcAwgb0xEjAQBgoJkiaJk/Is
+ZAEZFgJyczEVMBMGCgmSJomT8ixkARkWBXBvc3RhMRIwEAYKCZImiZPyLGQBGRYC
+Y2ExFjAUBgNVBAMTDUNvbmZpZ3VyYXRpb24xETAPBgNVBAMTCFNlcnZpY2VzMRww
+GgYDVQQDExNQdWJsaWMgS2V5IFNlcnZpY2VzMQwwCgYDVQQDEwNBSUExFjAUBgNV
+BAMTDVBvc3RhIENBIFJvb3QxDTALBgNVBAMTBENSTDEwgeCggd2ggdqGgaNsZGFw
+Oi8vbGRhcC5jYS5wb3N0YS5ycy9jbj1Qb3N0YSUyMENBJTIwUm9vdCxjbj1BSUEs
+Y249UHVibGljJTIwS2V5JTIwU2VydmljZXMsY249U2VydmljZXMsY249Q29uZmln
+dXJhdGlvbixkYz1jYSxkYz1wb3N0YSxkYz1ycz9jZXJ0aWZpY2F0ZVJldm9jYXRp
+b25MaXN0JTNCYmluYXJ5hjJodHRwOi8vc2VydGlmaWthdGkuY2EucG9zdGEucnMv
+Y3JsL1Bvc3RhQ0FSb290LmNybDArBgNVHRAEJDAigA8yMDA4MTAyMDEyMjIwOFqB
+DzIwMjgxMDIwMTI1MjA4WjAfBgNVHSMEGDAWgBTyy43iNe8QQ8Tae8r664kDoSKv
+uDAdBgNVHQ4EFgQU8suN4jXvEEPE2nvK+uuJA6Eir7gwHQYJKoZIhvZ9B0EABBAw
+DhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4IBAQBwRqHI5BcFZg+d4kMx
+SB2SkBnEhQGFFm74ks57rlIWxJeNCih91cts49XlDjJPyGgtNAg9c6iTQikzRgxE
+Z/HQmpxpAeWR8Q3JaTwzS04Zk2MzBSkhodj/PlSrnvahegLX3P+lPlR4+dPByhKV
++YmeFOLyoUSyy+ktdTXMllW7OAuIJtrWrO/TUqILSzpT2ksiU8zKKiSaYqrEMpp+
+3MzBsmzNj9m0wM/1AsCMK4RbG0C8ENBQ4WHWZlaaBJGl49W9oC4igbHZONrkqIdf
+PEYElt7Jmju/rXhsHUlJtGm5cA8Fkla2/a+u+CAtRyPPthzNxJuATvm/McBUvrsx
+f/M+
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFhDCCA2ygAwIBAgIQAIG73WskH9q0vo8b2ghVxDANBgkqhkiG9w0BAQUFADA7
+MQswCQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xGTAXBgNVBAsMEEFDIFJB
+SVogRk5NVC1SQ00wHhcNMDgxMDI5MTU1OTU1WhcNMzAwMTAxMDAwMDAwWjA7MQsw
+CQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xGTAXBgNVBAsMEEFDIFJBSVog
+Rk5NVC1SQ00wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6cYB6TIZu
+f8gTbcDGfRwAl48sDCO7EJpAqRq3h4j4m1Zq++Z7jouSjqclXVkR2zYut1EXH6kI
+HwQXJFiqN0oY3+U51Ff918EskQGR4iLUA8BY/HdH7I8+dEO6rDSNTTh2Z46wyG8w
+M1hxXLT1a27UAVC4E35sSqNJ0SAZ7rzAKRhlp97+790KkCHnGmeSQhCYX08wvD4c
+RbQQ12hAFMBA+ud3F3rmC49lWzzZmlLbtb2eRs8965EFAsCWsnZMTRCWO5L6nH8P
+md++IzVFHgJc/rWom5kl2l7zIsM59eQqLtPGH8RsqsUcagEFSi/SxcGoNCZdZqXS
+AiH5GLcG9U6Zb6irTFHoz1AYxXfIOQksSZIymai7Fxd5sFrF5qPEWWVHNYNeqeg1
+C5m75M0gxptKBjm1aPwiuu5VjCtO6vOx4/y2mZrVQvpxTQjPhx5qcX3507TppXGB
+e8JOR5al9naFoyiP6YBugVOlbV+4SPnC+TamLkn/uJbCjAezm4hY/OsbHN4tcOKX
+kjChieO8Vagn1kvtkK2L+mMlWS2oNd3KlzO85c3HndHs714OSpAGJmOtudk1LQe6
+dmUsrFePffQHlNeBApZdowdJ1XrQV/kb51NGdaqweULLaHEI6WC9OWnO9K/DVkDH
+rVKiCeRvhkeKH+soJ12DIK8EyWxWmotG9QIDAQABo4GDMIGAMA8GA1UdEwEB/wQF
+MAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBT3fcX9xOiaG3dkp/UdoMy/
+h2CabTA+BgNVHSAENzA1MDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cDovL3d3
+dy5jZXJ0LmZubXQuZXMvZHBjcy8wDQYJKoZIhvcNAQEFBQADggIBAHa5Jte8YHw7
+w8eEUZJZebaNv1PgvIigtdlM6a31Zk7voGDIC7iR7TOOgvGGlf7G0xqJq0872TMf
+0AvHsfVPpEu7AwwjXGyw3qxy+mneABDN8dbPNlK+f/wmQfPy/DDiMcbbED6pdLpP
+7O0gmcmw4qKjqUKZM8t/96oC6SSWKvjkzl1BoAYJVVra3xpP6zn8X+CpqUTXGOqV
+sUR72uo4CXQeZyg/4Is5LFP6DOA59ysaDjEB1GZ5iHSdSEiOtJNh5r8pCe++Bqka
+bAhwBAq/bgl2pGRDzh9XnZeebPh0FxxRA/pgU9RWRpbQUJ/GnTPzQ7Go16LJsMmD
+sX3H3KyBdteJ7UMm1v+iXKItoCRHqkaaaTEJwf0QebCF7HAg5j1BVKJKYi/W3kzD
+nI+9y6ZVlBzdvUHPKGWN0E3Xh9FM00NzIezXLhdnMoe20Bt0qmnH5GyH130Zmuw9
+RPGqgllyzUXb2mZC4ThsNl9U3SZWV6LZPqQK8u/8GYAf27qqgLzYUc1UatV/2G+1
+3Bb7QOJVVJDD3Ycz0f8epWKLNkSsqL/A1sSUd7O9xHUkaen/OZSr/FFnJOpAHuuJ
+LRMGfa4HocMM9dRask63IR0XxeW58h/jhgFdCwZ5XcnKPxZ+gR5NfvCaPCXFznR5
+nkrh8en1JUb2xN7kRGRzHcY5PnrmhXsY
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW
+MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
+Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9
+MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
+U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
+cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
+pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
+OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
+Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
+Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
+HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
+Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
++2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
+Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
+26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
+AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
+FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j
+ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js
+LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM
+BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0
+Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy
+dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh
+cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh
+YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg
+dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp
+bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ
+YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT
+TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ
+9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8
+jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW
+FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz
+ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1
+ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L
+EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu
+L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
+yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC
+O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V
+um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh
+NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES
+MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU
+V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz
+WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO
+LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE
+AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH
+K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX
+RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z
+rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx
+3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq
+hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC
+MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls
+XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D
+lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn
+aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ
+YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFezCCA2OgAwIBAgIBATANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQGEwJUVzES
+MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU
+V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDc0NzEz
+WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO
+LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQDLAQxkgbtQSJnzHNkgsIukhxL3rk/OXnPLqIYV4hz5mWMG2hzWCrz+lLreYIFo
+nLLyS3cB2rcbxvn1YJAgePwxSj41d8AaHoxZVXhVcEGSCZsCSsNvrAuY6bJSfZp/
+v10fA4dC/cMc6mMwZdG1jpxpWmvuM42vuvpjJFCJLckFHmzrjl6OAUihgMM4RStO
+H/QiwvguSnZ+6s6c0RiHV/a2+u3MkFWOgMo1udpkZRbM6WRRWT77is6AsKWSRWP9
+m5YAvFxeho7FSd8UqMmRm3j3HIwmhmia+YHDgXs9M9sQXj0EadZm4K453Ini5ib7
+UX97qAlrhyY4zdmNLZ49yrHzK5v9Ru2B28+FIb7ARcnlid12l7+0gUQpO7eYFzTy
+uKqasHtBVSbBPLQkl5atG482cbcr87aDAjD6sgoTvEu2D/mjnWNuIlDTKNxfNgc8
+KaxFaOoiQF0/CccKMo/KtOXo19fKi2T/b2Ul7A10qLUcGibmKLJyzs36xCRKNxLi
+2LcJzqwuJz3CFOvqMIw3ynMZhYmzu/s4Qx15paWLGSSgphJSGv7RV8GdEnudldZs
+e0odwa4VAk0sY6B1Jz/+8gAgMkrlsawuE+BIpvROkVQM2XRYPhF17fqcwqq7SH/L
+9l9cJrAJh3rE/Zx+rzNnQlcWU/7xPUNAUoq2NXFP/AE85QIDAQABo0IwQDAOBgNV
+HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyERa/n/9qZuG
+Nb7ipfYZ+16/b1kwDQYJKoZIhvcNAQELBQADggIBABKL3dUInShvCPGJVm1AB6v7
+4QioBKS+132FrlpYtmdMAWnNrIs2jlz9OzYB+dWheyh6TISTzcQLGfASBIlNj+2g
+mSWFuyyVmWww7W0Eb+Yr+4kQu0yTDL6T1dYJhJMAcM/OxXga7VVU3y8OWVj4NYWu
+T/gh0pLeIbqZ0ZfxYJ6sREOnYK+J4lHSOYkQlBXPBNIhgu/K7WkVTxmrvJNqmQHg
+AtEcOp0xyvX7xPZNmrsgjD9vcTJ/J0tEf4FR6ZMbYg6kh1893VRAuSSXYleVjscQ
+kaeYxVhCUKmWHOVKtray3E6R8oDSkehQCNMWQIkPaBOuw1xXFxMX7TMdsuqR9qou
+cURAibLgZr2xvRc9TT0PVzklZQRqKoPbOLXOv+QA100oN5CoqabksVXwys/jDGov
+R5a31OTvyDcDPH/rgZKKKmmYHQE7SIota6/lz7K03dZneoABCwRXJbZlQg9J4SPK
+QKrCLPyFr2UYqgcx2y2u68Nx5mjfN5f5mj/xJV7w31fp/BLgOQaHdN1jk2uBxPPg
+2wkU2L+/QG9xgSZo96WFF0BSA75ckxTlQVIVd7w1oUdzKgyXXIzeMTxjjPCbX1RP
+0uJbbDwcw+c0ZnOmQaMgMkR7zeq8aZf9Q3AxvDKComWYo0Avakb0AFAuVeDbek7g
+bcho4VTolYMYvvrNjx1m
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
+ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln
+biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
+U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG
+A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp
+U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg
+SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln
+biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm
+GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve
+fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw
+AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ
+aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj
+aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW
+kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC
+4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga
+FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp
+IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi
+BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw
+MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
+d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig
+YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v
+dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/
+BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6
+papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K
+DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3
+KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox
+XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL
+MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj
+KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2
+MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV
+BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw
+NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV
+BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
+MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL
+So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal
+tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
+BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG
+CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT
+qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz
+rD6ogRLQy7rQkgu2npaqBA+K
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB
+vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W
+ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
+Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX
+MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0
+IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y
+IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh
+bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF
+9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH
+H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H
+LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN
+/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT
+rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud
+EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw
+WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs
+exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
+DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4
+sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+
+seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz
+4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+
+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR
+lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3
+7M2CYfE45k+XmCpajQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB
+rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
+BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa
+Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl
+LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u
+MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl
+ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm
+gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8
+YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf
+b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9
+9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S
+zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk
+OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
+HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA
+2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW
+oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
+t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c
+KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM
+m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu
+MdRAGmI0Nj81Aa6sY6A=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB
+mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
+MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ
+BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
+MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0
+BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz
++uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm
+hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn
+5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W
+JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL
+DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC
+huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
+HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB
+AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB
+zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN
+kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
+AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH
+SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G
+spki4cErx5z481+oghLrGREt
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF4DCCA8igAwIBAgIQLu/b+9iJPY9JHJNy/kXf7TANBgkqhkiG9w0BAQUFADBQ
+MQswCQYDVQQGEwJMVjEoMCYGA1UECxMfU2VydGlmaWthY2lqYXMgcGFrYWxwb2p1
+bXUgZGFsYTEXMBUGA1UEAxMORS1NRSBTU0kgKFJDQSkwHhcNMDkwNTE5MDg0NTU2
+WhcNMjcwNTE5MDg0ODE1WjBQMQswCQYDVQQGEwJMVjEoMCYGA1UECxMfU2VydGlm
+aWthY2lqYXMgcGFrYWxwb2p1bXUgZGFsYTEXMBUGA1UEAxMORS1NRSBTU0kgKFJD
+QSkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDEBGsAw7DgLjvoUwUF
+CL7IhCdV1h2KEuIXIlps/7PdtpnDysHq+dgltd86nZ0/UsXp8qy/iXSKVK5Oz27y
+Xq7avRIHmZXPZKv+mZFkWYzJvkRqMZuY6rrq0SEOKAs5m+PWiqb3Aro/PdlZ9HmZ
+3tMkm4twGyqE1uUJDyYmJFiPJV7zxZ10iaU2xeVSsuvohpNHbqcph6R+3LSjyzJW
+90WA2lzHL6Cn1+/1/LWozYSVYvipKyM7bdO3ksjqwbwUTehrnBZ60+wH+wclEE8U
+h3uSNs5WgmVLEyYG2KOjpt/Cevt7NQWiEz0+drwcV4MDUcc03lr1PL02JZwWD03O
+6A0ay11DohRvunxg1AKFdsVrKrhFsVx3RxGtoCWpZpGMURdtYVUKGT+bAv/E9dbS
+s+klU+EEPY8i0KJl5a6ntOAdkWrChpL3Ol0Tp3pMQt9as0qIRCzvR7qpr9bPYnOK
+BiIWLMLsHwao00dQWTIS5bmdYjWeyl4KtJ0jiMLTTywsyZPofrgJ7KbZ3WPhyahq
+aNyEUaxaEuc7prUHCrGqTrO0olffN2wWTquZMnrwnCMli8qaqIzgOCG0zvdsYcji
+DBJZBoEmNloPNXPUFkX93pXe1ktcn3PZvhm957/kVWrIa0T3x7gziHkZDQZk6K8L
+oXUMUmW6CiOVcfdj/H7ljI/M0QIDAQABo4G1MIGyMA4GA1UdDwEB/wQEAwIBBjAY
+BggrBgEFBQcBAwQMMAowCAYGBACORgEBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+BBYEFDsmA7rP41lGQlCtFJy/Azvv1j4xMBAGCSsGAQQBgjcVAQQDAgEAMEQGA1Ud
+IAQ9MDswOQYLKwYBBAGB+j0BAQEwKjAoBggrBgEFBQcCARYcaHR0cDovL3d3dy5l
+bWUubHYvcmVwb3NpdG9yeTANBgkqhkiG9w0BAQUFAAOCAgEAheamlOTZRl+dv5O7
++Wt2ZCiuvzxFKoqTeWzTS4iGIGsiJjg9HBOq62GXbC4+V5xsQ6LebUDEMfJtukYW
+sy3Gu6bc5S+x2MHVkR4Rf/tfodwdYfhtm2Hw4j8rcdUNy97fZT+gb5WbesvbNTcp
+XV6duVSxrGAS5WPZza9SGwWWE3zaJHUBrdSepcvBEkVPV68jvym86o6tePiHI+hI
+y0Covl0z1uzGBkPCZyro44UuYJ5ELytPMbEHnZUh1SqSr4CR08cpvc3xFQyfAe74
+LTukB3BJeSTtvKHTllGCn8LIvN4jmsdQK5q2eFKqzpX2YDuimfkmZvRHLEElvEH6
+1ot/vV+CfNNFhbRM2OyzF+9EOvUoZe/1nnHMId7o1lEcEPtA/EnlXIQXr6oZXqLt
+Th6i+8pHHBxkPhSRojkZNIh/kcs7nRlw6ij7/FAPzL09XgIDa3k1REF27rYtdITh
+gnHTJbDTw5lEqz/iDKXuvab8pBEA7py9N9HWYsQwFC0QCpeKiPUlPJa+RkAaisCF
+dsSgSeBJpecZtQnzzE3tFl6a1NPIadDYijeFa07kqgeSXNRxcYFI03j1VmD+zALU
+AJMfTJJAl75yU3kuJlK+pqN0sZTZFGM6blvRPJInUpAyWpLSD05bCwY6YuXWJwwB
+9iUCuIsQKUKp92nK3OsKkksoMYY=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UE
+AwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00x
+CzAJBgNVBAYTAkVTMB4XDTA4MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEW
+MBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZF
+RElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHkWLn7
+09gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7
+XBZXehuDYAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5P
+Grjm6gSSrj0RuVFCPYewMYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAK
+t0SdE3QrwqXrIhWYENiLxQSfHY9g5QYbm8+5eaA9oiM/Qj9r+hwDezCNzmzAv+Yb
+X79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbkHQl/Sog4P75n/TSW9R28
+MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTTxKJxqvQU
+fecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI
+2Sf23EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyH
+K9caUPgn6C9D4zq92Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEae
+ZAwUswdbxcJzbPEHXEUkFDWug/FqTYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAP
+BgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz4SsrSbbXc6GqlPUB53NlTKxQ
+MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU9QHnc2VMrFAw
+RAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
+bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWIm
+fQwng4/F9tqgaHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3
+gvoFNTPhNahXwOf9jU8/kzJPeGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKe
+I6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1PwkzQSulgUV1qzOMPPKC8W64iLgpq0i
+5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1ThCojz2GuHURwCRi
+ipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oIKiMn
+MCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZ
+o5NjEFIqnxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6
+zqylfDJKZ0DcMDQj3dcEI2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacN
+GHk0vFQYXlPKNFHtRQrmjseCNj6nOGOpMCwXEGCSn1WHElkQwg9naRHMTh5+Spqt
+r0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3otkYNbn5XOmeUwssfnHdK
+Z05phkOTOPu220+DkdRgfks+KzgHVZhepA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFlDCCBHygAwIBAgIBATANBgkqhkiG9w0BAQUFADCCATExFzAVBgNVBAcTDkFs
+dmFybyBPYnJlZ29uMRkwFwYDVQQIExBEaXN0cml0byBGZWRlcmFsMQswCQYDVQQG
+EwJNWDEOMAwGA1UEERMFMDEwMzAxHTAbBgNVBAkTFEluc3VyZ2VudGVzIFN1ciAx
+OTQwMUIwQAYDVQQDEzlBdXRvcmlkYWQgQ2VydGlmaWNhZG9yYSBSYWl6IGRlIGxh
+IFNlY3JldGFyaWEgZGUgRWNvbm9taWExNDAyBgNVBAsTK0RpcmVjY2lvbiBHZW5l
+cmFsIGRlIE5vcm1hdGl2aWRhZCBNZXJjYW50aWwxHzAdBgNVBAoTFlNlY3JldGFy
+aWEgZGUgRWNvbm9taWExJDAiBgkqhkiG9w0BCQEWFWFjcnNlQGVjb25vbWlhLmdv
+Yi5teDAeFw0wNTA1MDgwMDAwMDBaFw0yNTA1MDgwMDAwMDBaMIIBMTEXMBUGA1UE
+BxMOQWx2YXJvIE9icmVnb24xGTAXBgNVBAgTEERpc3RyaXRvIEZlZGVyYWwxCzAJ
+BgNVBAYTAk1YMQ4wDAYDVQQREwUwMTAzMDEdMBsGA1UECRMUSW5zdXJnZW50ZXMg
+U3VyIDE5NDAxQjBABgNVBAMTOUF1dG9yaWRhZCBDZXJ0aWZpY2Fkb3JhIFJhaXog
+ZGUgbGEgU2VjcmV0YXJpYSBkZSBFY29ub21pYTE0MDIGA1UECxMrRGlyZWNjaW9u
+IEdlbmVyYWwgZGUgTm9ybWF0aXZpZGFkIE1lcmNhbnRpbDEfMB0GA1UEChMWU2Vj
+cmV0YXJpYSBkZSBFY29ub21pYTEkMCIGCSqGSIb3DQEJARYVYWNyc2VAZWNvbm9t
+aWEuZ29iLm14MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwWSg9OdS
+cLLqkxP0NTof6jocxRuLWOGW1gJBXo6FQP9BZkBT/Ji10TIyl2dAgJ3uID8OVPtC
+B/t3GpnYhvQcKogl8+lEo07+B76xyO88jYfgHspJEDso7yRRofyIF0rnHMhUZ2Po
+ajHmQ2z2QBGGxFbuvckdpkY8HkbCgo0uqejudgpD4HJNjPTFBvosAQAzYM44cDRr
+FxrremRhp5OkZWrXI8d2epRRC+yeqM87olAyHEK9Y+GHy7mFSA7A1Vi29s5L8gfP
+4wTVH8LWo26ju7a3bsTxoh8WvLYtsO/0Wpspjbzh/AdbHgkzgnjMQG1xs2MTL9NM
+Nqw5T8bBsLb1hQIDAQABo4GyMIGvMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9h
+Yy5lY29ub21pYS5nb2IubXgvbGFzdC5jcmwwRwYDVR0gBEAwPjA8Bghgg2RlCoI8
+ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vYWMuZWNvbm9taWEuZ29iLm14L2Nwcy5o
+dG1sMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMBEGCWCGSAGG+EIBAQQE
+AwIABzANBgkqhkiG9w0BAQUFAAOCAQEATCp4UwSWc2CrNazAxOPnyHClKS+HGOWo
+gt4H1Qj0z549nvxKLBZ8n6KdZRDMwRubamfasrMd/81kejhjrUj983Lh+p+7V92/
+zMJU2JU8ZtdrBrqvqeBtCO+ktpA9DG4gF6eWp3xoSpyYxAdvwQJikTibneOKeVOd
+nyR2JfatKFYGqu8HrLr2bOQlMX2IgDp4Rvh54TjgE+dhKUfzyxQA09ri3e1z30vy
+Y+Qm2HXQTUMUkBaURwH/oVlL5HabWQPe1hf2e9dc+Onjb8hO4EcmseKcfEox5WQR
+4LBf2pE2SB/6CYplaPUOwp/vuGrPd/4S7TbaETatGWrC1I5S12jvMQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGGjCCBAKgAwIBAgIQAMoieQgjKvD1griF02Pd8TANBgkqhkiG9w0BAQUFADB/
+MQswCQYDVQQGEwJVWTErMCkGA1UECgwiQURNSU5JU1RSQUNJT04gTkFDSU9OQUwg
+REUgQ09SUkVPUzEfMB0GA1UECwwWU0VSVklDSU9TIEVMRUNUUk9OSUNPUzEiMCAG
+A1UEAwwZQ29ycmVvIFVydWd1YXlvIC0gUm9vdCBDQTAeFw0wODA3MTQxNjUyMTVa
+Fw0zMDEyMzEwMjU5NTlaMH8xCzAJBgNVBAYTAlVZMSswKQYDVQQKDCJBRE1JTklT
+VFJBQ0lPTiBOQUNJT05BTCBERSBDT1JSRU9TMR8wHQYDVQQLDBZTRVJWSUNJT1Mg
+RUxFQ1RST05JQ09TMSIwIAYDVQQDDBlDb3JyZW8gVXJ1Z3VheW8gLSBSb290IENB
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsT3SpyVwl4N4DtcyyWYO
+eCPkKhvsw+9ThYO7ys9+6lOZbSdVyNE4IUBuSU3DPfYJKwYZQ6mYyQFO9KqAMAdV
+8/W3fZm3c4XVHGVWbA0ymwgONGEqQAmEN8Nm7Q1MnAx4QDrs7avMpITydTGVQKiq
+u5O1d5hs8sjgIVoj5EKnk8ioHTjOpBpAQL88k5CbX9aUwSJbRtfFABXVj8b33guv
+bosFj1uAlQ6jvZPMkPJ940h+ss0HPRvtFJB08900H3zkA1nxLc3go6A7IS5crqwI
+BlAVMTXuX/kfDTSlgG5ick/jIbo4QF1f22gqXDTGCDv2fC6ojcS3pq3Zm78ZQQ5I
+OQlmbg00AcW7BxEjpNr+YJYoR9yPZ5sTr315DnjNwIwvuyEs/HQWHt7AMp36eDqG
+uj7JeAoA0eTgyRLiW9zru4CaMjWr8DDDDkiEL40ICvYsjE0ygEVVCNvNDai/CHq4
+52hdmpSJlbz8mo64fzrYbNX0GKxp4qTBC7Mfo4Kf84o8hUA4CfrCBT7hnIn6wwVs
+CI9dUfR/u8TzbAG9PU/EGYs52crM6XmIBFWrbbjaFkVlORUFGPsLLHMB7ZRS5X0M
+ATsJoE3xPQiBZjQ2F0TwZ/Nb8gW2IZhY2fShN9lv5u9WxPu/VmICrDAwtgLW0hb8
+TuqHQ5poXYijkUYoK785FRUCAwEAAaOBkTCBjjAPBgNVHRMBAf8EBTADAQH/MA4G
+A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfbtp64hh4UDPRyNkAIaiZmvchJUwTAYD
+VR0gBEUwQzBBBgRVHSAAMDkwNwYIKwYBBQUHAgEWK2h0dHA6Ly93d3cuY29ycmVv
+LmNvbS51eS9jb3JyZW9jZXJ0L2Nwcy5wZGYwDQYJKoZIhvcNAQEFBQADggIBAFbf
+E4m+YrcOgSFzpNQ3yu23L5V014n4S0eB7mftuCnfIaD8VGdnyFcsW6EKdXghIcqg
+qN9rnNk2Ao24AcFvjntsyaSyxUapykwCgfqje509SObKQGbSRJ124FW5ppyn0UPY
+9aC0nfj35aamQvMCMllGcisU7F5l1VGBeM6qL42WiXlq+w/IW8+0rpC2X+N8Ymy3
+pv+QgbWYkXMSMK/H6IECaHMpu1h1PbfWQ9WuTfJCufDf2jEAE9rhs7YGi1v9yZi4
+ohPRuo/BihqeD/+CvgSC5SuTPh61ogwbxhqwc4l2g7yOO7sXbRTDi759FSa1qZwX
+elB6LevpmZSumBC97ipdXdaONFusHodga5jHh4/TnLJoBUkH+akxZpz+v6dZ6Czw
+NtTyqBmCwJ6nOfmxmDSjH/rNyRkteN63/WLwk6P+AFvWCuTzfnyXKOEF7AU0RRP/
+KRNhiidP27jSkiEntYh3Z6h+zyQ8hwgEM3OPC7aG+M/vsqYkHguRkQBQFjIS2Akl
+2mNO3dst1+cEa+NjH6n+qQFjxMpMFGiDvAWsWRb7bqEHb7tLvm2YSHYle0oRllQI
+rKnzN6uDw9HNgZjA5UA1uJ+R52/mSyAWilN7rDrRmDVU0NS/rn6aSx7pdaMlsDvn
+Zb9PlfQdvcS6yU2BUcI/WtkS9CEb1pXqPZD+qZPi
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr
+MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG
+A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0
+MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp
+Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD
+QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz
+i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8
+h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV
+MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9
+UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni
+8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC
+h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD
+VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB
+AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm
+KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ
+X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr
+QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5
+pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN
+QSdJQO7e5iNEOdyhIta6A/I=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
+VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
+IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
+MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJz
+IG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDcz
+MTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBj
+dXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIw
+EAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEp
+MCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G
+CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW9
+28sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJq
+VKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072Q
+DuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR
+5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfL
+ZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05a
+Sd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esHnFIbAURRPHsl18Tl
+UlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2wsWsSaR6s
++12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5
+Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
+ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAx
+hduub+84Mxh2EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNV
+HQ4EFgQU+SSsD7K1+HnA+mCIG8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1
++HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpN
+YWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t
+L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVy
+ZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAt
+IDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV
+HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20w
+DQYJKoZIhvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwW
+PJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF
+5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1
+glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaH
+FoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2
+pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MD
+xvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QG
+tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq
+jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De
+fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
+OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ
+d0jQ
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD
+VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
+IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
+MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
+aGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMxNDBaFw0zODA3MzEx
+MjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3Vy
+cmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAG
+A1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAl
+BgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI
+hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xed
+KYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7
+G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2
+zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4
+ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyG
+HoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2
+Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3V
+yJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al/3K1dh3e
+beksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r
+6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
+wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsog
+zCtLkykPAgMBAAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQW
+BBS5CcqcHtvTbDprru1U8VuTBjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDpr
+ru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJp
+ZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJmaXJtYS5jb20vYWRk
+cmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJmaXJt
+YSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiC
+CQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow
+KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI
+hvcNAQEFBQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZ
+UohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXoz
+X1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/x
+fxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVz
+a2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yyd
+Yhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMd
+SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O
+AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso
+M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge
+v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
+09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM
+MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D
+ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU
+cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3
+WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg
+Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw
+IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH
+UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM
+TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU
+BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM
+kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x
+AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV
+HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y
+sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL
+I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8
+J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY
+VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
+03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJD
+TjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2
+MDcwOTE0WhcNMjcwNDE2MDcwOTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMF
+Q05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzDo+/hn7E7SIX1mlwh
+IhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tizVHa6
+dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZO
+V/kbZKKTVrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrC
+GHn2emU1z5DrvTOTn1OrczvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gN
+v7Sg2Ca+I19zN38m5pIEo3/PIKe38zrKy5nLAgMBAAGjczBxMBEGCWCGSAGG+EIB
+AQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscCwQ7vptU7ETAPBgNVHRMB
+Af8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991SlgrHAsEO
+76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnK
+OOK5Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvH
+ugDnuL8BV8F3RTIMO/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7Hgvi
+yJA/qIYM/PmLXoXLT1tLYhFHxUV8BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fL
+buXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2G8kS1sHNzYDzAgE8yGnLRUhj
+2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5mmxE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDoTCCAomgAwIBAgIQKTZHquOKrIZKI1byyrdhrzANBgkqhkiG9w0BAQUFADBO
+MQswCQYDVQQGEwJ1czEYMBYGA1UEChMPVS5TLiBHb3Zlcm5tZW50MQ0wCwYDVQQL
+EwRGQkNBMRYwFAYDVQQDEw1Db21tb24gUG9saWN5MB4XDTA3MTAxNTE1NTgwMFoX
+DTI3MTAxNTE2MDgwMFowTjELMAkGA1UEBhMCdXMxGDAWBgNVBAoTD1UuUy4gR292
+ZXJubWVudDENMAsGA1UECxMERkJDQTEWMBQGA1UEAxMNQ29tbW9uIFBvbGljeTCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJeNvTMn5K1b+3i9L0dHbsd4
+6ZOcpN7JHP0vGzk4rEcXwH53KQA7Ax9oD81Npe53uCxiazH2+nIJfTApBnznfKM9
+hBiKHa4skqgf6F5PjY7rPxr4nApnnbBnTfAu0DDew5SwoM8uCjR/VAnTNr2kSVdS
+c+md/uRIeUYbW40y5KVIZPMiDZKdCBW/YDyD90ciJSKtKXG3d+8XyaK2lF7IMJCk
+FEhcVlcLQUwF1CpMP64Sm1kRdXAHImktLNMxzJJ+zM2kfpRHqpwJCPZLr1LoakCR
+xVW9QLHIbVeGlRfmH3O+Ry4+i0wXubklHKVSFzYIWcBCvgortFZRPBtVyYyQd+sC
+AwEAAaN7MHkwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+BBYEFC9Yl9ipBZilVh/72at17wI8NjTHMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJ
+KwYBBAGCNxUCBBYEFHa3YJbdFFYprHWF03BjwbxHhhyLMA0GCSqGSIb3DQEBBQUA
+A4IBAQBgrvNIFkBypgiIybxHLCRLXaCRc+1leJDwZ5B6pb8KrbYq+Zln34PFdx80
+CTj5fp5B4Ehg/uKqXYeI6oj9XEWyyWrafaStsU+/HA2fHprA1RRzOCuKeEBuMPdi
+4c2Z/FFpZ2wR3bgQo2jeJqVW/TZsN5hs++58PGxrcD/3SDcJjwtCga1GRrgLgwb0
+Gzigf0/NC++DiYeXHIowZ9z9VKEDfgHLhUyxCynDvux84T8PCVI8L6eaSP436REG
+WOE2QYrEtr+O3c5Ks7wawM36GpnScZv6z7zyxFSjiDV2zBssRm8MtNHDYXaSdBHq
+S4CNHIkRi+xb/xfJSPzn4AYR4oRe
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO
+TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh
+dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oX
+DTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl
+ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv
+b3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ5291
+qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8Sp
+uOUfiUtnvWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPU
+Z5uW6M7XxgpT0GtJlvOjCwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvE
+pMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiile7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp
+5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCROME4HYYEhLoaJXhena/M
+UGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpICT0ugpTN
+GmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy
+5V6548r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv
+6q012iDTiIJh8BIitrzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEK
+eN5KzlW/HdXZt1bv8Hb/C3m1r737qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6
+B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMBAAGjgZcwgZQwDwYDVR0TAQH/
+BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcCARYxaHR0cDov
+L3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqG
+SIb3DQEBCwUAA4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLyS
+CZa59sCrI2AGeYwRTlHSeYAz+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen
+5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwjf/ST7ZwaUb7dRUG/kSS0H4zpX897
+IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaNkqbG9AclVMwWVxJK
+gnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfkCpYL
++63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxL
+vJxxcypFURmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkm
+bEgeqmiSBeGCc1qb3AdbCG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvk
+N1trSt8sV4pAWja63XVECDdCcAz+3F4hoKOKwJCcaNpQ5kUQR3i2TtJlycM33+FC
+Y7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoVIPVVYpbtbZNQvOSqeK3Z
+ywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm66+KAQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG
+EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3
+MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl
+cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR
+dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB
+pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM
+b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm
+aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz
+IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT
+lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz
+AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5
+VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG
+ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2
+BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG
+AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M
+U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh
+bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C
++C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
+bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F
+uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2
+XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGITCCBAmgAwIBAgIGSUEt7AAQMA0GCSqGSIb3DQEBCwUAMIGtMQswCQYDVQQG
+EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3
+MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl
+cnZpY2VzKTE7MDkGA1UEAwwyTmV0TG9jayBQbGF0aW5hIChDbGFzcyBQbGF0aW51
+bSkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUxMjQ0WhcNMjgxMjA2MTUx
+MjQ0WjCBrTELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQK
+DAxOZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAo
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcykxOzA5BgNVBAMMMk5ldExvY2sgUGxhdGlu
+YSAoQ2xhc3MgUGxhdGludW0pIEbFkXRhbsO6c8OtdHbDoW55MIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAzfLuxBp663QpTLa95NYKF2xl4mY9xNG8DLZa
+1itwXy3MIdFZEOSxE732zCKV1mxGTpEys+v1rMsEAU923VM+eJ/5Xry1ghNGyhDj
+HS1pK5QyEHMhq6k4xeNuE2TVY6ntCWbsim+JjRGG0PW/MpYLdXD1KFhCXqxptPX8
+kTkuopFA0TxUQYcjZFBIeWhLaJNLcuuAabNKHJC+skGjpc0XwNEaaX8CGEq1Yocm
+Vy1sqCwhOfWXXpuapvjnTHnEeztW3Hr4tFjOdgquIlXrj8eEZHu9a8qVT9i+MRO/
+jaEKK9V5t/V2rdpRXIFHYqiq/89T4DRxzw0lU6meY0evhZH4zxkR5U75z+3jNQUB
+IgPPmnzqHVFay/1zPTkLMevEO8qFKhEUAKAbgaIJiEjzfKJkoexntFiH8BTqqb6l
+IkFN7L2kDug9h/cvqs41hk8wV5KNNq541v0Y/NclHs96/Bn9oD9yFzYIQT+XNpUM
+iZVxRfqE1tQgYLNFCvK3lT0L5aTDuBLykWzpbWCD9kURBbrmR4PZkeJu4btGa0gb
+vMb7z37eLLuQhO62JznnjaIxD9+BtyxsAOKx2CoXXBseR4lLF1EUQEBPxDkYMsKA
+YDblekdn9qgFVMFdlqAftohSDAK+jVV+FEvDogHunIpBXflflpEJjrTktcUE39Y2
+rVm0stcCAwDzkaNFMEMwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFOahE4P+l0vy2P8xoad0M4nOXn+kMA0GCSqGSIb3DQEBCwUA
+A4ICAQBphELA414TYZcgSfH0FoWln6QRCCXEY4aP8Euvsyn1B1caYscbRW6vXRa3
+wdBkgzuX9UO2RZDxZiqDJCr/iOl6C/nCW3qvY/cJeIZIWTRem2oQTvFulYk2SmjQ
+b5vgfk+3NQ/jebEFryd8qokKQ976DO/ZVy8occ1pa1JCyYowRVmhzPpZSo/31t1E
+pbMuWxEY4rK15xFTOP6CTNNzvmWSGjqo0tKqvNS+bTZS/2vU0rUbN/MXQvEup9WQ
+bHSddPX6XyIb09x1qLX/8hrRvCsAXDzFuIYIVEminCP776aNcPRCUk0bIACB+KC4
+9HQjnL70uQ7sHmrYZUoVdfF3W27YseYPtJa4HfqGyJJui+l936IO1fHxfK5K42a/
+Xfxb70iynmnHfZCgVbaUcIG5Cr2JdVPshKkDpd9RmQjQdAwC1nNyBnuLu12qTvxn
+Z9iOEAMZLTc61HepOhydwHl7bCl3Mk1KizCIwuc2zmijmpiG+YkVnr+qUX3xUEZU
+DwIuXJ/j3lczFf4YkmGo0ikFXWVEHpvj7/vcBd8Vq6bYC6Rzskw64J7Us2rlOg4K
+8E7PeIEfvqmYb7FHUX1CMzazpqkCUgV0fips1KqSVrA+OyNYsY01pxOPZx5xFaaz
+tQOGuCBmwEhvuazUSgNVsjffBN0iDFOGKkoqocE4PjzlPN91lw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT
+AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD
+QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP
+MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do
+0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ
+UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d
+RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ
+OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv
+JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C
+AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O
+BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ
+LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY
+MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ
+44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I
+Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw
+i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN
+9u6wWk5JRFRYX0KD
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsx
+CzAJBgNVBAYTAkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRp
+ZmljYWNpw7NuIERpZ2l0YWwgLSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwa
+QUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4wHhcNMDYxMTI3MjA0NjI5WhcNMzAw
+NDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+U29jaWVkYWQgQ2Ft
+ZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJhIFMu
+QS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeG
+qentLhM0R7LQcNzJPNCNyu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzL
+fDe3fezTf3MZsGqy2IiKLUV0qPezuMDU2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQ
+Y5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU34ojC2I+GdV75LaeHM/J4
+Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP2yYe68yQ
+54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+b
+MMCm8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48j
+ilSH5L887uvDdUhfHjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++Ej
+YfDIJss2yKHzMI+ko6Kh3VOz3vCaMh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/zt
+A/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK5lw1omdMEWux+IBkAC1vImHF
+rEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1bczwmPS9KvqfJ
+pxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
+AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCB
+lTCBkgYEVR0gADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFy
+YS5jb20vZHBjLzBaBggrBgEFBQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW50
+7WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2UgcHVlZGVuIGVuY29udHJhciBlbiBs
+YSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEfAygPU3zmpFmps4p6
+xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuXEpBc
+unvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/
+Jre7Ir5v/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dp
+ezy4ydV/NgIlqmjCMRW3MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42
+gzmRkBDI8ck1fj+404HGIGQatlDCIaR43NAvO2STdPCWkPHv+wlaNECW8DYSwaN0
+jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wkeZBWN7PGKX6jD/EpOe9+
+XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f/RWmnkJD
+W2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/
+RL5hRqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35r
+MDOhYil/SrnhLecUIw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxk
+BYn8eNZcLCZDqQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDQzCCAiugAwIBAgIQX/h7KCtU3I1CoxW1aMmt/zANBgkqhkiG9w0BAQUFADA1
+MRYwFAYDVQQKEw1DaXNjbyBTeXN0ZW1zMRswGQYDVQQDExJDaXNjbyBSb290IENB
+IDIwNDgwHhcNMDQwNTE0MjAxNzEyWhcNMjkwNTE0MjAyNTQyWjA1MRYwFAYDVQQK
+Ew1DaXNjbyBTeXN0ZW1zMRswGQYDVQQDExJDaXNjbyBSb290IENBIDIwNDgwggEg
+MA0GCSqGSIb3DQEBAQUAA4IBDQAwggEIAoIBAQCwmrmrp68Kd6ficba0ZmKUeIhH
+xmJVhEAyv8CrLqUccda8bnuoqrpu0hWISEWdovyD0My5jOAmaHBKeN8hF570YQXJ
+FcjPFto1YYmUQ6iEqDGYeJu5Tm8sUxJszR2tKyS7McQr/4NEb7Y9JHcJ6r8qqB9q
+VvYgDxFUl4F1pyXOWWqCZe+36ufijXWLbvLdT6ZeYpzPEApk0E5tzivMW/VgpSdH
+jWn0f84bcN5wGyDWbs2mAag8EtKpP6BrXruOIIt6keO1aO6g58QBdKhTCytKmg9l
+Eg6CTY5j/e/rmxrbU6YTYK/CfdfHbBcl1HP7R2RQgYCUTOG/rksc35LtLgXfAgED
+o1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUJ/PI
+FR5umgIJFq0roIlgX9p7L6owEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEF
+BQADggEBAJ2dhISjQal8dwy3U8pORFBi71R803UXHOjgxkhLtv5MOhmBVrBW7hmW
+Yqpao2TB9k5UM8Z3/sUcuuVdJcr18JOagxEu5sv4dEX+5wW4q+ffy0vhN4TauYuX
+cB7w4ovXsNgOnbFp1iqRe6lJT37mjpXYgyc81WhJDtSd9i7rp77rMKSsH0T8lasz
+Bvt9YAretIpjsJyp8qS5UwGH0GikJ3+r/+n6yUA4iGe0OcaEb1fJU9u6ju7AQ7L4
+CYNu/2bPPu8Xs1gYJQk0XuPL1hS27PKSb3TkL4Eq1ZKR4OCXPDJoBYVL0fdX4lId
+kxpUnwVwwEpxYB5DC2Ae/qPOgRnhCzU=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzET
+MBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UE
+AxMIQ0EgRGlzaWcwHhcNMDYwMzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQsw
+CQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcg
+YS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgmGErE
+Nx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnX
+mjxUizkDPw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYD
+XcDtab86wYqg6I7ZuUUohwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhW
+S8+2rT+MitcE5eN4TPWGqvWP+j1scaMtymfraHtuM6kMgiioTGohQBUgDCZbg8Kp
+FhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8wgfwwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0PAQH/BAQD
+AgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cu
+ZGlzaWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5z
+ay9jYS9jcmwvY2FfZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2sv
+Y2EvY3JsL2NhX2Rpc2lnLmNybDAaBgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEw
+DQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59tWDYcPQuBDRIrRhCA/ec8J9B6
+yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3mkkp7M5+cTxq
+EEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
+CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeB
+EicTXxChds6KezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFN
+PGO+I++MzVpQuGhU+QqZMxEA4Z7CRneC9VkGjCFMhwnN5ag=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFkjCCA3qgAwIBAgIBCDANBgkqhkiG9w0BAQUFADA6MQswCQYDVQQGEwJDTjER
+MA8GA1UEChMIVW5pVHJ1c3QxGDAWBgNVBAMTD1VDQSBHbG9iYWwgUm9vdDAeFw0w
+ODAxMDEwMDAwMDBaFw0zNzEyMzEwMDAwMDBaMDoxCzAJBgNVBAYTAkNOMREwDwYD
+VQQKEwhVbmlUcnVzdDEYMBYGA1UEAxMPVUNBIEdsb2JhbCBSb290MIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2rPlBlA/9nP3xDK/RqUlYjOHsGj+p9+I
+A2N9Apb964fJ7uIIu527u+RBj8cwiQ9tJMAEbBSUgU2gDXRm8/CFr/hkGd656YGT
+0CiFmUdCSiw8OCdKzP/5bBnXtfPvm65bNAbXj6ITBpyKhELVs6OQaG2BkO5NhOxM
+cE4t3iQ5zhkAQ5N4+QiGHUPR9HK8BcBn+sBR0smFBySuOR56zUHSNqth6iur8CBV
+mTxtLRwuLnWW2HKX4AzKaXPudSsVCeCObbvaE/9GqOgADKwHLx25urnRoPeZnnRc
+GQVmMc8+KlL+b5/zub35wYH1N9ouTIElXfbZlJrTNYsgKDdfUet9Ysepk9H50DTL
+qScmLCiQkjtVY7cXDlRzq6987DqrcDOsIfsiJrOGrCOp139tywgg8q9A9f9ER3Hd
+J90TKKHqdjn5EKCgTUCkJ7JZFStsLSS3JGN490MYeg9NEePorIdCjedYcaSrbqLA
+l3y74xNLytu7awj5abQEctXDRrl36v+6++nwOgw19o8PrgaEFt2UVdTvyie3AzzF
+HCYq9TyopZWbhvGKiWf4xwxmse1Bv4KmAGg6IjTuHuvlb4l0T2qqaqhXZ1LUIGHB
+zlPL/SR/XybfoQhplqCe/klD4tPq2sTxiDEhbhzhzfN1DiBEFsx9c3Q1RSw7gdQg
+7LYJjD5IskkCAwEAAaOBojCBnzALBgNVHQ8EBAMCAQYwDAYDVR0TBAUwAwEB/zBj
+BgNVHSUEXDBaBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMDBggrBgEFBQcD
+BAYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEFBQcDBwYIKwYBBQUHAwgGCCsGAQUF
+BwMJMB0GA1UdDgQWBBTZw9P4gJJnzF3SOqLXcaK0xDiALTANBgkqhkiG9w0BAQUF
+AAOCAgEA0Ih5ygiq9ws0oE4Jwul+NUiJcIQjL1HDKy9e21NrW3UIKlS6Mg7VxnGF
+sZdJgPaE0PC6t3GUyHlrpsVE6EKirSUtVy/m1jEp+hmJVCl+t35HNmktbjK81HXa
+QnO4TuWDQHOyXd/URHOmYgvbqm4FjMh/Rk85hZCdvBtUKayl1/7lWFZXbSyZoUkh
+1WHGjGHhdSTBAd0tGzbDLxLMC9Z4i3WA6UG5iLHKPKkWxk4V43I29tSgQYWvimVw
+TbVEEFDs7d9t5tnGwBLxSzovc+k8qe4bqi81pZufTcU0hF8mFGmzI7GJchT46U1R
+IgP/SobEHOh7eQrbRyWBfvw0hKxZuFhD5D1DCVR0wtD92e9uWfdyYJl2b/Unp7uD
+pEqB7CmB9HdL4UISVdSGKhK28FWbAS7d9qjjGcPORy/AeGEYWsdl/J1GW1fcfA67
+loMQfFUYCQSu0feLKj6g5lDWMDbX54s4U+xJRODPpN/xU3uLWrb2EZBL1nXz/gLz
+Ka/wI3J9FO2pXd96gZ6bkiL8HvgBRUGXx2sBYb4zaPKgZYRmvOAqpGjTcezHCN6j
+w8k2SjTxF+KAryAhk5Qe5hXTVGLxtTgv48y5ZwSpuuXu+RBuyy5+E6+SFP7zJ3N7
+OPxzbbm5iPZujAv1/P8JDrMtXnt145Ik4ubhWD5LKAN1axibRww=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDhDCCAmygAwIBAgIBCTANBgkqhkiG9w0BAQUFADAzMQswCQYDVQQGEwJDTjER
+MA8GA1UEChMIVW5pVHJ1c3QxETAPBgNVBAMTCFVDQSBSb290MB4XDTA0MDEwMTAw
+MDAwMFoXDTI5MTIzMTAwMDAwMFowMzELMAkGA1UEBhMCQ04xETAPBgNVBAoTCFVu
+aVRydXN0MREwDwYDVQQDEwhVQ0EgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBALNdB8qGJn1r4vs4CQ7MgsJqGgCiFV/W6dQBt1YDAVmP9ThpJHbC
+XivF9iu/r/tB/Q9a/KvXg3BNMJjRnrJ2u5LWu+kQKGkoNkTo8SzXWHwk1n8COvCB
+a2FgP/Qz3m3l6ihST/ypHWN8C7rqrsRoRuTej8GnsrZYWm0dLNmMOreIy4XU9+gD
+Xv2yTVDo1h//rgI/i0+WITyb1yXJHT/7mLFZ5PCpO6+zzYUs4mBGzG+OoOvwNMXx
+QhhgrhLtRnUc5dipllq+3lrWeGeWW5N3UPJuG96WUUqm1ktDdSFmjXfsAoR2XEQQ
+th1hbOSjIH23jboPkXXHjd+8AmCoKai9PUMCAwEAAaOBojCBnzALBgNVHQ8EBAMC
+AQYwDAYDVR0TBAUwAwEB/zBjBgNVHSUEXDBaBggrBgEFBQcDAQYIKwYBBQUHAwIG
+CCsGAQUFBwMDBggrBgEFBQcDBAYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEFBQcD
+BwYIKwYBBQUHAwgGCCsGAQUFBwMJMB0GA1UdDgQWBBTbHzXza0z/QjFkm827Wh4d
+SBC37jANBgkqhkiG9w0BAQUFAAOCAQEAOGy3iPGt+lg3dNHocN6cJ1nL5BXXoMNg
+14iABMUwTD3UGusGXllH5rxmy+AI/Og17GJ9ysDawXiv5UZv+4mCI4/211NmVaDe
+JRI7cTYWVRJ2+z34VFsxugAG+H1V5ad2g6pcSpemKijfvcZsCyOVjjN/Hl5AHxNU
+LJzltQ7dFyiuawHTUin1Ih+QOfTcYmjwPIZH7LgFRbu3DJaUxmfLI3HQjnQi1kHr
+A6i26r7EARK1s11AdgYg1GS4KUYGis4fk5oQ7vuqWrTcL9Ury/bXBYSYBZELhPc9
++tb5evosFeo2gkO3t7jj83EB7UNDogVFwygFBzXjAaU4HoDU18PZ3g==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL
+MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
+BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
+IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw
+MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
+ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
+T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv
+biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR
+FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J
+cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW
+BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm
+fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv
+GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEfjCCA2agAwIBAgIBADANBgkqhkiG9w0BAQUFADCBzzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
+HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOjA4BgNVBAsTMWh0dHA6Ly9j
+ZXJ0aWZpY2F0ZXMuc3RhcmZpZWxkdGVjaC5jb20vcmVwb3NpdG9yeS8xNjA0BgNV
+BAMTLVN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+eTAeFw0wODA2MDIwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIHPMQswCQYDVQQGEwJV
+UzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTElMCMGA1UE
+ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjE6MDgGA1UECxMxaHR0cDov
+L2NlcnRpZmljYXRlcy5zdGFyZmllbGR0ZWNoLmNvbS9yZXBvc2l0b3J5LzE2MDQG
+A1UEAxMtU3RhcmZpZWxkIFNlcnZpY2VzIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9y
+aXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8sxWKk3mFjdal+pt
+NTjREJvbuNypBAmVMy4JxQB7GnhCj8j0BY7+0miDHk6ZzRfbRz5Q84nS59yY+wX4
+qtZj9FRNwXEDsB8bdrMaNDBz8SgyYIP9tJzXttIiN3wZqjveExBpblwG02+j8mZa
+dkJIr4DRVFk91LnU2+25qzmZ9O5iq+F4cnvYOI1AtszcEgBwQ4Vp2Bjjyldyn7Tf
+P/wiqEJS9XdbmfBWLSZwFjYSwieeV6Z80CPxedyjk1goOD2frTZD7jf7+PlDrchW
+8pQSXkLrc7gTDcum1Ya5qihqVAOhPw8p6wkA6D9eon8XPaEr+L7QdR2khOOrF2UG
+UgCvsQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd
+BgNVHQ4EFgQUtMZ/GkPMm3VdL8RL8ouYEOnxURAwHwYDVR0jBBgwFoAUtMZ/GkPM
+m3VdL8RL8ouYEOnxURAwDQYJKoZIhvcNAQEFBQADggEBAKyAu8QlBQtYpOR+KX6v
+vDvsLcBELvmR4NI7MieQLfaACVzCq2Uk2jgQRsRJ0v2aqyhId4jG6W/RR5HVNU8U
+CahbQAcdfHFWy4lC1L9hwCL3Lt+r83JDi0DolOuwJtrRE9Or0DYtLjqVs3cuFTkY
+DGm6qoDt8VNOM5toBOKgMC7X0V3UpmadhObnuzyJuzad/BepPVUrivubxEyE/9/S
+vmkbdLCo9uqwnLIpdIFMaDqaf3MlOfUT4GaRadRXS7furUXgLMOI076USYkf/3DV
+W205E7Ady5jmZ2MNY/b7w9dhcoOIP3B+U8meiVTWT399cbmu8WCLd2Ds+L/6aqOc
+ASI=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEOTCCAyGgAwIBAgIEAJ0qYDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJD
+WjEqMCgGA1UEAwwhSS5DQSAtIFF1YWxpZmllZCByb290IGNlcnRpZmljYXRlMS0w
+KwYDVQQKDCRQcnZuw60gY2VydGlmaWthxI1uw60gYXV0b3JpdGEsIGEucy4wHhcN
+MDgwNDAxMDAwMDAwWhcNMTgwNDAxMDAwMDAwWjBoMQswCQYDVQQGEwJDWjEqMCgG
+A1UEAwwhSS5DQSAtIFF1YWxpZmllZCByb290IGNlcnRpZmljYXRlMS0wKwYDVQQK
+DCRQcnZuw60gY2VydGlmaWthxI1uw60gYXV0b3JpdGEsIGEucy4wggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrCIik8HTyn/jb1neNMBk+psXHisW93eYC
+ro49UHW4r302q/717QhntACKmMEDY4hR8hs2iXRaLcjEgsQ/uYj9bP06HRUFRJWA
+GqaGyyF1kIVcsHAAhzSo0R9J/Ww4bWqsuEWfvBTXZtQh4ycKjXXgWi8KS7TnfnOj
+Kr1w8ZGGCI+/kIQch6n1mSUllMHjbgfBSwdbVPw0y0Y3nMWhIM6mrIepgzw4T8BA
+8+n/m9c5duQTI3W1/6FCrlyGT8VOQ7aZC1JTIKizwkzTACwV0llsCp8htXMWeR6G
+Je4a+5OerWPxTOJ2MV437/zQqTbk+RHpevxQ50EjAzS4fboOz91TAgMBAAGjgeow
+gecwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgaQGA1UdIASBnDCB
+mTCBlgYMKwYBBAGBuEgBBAABMIGFMIGCBggrBgEFBQcCAjB2GnRUZW50byBjZXJ0
+aWZpa2F0IGplIHZ5ZGFuIGpha28ga3ZhbGlmaWtvdmFueSBzeXN0ZW1vdnkgY2Vy
+dGlmaWthdCB2IHNvdWxhZHUgc2UgemFrb25lbSAyMjcvMjAwMCBTYi4gdiBwbGF0
+bmVtIHpuZW5pLjAdBgNVHQ4EFgQUaJ1+1sQlOfs7oDfWT9yM0XrwVlkwDQYJKoZI
+hvcNAQEFBQADggEBAHL1vAaN0iyW8oLbWHtH8EBk5S4b7/rg+tPxckgBRPKI9N6Y
+gVOE531OR+cxN1aus8Ewb8arSIP1mFNSaSoowUBl62XntDAL8KsOpRIlv/RQXb+j
+fuXRdPgKKK5CnLAUUsSgYF33RRdCukItm5L7bpSzcEcgCJ1T8LCtvamEWt0HKgzN
+K21hKN87kijsUYF/UXyOLn+d6bzBND2LrYGt8R50ZkM8QU24LjNPsToe2xLfNo5x
+/1djsdaPtD2GEmrPQjC0kxbqmeoCW/4I7rJPcL8zAOd6Sjih8kiRph7LI7I4nfAu
+SaLJiFZlZY46Z0WMjAviqrFLB/+xH7oUz3L6p3g=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIELjCCAxagAwIBAgIDE9YgMA0GCSqGSIb3DQEBBQUAMGMxCzAJBgNVBAYTAkNa
+MSkwJwYDVQQDEyBJLkNBIC0gU3RhbmRhcmQgcm9vdCBjZXJ0aWZpY2F0ZTEpMCcG
+A1UEChMgUHJ2bmkgY2VydGlmaWthY25pIGF1dG9yaXRhIGEucy4wHhcNMDgwNDAx
+MDAwMDAwWhcNMTgwNDAxMDAwMDAwWjBjMQswCQYDVQQGEwJDWjEpMCcGA1UEAxMg
+SS5DQSAtIFN0YW5kYXJkIHJvb3QgY2VydGlmaWNhdGUxKTAnBgNVBAoTIFBydm5p
+IGNlcnRpZmlrYWNuaSBhdXRvcml0YSBhLnMuMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEA0S0VxDlMaqHE5fMrtP2pFum4UY83kdmn05eQtnBph/WvWdJi
+QVjV85WNAhX6ZpzBIRTYH636Kmx0VqFi4fGwrbj+0qPgkaG1rlOtjaQND1lglyr8
+oy5zNSNzzKimoRRtv4nDhDjzZFnMMfPg+SdgCjxBBW9aUvCPblJu7F6Ib+BAjCFH
+VyLpOG7m+vMktK6vL3M/gNUyj4zZhBnYYM7baY0+rwKvrt6vUPXP5rNhGMTg3fBO
+SmYNenMgt+TUk4ZHYdhPyjqOq8I/xiIXo12dIMbFDiRpyKZ9ZgbNRuYz4UN0k/WD
+YtKwRSIBpHa961GTWGz6GqGfdYDa2ADi8YhNPwIDAQABo4HqMIHnMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTrN6S+uW9gF/vT/y1g
+4QQer8/G0zCBpAYDVR0gBIGcMIGZMIGWBgwrBgEEAYG4SAEBAAEwgYUwgYIGCCsG
+AQUFBwICMHYadFRlbnRvIGNlcnRpZmlrYXQgamUgdnlkYW4gamFrbyBrdmFsaWZp
+a292YW55IHN5c3RlbW92eSBjZXJ0aWZpa2F0IHYgc291bGFkdSBzZSB6YWtvbmVt
+IDIyNy8yMDAwIFNiLiB2IHBsYXRuZW0gem5lbmkuMA0GCSqGSIb3DQEBBQUAA4IB
+AQAXIliqLxhVAqFMNkk3S5tzuq5jNg6LK4RFN8z64Gf3oHNqZ2hWvGGoNJooumYs
+YZuLHPgEcIyG40HvlHkN3TSHBO61njFrOfR+WOXysARNqVclSeAL1eTsfQ4+OwHg
+jPxSkJPm8rCr9TF3zNHJQ4KrDy60+ZiuPuNE9KQDaVXaXI7bwbms5JjVdhVGoS5a
+DCJgoMLrcH9xA7Bo0zFkzerLS1WJgj5cZssaCJhHwt7ZLjhMBf0tjPrjIiW5kv3W
+si3KojSc30nv1YQBLJL/BUEKZ8ZCa57L2J+QvA0PEH3HZr3qcwfgGOpRgbRFQDwP
+oSI3FQGFqS58Dl9dzmqTvtm+
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1
+MQswCQYDVQQGEwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxp
+Z2kgQS5TLjE8MDoGA1UEAxMzZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZp
+a2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3MDEwNDExMzI0OFoXDTE3MDEwNDEx
+MzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0cm9uaWsgQmlsZ2kg
+R3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9uaWsg
+U2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdU
+MZTe1RK6UxYC6lhj71vY8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlT
+L/jDj/6z/P2douNffb7tC+Bg62nsM+3YjfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H
+5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAIJjjcJRFHLfO6IxClv7wC
+90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk9Ok0oSy1
+c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/
+BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoE
+VtstxNulMA0GCSqGSIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLP
+qk/CaOv/gKlR6D1id4k9CnU58W5dF4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S
+/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwqD2fK/A+JYZ1lpTzlvBNbCNvj
+/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4Vwpm+Vganf2X
+KWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq
+fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe
+MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0
+ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
+Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw
+IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL
+SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH
+SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh
+ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X
+DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1
+TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ
+fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA
+sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU
+WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS
+nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH
+dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip
+NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC
+AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF
+MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
+ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB
+uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl
+PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP
+JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/
+gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2
+j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6
+5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB
+o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS
+/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z
+Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE
+W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D
+hNQ+IIX3Sj0rnP0qCglN6oH4EZw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV
+BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X
+DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ
+BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4
+QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny
+gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw
+zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q
+130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2
+JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw
+DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw
+ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT
+AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj
+AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG
+9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h
+bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc
+fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu
+HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w
+t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
+WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEc
+MBoGA1UEChMTSmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRp
+b25DQTAeFw0wNzEyMTIxNTAwMDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYT
+AkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zlcm5tZW50MRYwFAYDVQQLEw1BcHBs
+aWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp23gdE6H
+j6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4fl+K
+f5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55
+IrmTwcrNwVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cw
+FO5cjFW6WY2H/CPek9AEjP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDiht
+QWEjdnjDuGWk81quzMKq2edY3rZ+nYVunyoKb58DKTCXKB28t89UKU5RMfkntigm
+/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRUWssmP3HMlEYNllPqa0jQ
+k/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNVBAYTAkpQ
+MRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOC
+seODvOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
+ggEBADlqRHZ3ODrso2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJ
+hyzjVOGjprIIC8CFqMjSnHH2HZ9g/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+
+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYDio+nEhEMy/0/ecGc/WLuo89U
+DNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmWdupwX3kSa+Sj
+B1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
+rosot4LKGAfmt1t06SAZf7IbiVQ=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIETTCCAzWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJDSDEO
+MAwGA1UEChMFYWRtaW4xETAPBgNVBAsTCFNlcnZpY2VzMSIwIAYDVQQLExlDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0aWVzMRcwFQYDVQQDEw5BZG1pbkNBLUNELVQwMTAe
+Fw0wNjAxMjUxMzM2MTlaFw0xNjAxMjUxMjM2MTlaMG0xCzAJBgNVBAYTAkNIMQ4w
+DAYDVQQKEwVhZG1pbjERMA8GA1UECxMIU2VydmljZXMxIjAgBgNVBAsTGUNlcnRp
+ZmljYXRpb24gQXV0aG9yaXRpZXMxFzAVBgNVBAMTDkFkbWluQ0EtQ0QtVDAxMIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0jQlMZmpLDhV+GNR9TAoSNle
+JgQB4xAXJELQf5/ySMfoFA4MmjKqYXQkB6MGPuQKwR9XRRSPf61vqb8YPsdjRmgp
+byHBcUd5t0N8RX6wRZUnPMW+bCCo2VqAU4XFbnlc2gHKaam0wdTtbBTXEkv0ieIH
+fxCfFxXqSsSr60IkF/2/xbrAgV/QD5yHk6Ie8feAVWwi5UtaFqtu4LiFEh2QMyxs
+Oyz1OcvKzkM2g873tyiE7jzMgZP+Ww3tibk2F9+e6ZeiB37TLOmVtvgpmrws4fiI
+rFNXEYSWBVrUTbn81U47yWzOgf5fEHP07bRV5QOCzCm99qNimsbL6CG7nT78CQID
+AQABo4H3MIH0MBIGA1UdEwEB/wQIMAYBAf8CAQAwga4GA1UdIASBpjCBozCBoAYI
+YIV0AREDFQEwgZMwSAYIKwYBBQUHAgIwPBo6VGhpcyBpcyB0aGUgQWRtaW5DQS1D
+RC1UMDEgQ2VydGlmaWNhdGUgUHJhY3RpY2UgU3RhdGVtZW50LjBHBggrBgEFBQcC
+ARY7aHR0cDovL3d3dy5wa2kuYWRtaW4uY2gvcG9saWN5L0NQU18yXzE2Xzc1Nl8x
+XzE3XzNfMjFfMS5wZGYwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQqxGkKocZV
+xgNucM6GgbOkD6oZ2zANBgkqhkiG9w0BAQUFAAOCAQEAn356bbusjI5glGXRQ1DR
+v21qQf0S4s3GHyZm7cqdOkFleM70ArBT+kOP5Nm7rlSAFyVgEkmBdOg7s9tlXClU
+yeZFnp6UEYRUcijPN8D1VaNRK6PIUObpDBQT0C+kAfxG9z4v29T0SxT4sgAdC/xQ
+Fyv58Fp9bPn7owuKwKcyCH1XSyi/Bp4XFELlLOaigBZO/w+dPBz4FcJSdZjU+BaJ
+0E3nKAjHlShO5ouBSZnaJz3p+nkw2Wyo36s6GxCK0XbkSP45iniIG4FmwwZkonYF
+ypQntHbx2oL7tUQQY0PDo8bGBMcPy/G2j+dciqZRlsnfgMy10SCzQ9MUx92xUG2V
+eg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFVTCCBD2gAwIBAgIEO/OB0DANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQGEwJj
+aDEOMAwGA1UEChMFYWRtaW4xETAPBgNVBAsTCFNlcnZpY2VzMSIwIAYDVQQLExlD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0aWVzMRYwFAYDVQQDEw1BZG1pbi1Sb290LUNB
+MB4XDTAxMTExNTA4NTEwN1oXDTIxMTExMDA3NTEwN1owbDELMAkGA1UEBhMCY2gx
+DjAMBgNVBAoTBWFkbWluMREwDwYDVQQLEwhTZXJ2aWNlczEiMCAGA1UECxMZQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdGllczEWMBQGA1UEAxMNQWRtaW4tUm9vdC1DQTCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMvgr0QUIv5qF0nyXZ3PXAJi
+C4C5Wr+oVTN7oxIkXkxvO0GJToM9n7OVJjSmzBL0zJ2HXj0MDRcvhSY+KiZZc6Go
+vDvr5Ua481l7ILFeQAFtumeza+vvxeL5Nd0Maga2miiacLNAKXbAcUYRa0Ov5VZB
+++YcOYNNt/aisWbJqA2y8He+NsEgJzK5zNdayvYXQTZN+7tVgWOck16Da3+4FXdy
+fH1NCWtZlebtMKtERtkVAaVbiWW24CjZKAiVfggjsiLo3yVMPGj3budLx5D9hEEm
+vlyDOtcjebca+AcZglppWMX/iHIrx7740y0zd6cWEqiLIcZCrnpkr/KzwO135GkC
+AwEAAaOCAf0wggH5MA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIASBkTCBjjCBiwYI
+YIV0AREDAQAwfzArBggrBgEFBQcCAjAfGh1UaGlzIGlzIHRoZSBBZG1pbi1Sb290
+LUNBIENQUzBQBggrBgEFBQcCARZEaHR0cDovL3d3dy5pbmZvcm1hdGlrLmFkbWlu
+LmNoL1BLSS9saW5rcy9DUFNfMl8xNl83NTZfMV8xN18zXzFfMC5wZGYwfwYDVR0f
+BHgwdjB0oHKgcKRuMGwxFjAUBgNVBAMTDUFkbWluLVJvb3QtQ0ExIjAgBgNVBAsT
+GUNlcnRpZmljYXRpb24gQXV0aG9yaXRpZXMxETAPBgNVBAsTCFNlcnZpY2VzMQ4w
+DAYDVQQKEwVhZG1pbjELMAkGA1UEBhMCY2gwHQYDVR0OBBYEFIKf+iNzIPGXi7JM
+Tb5CxX9mzWToMIGZBgNVHSMEgZEwgY6AFIKf+iNzIPGXi7JMTb5CxX9mzWTooXCk
+bjBsMQswCQYDVQQGEwJjaDEOMAwGA1UEChMFYWRtaW4xETAPBgNVBAsTCFNlcnZp
+Y2VzMSIwIAYDVQQLExlDZXJ0aWZpY2F0aW9uIEF1dGhvcml0aWVzMRYwFAYDVQQD
+Ew1BZG1pbi1Sb290LUNBggQ784HQMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0B
+AQUFAAOCAQEAeE96XCYRpy6umkPKXDWCRn7INo96ZrWpMggcDORuofHIwdTkgOeM
+vWOxDN/yuT7CC3FAaUajbPRbDw0hRMcqKz0aC8CgwcyIyhw/rFK29mfNTG3EviP9
+QSsEbnelFnjpm1wjz4EaBiFjatwpUbI6+Zv3XbEt9QQXBn+c6DeFLe4xvC4B+MTr
+a440xTk59pSYux8OHhEvqIwHCkiijGqZhTS3KmGFeBopaR+dJVBRBMoXwzk4B3Hn
+0Zib1dEYFZa84vPJZyvxCbLOnPRDJgH6V2uQqbG+6DXVaf/wORVOvF/wzzv0viM/
+RWbEtJZdvo8N3sdtCULzifnxP/V0T9+4ZQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF8DCCA9igAwIBAgIPBuhGJy8fCo/RhFzjafbVMA0GCSqGSIb3DQEBBQUAMDgx
+CzAJBgNVBAYTAkVTMRQwEgYDVQQKDAtJWkVOUEUgUy5BLjETMBEGA1UEAwwKSXpl
+bnBlLmNvbTAeFw0wNzEyMTMxMzA4MjdaFw0zNzEyMTMwODI3MjVaMDgxCzAJBgNV
+BAYTAkVTMRQwEgYDVQQKDAtJWkVOUEUgUy5BLjETMBEGA1UEAwwKSXplbnBlLmNv
+bTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMnTesoPHqynhugWZWqx
+whtFMnGV2f4QW8yv56V5AY+Jw8ryVXH3d753lPNypCxE2J6SmxQ6oeckkAoKVo7F
+2CaU4dlI4S0+2gpy3aOZFdqBoof0e24md4lYrdbrDLJBenNubdt6eEHpCIgSfocu
+ZhFjbFT7PJ1ywLwu/8K33Q124zrX97RovqL144FuwUZvXY3gTcZUVYkaMzEKsVe5
+o4qYw+w7NMWVQWl+dcI8IMVhulFHoCCQk6GQS/NOfIVFVJrRBSZBsLVNHTO+xAPI
+JXzBcNs79AktVCdIrC/hxKw+yMuSTFM5NyPs0wH54AlETU1kwOENWocivK0bo/4m
+tRXzp/yEGensoYi0RGmEg/OJ0XQGqcwL1sLeJ4VQJsoXuMl6h1YsGgEebL4TrRCs
+tST1OJGh1kva8bvS3ke18byB9llrzxlT6Y0Vy0rLqW9E5RtBz+GGp8rQap+8TI0G
+M1qiheWQNaBiXBZO8OOi+gMatCxxs1gs3nsL2xoP694hHwZ3BgOwye+Z/MC5TwuG
+KP7Suerj2qXDR2kS4Nvw9hmL7Xtw1wLW7YcYKCwEJEx35EiKGsY7mtQPyvp10gFA
+Wo15v4vPS8+qFsGV5K1Mij4XkdSxYuWC5YAEpAN+jb/af6IPl08M0w3719Hlcn4c
+yHf/W5oPt64FRuXxqBbsR6QXAgMBAAGjgfYwgfMwgbAGA1UdEQSBqDCBpYEPaW5m
+b0BpemVucGUuY29tpIGRMIGOMUcwRQYDVQQKDD5JWkVOUEUgUy5BLiAtIENJRiBB
+MDEzMzcyNjAtUk1lcmMuVml0b3JpYS1HYXN0ZWl6IFQxMDU1IEY2MiBTODFDMEEG
+A1UECQw6QXZkYSBkZWwgTWVkaXRlcnJhbmVvIEV0b3JiaWRlYSAxNCAtIDAxMDEw
+IFZpdG9yaWEtR2FzdGVpejAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQUHRxlDqjyJXu0kc/ksbHmvVV0bAUwDQYJKoZIhvcNAQEFBQAD
+ggIBAMeBRm8hGE+gBe/n1bqXUKJg7aWSFBpSm/nxiEqg3Hh10dUflU7F57dp5iL0
++CmoKom+z892j+Mxc50m0xwbRxYpB2iEitL7sRskPtKYGCwkjq/2e+pEFhsqxPqg
+l+nqbFik73WrAGLRne0TNtsiC7bw0fRue0aHwp28vb5CO7dz0JoqPLRbEhYArxk5
+ja2DUBzIgU+9Ag89njWW7u/kwgN8KRwCfr00J16vU9adF79XbOnQgxCvv11N75B7
+XSus7Op9ACYXzAJcY9cZGKfsK8eKPlgOiofmg59OsjQerFQJTx0CCzl+gQgVuaBp
+E8gyK+OtbBPWg50jLbJtooiGfqgNASYJQNntKE6MkyQP2/EeTXp6WuKlWPHcj1+Z
+ggwuz7LdmMySlD/5CbOlliVbN/UShUHiGUzGigjB3Bh6Dx4/glmimj4/+eAJn/3B
+kUtdyXvWton83x18hqrNA/ILUpLxYm9/h+qrdslsUMIZgq+qHfUgKGgu1fxkN0/P
+pUTEvnK0jHS0bKf68r10OEMr3q/53NjgnZ/cPcqlY0S/kqJPTIAcuxrDmkoEVU3K
+7iYLHL8CxWTTnn7S05EcS6L1HOUXHA0MUqORH5zwIe0ClG+poEnK6EOMxPQ02nwi
+o8ZmPrgbBYhdurz3vOXcFD2nhqi2WVIhA16L4wTtSyoeo09Q
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
+MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
+aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
+jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
+xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
+1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
+snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
+U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
+9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
+BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
+AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
+yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
+38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
+AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
+DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
+HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRS
+MRgwFgYDVQQHDA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJp
+bGltc2VsIHZlIFRla25vbG9qaWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSw
+VEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ryb25payB2ZSBLcmlwdG9sb2ppIEFy
+YcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNVBAsMGkthbXUgU2Vy
+dGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUgS8O2
+ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAe
+Fw0wNzA4MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIx
+GDAWBgNVBAcMD0dlYnplIC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmls
+aW1zZWwgdmUgVGVrbm9sb2ppayBBcmHFn3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBU
+QUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZlIEtyaXB0b2xvamkgQXJh
+xZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2FtdSBTZXJ0
+aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7Zr
+IFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4h
+gb46ezzb8R1Sf1n68yJMlaCQvEhOEav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yK
+O7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1xnnRFDDtG1hba+818qEhTsXO
+fJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR6Oqeyjh1jmKw
+lZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
+hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQID
+AQABo0IwQDAdBgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/
+BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmP
+NOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4N5EY3ATIZJkrGG2AA1nJrvhY0D7t
+wyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLTy9LQQfMmNkqblWwM
+7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYhLBOh
+gLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5n
+oN+J1q2MdqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUs
+yZyQ2uypQjyttgI=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDGjCCAgKgAwIBAgIDAbplMA0GCSqGSIb3DQEBBQUAMDUxCzAJBgNVBAYTAlNJ
+MQ8wDQYDVQQKEwZIYWxjb20xFTATBgNVBAMTDEhhbGNvbSBDQSBGTzAeFw0wNTA2
+MDUxMDMzMzFaFw0yMDA2MDUxMDMzMzFaMDUxCzAJBgNVBAYTAlNJMQ8wDQYDVQQK
+EwZIYWxjb20xFTATBgNVBAMTDEhhbGNvbSBDQSBGTzCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBALyjJgGW5Z2sGgICOXys3AZMN0quB0h16CccpDH9Cqcj
+XXw/DvrwjJFvVTSEA3TMAzV4zXHBRxu76iFuuAfeIZKqrLneN6If9JocG8juEIPW
+U0PI3enzkEY5cgpO/BIpSYFYJjpxEwx7U4/fZnI8F9ze4XlKn+lgPm015E1R0RzA
+GjBcBj9zQ8jNNvQewoeMT0if2nVXKkyvjVQ8RF+YPFDa0BgGfGBu0oT/Z4WQPV7G
+69h6o7VtDL51uKnaVnE2Wu7rSVM+4hl2fEKroZDx9y+4ukpBtCukLmE259baf/Wf
+jbhLW4Q1UMW9Baqqwgx0QWNXGY7/4UbmewUk/pndMb0CAwEAAaMzMDEwDwYDVR0T
+AQH/BAUwAwEB/zARBgNVHQ4ECgQISCAcYg1YUiUwCwYDVR0PBAQDAgEGMA0GCSqG
+SIb3DQEBBQUAA4IBAQBbdfXmMEZYivcP0U8LAVgEuWTkMA0+dtlrE60cbslM8Gzm
+QhH964PvUNi7VJ20kYpatYQPjEbNPIKopR4gnND1QQbKASuYsOopUB/idHtZgsoK
+5W5OrrA37T7MujLZPwtoLLLTPNw4xRHWGzPuuaJqRJMbUOphG3lXUVaeMtAzeLTP
+Ryr7983x523gumT7FZu+yrHyRwF/4Ey3pUGsHtkabJHh0KhKw154K3qAwE/NJV9Q
+J8a8WHWcHbWaXZVz84Rm081tHc3gWs4gOO+Sc3heAtaN+XTUt4nYjPt71Ytx1RkX
+JtgkSTxVvIKH2mO7OdeOkc80cFxzT9BQR1r75VpR
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICGTCCAYKgAwIBAgIDATTiMA0GCSqGSIb3DQEBBQUAMDcxCzAJBgNVBAYTAlNJ
+MQ8wDQYDVQQKEwZIYWxjb20xFzAVBgNVBAMTDkhhbGNvbSBDQSBQTyAyMB4XDTA0
+MDIwNzE4MzMzMVoXDTE5MDIwNzE4MzMzMVowNzELMAkGA1UEBhMCU0kxDzANBgNV
+BAoTBkhhbGNvbTEXMBUGA1UEAxMOSGFsY29tIENBIFBPIDIwgZ8wDQYJKoZIhvcN
+AQEBBQADgY0AMIGJAoGBAJQX8kk3MDIJCDy+9Te3dGwQO8sicQcGucbs2kjznydt
+ZI1V3nlHUPtoznkBvqcb9mGtfTELUyCtMfFbziP6/8wSAloAnPzNaxJS6KzUMztz
+JhBxkEC/A4jfvF8hDYzWipMf564VVMZM5JlhkuD3jXLH3GITM6M+SSn7hL9wOpEh
+AgMBAAGjMzAxMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECEivV2a/0sACMAsG
+A1UdDwQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQCQFld2uHnO/MTRNwCizf84BxFz
+EwVJ7d/Bxc7GQNj3ApYNt28RhDhm+3H3EAFnfF19JNr2ZDsIgEimTr1E4rAHMo98
+hjdGb8CDA5O19PMSfKPoy+I6I3j6aG/+WMoMp1dRLWKQ+eSo3PXK3w6HUW43dSYO
+1354igOilRm2XpEBVg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDtzCCAp+gAwIBAgIEPsOGjjANBgkqhkiG9w0BAQUFADAdMQswCQYDVQQGEwJT
+STEOMAwGA1UEChMFQUNOTEIwHhcNMDMwNTE1MTE1MjQ1WhcNMjMwNTE1MTIyMjQ1
+WjAdMQswCQYDVQQGEwJTSTEOMAwGA1UEChMFQUNOTEIwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQC/dnU9DHxAOmZfTYz73Twu/n2UZO1K1ElIoe6RcbJ5
+yI4rH6rwMrQosqPCdU+k6aYa9qJmYSMnYSxuF5AL+t4ecVICKQSZeazAsMBmmJgR
+N2QQz5y8O0IcKVxVkPZ6Ik5Wrzdov3Q6bDzGmMxgIb/iCCfk2Su844SV19QkYPx+
+LS+dIeudkca7pNHryRKto+jItX9VS+uZAlTEgRwMrjnkanoF2E5woPoDd7Ou2LgU
+kvtBdxM1areiyohLrS1RvHaabLtAveckTCKm5v1OCHudCxDWEtKmxqFkMvQBc5aB
+4kiwwShjPTvnZ6xuxRT1FxOinB8rV/AVJ3Vd3bE01pMRAgMBAAGjgf4wgfswEQYJ
+YIZIAYb4QgEBBAQDAgAHMD8GA1UdHwQ4MDYwNKAyoDCkLjAsMQswCQYDVQQGEwJT
+STEOMAwGA1UEChMFQUNOTEIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMjAw
+MzA1MTUxMTUyNDVagQ8yMDIzMDUxNTEyMjI0NVowCwYDVR0PBAQDAgEGMB8GA1Ud
+IwQYMBaAFMy7u4bWb/i+tEcid7O2rdcBWZZNMB0GA1UdDgQWBBTMu7uG1m/4vrRH
+Ineztq3XAVmWTTAMBgNVHRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6
+NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEAEWfLy5prICHdb2mD1T8NupMVl05w
+diZc6J4k5zf+PFD01PkqLwwToV0EvNCw6cIDF4UFYT3Ap6p2TMO4OoOphs8D+XcO
+K7I9dhtl0WpxYHHbu7h6jvL5IYP4V0yox91lxu7vb7O2mbu0w9CrX7Kgft10ISzD
+WuuNocrY8MgX7Xa6hGNuW7m1ym3X/DQ5gC+6T9+N2PwYxDyKNS93gpatIJIYsuc2
+9K4ydLhH0dgP2CzLasIAdfks+EIOy/5zk6mP4ceuITfzyrkMtOeJfnEcVjQgw/E0
+uVVL01NS8QctKz5bGUCfEO3TKTPFrw8QVofaO8ix7TjZGftL8FAtpM3UWA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEGTCCAwGgAwIBAgIEOzz5yTANBgkqhkiG9w0BAQUFADA9MQswCQYDVQQGEwJz
+aTEbMBkGA1UEChMSc3RhdGUtaW5zdGl0dXRpb25zMREwDwYDVQQLEwhzaWdlbi1j
+YTAeFw0wMTA2MjkyMTI3NDZaFw0yMTA2MjkyMTU3NDZaMD0xCzAJBgNVBAYTAnNp
+MRswGQYDVQQKExJzdGF0ZS1pbnN0aXR1dGlvbnMxETAPBgNVBAsTCHNpZ2VuLWNh
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsOVlssCsZJbyiBuz7Z7k
+AsZPK4jOLopRgHWvEFvyyzhmm6IObTRHlqWSEa/2NUeidyIMzhaIYqrTSW4YvC5E
+2L7GnsIaGaxBjvwwBwLyxmrUWyMA70E02KRzY98ikjOEAaWN84Nc+rjUejXf7Pht
+D+BM7a2cOn2G1qUIlL59ehEf/oU/VFqIY4ecpbGnTs23RHOvz4pJax/jzddJTVor
+F+ZcdrO7crlvJ9KbiRWI3xBfdiEBascVMQrRnFj4KBYFbdlO2aHXByDLSyaJTZKy
+p7qW6ONYjyKcAZZaxPcxTQtJteF4YeJUGAa7nlQ0fgw+6+61gB/dFoQdaDhmZ3P4
+kQIDAQABo4IBHzCCARswEQYJYIZIAYb4QgEBBAQDAgAHMF8GA1UdHwRYMFYwVKBS
+oFCkTjBMMQswCQYDVQQGEwJzaTEbMBkGA1UEChMSc3RhdGUtaW5zdGl0dXRpb25z
+MREwDwYDVQQLEwhzaWdlbi1jYTENMAsGA1UEAxMEQ1JMMTArBgNVHRAEJDAigA8y
+MDAxMDYyOTIxMjc0NlqBDzIwMjEwNjI5MjE1NzQ2WjALBgNVHQ8EBAMCAQYwHwYD
+VR0jBBgwFoAUcXuKBh8xBVWrYBJ3RyAeA4gY7IkwHQYDVR0OBBYEFHF7igYfMQVV
+q2ASd0cgHgOIGOyJMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUu
+MDo0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4IBAQAAumM08xgY7q5+jZLHNfXCE9TW
+AKohMhbW0Fv6KbCN+hd3kvmltvb5hz8GDyDuYj0096kvx6k70CeITKzdyanlWliF
+1xI1Pdywglty9Ltzt/v+OCGYBICyiGIPHqw6Fqnmswr2FRBFA6OX4s2sENz5AB6/
+c2xD7HciFgYvloOJe7C4U0RBCNyAHwXbGQl2h741nU4hS7STwWg6nV82/qGuMCxL
+3ngkOljWFkPvnZk4iyqY/jDRwurWryXVpXYLue9AOS72698yXh19h7VEzAI50iaV
+cthvhUOojw6jRs7Xzui5Vqn4iRcSH0NJBnoy5z++b3m+1jPXTDwo/BLxdnYY
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEGTCCAwGgAwIBAgIEOlxwGjANBgkqhkiG9w0BAQUFADA9MQswCQYDVQQGEwJz
+aTEbMBkGA1UEChMSc3RhdGUtaW5zdGl0dXRpb25zMREwDwYDVQQLEwhzaWdvdi1j
+YTAeFw0wMTAxMTAxMzUyNTJaFw0yMTAxMTAxNDIyNTJaMD0xCzAJBgNVBAYTAnNp
+MRswGQYDVQQKExJzdGF0ZS1pbnN0aXR1dGlvbnMxETAPBgNVBAsTCHNpZ292LWNh
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1Qsmzwd2ixtlEszoYPSQ
+k0PIDtKStoZSoC658FPIcG7eTtgYa7GuUDeuzAjSizWGF/3RENdJCmGDdq/+AQaz
+2JldVkvUc/+mxEsqnnfX4Yg801WnLGducmeRE4JBrvCpiIyU7LC+4SvpyRmBrPJk
+8nk5FN+Fjg+/gbAR+vsm6gSf24qUTaS5p8Nqg7ZMBiIsktg2v06QQGmi20EWeQUl
+ind0OINak/FCZDjwwaW8+Kn7YBb59eTCUzxQQp6XCxAjLGq3wDXF1U7rOhzyFHEf
+XvqWo5yiym/IBtUiy1vplLCb17F//aWmxeacFPyxcVNeeiS07NJWB9G0lB5QtP0H
+rQIDAQABo4IBHzCCARswEQYJYIZIAYb4QgEBBAQDAgAHMF8GA1UdHwRYMFYwVKBS
+oFCkTjBMMQswCQYDVQQGEwJzaTEbMBkGA1UEChMSc3RhdGUtaW5zdGl0dXRpb25z
+MREwDwYDVQQLEwhzaWdvdi1jYTENMAsGA1UEAxMEQ1JMMTArBgNVHRAEJDAigA8y
+MDAxMDExMDEzNTI1MlqBDzIwMjEwMTEwMTQyMjUyWjALBgNVHQ8EBAMCAQYwHwYD
+VR0jBBgwFoAUHvjUU2uzgwbpBAZXAvmlv8ZYPHIwHQYDVR0OBBYEFB741FNrs4MG
+6QQGVwL5pb/GWDxyMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUu
+MDo0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4IBAQCDwrYsqA2iEE9g7IcirrdWfFDu
+GZQ5iN+JfUpfefaIlV/jr6XGvHfdtoJQ2hZD9wxzo+Zl4bxrtUIK1WDlx/WXbpKe
+6dk2a4scE2spVUJcgJ0mrKYIoQUL/9qjqgQMc+2aGZm7ZatE/NPLxRIPsAIgbEtM
+W6DDMicXjEPJnZBV7vJP3fmQsw5UgYNM3KQka775hHwq0p4o9KoK11tUETA4AOQS
+SwSsYomUa/vKpW3nQcUc0+cqflU91FHUE43vfYdSkRTfm6/ivsLj9xKiJnOnWqFW
+bfnu38MgmxGw658H9uh7VccaTW2QcEblYVXsnkkwRDtFsqWb+ZU4vsn0SQ38
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDEl
+MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMh
+U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIz
+MloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09N
+IFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNlY3VyaXR5IENvbW11
+bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSE
+RMqm4miO/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gO
+zXppFodEtZDkBp2uoQSXWHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5
+bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4zZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDF
+MxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4bepJz11sS6/vmsJWXMY1
+VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK9U2vP9eC
+OKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0G
+CSqGSIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HW
+tWS3irO4G8za+6xmiEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZ
+q51ihPZRwSzJIxXYKLerJRO1RuGGAv8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDb
+EJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnWmHyojf6GPgcWkuF75x3sM3Z+
+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEWT1MKZPlO9L9O
+VL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIElTCCA32gAwIBAgIDAw6VMA0GCSqGSIb3DQEBBQUAMEsxCzAJBgNVBAYTAkRF
+MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJTAjBgNVBAMMHEQtVFJVU1QgUm9vdCBD
+bGFzcyAyIENBIDIwMDcwHhcNMDcwNTE2MDUyMDQ3WhcNMjIwNTE2MDUyMDQ3WjBL
+MQswCQYDVQQGEwJERTEVMBMGA1UECgwMRC1UcnVzdCBHbWJIMSUwIwYDVQQDDBxE
+LVRSVVNUIFJvb3QgQ2xhc3MgMiBDQSAyMDA3MIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAs83khBVJ+OTWzoSzmq32MHWQDYTr7tqzenUq4juk6jAs6z13
+jYGEaEqmpGjckHNhNGUHHSOlDOa/090zXdoy7aYNU6Z0alwZWaZMtS95AV6ef0r6
+usknftT/zQBZIOsGzLNEz9aF6e07DGzB6oxc4LmpAvATACeTnFD+zRNPbRtqqt0P
+/0YlGdzhXlCsGn8Oy9ruIPzD9JxKeDVu7jHHRRZyhdKCINtSRXw8v1lX+Yd0Vphb
+HVCOzC+zsz+L7uw3SQGI79ghDJPT9m6JT7oXy0SBt3unI7t0CtPY6jdFJ//c8J5D
+47p7ihuafemGoP4v0db2h1eq8imUh3MV+mpOrQIDAQABo4IBgDCCAXwwDwYDVR0T
+AQH/BAUwAwEB/zAdBgNVHQ4EFgQUkTCr9vPGRLfr3Si8DxSfUl1ifwIwOQYIKwYB
+BQUHAQEELTArMCkGCCsGAQUFBzABhh1odHRwOi8vdXNlcnMub2NzcC5kLXRydXN0
+Lm5ldDAzBgNVHREELDAqgRBpbmZvQGQtdHJ1c3QubmV0hhZodHRwOi8vd3d3LmQt
+dHJ1c3QubmV0MA4GA1UdDwEB/wQEAwIBBjCByQYDVR0fBIHBMIG+MIG7oIG4oIG1
+hnZsZGFwOi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290
+JTIwQ2xhc3MlMjAyJTIwQ0ElMjAyMDA3LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9j
+ZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0hjtodHRwOi8vd3d3LmQtdHJ1c3QubmV0
+L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfMl9jYV8yMDA3LmNybDANBgkqhkiG9w0B
+AQUFAAOCAQEAW4vyQ+MFLmQf1ZKpUWtk/A5GzAeZ4rf8kykg3PwvYOSsfSUy7RDh
+D2/b8rxO7kHJs9QHSHoKr6S2/1Ew7cvSnOt/UO5L4mKnNMIg9vP29TbAy5EQ6+0u
+jfQHGiEMNXf0fC2NSaXXC0Ro1dLi5Qx4OBPKsUxSqirl1a9cBTmdLa2+I1bVL1Xz
+3p2rgjagTbdZkUfu3oOl6jteJwWAC20sUPQBN9Wjdxfs/t2E9MX4UJLQS8Yuo4tA
+5MM3o3e9zixV4qzfXWQAur6najEG/JlrUBUlnal2mqdNKpoCY+tw5/4RJtAYxaYf
+CkOT8hjZ9Tl5uAddjB/mP/PFyyFmMXt7zw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIElTCCA32gAwIBAgIDAw6WMA0GCSqGSIb3DQEBBQUAMEsxCzAJBgNVBAYTAkRF
+MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJTAjBgNVBAMMHEQtVFJVU1QgUm9vdCBD
+bGFzcyAzIENBIDIwMDcwHhcNMDcwNTE2MDUyMDQ3WhcNMjIwNTE2MDUyMDQ3WjBL
+MQswCQYDVQQGEwJERTEVMBMGA1UECgwMRC1UcnVzdCBHbWJIMSUwIwYDVQQDDBxE
+LVRSVVNUIFJvb3QgQ2xhc3MgMyBDQSAyMDA3MIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAuo3NNVMy7qa9SJCa8uroWA9HZqjMbgkS5KHLW9+TuPbpOTn4
+xtjpzxqGvKauD4yvCEXj8o4rwlxZK/qMNrNwHchQPKVWvuqu6Uf250kPr3+UJtQC
+Gge4ujlVzp+7Ijkp2DXFmQMh2Kc4Y/HkNN9Hrp838WygmcIisG1y3CLJMTnoVteg
+jzohW4aaTyj5HHb3zE8/+U53iyqciqp5QYrVHNk5b5jJXkWXHQmUGdlQUYVyc7+s
+S510NHGHIRYPfu7SSX7KSdP5kipHSE8PXVqhy9Uo7PCSxXJDRuuzA6bzVyVKCmGE
+CibW76a42BSNeLnTtyXRTuNaFqrsnwfuIxB9tQIDAQABo4IBgDCCAXwwDwYDVR0T
+AQH/BAUwAwEB/zAdBgNVHQ4EFgQUgi82I0l4IELXsFJYoNZ0VBV4v6owOQYIKwYB
+BQUHAQEELTArMCkGCCsGAQUFBzABhh1odHRwOi8vdXNlcnMub2NzcC5kLXRydXN0
+Lm5ldDAzBgNVHREELDAqgRBpbmZvQGQtdHJ1c3QubmV0hhZodHRwOi8vd3d3LmQt
+dHJ1c3QubmV0MA4GA1UdDwEB/wQEAwIBBjCByQYDVR0fBIHBMIG+MIG7oIG4oIG1
+hnZsZGFwOi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290
+JTIwQ2xhc3MlMjAzJTIwQ0ElMjAyMDA3LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9j
+ZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0hjtodHRwOi8vd3d3LmQtdHJ1c3QubmV0
+L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yMDA3LmNybDANBgkqhkiG9w0B
+AQUFAAOCAQEAVQ5oCo3c2aiGYAJpeY196ZDC2R0dtQ67c5JkYxRGTNBqu6N1XYYZ
+OGGGHbiKIjSjtDUVs6lgTFQXn7HeWzLifmveTyLwLR0iBJ62Sk+rLFad493ssSZO
+KtdVwj69gte+VbtFyClbhjydP2hEREQ2DWi/rgGiGbVMl//yljxnskLeD+Ggl07K
+5zRlrpWCYWcmcy3de+eVSw4hqpKuTPzGs6nlmYMyOfBgwkxRqMFHFDWJpU02D58b
+AnFBjUJKJPivbp0NcIaNqmITHgOLJPnDVJNJhRt1dmJ/Iv9JvXZzDD+YrSqy+ufF
+33T1/2kxVQo6wBliNcRJuSsZHfRwme7Y3A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGKjCCBBKgAwIBAgIQZgej0p0pVhgO4V5ZmLGEVTANBgkqhkiG9w0BAQUFADB0
+MQswCQYDVQQGEwJMVDErMCkGA1UEChMiU2thaXRtZW5pbmlvIHNlcnRpZmlrYXZp
+bW8gY2VudHJhczEgMB4GA1UECxMXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAU
+BgNVBAMTDVNTQyBSb290IENBIEEwHhcNMDYxMjI3MTIxODUyWhcNMjYxMjI4MTIw
+NTA0WjB0MQswCQYDVQQGEwJMVDErMCkGA1UEChMiU2thaXRtZW5pbmlvIHNlcnRp
+ZmlrYXZpbW8gY2VudHJhczEgMB4GA1UECxMXQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkxFjAUBgNVBAMTDVNTQyBSb290IENBIEEwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQC66k++hMAZJIohqUyZffcM1aVRkqhl44mjC2bnQvh50g+DI3u3
+psEk1jXW2OUBynCxFtZHbr4QbH7pUG529+Xkgw941aBz9Y3RmR+URCOWxu5yWvna
+XTyRr2zol+iGXfeei/rErGZP5HI/O92eTjXSEx99u0RL9FOs1hTXQDm6wD/8hSDT
+xADQ59hHmQR5h4ZAsqxeyXUgwwkUrwSOpqKtKleIZaHMKL42yR8lD8NrIoQ5d046
+A8Bq2z66tome5NcumrdDAT/52qyprOR3M4ftCzndx8GtDVmDMNE2BFi0ZE7m/wjo
+QrGAq/iY//MphhYRJE4Joc8wf7xesApqoXFr9ZoSayVtdwKiRl75aS/7OxiVX45c
+l5RgXh1xqEG0Xc9aemfj1Eo1HzfgdhYDO/RRnJgUKUmIDELQLW2pp0AmOnkAMDvA
+u0SYrSTO0ZbciXiB9lpbQrx04YfTZchH5jayzMFvwMfcgCVSPDGQ3cnIUKh6u3bg
+7xOUzgR+arZOd/mD0G/4OtAKQ8q6ELb/PB2UYJSEbfWlyX1MCn4vj2/93S17Sunv
+NNu7fv8Mbzf6+cPMyS/R6Sw9KqxsJjvQCV7EgCeL3WHw55VRQ8QN5jHQeNbBxsJm
+AdHjzMfTHhUFNtuUmuxSw5HHL7H0A/cHrNNLkatWPNCu/V9tLdMAEc+TvQIDAQAB
+o4G3MIG0MA8GA1UdEwEB/wQFMAMBAf8wPQYDVR0gBDYwNDAyBgsrBgEEAYGvZQEC
+ADAjMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNzYy5sdC9jcHMwMwYDVR0fBCww
+KjAooCagJIYiaHR0cDovL2NybC5zc2MubHQvcm9vdC1hL2NhY3JsLmNybDAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMy/3qeQd2JqHXhpLgo4m3dRUwPwMA0GCSqG
+SIb3DQEBBQUAA4ICAQA+r8ioxzNP8G6aQ+HysFdS4ZyeBl9C1vH9yotRP+HHZWlP
+dBlQis8Yk0mNoBywOz2OSJPZ6AV+xAmxD1KKa5dv1448gADQQXOtPcNEB3Fqj2J+
+BdhTYHKxAekAYqoN2NhJwrR9DVuzlyk2mbmn0UuYa0S8shKOdmR1TA3Nwi6zWPx6
+T1WzWX9d4C8wM8+IG2npTYqQnpC5MTrzogW8/vndUI0OlBmdfo2qFX4PUpMl5IEO
+li0cAxwwgxGWQqmYpJ1fyalcO0lowoRtmdr2/qLy3DdejXrlpVfKI0uTXZIqVYSz
+lrMemJRJfGw83J4dtqvDrAnFnd4311TEnK0/sNZpAeUQhn25gYNunGZOlQWSkDGH
+JrLakXS9hORxaOR2AOB2czRHhpVluluQom0FKXhg64b5Ek3oCFakzIyiVkrOgPQU
+YSLlqx06QTuE14J4BS+sHSNoq3J5hc1G5nqngloo0BU9HduMmFDO+69YO9OproA7
+FgB2J9Vw6QmNNpQJf+PvYBBRysZVcGarUW/zUU8SVq7719kN4PqrEN5qgayFdy2s
+emN7RuE32ldurWX8IQSZhQHPIzoyxe1am9WhggR3EUWOpER9wsvLpw/oErrybrqP
+MzAb3Sn48EKjbkKlbvpWpalQg9EFZhaLLfvmktHmbAvVWiltK89519naT/Botg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGKzCCBBOgAwIBAgIRAL6SgxjzVYp4o2dZHGkkCT8wDQYJKoZIhvcNAQEFBQAw
+dDELMAkGA1UEBhMCTFQxKzApBgNVBAoTIlNrYWl0bWVuaW5pbyBzZXJ0aWZpa2F2
+aW1vIGNlbnRyYXMxIDAeBgNVBAsTF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYw
+FAYDVQQDEw1TU0MgUm9vdCBDQSBCMB4XDTA2MTIyNzEyMjI1MFoXDTI2MTIyNTEy
+MDgyNlowdDELMAkGA1UEBhMCTFQxKzApBgNVBAoTIlNrYWl0bWVuaW5pbyBzZXJ0
+aWZpa2F2aW1vIGNlbnRyYXMxIDAeBgNVBAsTF0NlcnRpZmljYXRpb24gQXV0aG9y
+aXR5MRYwFAYDVQQDEw1TU0MgUm9vdCBDQSBCMIICIjANBgkqhkiG9w0BAQEFAAOC
+Ag8AMIICCgKCAgEAwfNV9UdRTlUXZY2wskEooUrRn0v2c/8+0slNWT/kt8efBl3Y
+PKOIhOBzXf0F6seO16QEauufvUP9FJJGuMW6qu1g7OzKkI0KcqlBm9SdvLBsohEf
+ZMvnHdRFZw4Ja+V47PE/BFTzmpnHWdHSeaekGrB8Sfwch1ReeAbV3R3MhaBCeNXQ
+sIrq6PGhnlbv08F9h6zn2mhPGdZv4JOtSVxzFMFGap33WEDZV1hObDf0ciME+NtK
+sN7xQZYSQKEVi2e4XnhWy3/kvsBJaJG4RwiTgcG1GzEG04B70UWhzww9YfOS+PGw
+FQ74LjBbAKNJ923+7ty/iM/wfVc+r8DRiut80m0xVfqEjXNq2nCAxPTCz5COMJrh
+xjVyAQjmP+ZmAKPy+JIdvFLsj/bc9wrvvBCH+YQYjF4fA7j/NS8BauXwW2J847N/
+M6qU105RgbXoV3iPIpapDIlUPrbu2XNfZPRE4fFqGP9SlsQcv4mXpMOnyn4Ybhbc
+E4y71bUlCYav9i9FlCowwRSUNfZdyiWVnLFYibi1YIXJxr4UGaM++VaFq8ps1pl5
+okoUb8M62OdmUQrpHP7MaeY0bPSB232iEfhMxIcFFj3rl3Q/buycubYnjCTfLbOv
+3RNhdo//8kzgCBkwMiQyXDaAF+6Gyd8vUeJWroOS8LO92Ic6LJ7E3GmZ+csCAwEA
+AaOBtzCBtDAPBgNVHRMBAf8EBTADAQH/MD0GA1UdIAQ2MDQwMgYLKwYBBAGBr2UB
+AgAwIzAhBggrBgEFBQcCARYVaHR0cDovL3d3dy5zc2MubHQvY3BzMDMGA1UdHwQs
+MCowKKAmoCSGImh0dHA6Ly9jcmwuc3NjLmx0L3Jvb3QtYi9jYWNybC5jcmwwDgYD
+VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBScA/Co0phyaK7y7eBP4oUOsiVOzzANBgkq
+hkiG9w0BAQUFAAOCAgEArFy8L/yuASSmED6sqOGnJ5mNyojBHT2R9qJ+pfGYQf+q
+YfgJvs0aJWF0tMOvQloJD5EBvkiV9Mp3XguDzoSdz0D9gCy942Y1Crix+mDa5dhU
+tUuXuqIawyBpjbRGc1yqv717/xowNFhA+StgC3lE+feilgtrUnvwK0s70ouga5M9
+yVdjimvMUBOPd6hRvhpMLUxdDJBbjvPvUCBtgeZRSavE59ddCCtR/D1GEufRpXbF
+UyQFyarTjljF84p0kjLt8C/dq63p0jWPdCPjmQDiizDkw0Ku8Lvp4ggbSnAtffjS
+mieRQnB1egh+vi8cfzc9qIvcRnL16G82aPpujSCd1PUHcb+9J0K5cyjW7Em0BYVP
+aEj2q5TfDqNGFGDCMSA76y5b3tWhLG3lUvqBX5eIyWO9AezjzWsKNcLJOOMO81gb
+fdqQbbf1yFhWna4B35GdrVWCAwwRdASRhsd8k4zzJ/vFJFdui9kbmJ2IMfCvd7gN
+tMzP9gpvEpvsCStTiexE4KFpi6h0hnQYUuDSv6ChZSG5CIN686T1+F43JUeZpl3X
+Ilrbk2cX2xDjjNESkUeKlaVHoQP4Sy4hxZBisH8no9sVfzh/bH9OBcUDtC3fRV91
+LB3xX6a19hc5Qen4ZcIeWBHKfI7itbqSD2e3j+uZ1DH7cntamF+SlMcE6jD2uxo=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGKjCCBBKgAwIBAgIQNLkSn6zHklVCXN5X/+PABTANBgkqhkiG9w0BAQUFADB0
+MQswCQYDVQQGEwJMVDErMCkGA1UEChMiU2thaXRtZW5pbmlvIHNlcnRpZmlrYXZp
+bW8gY2VudHJhczEgMB4GA1UECxMXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAU
+BgNVBAMTDVNTQyBSb290IENBIEMwHhcNMDYxMjI3MTIyNjMwWhcNMjYxMjIyMTIx
+MTMwWjB0MQswCQYDVQQGEwJMVDErMCkGA1UEChMiU2thaXRtZW5pbmlvIHNlcnRp
+ZmlrYXZpbW8gY2VudHJhczEgMB4GA1UECxMXQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkxFjAUBgNVBAMTDVNTQyBSb290IENBIEMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQChRSL6jMypbwSz9GgyFmkRT3nfQ71RYHAamN14eJaYYvdwS4Go
+4B0EifSP627p8P+B2C59rxcg8SLv8D9FR0C0y7K4ID8+SmhQ/5oG15fFt4oWLnHS
+R3NdGGUv7zkz6LZVryatAoDpY9chcAc+zL5ficD4zh0lbsP8f1Y5YdGOwiZ653gC
+ClndVSOw+DWn4qvzqy/XtYsKKnJUK215vPLZ6UP5z/GOZhL3l1kq2deU3PiUs0Wj
+rxYts4DKPc7opscKlHT8N5rpPww3FiBDyUdwu4yF/JiJKcuHGX4ZUxCJgHWuE/G/
+pF0wBSl8qPe2XgcwFYiuTRWgys3X/6ujBlcPp+OJaRzWGtHUJ9+Wxjhcr3f+FatE
+QX3TmLuoIBivi23UWsLYlo1I9QcxfmH0YZtSgUCOSicEsgfTAhCU8/vdsXtwuLTI
+gfUAB6aNiAVNxI+WztS2wMFmjCqsaErJRtwN5i6oeSh9d0NwFn4cGjqmeU8TQImx
+MrsJRhENdLwn5djtLfpQKdwlypcQ56miYS46iaZEYb5PXpIJ7dwupu9Tu2El2Cel
+FEYphSYA2Pn5BdV7FjFCQwUXkZxKYEAkbbVtenn7nJpjw5hp5XdiIypRiQ9ssv3D
+ytj0GkOU0H0L4Vg+Gsh0hJv3rIKuUUWS0gZZ4bPB3qUfkyJ52M3EeWAjlQIDAQAB
+o4G3MIG0MA8GA1UdEwEB/wQFMAMBAf8wPQYDVR0gBDYwNDAyBgsrBgEEAYGvZQEC
+ADAjMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNzYy5sdC9jcHMwMwYDVR0fBCww
+KjAooCagJIYiaHR0cDovL2NybC5zc2MubHQvcm9vdC1jL2NhY3JsLmNybDAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFIgHc/bxvFIaWh09kWLtXaydC+W3MA0GCSqG
+SIb3DQEBBQUAA4ICAQAfkHFQmNXZNNKWhBjCrEYCIBzLObG3rwWk11jzkVF9joEn
+nOiSseccnzqLEFJzTMLHQh3Q694qyiJRfYx0ehr8vKTzc8hmI8QuQxBH4IppV+4v
+8gBSsDCSqtbUFcVXy2B69A6N/h4JY3SP4P6+UNkBOVa6UEz240Wau1J23n6d+43C
+VDE+x7E8Pt/jT/3dmyRpfO3ocbZCBscfxV/7IHXbwf3pbKIqkNSG/c0N/+AFilhh
+PZ/EmS/t23zEDZiYVZx0ohde26oR5DcMJP8gZ9El25qJoGWIMZEEcV8glFgzNh0y
+3m/XZwipoDv926RQJZYeqV+JF6WXmVGVadvE8Y/0bzArWfOsdYczfQbd4cFr1sTJ
+XnBEemrHnHc7Fv7+db6fLNHAA+4ReXXsqVsceoW1KFAgqRod5nuMMxj/we3IdmUf
+HfBMO6fb6s1W2JRXP+BIqX+MM0u99AxlFICC9DV32AQQcM4PbMFZy5mtge7ePUjQ
+eogvQJPXnLp5hBiAdd/QWt9Rdz5YiWl1RzHkahZwVATsvVx5U2PS4l69TSXaEbYP
+quksrvXRqY0CVsv8sCTqjLpw/zLQt8YEKmPVykaR1ZlyCQdeKAOrEhwls2w6WWW0
+dG0tLRlyb/3nmBGHHnMjvzXxm7bD2cw7UHxy6M9ewJjMLgP9Hy/KdFyxHNHsaQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEvDCCA6SgAwIBAgIQAJCLMk/BkBrOtMM4Cc3P5DANBgkqhkiG9w0BAQUFADB5
+MQswCQYDVQQGEwJFUzE2MDQGA1UEChMtQ29uc2VqbyBHZW5lcmFsIGRlIGxhIEFi
+b2dhY2lhIE5JRjpRLTI4NjMwMDZJMTIwMAYDVQQDEylBdXRvcmlkYWQgZGUgQ2Vy
+dGlmaWNhY2lvbiBkZSBsYSBBYm9nYWNpYTAeFw0wNTA2MTMyMjAwMDBaFw0zMDA2
+MTMyMjAwMDBaMHkxCzAJBgNVBAYTAkVTMTYwNAYDVQQKEy1Db25zZWpvIEdlbmVy
+YWwgZGUgbGEgQWJvZ2FjaWEgTklGOlEtMjg2MzAwNkkxMjAwBgNVBAMTKUF1dG9y
+aWRhZCBkZSBDZXJ0aWZpY2FjaW9uIGRlIGxhIEFib2dhY2lhMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtLJX7oXwI+gN+7KAhPEQZ6uy+UnfXN5b5I8p
+GVPJ1egcUGthAoyH8I88wUWSC6yZocYahdY9rX4mph24PbKzPorFCjLTS5HvSXV+
+Vvf+oAhiRivO6vJRn2DeMsjtGqfPdVzrPcC9mkilhpTOWFAU6mrhmvSMZZXhYBUl
+lRL2uniLssDt5myXJFod5HRDyjjENZRYjvWKsGg8KCxElgm/CVtyCudnPJC5VDh0
+VLttLWpDyLzvCawfI+hSVl41F18ru17NZVKlFHw7sqrp3Se1NyM7Bg0se4262m9m
+F4anttceB10ebBmXyOUjc3jRrvkeuqGuSSLtZXEff/dadESNQwIDAQABo4IBPjCC
+ATowNwYDVR0RBDAwLoERYWNAYWNhYm9nYWNpYS5vcmeGGWh0dHA6Ly93d3cuYWNh
+Ym9nYWNpYS5vcmcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwEQYJ
+YIZIAYb4QgEBBAQDAgAHMB0GA1UdDgQWBBT8iEyObQShIJDT+Byas2cEX3mAxjCB
+qwYDVR0gBIGjMIGgMIGdBgsrBgEEAYGBFQoBATCBjTApBggrBgEFBQcCARYdaHR0
+cDovL3d3dy5hY2Fib2dhY2lhLm9yZy9kb2MwYAYIKwYBBQUHAgIwVBpSQ29uc3Vs
+dGUgbGEgZGVjbGFyYWNpb24gZGUgcHJhY3RpY2FzIGRlIGNlcnRpZmljYWNpb24g
+ZW4gaHR0cDovL3d3dy5hY2Fib2dhY2lhLm9yZzANBgkqhkiG9w0BAQUFAAOCAQEA
+mKf6ObVzESZ/vIk/tGslMzEKhjhryR4VlxTg0kwthfQ8dJuNKBH7zA4muYCDFtH5
+Rpi2RgeOZoVtcMC6TIDzpPDVN1Qrr2aEcnP5SC8JzuGFAcqP4IfeoJfQlLQNtU0O
+ZyzIYMQylMBBgQeNur+p6AxAmkJ4BV2B62Ic5E8UCj0LPh/p9M197kW7vN5d85iX
+JnvGEyn4K38a1Or6sm4gntoX6qGSvTfpDru7kdUl9mBdhSFQW/9UXfVLO7TDKRFY
+AvYl5OGCgruijeeRJF5AkZ5HB4wzV9RiMVF2dYVDbwmrEaUlKbnY/1+l9z/rZTsd
+74blFiLVHsoyaX1+BdcwJw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJF
+UzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJ
+R1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcN
+MDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3WjBoMQswCQYDVQQGEwJFUzEfMB0G
+A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScw
+JQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+
+WmmmO3I2F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKj
+SgbwJ/BXufjpTjJ3Cj9BZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGl
+u6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQD0EbtFpKd71ng+CT516nDOeB0/RSrFOy
+A8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXteJajCq+TA81yc477OMUxk
+Hl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMBAAGjggM7
+MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBr
+aS5ndmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIIC
+IwYKKwYBBAG/VQIBADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8A
+cgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIA
+YQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIAYQBsAGkAdABhAHQAIABWAGEA
+bABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQByAGEAYwBpAPMA
+bgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
+aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMA
+aQBvAG4AYQBtAGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQA
+ZQAgAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEA
+YwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBuAHQAcgBhACAAZQBuACAAbABhACAA
+ZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAAOgAvAC8AdwB3AHcA
+LgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0dHA6
+Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+y
+eAT8MIGVBgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQsw
+CQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0G
+A1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVu
+Y2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRhTvW1yEICKrNcda3Fbcrn
+lD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdzCkj+IHLt
+b8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg
+9J63NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XF
+ducTZnV+ZfsBn5OHiJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmC
+IoaZM3Fa6hlXPZHNqcCjbgcTpsnt+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNV
+BAMML0VCRyBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sx
+c8SxMTcwNQYDVQQKDC5FQkcgQmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXpt
+ZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAeFw0wNjA4MTcwMDIxMDlaFw0xNjA4
+MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25payBTZXJ0aWZpa2Eg
+SGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2ltIFRl
+a25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h
+4fuXd7hxlugTlkaDT7byX3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAk
+tiHq6yOU/im/+4mRDGSaBUorzAzu8T2bgmmkTPiab+ci2hC6X5L8GCcKqKpE+i4s
+tPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfreYteIAbTdgtsApWjluTL
+dlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZTqNGFav4
+c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8Um
+TDGyY5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z
++kI2sSXFCjEmN1ZnuqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0O
+Lna9XvNRiYuoP1Vzv9s6xiQFlpJIqkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMW
+OeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vmExH8nYQKE3vwO9D8owrXieqW
+fo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0Nokb+Clsi7n2
+l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
+/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgw
+FoAU587GT/wWZ5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+
+8ygjdsZs93/mQJ7ANtyVDR2tFcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI
+6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgmzJNSroIBk5DKd8pNSe/iWtkqvTDO
+TLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64kXPBfrAowzIpAoHME
+wfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqTbCmY
+Iai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJn
+xk1Gj7sURT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4Q
+DgZxGhBM/nV+/x5XOULK1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9q
+Kd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11t
+hie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQY9iJSrSq3RZj9W6+YKH4
+7ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9AahH3eU7
+QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHqTCCBZGgAwIBAgIQYwaGp8U3ZaVDkKhqWMzUMjANBgkqhkiG9w0BAQUFADCB
+jzELMAkGA1UEBhMCTFYxNTAzBgNVBAoTLFZBUyBMYXR2aWphcyBQYXN0cyAtIFZp
+ZW4ucmVnLk5yLjQwMDAzMDUyNzkwMSMwIQYDVQQLExpTZXJ0aWZpa2FjaWphcyBw
+YWthbHBvanVtaTEkMCIGA1UEAxMbVkFTIExhdHZpamFzIFBhc3RzIFNTSShSQ0Ep
+MB4XDTA2MDkxMzA5MjIxMFoXDTI0MDkxMzA5Mjc1N1owgY8xCzAJBgNVBAYTAkxW
+MTUwMwYDVQQKEyxWQVMgTGF0dmlqYXMgUGFzdHMgLSBWaWVuLnJlZy5Oci40MDAw
+MzA1Mjc5MDEjMCEGA1UECxMaU2VydGlmaWthY2lqYXMgcGFrYWxwb2p1bWkxJDAi
+BgNVBAMTG1ZBUyBMYXR2aWphcyBQYXN0cyBTU0koUkNBKTCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBAJu4+f1hVS9PpKUUtS6OuSSPrPuxVD9A/0/F5YZo
+e1OT+zWCNahQLpRSoNuDPnXaFXCsCc/ugkmtNkm5tHGLtAChQgbKCApjl7YI/O60
+3Jh4GYLJ+H9kPqrJ/rGN67Bk9bzzxD46kOpOjj8bGbxqg8ORPGxV+wpSwOjhXXeF
+M8VJ3+xqv79sN/6OSaIVGM6LjmseOKMwb4iBfnJWRBrEejkP9sSPltSy6wBOXN67
+5zu35iQFk2tN5pFEv+6YG8eFGxFBeyI2p74+6Ho33BjekJ2PzbLXmj/iF39bDOHv
+P2Y9biTksM7DDIhslNo4JXxSOeNzFLMARWOaDEJAXgTG93JkzsluM7Pk020klTeT
+fvIAXRmLH/NDc6ifRdIGqey0Qrv67gzHTz9RH9Gv0KwYf4eBIv6p3QeWbXz4TtlN
+OlBp1UF+xdp02I5z5X6D4cMZgbe9v0COvi6aogyqTgIuuyrhCF0xA8msJ7Cv3NXI
+FH1AnVWJIfmQzNTJYEFzq+jN2DpVOQqCmf6b9fU8HJHLwPpGVK4h/CqsXHveepdx
+/WxrzUiapNuBfBg3L5B9YZS9F8lctlQWd8oJSqrpvE+UdQFaVryS0o+515feVnQB
+9xZxSbH1GEaZQe5i4bMsZXVpKXJDA/ibH/o49J7sQBCOrJfVsDO+nxjcLfdBeFRK
+YkTnAgMBAAGjggH9MIIB+TAOBgNVHQ8BAf8EBAMCAQYwGAYIKwYBBQUHAQMEDDAK
+MAgGBgQAjkYBATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTMw/Vm/3OsOFqW
+GyGJuIFMH8teJTAQBgkrBgEEAYI3FQEEAwIBADCCAYkGA1UdIASCAYAwggF8MIIB
+eAYLKwYBBAGBxFkBAQIwggFnMIIBOAYIKwYBBQUHAgIwggEqHoIBJgBTAGkAcwAg
+AGkAcgAgAHMAZQByAHQAaQBmAGkAawBhAHQAcwAsACAAawBvACAAaQB6AGQAZQB2
+AGkAcwAgAFYAQQBTACAATABhAHQAdgBpAGoAYQBzACAAUABhAHMAdABzACwAIABu
+AG8AZAByAG8AcwBpAG4AbwB0ACAAYQB0AGIAaQBsAHMAdABpAGIAdQAgAEUAbABl
+AGsAdAByAG8AbgBpAHMAawBvACAAZABvAGsAdQBtAGUAbgB0AHUAIABsAGkAawB1
+AG0AYQBtACAAdQBuACAARQBpAHIAbwBwAGEAcwAgAFAAYQByAGwAYQBtAGUAbgB0
+AGEAIABkAGkAcgBlAGsAdABpAHYAYQBpACAAMQA5ADkAOQAvADkAMwAvAEUASzAp
+BggrBgEFBQcCARYdaHR0cDovL3d3dy5lLW1lLmx2L3JlcG9zaXRvcnkwDQYJKoZI
+hvcNAQEFBQADggIBAB8oSjWQIWNoCi94r6MegiaXoz8nGdJLo0J6BhNlW8EEy+t9
+fO+U8vGJ9bffUgIhadLqljTloM+XuJxVDhCFoxReLAX4tTp28/l6uN62DCdp8suU
+kQsdudWOb5kvzfIZVjk6SFbwAf+Cdbay/dHU9fJjV0xNoX7MELoEae/0FPyzlx9F
+7m9KKH/Rxie8x6Opa3vtghNvq94P+3HrXBEaqSzQMJ/8NjdW75XpurcTtq6fAmGt
+nuxrBG82nw+Z98LJyEwouSjUIdeeVNXAzvSO5FWUe48kxjj8q3qkVnc9qEXvZJKk
+0Ep+u3OL9A1Sc7g6SF5DgNOpcHdi/8coHHMeQ+YnJFtJueY2pI79xS0veqV5EnrX
+IbIlbcgPosNhS+VI4le6n/KKId3bZPDaGd/OwJuAOcJ3d2MVU3KE+qSPBzeGIX1Q
++j1qN9uRDjez/c4Lynth0Jx0nH04aG3pex3W8Sq07ztgUncF5gLCX4xbvPB9t3PH
+kWuyKrNjozTVq60lcUf/Gj56to2VdsPups0DCWzuRWeYz5lIdsHOinSaaFIBNCLI
+7eIUC4S9bhCMsXKbvugI11fVf+q0AT1O5OLoZ+eMfunnQhHvlUbIkda+JxeAGTSY
+58bfHvwhX56GPbx+8Jy9cp70R4JbcWfz+txUTKhc2FnH0AcOEzMnvPRp8Gsh
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFKjCCBBKgAwIBAgIPRHTsyGxyHljduCx+9PyVMA0GCSqGSIb3DQEBBQUAMHwx
+CzAJBgNVBAYTAkVTMUswSQYDVQQKE0JBZ2VuY2lhIE5vdGFyaWFsIGRlIENlcnRp
+ZmljYWNpb24gUy5MLiBVbmlwZXJzb25hbCAtIENJRiBCODMzOTU5ODgxIDAeBgNV
+BAMTF0FOQ0VSVCBDZXJ0aWZpY2Fkb3MgQ0dOMB4XDTA0MDIxMTE3MjcxMloXDTI0
+MDIxMTE3MjcxMlowfDELMAkGA1UEBhMCRVMxSzBJBgNVBAoTQkFnZW5jaWEgTm90
+YXJpYWwgZGUgQ2VydGlmaWNhY2lvbiBTLkwuIFVuaXBlcnNvbmFsIC0gQ0lGIEI4
+MzM5NTk4ODEgMB4GA1UEAxMXQU5DRVJUIENlcnRpZmljYWRvcyBDR04wggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCQdT8/DKzK1HzESKcYuzq7obvVe9+L
+GeSCRPtl7LYSYT5pIhliNSS21RAGqUVqJCr1J4x4PMi58wVsxQID0k6AZOyGq3iU
+IgIAtWib1OVVX+DIgDDnC79r1wSOTnmYcEwcJrmzqOrwEaK5ilMCJnUSieH7iE5Z
+egDRgtgWruW2vJUlYEB3JRue743k/fBPMzElv+56ClTwkDhnEnulYNoMAYmadocu
+9RtDe+XnJkr7FWKrRRt71QqlTWxNq58oSIThg3W4GHBVU9vQ3ymQrznGF5XBlMVe
+2WVfXf9uFpWYIZ9eTfDNMTkhAxcNkR+hVZlB7FXJuz2ZXJvFf9EcXupTAgMBAAGj
+ggGnMIIBozAPBgNVHRMBAf8EBTADAQH/MIIBIAYDVR0gBIIBFzCCARMwggEPBgkr
+BgEEAYGTaAQwggEAMCUGCCsGAQUFBwIBFhlodHRwOi8vd3d3LmFuY2VydC5jb20v
+Y3BzMIHWBggrBgEFBQcCAjCByTANFgZBTkNFUlQwAwIBARqBt0FnZW5jaWEgTm90
+YXJpYWwgZGUgQ2VydGlmaWNhY2lvbi4gTGEgZGVjbGFyYWNpb24gZGUgcHJhY3Rp
+Y2FzIGRlIGNlcnRpZmlhY2lvbiBxdWUgcmlnZSBlbCBmdW5jaW9uYW1pZW50byBk
+ZSBsYSBwcmVzZW50ZSBhdXRvcmlkYWQgc2UgZW5jdWVudHJhIGRpc3BvbmlibGUg
+ZW4gaHR0cDovL3d3dy5hbmNlcnQuY29tL2NwczAOBgNVHQ8BAf8EBAMCAYYwHAYD
+VR0RBBUwE4ERYW5jZXJ0QGFuY2VydC5jb20wHwYDVR0jBBgwFoAU7FefyHYib8w6
+rlvwLaFiWNGNAswwHQYDVR0OBBYEFOxXn8h2Im/MOq5b8C2hYljRjQLMMA0GCSqG
+SIb3DQEBBQUAA4IBAQCLPd/cNix/J5z8tVhTcQoSXRBkUXG1Slb0XkRnHu8dsvGk
+UTxnbCxllnqhEqOvCwg3DpnWbiiHC2KrTnhOcoGb3xFPiWDIUaYbBglxc3w3txw4
+N5r5h+Hvoe5/18DqORT6fG8L+YbK5sV3aaCfjSmjd27FzNr23QZ602lmPmA74zLf
+rvAbniqdzITfGhBH7aVWlkI3tS1yDUESk7oyiETIrgnEvYDt/WAPcrK2ZPZjIDJw
+d4cuMy6fNchfqJJWt/8kOixd8iYFaBnyUWfP31IJ6YIEemuCp3/l0ql0axgmyLrU
+1R6lSzsmwZ0i4fsSvdViRtXXXdLdw/xhDTAFTwWL
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFPDCCBCSgAwIBAgIRAPTPierdpMY+ka1IDi0iNoQwDQYJKoZIhvcNAQEFBQAw
+gYMxCzAJBgNVBAYTAkVTMUswSQYDVQQKE0JBZ2VuY2lhIE5vdGFyaWFsIGRlIENl
+cnRpZmljYWNpb24gUy5MLiBVbmlwZXJzb25hbCAtIENJRiBCODMzOTU5ODgxJzAl
+BgNVBAMTHkFOQ0VSVCBDZXJ0aWZpY2Fkb3MgTm90YXJpYWxlczAeFw0wNDAyMTEx
+NTU4MzBaFw0yNDAyMTExNTU4MjZaMIGDMQswCQYDVQQGEwJFUzFLMEkGA1UEChNC
+QWdlbmNpYSBOb3RhcmlhbCBkZSBDZXJ0aWZpY2FjaW9uIFMuTC4gVW5pcGVyc29u
+YWwgLSBDSUYgQjgzMzk1OTg4MScwJQYDVQQDEx5BTkNFUlQgQ2VydGlmaWNhZG9z
+IE5vdGFyaWFsZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDwkQ/Q
+Zy0psmNNHzV59mVrufPztViTJ2RPp9VbggVym38drgjSjNDRyWCwmRk11hnGADlp
+fSLvdCKDtH7qEIs+Mxzh3WQ2KfNSSm5Bw75RDB9juL+NqT8xMTu78TZEPCdlFHl1
+5hCkPFgby1NiEvWHWkaieaNg4xao3oSm+uXMxBAy9kLaR00YPeZ6DysOY/9nfUPV
+dBaQNLQPziZzIcFK2mTkT+Mjtdn2q7dKf5bhy0f9BkPRlDRpCv496GaqJgzVYzkG
+cJOtfLPkR8E7R45plwyRoEwHj8mATK5wk2iPocMiwvF1myh9kpJVOqhZGewSMRzv
+nRfcuUAJW/QtEyZzAgMBAAGjggGnMIIBozAcBgNVHREEFTATgRFhbmNlcnRAYW5j
+ZXJ0LmNvbTAfBgNVHSMEGDAWgBSE9/pyXohkZh0ojLB3vQxqn0xNYjAPBgNVHRMB
+Af8EBTADAQH/MIIBIAYDVR0gBIIBFzCCARMwggEPBgkrBgEEAYGTaAEwggEAMCUG
+CCsGAQUFBwIBFhlodHRwOi8vd3d3LmFuY2VydC5jb20vY3BzMIHWBggrBgEFBQcC
+AjCByTANFgZBTkNFUlQwAwIBARqBt0FnZW5jaWEgTm90YXJpYWwgZGUgQ2VydGlm
+aWNhY2lvbi4gTGEgZGVjbGFyYWNpb24gZGUgcHJhY3RpY2FzIGRlIGNlcnRpZmlh
+Y2lvbiBxdWUgcmlnZSBlbCBmdW5jaW9uYW1pZW50byBkZSBsYSBwcmVzZW50ZSBh
+dXRvcmlkYWQgc2UgZW5jdWVudHJhIGRpc3BvbmlibGUgZW4gaHR0cDovL3d3dy5h
+bmNlcnQuY29tL2NwczAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIT3+nJeiGRm
+HSiMsHe9DGqfTE1iMA0GCSqGSIb3DQEBBQUAA4IBAQAv+OXYM6XClG5ewPHuoUwK
+rYYPwDPdntLZm+7FK4UpdqylElOTHaoH7Ok5ZAto8HUk6dGGjJxTausVoQm3GQe5
+nY8CshtJcMJjdN0Lqv4HxjdWxoP+wE8czDiq/e5VmIlcwlOtIIe6FmRSYezBn7vU
+YtEqyF3wK/jaEs4jy7HMwdIKvfzAgE5VSfqJ2GSjSsrui9fl7ZL7YOLiKs8tKD6m
+/4CcZcwSnqUcdFmQpYd/ZxWAEMCh0agw7KECkYpa0yMXk1pHIXnqM3oPfzg1mspW
+uL9kuqewtVEdFp6OiX04OsuETQeY2OXhjAVqpTcM1nkpPvFCxLb36hmgYeACTr8S
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFTTCCBDWgAwIBAgIQP7Ll8tF8ixhkVmKpOYF/pzANBgkqhkiG9w0BAQUFADCB
+jDELMAkGA1UEBhMCRVMxSzBJBgNVBAoTQkFnZW5jaWEgTm90YXJpYWwgZGUgQ2Vy
+dGlmaWNhY2lvbiBTLkwuIFVuaXBlcnNvbmFsIC0gQ0lGIEI4MzM5NTk4ODEwMC4G
+A1UEAxMnQU5DRVJUIENvcnBvcmFjaW9uZXMgZGUgRGVyZWNobyBQdWJsaWNvMB4X
+DTA0MDIxMTE3MjI0NVoXDTI0MDIxMTE3MjI0NVowgYwxCzAJBgNVBAYTAkVTMUsw
+SQYDVQQKE0JBZ2VuY2lhIE5vdGFyaWFsIGRlIENlcnRpZmljYWNpb24gUy5MLiBV
+bmlwZXJzb25hbCAtIENJRiBCODMzOTU5ODgxMDAuBgNVBAMTJ0FOQ0VSVCBDb3Jw
+b3JhY2lvbmVzIGRlIERlcmVjaG8gUHVibGljbzCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAKIhlYfciuvWepCoaDX9F/x0OlQQkjWTQnUu2D7LqZShvmo3
+P1K6pHvahJkWeU4AaNQfE+lGOzxKnYM62CHvwvJAReEPYEUE7fyKGC75PeSkETIg
+jjq37pZAFRqZ6SGdcqzNH4muqtmhQLCoZ778eg5HsV68+DBqjjefBULsLMOmG4ur
+xFA9+uRz9SGwuFVfh+CiRzgvQF9PbKuUJFbjTI9+kOkngiibmLqa1rWbV29rFRz5
+u3ApfTz3E6jRcfGw/ohFcamldGXLw/n1Aw8Qw4YwAG7BwCaiiP4hxzI9u8Z7G7eb
+irP6sXxx2QGnQpCqL5iQhKrexq3sPFFKBR0BUZsCAwEAAaOCAacwggGjMA8GA1Ud
+EwEB/wQFMAMBAf8wggEgBgNVHSAEggEXMIIBEzCCAQ8GCSsGAQQBgZNoAzCCAQAw
+JQYIKwYBBQUHAgEWGWh0dHA6Ly93d3cuYW5jZXJ0LmNvbS9jcHMwgdYGCCsGAQUF
+BwICMIHJMA0WBkFOQ0VSVDADAgEBGoG3QWdlbmNpYSBOb3RhcmlhbCBkZSBDZXJ0
+aWZpY2FjaW9uLiBMYSBkZWNsYXJhY2lvbiBkZSBwcmFjdGljYXMgZGUgY2VydGlm
+aWFjaW9uIHF1ZSByaWdlIGVsIGZ1bmNpb25hbWllbnRvIGRlIGxhIHByZXNlbnRl
+IGF1dG9yaWRhZCBzZSBlbmN1ZW50cmEgZGlzcG9uaWJsZSBlbiBodHRwOi8vd3d3
+LmFuY2VydC5jb20vY3BzMA4GA1UdDwEB/wQEAwIBhjAcBgNVHREEFTATgRFhbmNl
+cnRAYW5jZXJ0LmNvbTAfBgNVHSMEGDAWgBSMTB43DLGf0qxECzq+As/0jS1mlTAd
+BgNVHQ4EFgQUjEweNwyxn9KsRAs6vgLP9I0tZpUwDQYJKoZIhvcNAQEFBQADggEB
+AEd0wJSR4qX7mFJEk2zEwB3gedtpZC1hrqR3kTW1t8qXqsCxhvUbaGuqWLJ8P+cD
+J/hBcbym0iCpgJWiR61tRnSthJvYb6n1uS9tm8DdmYftWbJ1gaWJhSrM0IWBTfOv
+d96MwSiaQqwFhww0nHGH/ewBFB++wy7w3/okpl0fPPGiC1GIAa4Sh6S1XXGy3+8N
+fCDjfxMLTabAd8w/1g9xx3FMLh76GQZlya1WbHeNRj+9MIMe4C5VuHgjdDxYCmM6
+TYF7bzVwrrYl2fYk/iPG2hqIr6gUk3PgwFuwMWka9ilfVrcaCsL5C+oCwTMRYmp8
+Q+jqGquQAIXgRQ99jrpQ1cY=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIH/jCCBeagAwIBAgIBADANBgkqhkiG9w0BAQUFADCB1DELMAkGA1UEBhMCQVQx
+DzANBgNVBAcTBlZpZW5uYTEQMA4GA1UECBMHQXVzdHJpYTE6MDgGA1UEChMxQVJH
+RSBEQVRFTiAtIEF1c3RyaWFuIFNvY2lldHkgZm9yIERhdGEgUHJvdGVjdGlvbjEq
+MCgGA1UECxMhR0xPQkFMVFJVU1QgQ2VydGlmaWNhdGlvbiBTZXJ2aWNlMRQwEgYD
+VQQDEwtHTE9CQUxUUlVTVDEkMCIGCSqGSIb3DQEJARYVaW5mb0BnbG9iYWx0cnVz
+dC5pbmZvMB4XDTA2MDgwNzE0MTIzNVoXDTM2MDkxODE0MTIzNVowgdQxCzAJBgNV
+BAYTAkFUMQ8wDQYDVQQHEwZWaWVubmExEDAOBgNVBAgTB0F1c3RyaWExOjA4BgNV
+BAoTMUFSR0UgREFURU4gLSBBdXN0cmlhbiBTb2NpZXR5IGZvciBEYXRhIFByb3Rl
+Y3Rpb24xKjAoBgNVBAsTIUdMT0JBTFRSVVNUIENlcnRpZmljYXRpb24gU2Vydmlj
+ZTEUMBIGA1UEAxMLR0xPQkFMVFJVU1QxJDAiBgkqhkiG9w0BCQEWFWluZm9AZ2xv
+YmFsdHJ1c3QuaW5mbzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANIS
+R+xfmOgNhhVJxN3snvFszVG2+5VPi8SQPVMzsdMTxUjipb/19AOED5x4cfaSl/Fb
+WXUYPycLUS9caMeh6wDz9pU9acN+wqzECjZyelum0PcBeyjHKscyYO5ZuNcLJ92z
+RQUre2Snc1zokwKXaOz8hNue1NWBR8acwKyXyxnqh6UKo7h1JOdQJw2rFvlWXbGB
+ARZ98+nhJPMIIbm6rF2ex0h5f2rK3zl3BG0bbjrNf85cSKwSPFnyas+ASOH2AGd4
+IOD9tWR7F5ez5SfdRWubYZkGvvLnnqRtiztrDIHutG+hvhoSQUuerQ75RrRa0QMA
+lBbAwPOs+3y8lsAp2PkzFomjDh2V2QPUIQzdVghJZciNqyEfVLuZvPFEW3sAGP0q
+GVjSBcnZKTYl/nfua1lUTwgUopkJRVetB94i/IccoO+ged0KfcB/NegMZk3jtWoW
+WXFb85CwUl6RAseoucIEb55PtAAt7AjsrkBu8CknIjm2zaCGELoLNex7Wg22ecP6
+x63B++vtK4QN6t7565pZM2zBKxKMuD7FNiM4GtZ3k5DWd3VqWBkXoRWObnYOo3Ph
+XJVJ28EPlBTF1WIbmas41Wdu0qkZ4Vo6h2pIP5GW48bFJ2tXdDGY9j5xce1+3rBN
+LPPuj9t7aNcQRCmt7KtQWVKabGpyFE0WFFH3134fAgMBAAGjggHXMIIB0zAdBgNV
+HQ4EFgQUwAHV4HgfL3Q64+vAIVKmBO4my6QwggEBBgNVHSMEgfkwgfaAFMAB1eB4
+Hy90OuPrwCFSpgTuJsukoYHapIHXMIHUMQswCQYDVQQGEwJBVDEPMA0GA1UEBxMG
+Vmllbm5hMRAwDgYDVQQIEwdBdXN0cmlhMTowOAYDVQQKEzFBUkdFIERBVEVOIC0g
+QXVzdHJpYW4gU29jaWV0eSBmb3IgRGF0YSBQcm90ZWN0aW9uMSowKAYDVQQLEyFH
+TE9CQUxUUlVTVCBDZXJ0aWZpY2F0aW9uIFNlcnZpY2UxFDASBgNVBAMTC0dMT0JB
+TFRSVVNUMSQwIgYJKoZIhvcNAQkBFhVpbmZvQGdsb2JhbHRydXN0LmluZm+CAQAw
+DwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAcYwEQYDVR0gBAowCDAGBgRVHSAA
+MD0GA1UdEQQ2MDSBFWluZm9AZ2xvYmFsdHJ1c3QuaW5mb4YbaHR0cDovL3d3dy5n
+bG9iYWx0cnVzdC5pbmZvMD0GA1UdEgQ2MDSBFWluZm9AZ2xvYmFsdHJ1c3QuaW5m
+b4YbaHR0cDovL3d3dy5nbG9iYWx0cnVzdC5pbmZvMA0GCSqGSIb3DQEBBQUAA4IC
+AQAVO4iDXg7ePvA+XdwtoUr6KKXWB6UkSM6eeeh5mlwkjlhyFEGFx0XuPChpOEmu
+Io27jAVtrmW7h7l+djsoY2rWbzMwiH5VBbq5FQOYHWLSzsAPbhyaNO7krx9i0ey0
+ec/PaZKKWP3Bx3YLXM1SNEhr5Qt/yTIS35gKFtkzVhaP30M/170/xR7FrSGshyya
+5BwfhQOsi8e3M2JJwfiqK05dhz52Uq5ZfjHhfLpSi1iQ14BGCzQ23u8RyVwiRsI8
+p39iBG/fPkiO6gs+CKwYGlLW8fbUYi8DuZrWPFN/VSbGNSshdLCJkFTkAYhcnIUq
+mmVeS1fygBzsZzSaRtwCdv5yN3IJsfAjj1izAn3ueA65PXMSLVWfF2Ovrtiuc7bH
+UGqFwdt9+5RZcMbDB2xWxbAH/E59kx25J8CwldXnfAW89w8Ks/RuFVdJG7UUAKQw
+K1r0Vli/djSiPf4BJvDduG3wpOe8IPZRCPbjN4lXNvb3L/7NuGS96tem0P94737h
+HB5Ufg80GYEQc9LjeAYXttJR+zV4dtp3gzdBPi1GqH6G3lb0ypCetK2wHkUYPDSI
+Aofo8DaR6/LntdIEuS64XY0dmi4LFhnNdqSr+9Hio6LchH176lDq9bIEO4lSOrLD
+GU+5JrG8vCyy4YGms2G19EVgLyx1xcgtiEsmu3DuO38BLQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDzDCCArSgAwIBAgILBAAAAAABBVJkwZUwDQYJKoZIhvcNAQEFBQAwUzELMAkG
+A1UEBhMCQkUxHDAaBgNVBAoTE0NlcnRpcG9zdCBzLmEuL24udi4xJjAkBgNVBAMT
+HUNlcnRpcG9zdCBFLVRydXN0IFRPUCBSb290IENBMB4XDTA1MDcyNjEwMDAwMFoX
+DTI1MDcyNjEwMDAwMFowUzELMAkGA1UEBhMCQkUxHDAaBgNVBAoTE0NlcnRpcG9z
+dCBzLmEuL24udi4xJjAkBgNVBAMTHUNlcnRpcG9zdCBFLVRydXN0IFRPUCBSb290
+IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApdRLQNb78TUYO6Kw
+Q+TJVaHAB7sIvjoZtSPDHp2zCEr0Q0vpwRlgkN+E11jGOt0KLJUsvZd//qJ12gbj
+q5ts0bjPRIbBUmC33D47sPLpxFE8SrmDuU5hagObHFKAOlC0ILLb07LGVH/LYJvI
+JJ6vCcdlDSj22poiwjNu8vMl1KT5lvVvqjxr3EEw5eZvykgfMHgdeX2n0b+uxV5D
++cYvg3abNEqkKFgrqIiFRGor8lZCdpmQM6ru+SHP8j35d4TL3SmExNSKKqQ5XD75
+HCVoTfXnm12xGjReygJz+QjEDG1e3RIq5XvFNnhSnTLBxSilIKjlmA25b8+5gJ7l
+vrmb/QIDAQABo4GgMIGdMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/
+MB0GA1UdDgQWBBRL3r4FMS7zNcjYyqdWxZQNtFplxTBIBgNVHSAEQTA/MD0GCQOQ
+DgcBAAECADAwMC4GCCsGAQUFBwIBFiJodHRwOi8vd3d3LmUtdHJ1c3QuYmUvQ1BT
+L1FOY2VydHMgMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
+iWPMos74VGp8WTR4qwG0li0qIW5ALV/QliKZgwUc5STN4vU1BL8AlgfssqQ6aisj
+PskPyhMduCSWCSbYPCqBzuGByMlzPvW7DwgekOCwkrnSOpdQ4AaO5IIwPGAgt6Tu
+q4kG4fwlu5HU+bdfaGOooGiGa6fskssi+lBbE1gnritDC7YXxjByBDNEJkpEBx9z
+oINBKeCSBrzVAer+vK9x6yAfCl0NoClezuRBUVWWwx+0MaWj81Pq/8KchnLPNkxW
+WgYyfl6rSqHOp+ufpIwquSSLuLXzBk2myn2Z+/ZV6q5Iee4mWdMfDFMV92JR+YQN
+lmxesQjmWQgrJikKwYNAcw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID3jCCAsagAwIBAgILBAAAAAABBVJkxCUwDQYJKoZIhvcNAQEFBQAwXDELMAkG
+A1UEBhMCQkUxHDAaBgNVBAoTE0NlcnRpcG9zdCBzLmEuL24udi4xLzAtBgNVBAMT
+JkNlcnRpcG9zdCBFLVRydXN0IFByaW1hcnkgUXVhbGlmaWVkIENBMB4XDTA1MDcy
+NjEwMDAwMFoXDTIwMDcyNjEwMDAwMFowXDELMAkGA1UEBhMCQkUxHDAaBgNVBAoT
+E0NlcnRpcG9zdCBzLmEuL24udi4xLzAtBgNVBAMTJkNlcnRpcG9zdCBFLVRydXN0
+IFByaW1hcnkgUXVhbGlmaWVkIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAriDSeNuaoHKcBFIlLG1S2NcniTOg4bLV+zB1ay1/HGeODucfEt8XeRi7
+tBtv+D11G55nN/Dx+g917YadAwShKHAtPLJroHNR4zWpdKUIPpSFJzYqqnJk/Hfu
+dpQccuu/Msd3A2olggkFr19gPH+sG7yS6Dx0Wc7xfFQtOK6W8KxvoTMMIVoBuiMg
+W6CGAtVT3EkfqDKzrztGO7bvnzmzOAvneor2KPmnb1ApyHlYi0nSpdiFflbxaRV4
+RBE116VUPqtmJdLb4xjxLivicSMJN2RDQnQylnfel6LploacJUQJ1AGdUX4ztwlE
+5YCXDWRbdxiXpUupnhCdh/pWp88KfQIDAQABo4GgMIGdMA4GA1UdDwEB/wQEAwIB
+BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTwePkHdxC73B6hrnn7MBDbxjT4
+FzBIBgNVHSAEQTA/MD0GCQOQDgcBAAECADAwMC4GCCsGAQUFBwIBFiJodHRwOi8v
+d3d3LmUtdHJ1c3QuYmUvQ1BTL1FOY2VydHMgMBEGCWCGSAGG+EIBAQQEAwIABzAN
+BgkqhkiG9w0BAQUFAAOCAQEAbOHYX3RY6XBJ1soNLFjaymS2UU/DBmQB6YpzHZ7P
+Rni/O4WG4j1KGJQqgXdvgvhv9O4i/J0YIXJguxiAgpX7+feVJIFmwbXDtdK2dos7
+gVy4oQ4rARSLgAlA7vhgTBnkF80nAbNjEgWkCMm0v55QTrXeD5IzZnXQPecjfOol
+cXz+Pi42eaHlKVAjNQWVeLufeWTcV0gnLOJcM83Cu35od6cvo0kXcuEAhGt9eq85
+CyzV2FdkMmyECmp2OtOszZ2x5zfc7AwvxVdg34j1Q7EBZCa0J4IQsqNQ75fmf7+R
+h7PbkKkq4no0bHNJ9OiNLmuK3aGKf2PQv1ger8w/klAt0Q==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID4DCCAsigAwIBAgILBAAAAAABBVJkx2EwDQYJKoZIhvcNAQEFBQAwXTELMAkG
+A1UEBhMCQkUxHDAaBgNVBAoTE0NlcnRpcG9zdCBzLmEuL24udi4xMDAuBgNVBAMT
+J0NlcnRpcG9zdCBFLVRydXN0IFByaW1hcnkgTm9ybWFsaXNlZCBDQTAeFw0wNTA3
+MjYxMDAwMDBaFw0yMDA3MjYxMDAwMDBaMF0xCzAJBgNVBAYTAkJFMRwwGgYDVQQK
+ExNDZXJ0aXBvc3Qgcy5hLi9uLnYuMTAwLgYDVQQDEydDZXJ0aXBvc3QgRS1UcnVz
+dCBQcmltYXJ5IE5vcm1hbGlzZWQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQDVs6pShHoXkyIPuAQYysnygiqsFQunUHG2TCVr9/8Bqldad05eExQN
+VfIe8YXNhdeCHAzaCSu9/bye/m2JTaICJOZR6jd/MUZae5p2sy6gXV/k+JkKB77u
+kiYSyXvnXWzQg0cOwIyn0XlXwAsZnJueQ8VOkSXOiCttedl5itZmTiLDGkVO78iw
+YiZOJlRQnwxvs2vMfJ9/3g8NtY/Da9Thwvu7VlCqjD2PAIs8/EgXatJa83VtZYG9
+Rl2fomJTrs7zqeSRK1omw3lm0aZTZjUcBnGx7pkOxPtYEqwiRi3iIpLb4Ty/u/6G
+55M0c894adPL3vkMsmjayYoKYFTE81ZjAgMBAAGjgaAwgZ0wDgYDVR0PAQH/BAQD
+AgEGMA8GA1UdEwEB/wQFMAMBAf8wSAYDVR0gBEEwPzA9BgkDkA4HAQABAgAwMDAu
+BggrBgEFBQcCARYiaHR0cDovL3d3dy5lLXRydXN0LmJlL0NQUy9RTmNlcnRzIDAd
+BgNVHQ4EFgQUEfILltIzOIFXWBP9QKQRb06Z+mcwEQYJYIZIAYb4QgEBBAQDAgAH
+MA0GCSqGSIb3DQEBBQUAA4IBAQA1a0/enfMDth3IvI3nXmqeqentoiuX6q/R4UbT
+Akl9xFKF67r20785Yhidk0m9eAO/014V3e8nHOG7RQEigQBNOuCFyloyA8wgj6/v
+wduo+vPc17KxDwOBCSngcXyL+n/LNm4b6BTO8EsmoTIpT8y09YdIDBP8x52vq9ST
+9SpNf0iCWD4X/8OAKqs/V1W4OSxmEGQmbYxr1t2ggxpaVhGWRr2ucCjWOFdbkdU/
+Temss8MkSpZlXDTQHtS/CKWXXfdG23bwzT51YwArr62uht5fpplUDYUjpfy67RtS
++kkYd4VbqnKbJwg1RTcn25fJ+os9yNCd3lrvXaMWtph5ynzL
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG
+A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh
+bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE
+ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS
+b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5
+7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS
+J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y
+HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP
+t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz
+FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY
+XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/
+MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw
+hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js
+MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA
+A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj
+Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx
+XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o
+omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc
+A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
+WL1WMRJOEcgh4LMRkWXbtKaIOM5V
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
+A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
+Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
+MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
+A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
+v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
+eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
+tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
+C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
+zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
+mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
+V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
+bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
+3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
+J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
+291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
+ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
+AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
+TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYT
+AkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQ
+TS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG
+9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMB4XDTAyMTIxMzE0MjkyM1oXDTIw
+MTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAM
+BgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEO
+MAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2
+LmZyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaI
+s9z4iPf930Pfeo2aSVz2TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2
+xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCWSo7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4
+u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYyHF2fYPepraX/z9E0+X1b
+F8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNdfrGoRpAx
+Vs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGd
+PDPQtQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNV
+HSAEDjAMMAoGCCqBegF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAx
+NjAfBgNVHSMEGDAWgBSjBS8YYFDCiQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUF
+AAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RKq89toB9RlPhJy3Q2FLwV3duJ
+L92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3QMZsyK10XZZOY
+YLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
+Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2a
+NjSaTFR+FwNIlQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R
+0982gaEbeC9xs/FZTEYYKKuF0mBWWg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt
+MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg
+Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i
+YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x
+CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG
+b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh
+bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3
+HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx
+WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX
+1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk
+u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P
+99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r
+M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB
+BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh
+cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5
+gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO
+ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf
+aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
+Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCB
+ijELMAkGA1UEBhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHly
+aWdodCAoYykgMjAwNTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
+ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQSBDQTAeFw0w
+NTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYDVQQGEwJDSDEQMA4G
+A1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIwIAYD
+VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBX
+SVNlS2V5IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAy0+zAJs9Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxR
+VVuuk+g3/ytr6dTqvirdqFEr12bDYVxgAsj1znJ7O7jyTmUIms2kahnBAbtzptf2
+w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbDd50kc3vkDIzh2TbhmYsF
+mQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ/yxViJGg
+4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t9
+4B3RLoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYw
+DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQw
+EAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOx
+SPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vImMMkQyh2I+3QZH4VFvbBsUfk2
+ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4+vg1YFkCExh8
+vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
+hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZi
+Fj4A4xylNoEYokxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ
+/L7fCg0=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UE
+BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWdu
+IFBsYXRpbnVtIENBIC0gRzIwHhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAw
+WjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMSMwIQYDVQQD
+ExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu669y
+IIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2Htn
+IuJpX+UFeNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+
+6ixuEFGSzH7VozPY1kneWCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5ob
+jM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIoj5+saCB9bzuohTEJfwvH6GXp43gOCWcw
+izSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/68++QHkwFix7qepF6w9fl
++zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34TaNhxKFrY
+zt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaP
+pZjydomyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtF
+KwH3HBqi7Ri6Cr2D+m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuW
+ae5ogObnmLo2t/5u7Su9IPhlGdpVCX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMB
+AAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+BBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCvzAeHFUdvOMW0
+ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW
+IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUA
+A4ICAQAIhab1Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0
+uMoI3LQwnkAHFmtllXcBrqS3NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+
+FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4U99REJNi54Av4tHgvI42Rncz7Lj7
+jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8KV2LwUvJ4ooTHbG/
+u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl9x8D
+YSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1
+puEa+S1BaYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXa
+icYwu+uPyyIIoK6q8QNsOktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbG
+DI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSYMdp08YSTcU1f+2BY0fvEwW2JorsgH51x
+kcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAciIfNAChs0B0QTwoRqjt8Z
+Wr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNV
+BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3aXNzU2ln
+biBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1MDgzMDM1WjBF
+MQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMR8wHQYDVQQDExZT
+d2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJCEyq8ZVeCQD5XJM1QiyUqt2/8
+76LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9lit/VcyLwVcfDmJlD909Vopz2q5+
+bbqBHH5CjCA12UNNhPqE21Is8w4ndwtrvxEvcnifLtg+5hg3Wipy+dpikJKVyh+c
+6bM8K8vzARO/Ws/BtQpgvd21mWRTuKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqE
+emA8atufK+ze3gE/bk3lUIbLtK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJd
+MmqXl2MT28nbeTZ7hTpKxVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdt
+MDeQKuSeFDNeFhdVxVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02y
+MszYF9rNt85mndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69y
+FGkOpeUDDniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPi
+aG59je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM
+gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOBrDCB
+qTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWyV7
+lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64OfPAeGZe6Drn
+8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEFBQcCARYgaHR0cDov
+L3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIBACe6
+45R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhWfvxyeDgD2StiGwC5+OlgzczO
+UYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g7gKZYbge9LgriBIWhMIxkziWMaa5
+O1M/wySTVltpkuzFwbs4AOPsF6m43Md8AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCC
+bwq7EsiHSycR+R4tx5M/nttfJmtS2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yv
+GPUqUfA5hJeVbG4bwyvEdGB5JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a
+77KwPJ+HbBIrZXAVUjEaJM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCC
+hdiDyyJkvC24JdVUorgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid3
+92qgQmwLOM7XdVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEpp
+Ld6leNcG2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+w
+ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt
+Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UE
+BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWdu
+IFNpbHZlciBDQSAtIEcyMB4XDTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0Nlow
+RzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMY
+U3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644N0Mv
+Fz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7br
+YT7QbNHm+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieF
+nbAVlDLaYQ1HTWBCrpJH6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH
+6ATK72oxh9TAtvmUcXtnZLi2kUpCe2UuMGoM9ZDulebyzYLs2aFK7PayS+VFheZt
+eJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5hqAaEuSh6XzjZG6k4sIN/
+c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5FZGkECwJ
+MoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRH
+HTBsROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTf
+jNFusB3hB48IHpmccelM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb6
+5i/4z3GcRm25xBWNOHkDRUjvxF3XCO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOB
+rDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU
+F6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRBtjpbO8tFnb0c
+wpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
+cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIB
+AHPGgeAn0i0P4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShp
+WJHckRE1qTodvBqlYJ7YH39FkWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9
+xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L3XWgwF15kIwb4FDm3jH+mHtwX6WQ
+2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx/uNncqCxv1yL5PqZ
+IseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFaDGi8
+aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2X
+em1ZqSqPe97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQR
+dAtq/gsD/KNVV4n+SsuuWxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/
+OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJDIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+
+hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ubDgEj8Z+7fNzcbBGXJbLy
+tGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEezCCA2OgAwIBAgIQNxkY5lNUfBq1uMtZWts1tzANBgkqhkiG9w0BAQUFADCB
+rjELMAkGA1UEBhMCREUxIDAeBgNVBAgTF0JhZGVuLVd1ZXJ0dGVtYmVyZyAoQlcp
+MRIwEAYDVQQHEwlTdHV0dGdhcnQxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fz
+c2VuIFZlcmxhZyBHbWJIMT4wPAYDVQQDEzVTLVRSVVNUIEF1dGhlbnRpY2F0aW9u
+IGFuZCBFbmNyeXB0aW9uIFJvb3QgQ0EgMjAwNTpQTjAeFw0wNTA2MjIwMDAwMDBa
+Fw0zMDA2MjEyMzU5NTlaMIGuMQswCQYDVQQGEwJERTEgMB4GA1UECBMXQmFkZW4t
+V3VlcnR0ZW1iZXJnIChCVykxEjAQBgNVBAcTCVN0dXR0Z2FydDEpMCcGA1UEChMg
+RGV1dHNjaGVyIFNwYXJrYXNzZW4gVmVybGFnIEdtYkgxPjA8BgNVBAMTNVMtVFJV
+U1QgQXV0aGVudGljYXRpb24gYW5kIEVuY3J5cHRpb24gUm9vdCBDQSAyMDA1OlBO
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2bVKwdMz6tNGs9HiTNL1
+toPQb9UY6ZOvJ44TzbUlNlA0EmQpoVXhOmCTnijJ4/Ob4QSwI7+Vio5bG0F/WsPo
+TUzVJBY+h0jUJ67m91MduwwA7z5hca2/OnpYH5Q9XIHV1W/fuJvS9eXLg3KSwlOy
+ggLrra1fFi2SU3bxibYs9cEv4KdKb6AwajLrmnQDaHgTncovmwsdvs91DSaXm8f1
+XgqfeN+zvOyauu9VjxuapgdjKRdZYgkqeQd3peDRF2npW932kKvimAoA0SVtnteF
+hy+S8dF2g08LOlk3KC8zpxdQ1iALCvQm+Z845y2kuJuJja2tyWp9iRe79n+Ag3rm
+7QIDAQABo4GSMIGPMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEG
+MCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFTVFJvbmxpbmUxLTIwNDgtNTAdBgNV
+HQ4EFgQUD8oeXHngovMpttKFswtKtWXsa1IwHwYDVR0jBBgwFoAUD8oeXHngovMp
+ttKFswtKtWXsa1IwDQYJKoZIhvcNAQEFBQADggEBAK8B8O0ZPCjoTVy7pWMciDMD
+pwCHpB8gq9Yc4wYfl35UvbfRssnV2oDsF9eK9XvCAPbpEW+EoFolMeKJ+aQAPzFo
+LtU96G7m1R08P7K9n3frndOMusDXtk3sU5wPBG7qNWdX4wple5A64U8+wwCSersF
+iXOMy6ZNwPv2AtawB6MDwidAnwzkhYItr5pCHdDHjfhA7p0GVxzZotiAFP7hYy0y
+h9WUUpY6RsZxlj33mA6ykaqP2vROJAA5VeitF7nTNCtKqUDMFypVZUF0Qn71wK/I
+k63yGFs9iQzbRzkk+OBM8h+wPQrKBU6JIRrjKpms/H+h8Q8bHz2eBIPdltkdOpQ=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY
+MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
+R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx
+MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
+Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9
+AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA
+ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0
+7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W
+kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI
+mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
+A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ
+KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1
+6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl
+4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K
+oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj
+UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU
+AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB
+qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV
+BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw
+NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j
+LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG
+A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs
+W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta
+3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk
+6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6
+Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J
+NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA
+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP
+r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU
+DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz
+YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX
+xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2
+/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/
+LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7
+jVaMaA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB
+yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW
+ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
+ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln
+biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
+U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1
+nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex
+t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz
+SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG
+BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
+rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/
+NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
+BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH
+BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy
+aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv
+MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE
+p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y
+5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK
+WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ
+4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N
+hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK
+MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
+GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx
+MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg
+Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ
+iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa
+/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ
+jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI
+HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7
+sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w
+gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF
+MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw
+KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG
+AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L
+URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO
+H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm
+I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY
+iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
+f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI
+MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
+FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz
+MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv
+cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz
+Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO
+0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao
+wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj
+7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS
+8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT
+BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg
+JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC
+NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3
+6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/
+3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm
+D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS
+CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
+3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBk
+MQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0
+YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3Qg
+Q0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4MTgyMjA2MjBaMGQxCzAJBgNVBAYT
+AmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZp
+Y2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9
+m2BtRsiMMW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdih
+FvkcxC7mlSpnzNApbjyFNDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/
+TilftKaNXXsLmREDA/7n29uj/x2lzZAeAR81sH8A25Bvxn570e56eqeqDFdvpG3F
+EzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkCb6dJtDZd0KTeByy2dbco
+kdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn7uHbHaBu
+HYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNF
+vJbNcA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo
+19AOeCMgkckkKmUpWyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjC
+L3UcPX7ape8eYIVpQtPM+GP+HkM5haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJW
+bjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNYMUJDLXT5xp6mig/p/r+D5kNX
+JLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0hBBYw
+FDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
+BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzc
+K6FptWfUjNP9MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzf
+ky9NfEBWMXrrpA9gzXrzvsMnjgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7Ik
+Vh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQMbFamIp1TpBcahQq4FJHgmDmHtqB
+sfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4HVtA4oJVwIHaM190e
+3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtlvrsR
+ls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ip
+mXeascClOS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HH
+b6D0jqTsNFFbjCYDcKF31QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksf
+rK/7DZBaZmBwXarNeNQk7shBoJMBkpxqnvy5JMWzFYJ+vq6VK+uxwNrjAWALXmms
+hFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCyx/yP2FS1k2Kdzs9Z+z0Y
+zirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMWNY6E0F/6
+MBr1mmz0DlP5OlvRHA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAw
+cjELMAkGA1UEBhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNy
+b3NlYyBMdGQuMRQwEgYDVQQLEwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9z
+ZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0MDYxMjI4NDRaFw0xNzA0MDYxMjI4
+NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEWMBQGA1UEChMN
+TWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMTGU1p
+Y3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2u
+uO/TEdyB5s87lozWbxXGd36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+
+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/NoqdNAoI/gqyFxuEPkEeZlApxcpMqyabA
+vjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjcQR/Ji3HWVBTji1R4P770
+Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJPqW+jqpx
+62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcB
+AQRbMFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3Aw
+LQYIKwYBBQUHMAKGIWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAP
+BgNVHRMBAf8EBTADAQH/MIIBcwYDVR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIB
+AQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3LmUtc3ppZ25vLmh1L1NaU1ov
+MIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0AdAB2AOEAbgB5
+ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
+AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABT
+AHoAbwBsAGcA4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABh
+ACAAcwB6AGUAcgBpAG4AdAAgAGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABo
+AHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMAegBpAGcAbgBvAC4AaAB1AC8AUwBa
+AFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6Ly93d3cuZS1zemln
+bm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NOPU1p
+Y3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxP
+PU1pY3Jvc2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZv
+Y2F0aW9uTGlzdDtiaW5hcnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuB
+EGluZm9AZS1zemlnbm8uaHWkdzB1MSMwIQYDVQQDDBpNaWNyb3NlYyBlLVN6aWdu
+w7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhTWjEWMBQGA1UEChMNTWlj
+cm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhVMIGsBgNV
+HSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJI
+VTERMA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDAS
+BgNVBAsTC2UtU3ppZ25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBS
+b290IENBghEAzLjnv04pGv2i3GalHCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS
+8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMTnGZjWS7KXHAM/IO8VbH0jgds
+ZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FEaGAHQzAxQmHl
+7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
+86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfR
+hUZLphK3dehKyVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/
+MPMMNz7UwiiAc7EBt51alhQBS6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
+Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
+KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw
+NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw
+NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy
+ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV
+BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo
+Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4
+4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9
+KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI
+rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi
+94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB
+sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi
+gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo
+kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE
+vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
+A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t
+O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua
+AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP
+9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/
+eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m
+0vdXcDazv/wor3ElhVsT/h5/WrQ8
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEXzCCA0egAwIBAgIBATANBgkqhkiG9w0BAQUFADCB0DELMAkGA1UEBhMCRVMx
+SDBGBgNVBAoTP0laRU5QRSBTLkEuIC0gQ0lGIEEtMDEzMzcyNjAtUk1lcmMuVml0
+b3JpYS1HYXN0ZWl6IFQxMDU1IEY2MiBTODFCMEAGA1UEBxM5QXZkYSBkZWwgTWVk
+aXRlcnJhbmVvIEV0b3JiaWRlYSAzIC0gMDEwMTAgVml0b3JpYS1HYXN0ZWl6MRMw
+EQYDVQQDEwpJemVucGUuY29tMR4wHAYJKoZIhvcNAQkBFg9JbmZvQGl6ZW5wZS5j
+b20wHhcNMDMwMTMwMjMwMDAwWhcNMTgwMTMwMjMwMDAwWjCB0DELMAkGA1UEBhMC
+RVMxSDBGBgNVBAoTP0laRU5QRSBTLkEuIC0gQ0lGIEEtMDEzMzcyNjAtUk1lcmMu
+Vml0b3JpYS1HYXN0ZWl6IFQxMDU1IEY2MiBTODFCMEAGA1UEBxM5QXZkYSBkZWwg
+TWVkaXRlcnJhbmVvIEV0b3JiaWRlYSAzIC0gMDEwMTAgVml0b3JpYS1HYXN0ZWl6
+MRMwEQYDVQQDEwpJemVucGUuY29tMR4wHAYJKoZIhvcNAQkBFg9JbmZvQGl6ZW5w
+ZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC1btoCXXhp3xIW
+D+Bxl8nUCxkyiazWfpt0e68t+Qt9+lZjKZSdEw2Omj4qvr+ovRmDXO3iWpWVOWDl
+3JHJjAzFCe8ZEBNDH+QNYwZHmPBaMYFOYFdbAFVHWvys152C308hcFJ6xWWGmjvl
+2eMiEl9P2nR2LWue368DCu+ak7j3gjAXaCOdP1a7Bfr+RW3X2SC5R4Xyp8iHlL5J
+PHJD/WBkLrezwzQPdACw8m9EG7q9kUwlNpL32mROujS3ZkT6mQTzJieLiE3X04s0
+uIUqVkk5MhjcHFf7al0N5CzjtTcnXYJKN2Z9EDVskk4olAdGi46eSoZXbjUOP5gk
+Ej6wVZAXAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
+MB0GA1UdDgQWBBTqVk/sPIOhFIh4gbIrBSLAB0FbQjANBgkqhkiG9w0BAQUFAAOC
+AQEAYp7mEzzhw6o5Hf5+T5kcI+t4BJyiIWy7vHlLs/G8dLYXO81aN/Mzg928eMTR
+TxxYZL8dd9uwsJ50TVfX6L0R4Dyw6wikh3fHRrat9ufXi63j5K91Ysr7aXqnF38d
+iAgHYkrwC3kuxHBb9C0KBz6h8Q45/KCyN7d37wWAq38yyhPDlaOvyoE6bdUuK5hT
+m5EYA5JmPyrhQ1moDOyueWBAjxzMEMj+OAY1H90cLv6wszsqerxRrdTOHBdv7MjB
+EIpvEEQkXUxVXAzFuuT6m2t91Lfnwfl/IvljHaVC7DlyyhRYHD6D4Rx+4QKp4tWL
+vpw6LkI+gKNJ/YdMCsRZQzEEFA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
+b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
+cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
+JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
+mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
+VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
+AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
+AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
+BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
+pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
+dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
+fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
+NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
+H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
+b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
+CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
+nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
+43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
+T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
+gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
+BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
+TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
+DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
+hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
+06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
+PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
+YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
+CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
+RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
++9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
+PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
+xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
+Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
+hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
+EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
+MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
+FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
+nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
+eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
+hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
+Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
+vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
++OkuE6N36B9K
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
+GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
+b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV
+BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
+YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa
+GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg
+Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J
+WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB
+rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp
++ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1
+ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i
+Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz
+PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og
+/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH
+oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI
+yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud
+EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2
+A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL
+MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
+ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f
+BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn
+g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl
+fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K
+WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha
+B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc
+hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR
+TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD
+mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z
+ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y
+4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza
+8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
+GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
+b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV
+BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
+YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM
+V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB
+4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr
+H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd
+8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv
+vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT
+mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe
+btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc
+T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt
+WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ
+c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A
+4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD
+VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG
+CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0
+aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
+aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu
+dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw
+czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G
+A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC
+TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg
+Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0
+7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem
+d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd
++LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B
+4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN
+t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x
+DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57
+k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s
+zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j
+Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT
+mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK
+4SVhM7JZG+Ju1zdXtg2pEto=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJKUDEO
+MAwGA1UEChMFTEdQS0kxGjAYBgNVBAsTEUFwcGxpY2F0aW9uIENBIEcyMB4XDTA2
+MDMzMTE1MDAwMFoXDTE2MDMzMTE0NTk1OVowOTELMAkGA1UEBhMCSlAxDjAMBgNV
+BAoTBUxHUEtJMRowGAYDVQQLExFBcHBsaWNhdGlvbiBDQSBHMjCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBALk1xhD422jbB8RATLAdHjbcw0H2z1UVbQh/
+XMZoVeXnV/GWUebhTXgPbkAVcDtl/hHf59PWWDU74Z8C/JRSRi6znmCbAp7JgtL2
+464JT4REtmKbAFFouDqt7GTRMkvplESDtA7OIYlrsDbAmMZLnMI+W2AqCTErLatM
+3rGg/VhWwoMdILzEhAmHe6iVl8YljoPgPpMN0cd9c6mo/BkAQC4iuHozQfV4/Vpx
+54LZSIhc7KiFhy1tgIlnGmm+EMBaju2IfT5vLDhrN85H2KIxMN5+U2Vsi4ZTQSBs
+vUilfq8AWlYSWIHR3IlZ+bXu+E2a2EQpi3mn9yKq6nxctBaIIA0CAwEAAaOBsjCB
+rzAdBgNVHQ4EFgQUf7hdjsQYa8Z9zC7prs405xdd4KEwDgYDVR0PAQH/BAQDAgEG
+MEwGA1UdHwRFMEMwQaA/oD2kOzA5MQswCQYDVQQGEwJKUDEOMAwGA1UEChMFTEdQ
+S0kxGjAYBgNVBAsTEUFwcGxpY2F0aW9uIENBIEcyMA8GA1UdEwEB/wQFMAMBAf8w
+HwYDVR0jBBgwFoAUf7hdjsQYa8Z9zC7prs405xdd4KEwDQYJKoZIhvcNAQEFBQAD
+ggEBADzYczZABkhKVBn1J0g5JaVuQue2zRvLOTS3m+xPKr535MqE/B3rmyJA1fT7
+aIdy/Eddag5SSuO1XUjGIpbmM21tq/bN18skWoyoRZ4+YYJ9lNUF8Bo1X3EvLlS1
+QQXvhg1S75yYG/EsTDrR84bTjD56L4ZFjoMyJlu/U8oOUVbcmsJaMBkNp57Vqpsg
+OWl4IfSXbdEOEUwu0xtasPmXeFwqj1Jl7kxCJcI3MA5tKzWUgwbor0U7BGanMLv5
+4CE7Y259RF06alPvERck/VSyWmxzViHJbC2XpEKzJ2EFIWNt6ii8TxpvQtyYq1XT
+HhvAkj+bweY7F1bixJhDJe62ywA=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFvzCCA6egAwIBAgIQANKFcP2up9ZfEYQVxjG1yzANBgkqhkiG9w0BAQUFADBd
+MQswCQYDVQQGEwJFUzEoMCYGA1UECgwfRElSRUNDSU9OIEdFTkVSQUwgREUgTEEg
+UE9MSUNJQTENMAsGA1UECwwERE5JRTEVMBMGA1UEAwwMQUMgUkFJWiBETklFMB4X
+DTA2MDIxNjEwMzcyNVoXDTM2MDIwODIyNTk1OVowXTELMAkGA1UEBhMCRVMxKDAm
+BgNVBAoMH0RJUkVDQ0lPTiBHRU5FUkFMIERFIExBIFBPTElDSUExDTALBgNVBAsM
+BEROSUUxFTATBgNVBAMMDEFDIFJBSVogRE5JRTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAIAArQzDoyAHo2P/9zSgze5qVAgXXbEBFafmuV+Kcf8Mwh3q
+N/Pek3/WBU2EstXXHAz0xJFwQA5ayJikgOgNM8AH87f1rKE4esBmVCT8UswwKvLD
+xKEsdr/BwL+C8ZvwaHoTQMiXvBwlBwgKt5bvzClU4OZlLeqyLrEJaRJOMNXY+LwA
+gC9Nkw/NLlcbM7ufME7Epct5p/viNBi2IJ4bn12nyTqtRWSzGM4REpxtHlVFKISc
+V2dN+cvii49YCdQ5/8g20jjiDGV/FQ59wQfdqSLfkQDEbHE0dNw56upPRGl/WNtY
+ClJxK+ypHVB0M/kpavr+mfTnzEVFbcpaJaIS487XOAU58BoJ9XZZzmJvejQNLNG8
+BBLsPVPI+tACy849IbXF4DkzZc85U8mbRvmdM/NZgAhBvm9LoPpKzqR2HIXir68U
+nWWs93+X5DNJpq++zis38S7BcwWcnGBMnTANl1SegWK75+Av9xQHFKl3kenckZWO
+04iQM0dvccMUafqmLQEeG+rTLuJ/C9zP5yLw8UGjAZLlgNO+qWKoVYgLNDTs3CEV
+qu/WIl6J9VGSEypvgBbZsQ3ZLvgQuML+UkUznB04fNwVaTRzv6AsuxF7lM34Ny1v
+Pe+DWsYem3RJj9nCjb4WdlDIWtElFvb2zIycWjCeZb7QmkiT1/poDXUxh/n3AgMB
+AAGjezB5MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQW
+BBSORfSfc8X/LxsF2wFHYBsDioG3ujA3BgNVHSAEMDAuMCwGBFUdIAAwJDAiBggr
+BgEFBQcCARYWaHR0cDovL3d3dy5kbmllLmVzL2RwYzANBgkqhkiG9w0BAQUFAAOC
+AgEAdeVzyVFRL4sZoIfp/642Nqb8QR/jHtdxYBnGb5oCML1ica1z/pEtTuQmQESp
+rngmIzFp3Jpzlh5JUQvg78G4Q+9xnO5Bt8VQHzKEniKG8fcfj9mtK07alyiXu5aa
+Gvix2XoE81SZEhmWFYBnOf8CX3r8VUJQWua5ov+4qGIeFM3ZP76jZUjFO9c3zg36
+KJDav/njUUclfUrTZ02HqmK8Xux6gER8958KvWVXlMryEWbWUn/kOnB1BM07l9Q2
+cvdRVr809dJB4bTaqEP+axJJErRdzyJClowIIyaMshBOXapT7gEvdeW5ohEzxNdq
+/fgOym6C2ee7WSNOtfkRHS9rI/V7ESDqQRKQMkbbMTupwVtzaDpGG4z+l7dWuWGZ
+zE7wg/o38d4cnRxxiwOTw8Rzgi6omB1kopqM91QITc/qgcv1WwmZY691jJb4eTXV
+3OtBgXk4hF5v8W9idtuRzlqFYDkdW+IqL0Ml28J6JNMVsKLxjKB9a0gJE/+iTGaK
+7HBSCVOMMMy41bok3DCZPqFet9+BrOw3vk6bJ1jefqGbVH8Gti/kMlD95xC7qM3a
+GBvUY2Y96lFxOfScPt9a9NrHTCbti7UhujR5AnNhENqYMahgy34Hp9C3BUOJW82F
+JtmwUa/3jFKqEqdY35KbZ/Kd8ub0aTH0Fufed1se3ZoFAa0=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB
+8zELMAkGA1UEBhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2Vy
+dGlmaWNhY2lvIChOSUYgUS0wODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1
+YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYDVQQLEyxWZWdldSBodHRwczovL3d3
+dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UECxMsSmVyYXJxdWlh
+IEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMTBkVD
+LUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQG
+EwJFUzE7MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8g
+KE5JRiBRLTA4MDExNzYtSSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBD
+ZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZlZ2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQu
+bmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJhcnF1aWEgRW50aXRhdHMg
+ZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUNDMIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R
+85iKw5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm
+4CgPukLjbo73FCeTae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaV
+HMf5NLWUhdWZXqBIoH7nF2W4onW4HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNd
+QlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0aE9jD2z3Il3rucO2n5nzbcc8t
+lGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw0JDnJwIDAQAB
+o4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4
+opvpXY0wfwYDVR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBo
+dHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidW
+ZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAwDQYJKoZIhvcN
+AQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJlF7W2u++AVtd0x7Y
+/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNaAl6k
+SBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhy
+Rp/7SNVel+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOS
+Agu+TGbrIP65y7WZf+a2E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xl
+nJ2lYJU6Un/10asIbvPuW/mIPX64b24D5EI=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDzzCCAregAwIBAgIDFLT5MA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJB
+VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
+bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5R
+dWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5RdWFsLTAzMB4XDTE0MDcyMzEwMzgy
+OVoXDTI1MDcyMzA4MzgyOVowgY0xCzAJBgNVBAYTAkFUMUgwRgYDVQQKDD9BLVRy
+dXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0ZW52
+ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMM
+EEEtVHJ1c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQCtPWFuA/OQO8BBC4SAzewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUj
+lUC5B3ilJfYKvUWG6Nm9wASOhURh73+nyfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZ
+znF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPESU7l0+m0iKsMrmKS1GWH
+2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4iHQF63n1
+k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs
+2e3Vcuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYD
+VR0OBAoECERqlWdVeRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC
+AQEAEoykPeAA/6iKm6YnfxsSHFe+Dtian2yAH8L2TqMdcHeSB/7L1x73uuDeYku1
+hbKQAXnfXntf8R+VgjQBTww0aDb5164netYcFbK0g8uVWVCqOl8wf3JbAUxHS9br
+cFKks+CJKPr6qQ6H+sb1o9127c9IQSZYP3S/gMAaGw0cSTlsnosE0P5Ur5vHsapm
+FV3V+VOjYNs2GLSu4XQCYvSIpsfDJp8VsJ/BMYS9GqGvQ/9qGa0fwEbEMadb5mcJ
+tw/EKg4gJthMgxOfO5eVuCQ3PAEWOe5lrOrTdvTIlhphUuns5hoIdlyLuNqewK3s
+FJ6N46sU7LjJLqSKYEB8usoIiw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDczCCAlugAwIBAgIBBDANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJLUjEN
+MAsGA1UECgwES0lTQTEuMCwGA1UECwwlS29yZWEgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkgQ2VudHJhbDEWMBQGA1UEAwwNS0lTQSBSb290Q0EgMTAeFw0wNTA4MjQw
+ODA1NDZaFw0yNTA4MjQwODA1NDZaMGQxCzAJBgNVBAYTAktSMQ0wCwYDVQQKDARL
+SVNBMS4wLAYDVQQLDCVLb3JlYSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBDZW50
+cmFsMRYwFAYDVQQDDA1LSVNBIFJvb3RDQSAxMIIBIDANBgkqhkiG9w0BAQEFAAOC
+AQ0AMIIBCAKCAQEAvATk+hM58DSWIGtsaLv623f/J/es7C/n/fB/bW+MKs0lCVsk
+9KFo/CjsySXirO3eyDOE9bClCTqnsUdIxcxPjHmc+QZXfd3uOPbPFLKc6tPAXXdi
+8EcNuRpAU1xkcK8IWsD3z3X5bI1kKB4g/rcbGdNaZoNy4rCbvdMlFQ0yb2Q3lIVG
+yHK+d9VuHygvx2nt54OJM1jT3qC/QOhDUO7cTWu8peqmyGGO9cNkrwYV3CmLP3WM
+vHFE2/yttRcdbYmDz8Yzvb9Fov4Kn6MRXw+5H5wawkbMnChmn3AmPC7fqoD+jMUE
+CSVPzZNHPDfqAmeS/vwiJFys0izgXAEzisEZ2wIBA6MyMDAwHQYDVR0OBBYEFL+2
+J9gDWnZlTGEBQVYx5Yt7OtnMMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEF
+BQADggEBABOvUQveimpb5poKyLGQSk6hAp3MiNKrZr097LuxQpVqslxa/6FjZJap
+aBV/JV6K+KRzwYCKhQoOUugy50X4TmWAkZl0Q+VFnUkq8JSV3enhMNITbslOsXfl
+BM+tWh6UCVrXPAgcrnrpFDLBRa3SJkhyrKhB2vAhhzle3/xk/2F0KpzZm4tfwjeT
+2KM3LzuTa7IbB6d/CVDv0zq+IWuKkDsnSlFOa56ch534eJAx7REnxqhZvvwYC/uO
+fi5C4e3nCSG9uRPFVmf0JqZCQ5BEVLRxm3bkGhKsGigA35vB1fjbXKP4krG9tNT5
+UNkAAk/bg9ART6RCVmE6fhMy04Qfybo=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMCSFUx
+ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0
+b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMUIwQAYDVQQD
+EzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVneXpvaSAoQ2xhc3MgUUEpIFRhbnVz
+aXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9AbmV0bG9jay5odTAeFw0w
+MzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJMQswCQYDVQQGEwJIVTERMA8G
+A1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNh
+Z2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxQjBABgNVBAMTOU5l
+dExvY2sgTWlub3NpdGV0dCBLb3pqZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZh
+bnlraWFkbzEeMBwGCSqGSIb3DQEJARYPaW5mb0BuZXRsb2NrLmh1MIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1Ilstg91IRVCacbvWy5FPSKAtt2/Goq
+eKvld/Bu4IwjZ9ulZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e8ia6AFQe
+r7C8HORSjKAyr7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO5
+3Lhbm+1bOdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWd
+vLrqOU+L73Sa58XQ0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0l
+mT+1fMptsK6ZmfoIYOcZwvK9UdPM0wKswREMgM6r3JSda6M5UzrWhQIDAMV9o4IC
+wDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8EBAMCAQYwggJ1Bglg
+hkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2YW55IGEgTmV0
+TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBTemFiYWx5emF0YWJh
+biBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBBIG1pbm9zaXRldHQg
+ZWxla3Ryb25pa3VzIGFsYWlyYXMgam9naGF0YXMgZXJ2ZW55ZXN1bGVzZW5laywg
+dmFsYW1pbnQgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6
+b2xnYWx0YXRhc2kgU3phYmFseXphdGJhbiwgYXogQWx0YWxhbm9zIFN6ZXJ6b2Rl
+c2kgRmVsdGV0ZWxla2JlbiBlbG9pcnQgZWxsZW5vcnplc2kgZWxqYXJhcyBtZWd0
+ZXRlbGUuIEEgZG9rdW1lbnR1bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczovL3d3
+dy5uZXRsb2NrLmh1L2RvY3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0Bu
+ZXRsb2NrLm5ldCBlLW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBh
+bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRo
+ZSBOZXRMb2NrIFF1YWxpZmllZCBDUFMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3
+Lm5ldGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0IGluZm9AbmV0bG9jay5u
+ZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3DQEBBQUA
+A4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufAQTPGtpvQ
+MznNwNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68d4bDBsxafEp+
+NFAwLvt/MpqNPfMgW/hqyobzMUwsWYACff44yTB1HLdV47yfuqhthCgFdbOLDcCR
+VCHnpgu0mfVRQdzNo0ci2ccBgcTcR08m6h/t280NmPSjnLRzMkqWmf68f8glWPhY
+83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR5qq5aKrN9p2QdRLqOBrKROi3
+macqaJVmlaut74nLYKkGEsaUR+ko
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh
+MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE
+YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3
+MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo
+ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg
+MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN
+ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA
+PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w
+wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi
+EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY
+avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+
+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE
+sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h
+/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5
+IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
+YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
+ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy
+OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P
+TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ
+HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER
+dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf
+ReYNnyicsbkqWletNw+vHX/bvZ8=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl
+MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp
+U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw
+NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE
+ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp
+ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3
+DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf
+8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN
++lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0
+X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa
+K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA
+1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G
+A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR
+zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0
+YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD
+bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w
+DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3
+L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D
+eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl
+xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp
+VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY
+WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJO
+TDEeMBwGA1UEChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFh
+dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEy
+MTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4wHAYDVQQKExVTdGFhdCBkZXIgTmVk
+ZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxhbmRlbiBSb290IENB
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFtvszn
+ExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw71
+9tV2U02PjLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MO
+hXeiD+EwR+4A5zN9RGcaC1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+U
+tFE5A3+y3qcym7RHjm+0Sq7lr7HcsBthvJly3uSJt3omXdozSVtSnA71iq3DuD3o
+BmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn622r+I/q85Ej0ZytqERAh
+SQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRVHSAAMDww
+OgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMv
+cm9vdC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA
+7Jbg0zTBLL9s+DANBgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k
+/rvuFbQvBgwp8qiSpGEN/KtcCFtREytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzm
+eafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbwMVcoEoJz6TMvplW0C5GUR5z6
+u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3ynGQI0DvDKcWy
+7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
+iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB
+gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk
+MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY
+UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx
+NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3
+dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy
+dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6
+38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP
+KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q
+DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4
+qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa
+JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi
+PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P
+BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs
+jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0
+eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD
+ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR
+vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
+qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa
+IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy
+i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ
+O+7ETPTsJ3xCwnR8gooJybQDJbw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc
+MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP
+bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2
+MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft
+ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg
+Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lk
+hsmj76CGv2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym
+1BW32J/X3HGrfpq/m44zDyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsW
+OqMFf6Dch9Wc/HKpoH145LcxVR5lu9RhsCFg7RAycsWSJR74kEoYeEfffjA3PlAb
+2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP8c9GsEsPPt2IYriMqQko
+O3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAU
+AK3Zo/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
+BQUAA4IBAQB8itEfGDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkF
+Zu90821fnZmv9ov761KyBZiibyrFVL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAb
+LjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft3OJvx8Fi8eNy1gTIdGcL+oir
+oQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43gKd8hdIaC2y+C
+MMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
+sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcN
+AQkBFglwa2lAc2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZp
+dHNlZXJpbWlza2Vza3VzMRAwDgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMw
+MVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMQsw
+CQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEQ
+MA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOB
+SvZiF3tfTQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkz
+ABpTpyHhOEvWgxutr2TC+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvH
+LCu3GFH+4Hv2qEivbDtPL+/40UceJlfwUR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMP
+PbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDaTpxt4brNj3pssAki14sL
+2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQFMAMBAf8w
+ggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwIC
+MIHDHoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDk
+AGwAagBhAHMAdABhAHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0
+AHMAZQBlAHIAaQBtAGkAcwBrAGUAcwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABz
+AGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABrAGkAbgBuAGkAdABhAG0AaQBz
+AGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nwcy8wKwYDVR0f
+BCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE
+FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcY
+P2/v6X2+MA4GA1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOi
+CfP+JmeaUOTDBS8rNXiRTHyoERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+g
+kcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyLabVAyJRld/JXIWY7zoVAtjNjGr95
+HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678IIbsSt4beDI3poHS
+na9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkhMp6q
+qIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0Z
+TbvGRNs2yyqcjg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY
+MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21t
+dW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5
+WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYD
+VQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw8yl8
+9f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJ
+DKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9
+Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N
+QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJ
+xrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0G
+A1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0T
+AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG
+kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr
+Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5
+Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU
+JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot
+RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/
+MQswCQYDVQQGEwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmlj
+YXRpb24gQXV0aG9yaXR5MB4XDTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1ow
+PzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qNw8XR
+IePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1q
+gQdW8or5BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKy
+yhwOeYHWtXBiCAEuTk8O1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAts
+F/tnyMKtsc2AtJfcdgEWFelq16TheEfOhtX7MfP6Mb40qij7cEwdScevLJ1tZqa2
+jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wovJ5pGfaENda1UhhXcSTvx
+ls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7Q3hub/FC
+VGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHK
+YS1tB6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoH
+EgKXTiCQ8P8NHuJBO9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThN
+Xo+EHWbNxWCWtFJaBYmOlXqYwZE8lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1Ud
+DgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNVHRMEBTADAQH/MDkGBGcqBwAE
+MTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg209yewDL7MTqK
+UWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
+TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyf
+qzvS/3WXy6TjZwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaK
+ZEk9GhiHkASfQlK3T8v+R0F2Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFE
+JPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlUD7gsL0u8qV1bYH+Mh6XgUmMqvtg7
+hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6QzDxARvBMB1uUO07+1
+EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+HbkZ6Mm
+nD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WX
+udpVBrkk7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44Vbnz
+ssQwmSNOXfJIoRIM3BKQCZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDe
+LMDDav7v3Aun+kbfYNucpllQdSNpc5Oy+fwC00fmcc4QAu4njIT/rEUNE1yDMuAl
+pYYsfPQS
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDkzCCAnugAwIBAgIQFBOWgxRVjOp7Y+X8NId3RDANBgkqhkiG9w0BAQUFADA0
+MRMwEQYDVQQDEwpDb21TaWduIENBMRAwDgYDVQQKEwdDb21TaWduMQswCQYDVQQG
+EwJJTDAeFw0wNDAzMjQxMTMyMThaFw0yOTAzMTkxNTAyMThaMDQxEzARBgNVBAMT
+CkNvbVNpZ24gQ0ExEDAOBgNVBAoTB0NvbVNpZ24xCzAJBgNVBAYTAklMMIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8ORUaSvTx49qROR+WCf4C9DklBKK
+8Rs4OC8fMZwG1Cyn3gsqrhqg455qv588x26i+YtkbDqthVVRVKU4VbirgwTyP2Q2
+98CNQ0NqZtH3FyrV7zb6MBBC11PN+fozc0yz6YQgitZBJzXkOPqUm7h65HkfM/sb
+2CEJKHxNGGleZIp6GZPKfuzzcuc3B1hZKKxC+cX/zT/npfo4sdAMx9lSGlPWgcxC
+ejVb7Us6eva1jsz/D3zkYDaHL63woSV9/9JLEYhwVKZBqGdTUkJe5DSe5L6j7Kpi
+Xd3DTKaCQeQzC6zJMw9kglcq/QytNuEMrkvF7zuZ2SOzW120V+x0cAwqTwIDAQAB
+o4GgMIGdMAwGA1UdEwQFMAMBAf8wPQYDVR0fBDYwNDAyoDCgLoYsaHR0cDovL2Zl
+ZGlyLmNvbXNpZ24uY28uaWwvY3JsL0NvbVNpZ25DQS5jcmwwDgYDVR0PAQH/BAQD
+AgGGMB8GA1UdIwQYMBaAFEsBmz5WGmU2dst7l6qSBe4y5ygxMB0GA1UdDgQWBBRL
+AZs+VhplNnbLe5eqkgXuMucoMTANBgkqhkiG9w0BAQUFAAOCAQEA0Nmlfv4pYEWd
+foPPbrxHbvUanlR2QnG0PFg/LUAlQvaBnPGJEMgOqnhPOAlXsDzACPw1jvFIUY0M
+cXS6hMTXcpuEfDhOZAYnKuGntewImbQKDdSFc8gS4TXt8QUxHXOZDOuWyt3T5oWq
+8Ir7dcHyCTxlZWTzTNity4hp8+SDtwy9F1qWF8pb/627HOkthIDYIb6FUtnUdLlp
+hbpN7Sgy6/lhSuTENh4Z3G+EER+V9YMoGKgzkkMn3V0TBEVPh9VGzT2ouvDzuFYk
+Res3x+F2T3I5GN9+dHLHcy056mDmrRGiVod7w2ia/viMcKjfZTL0pECMocJEAw6U
+AGegcQCCSA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDqzCCApOgAwIBAgIRAMcoRwmzuGxFjB36JPU2TukwDQYJKoZIhvcNAQEFBQAw
+PDEbMBkGA1UEAxMSQ29tU2lnbiBTZWN1cmVkIENBMRAwDgYDVQQKEwdDb21TaWdu
+MQswCQYDVQQGEwJJTDAeFw0wNDAzMjQxMTM3MjBaFw0yOTAzMTYxNTA0NTZaMDwx
+GzAZBgNVBAMTEkNvbVNpZ24gU2VjdXJlZCBDQTEQMA4GA1UEChMHQ29tU2lnbjEL
+MAkGA1UEBhMCSUwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGtWhf
+HZQVw6QIVS3joFd67+l0Kru5fFdJGhFeTymHDEjWaueP1H5XJLkGieQcPOqs49oh
+gHMhCu95mGwfCP+hUH3ymBvJVG8+pSjsIQQPRbsHPaHA+iqYHU4Gk/v1iDurX8sW
+v+bznkqH7Rnqwp9D5PGBpX8QTz7RSmKtUxvLg/8HZaWSLWapW7ha9B20IZFKF3ue
+Mv5WJDmyVIRD9YTC2LxBkMyd1mja6YJQqTtoz7VdApRgFrFD2UNd3V2Hbuq7s8lr
+9gOUCXDeFhF6K+h2j0kQmHe5Y1yLM5d19guMsqtb3nQgJT/j8xH5h2iGNXHDHYwt
+6+UarA9z1YJZQIDTAgMBAAGjgacwgaQwDAYDVR0TBAUwAwEB/zBEBgNVHR8EPTA7
+MDmgN6A1hjNodHRwOi8vZmVkaXIuY29tc2lnbi5jby5pbC9jcmwvQ29tU2lnblNl
+Y3VyZWRDQS5jcmwwDgYDVR0PAQH/BAQDAgGGMB8GA1UdIwQYMBaAFMFL7XC29z58
+ADsAj8c+DkWfHl3sMB0GA1UdDgQWBBTBS+1wtvc+fAA7AI/HPg5Fnx5d7DANBgkq
+hkiG9w0BAQUFAAOCAQEAFs/ukhNQq3sUnjO2QiBq1BW9Cav8cujvR3qQrFHBZE7p
+iL1DRYHjZiM/EoZNGeQFsOY3wo3aBijJD4mkU6l1P7CW+6tMM1X5eCZGbxs2mPtC
+dsGCuY7e+0X5YxtiOzkGynd6qDwJz2w2PQ8KRUtpFhpFfTMDZflScZAmlaxMDPWL
+kz/MdXSFmLr/YnpNH4n+rr2UAJm/EaXc4HnFFgt9AmEd6oX5AhVP51qJThRv4zdL
+hfXBPGHg/QVBspJ/wx2g0K5SZGBrGMYmnNj1ZOQ2GmKfig8+/21OGVZOIJFsnzQz
+OjRXUDpvgV4GxvU+fE6OK85lBi5d0ipTdF7Tbieejw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGGzCCBAOgAwIBAgIQel3pM9AEnrNKGhd0yxabbTANBgkqhkiG9w0BAQUFADAn
+MSUwIwYDVQQDExxDb21TaWduIEFkdmFuY2VkIFNlY3VyaXR5IENBMB4XDTA0MDMy
+NDIxNTIwNFoXDTI5MDMyNDIxNTU1NVowJzElMCMGA1UEAxMcQ29tU2lnbiBBZHZh
+bmNlZCBTZWN1cml0eSBDQTCCAiAwDQYJKoZIhvcNAQEBBQADggINADCCAggCggIB
+AJ2cXDsBhFda9Cv+bRSybLftkNf7V0Ogz2AbWS9NUWA9HEmiakFjq7jtZr5ARo2q
+kls9LivBYZhUbLxMq2n6jUVFgSoabfiz+A9jy4587VQpoxQY/OHJsdhUupzKKhvQ
+rMKJGBZK/koE0tKbtYeGwcl7HzYWRbnwuobCd4ozMUKizgxyPRLlkTj0J2dhTMzi
+9U0sEvDNs4TBCXWfAE/4d9PzMm+Bjxd+O5tr8x7n+pNPDC6X3XBYE33zkYONoj0x
+2mPjOXZ2M+bUZg2UjhWUnDh73HEf2rXg15dagnTeOwba78Ur8WjdJ1P4ueyMD1Mi
+5DmC5PmuYfwYKH7Haelo9H7g0bzgbcjW0atEMWG07Hg1LEbe6PO2PJizqRwHSpjN
+RyaC8NSR7xCT52jmUmqXfrkglxf6GTKUI57Hc7JI6Ji193VWoEudd6gaKXQ4WODI
+zbEzGy/+mJN4BQF0q65CxRsdL3xBfKXTYKpQwfPIiEFY9rWSGP2uZo6c5zua0bfb
+2sdMyyIbSj9g3zn22uquzIeVuFKbWp1RRQx27ylBpQq5+F7EvSxMNEhH1YvIzM/R
+O1jlesb9Iex3Ka/zWlQOqaRkfPdc0aET5TvUW0sAlMnLDd0ET9tosrdnI/ZhpawP
+OT6awy+pZMMShZqkolLUefy6I6sJGu09mZ3Z5yj4D1BPAgEDo4IBQzCCAT8wCwYD
+VR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOn6J+XtSyFwZNZx
+qnzlghww0g16ME0GA1UdHwRGMEQwQqBAoD6GPGh0dHA6Ly9mZWRpci5jb21zaWdu
+LmNvLmlsL2NybC9Db21TaWduQWR2YW5jZWRTZWN1cml0eUNBLmNybDAQBgkrBgEE
+AYI3FQEEAwIBADBCBgNVHSAEOzA5MDcGCSoDBAUGBwgJCjAqMCgGCCsGAQUFBwIB
+FhxodHRwOi8vd3d3LmNvbXNpZ24uY28uaWwvY3BzMFsGCCsGAQUFBwEBBE8wTTBL
+BggrBgEFBQcwAoY/aHR0cDovL2ZlZGlyLmNvbXNpZ24uY28uaWwvY2FjZXJ0L0Nv
+bVNpZ25BZHZhbmNlZFNlY3VyaXR5Q0EuY3J0MA0GCSqGSIb3DQEBBQUAA4ICAQCc
+jV2aBhGhbhYYT8uyAjuSjx0mpcvrSO5VHaoQ4GlOwf4yAN4Pzg20Y7zgYhrg9/Wp
+5clUFItA+K3zbQLsjnvcpXmSAbX/oVljORG1vlKudNrZIaMS2MeV+NtvVlW/lRK9
+MiPHyWxlAe/7dI67JIZPfd3wWo87hIx5dSn0hrbTwQxZFcIDV6s9SNcsRZRA3OCp
+S1/MENeWv6mcAypk8rx++KWnmZEnBf5Jp9itCoY2PA49puF8aoERe0W7aI01Mf0m
+U0E+PG5rHtirLYmBmcYfl/Na9R9hvf4VWZMK3vpR+kbfRvT8YmxYowzeyRkewBxb
+ODtBjwUxDq7tLF23D9w5xF8is6WyWDAkv/kJrfCWGzdvQGb+tyqJ1cbjfgNYsH04
+5oqrP/WB8wpBdwJz7adU3QcxXLa1dpJ0d7lvpgm6Dt0M53bES77LO9VFwInjK3d6
+YpjDW/x9V16O7t0bUCFtkb8ZXI+XeSrBi2Fvql5S9elPNJgwvRwHw7fEfIHZo0My
+ZsYtvDlbqV2J6wQrRJVH+VL0TwXuoypjEQ0eusT4SltQQFF3LvTk3/EDFOZ5adpY
+RIJYFIORNAPXem1q0TIiKZEbGuQLvTIVJyC/Gm9SgtP5L0kPkGwBgEmuGO4yLM4R
+x/6gBJholPD8i8Usb4f92cLEHOktzA6sn/Xx/JI4jQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEn
+MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL
+ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMg
+b2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAxNjEzNDNaFw0zNzA5MzAxNjEzNDRa
+MH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZpcm1hIFNBIENJRiBB
+ODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3JnMSIw
+IAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0B
+AQEFAAOCAQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtb
+unXF/KGIJPov7coISjlUxFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0d
+BmpAPrMMhe5cG3nCYsS4No41XQEMIwRHNaqbYE6gZj3LJgqcQKH0XZi/caulAGgq
+7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jWDA+wWFjbw2Y3npuRVDM3
+0pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFVd9oKDMyX
+roDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIG
+A1UdEwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5j
+aGFtYmVyc2lnbi5vcmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p
+26EpW1eLTXYGduHRooowDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIA
+BzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hhbWJlcnNpZ24ub3JnMCcGA1Ud
+EgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYDVR0gBFEwTzBN
+BgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
+aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEB
+AAxBl8IahsAifJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZd
+p0AJPaxJRUXcLo0waLIJuvvDL8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi
+1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wNUPf6s+xCX6ndbcj0dc97wXImsQEc
+XCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/nADydb47kMgkdTXg0
+eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1erfu
+tGWaIZDgqtCYvDi1czyL+Nw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEn
+MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL
+ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENo
+YW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYxNDE4WhcNMzcwOTMwMTYxNDE4WjB9
+MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgy
+NzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4G
+A1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUA
+A4IBDQAwggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0
+Mi+ITaFgCPS3CU6gSS9J1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/s
+QJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8Oby4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpV
+eAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl6DJWk0aJqCWKZQbua795
+B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c8lCrEqWh
+z0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0T
+AQH/BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1i
+ZXJzaWduLm9yZy9jaGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4w
+TcbOX60Qq+UDpfqpFDAOBgNVHQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAH
+MCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBjaGFtYmVyc2lnbi5vcmcwKgYD
+VR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9yZzBbBgNVHSAE
+VDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
+bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0B
+AQUFAAOCAQEAPDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUM
+bKGKfKX0j//U2K0X1S0E0T9YgOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXi
+ryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJPJ7oKXqJ1/6v/2j1pReQvayZzKWG
+VwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4IBHNfTIzSJRUTN3c
+ecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREest2d/
+AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
+MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
+GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
+YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
+MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
+BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
+GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
+BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
+3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
+YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
+rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
+ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
+oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
+MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
+QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
+b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
+AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
+GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
+Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
+G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
+l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
+smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
+R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
+9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
+fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
+iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
+1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
+MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
+ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
+uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
+Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
+tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
+PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
+hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
+5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEW
+MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFs
+IENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
+R2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvPE1A
+PRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/NTL8
+Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hL
+TytCOb1kLUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL
+5mkWRxHCJ1kDs6ZgwiFAVvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7
+S4wMcoKK+xfNAGw6EzywhIdLFnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe
+2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
+FHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUap
+EBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6td
+EPx7srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv
+/NgdRN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN
+A0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0
+abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa4qjJqhIF
+I8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqFH4z1Ir+rzoPz
+4iIprn2DQKi6bA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW
+MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy
+c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE
+BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0
+IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV
+VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8
+cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT
+QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh
+F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v
+c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w
+mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd
+VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX
+teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ
+f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe
+Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+
+nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB
+/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY
+MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG
+9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
+aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX
+IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn
+ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z
+uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN
+Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja
+QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW
+koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9
+ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt
+DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm
+bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW
+MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy
+c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD
+VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1
+c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81
+WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG
+FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq
+XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL
+se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb
+KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd
+IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73
+y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt
+hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc
+QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4
+Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV
+HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ
+KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
+dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ
+L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr
+Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo
+ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY
+T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz
+GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m
+1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV
+OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH
+6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX
+QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC
+TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz
+MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw
+IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR
+dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp
+li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D
+rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ
+WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug
+F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU
+xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC
+Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv
+dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw
+ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl
+IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh
+c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy
+ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
+Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI
+KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T
+KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq
+y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p
+dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD
+VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL
+MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk
+fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8
+7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R
+cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y
+mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW
+xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK
+SnQ2+Q==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP
+MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAx
+MDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNV
+BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBDQTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3/Ei9vX+ALTU74W+o
+Z6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybTdXnt
+5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s
+3TmVToMGf+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2Ej
+vOr7nQKV0ba5cTppCD8PtOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu
+8nYybieDwnPz3BjotJPqdURrBGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEw
+DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEG
+MA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zil
+zqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/
+3DEIcbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvD
+FNr450kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6
+Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2
+ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBM
+MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
+QTAeFw0wMjA2MTExMDQ2MzlaFw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBM
+MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
+QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6xwS7TT3zNJc4YPk/E
+jG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdLkKWo
+ePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GI
+ULdtlkIJ89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapu
+Ob7kky/ZR6By6/qmW6/KUz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUg
+AKpoC6EahQGcxEZjgoi2IrHu/qpGWX7PNSzVttpd90gzFFS269lvzs2I1qsb2pY7
+HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA
+uI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+GXYkHAQa
+TOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTg
+xSvgGrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1q
+CjqTE5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x
+O/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs
+6GAqm4VKQPNriiTsBhYscw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
+DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
+ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
+VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
+mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
+IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
+mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
+XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
+dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
+jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
+BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
+DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
+9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
+jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
+Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
+ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
+R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJ
+BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVy
+aVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24s
+IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNp
+Z24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJBgNV
+BAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNp
+Z24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIElu
+Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24g
+Q2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
+IEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArwoNwtUs22e5LeWU
+J92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6tW8UvxDO
+JxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUY
+wZF7C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9o
+koqQHgiBVrKtaaNS0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjN
+qWm6o+sdDZykIKbBoMXRRkwXbdKsZj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/E
+Srg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0JhU8wI1NQ0kdvekhktdmnLfe
+xbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf0xwLRtxyID+u
+7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU
+sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RI
+sH/7NiXaldDxJBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTP
+cjnhsUPgKM+351psE2tJs//jGHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
+cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
+LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
+aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
+VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
+aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
+bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
+IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b
+N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t
+KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu
+kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm
+CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
+Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu
+imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te
+2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe
+DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
+/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p
+F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt
+TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICQDCCAakCEAPHjzfbkijfPLsarYL6ZxAwDQYJKoZIhvcNAQECBQAwYTERMA8G
+A1UEBxMISW50ZXJuZXQxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTMwMQYDVQQL
+EypWZXJpU2lnbiBDb21tZXJjaWFsIFNvZnR3YXJlIFB1Ymxpc2hlcnMgQ0EwHhcN
+OTYwNDA5MDAwMDAwWhcNMDQwMTA3MjM1OTU5WjBhMREwDwYDVQQHEwhJbnRlcm5l
+dDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xMzAxBgNVBAsTKlZlcmlTaWduIENv
+bW1lcmNpYWwgU29mdHdhcmUgUHVibGlzaGVycyBDQTCBnzANBgkqhkiG9w0BAQEF
+AAOBjQAwgYkCgYEAw9NpZVIBlFSrKMZiGLNUVcVEh0VKO8J+2NPXyICGjdgM8Rac
+zGupKbKPdnOSyMVipjztHgV18BMAbBRN1JiQB75pc4G4Yk4xHtH8yQzrfZC/rrRH
+UexvzmQ1AtZ9ZwV34o/ZUdf7lxm8Ptd3gcZD3fLd38qjg4vLQcE9IkhIphkCAwEA
+ATANBgkqhkiG9w0BAQIFAAOBgQC1vLB1aomihr1keMOnMnVyEaomAhdgMEzjSDQZ
+uVJKURiA/lMte9UxjMVlmUFBL/KuY3roc5kVkBofeotB0I460M04NETQdfjqccSB
+GTgXNUquxT4y5iG4BcCT4cc4XNj3kzhkkO1UzsrT09Bf7wSb3gKC3YgpscNPpc1x
+ZDE8PA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
+BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
+c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
+MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
+emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
+DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
+FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
+UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
+YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
+MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
+AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
+pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
+13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
+AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
+U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
+F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
+oJ2daZH9
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEEjCCAvqgAwIBAgIPAMEAizw8iBHRPvZj7N9AMA0GCSqGSIb3DQEBBAUAMHAx
+KzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAc
+BgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0
+IFJvb3QgQXV0aG9yaXR5MB4XDTk3MDExMDA3MDAwMFoXDTIwMTIzMTA3MDAwMFow
+cDErMCkGA1UECxMiQ29weXJpZ2h0IChjKSAxOTk3IE1pY3Jvc29mdCBDb3JwLjEe
+MBwGA1UECxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3Nv
+ZnQgUm9vdCBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQCpAr3BcOY78k4bKJ+XeF4w6qKpjSVf+P6VTKO3/p2iID58UaKboo9gMmvRQmR5
+7qx2yVTa8uuchhyPn4Rms8VremIj1h083g8BkuiWxL8tZpqaaCaZ0Dosvwy1WCbB
+RucKPjiWLKkoOajsSYNC44QPu5psVWGsgnyhYC13TOmZtGQ7mlAcMQgkFJ+p55Er
+GOY9mGMUYFgFZZ8dN1KH96fvlALGG9O/VUWziYC/OuxUlE6u/ad6bXROrxjMlgko
+IQBXkGBpN7tLEgc8Vv9b+6RmCgim0oFWV++2O14WgXcE2va+roCV/rDNf9anGnJc
+PMq88AijIjCzBoXJsyB3E4XfAgMBAAGjgagwgaUwgaIGA1UdAQSBmjCBl4AQW9Bw
+72lyniNRfhSyTY7/y6FyMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBN
+aWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEh
+MB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5gg8AwQCLPDyIEdE+9mPs
+30AwDQYJKoZIhvcNAQEEBQADggEBAJXoC8CN85cYNe24ASTYdxHzXGAyn54Lyz4F
+kYiPyTrmIfLwV5MstaBHyGLv/NfMOztaqTZUaf4kbT/JzKreBXzdMY09nxBwarv+
+Ek8YacD80EPjEVogT+pie6+qGcgrNyUtvmWhEoolD2Oj91Qc+SHJ1hXzUqxuQzIH
+/YIX+OVnbA1R9r3xUse958Qw/CAxCYgdlSkaTdUdAqXxgOADtFv0sd3IV+5lScdS
+VLa0AygS/5DW8AiPfriXxas3LOR65Kh343agANBqP8HSNorgQRKoNWobats14dQc
+BOSoRQTIWjM4bk0cDWK3CqKM09VUP0bNHFWmcNsSOoeTdZ+n0qA=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFmTCCA4GgAwIBAgIQea0WoUqgpa1Mc1j0BxMuZTANBgkqhkiG9w0BAQUFADBf
+MRMwEQYKCZImiZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0
+MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkw
+HhcNMDEwNTA5MjMxOTIyWhcNMjEwNTA5MjMyODEzWjBfMRMwEQYKCZImiZPyLGQB
+GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy
+b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQDzXfqAZ9Rap6kMLJAg0DUIPHWEzbcHiZyJ2t7Ow2D6
+kWhanpRxKRh2fMLgyCV2lA5Y+gQ0Nubfr/eAuulYCyuT5Z0F43cikfc0ZDwikR1e
+4QmQvBT+/HVYGeF5tweSo66IWQjYnwfKA1j8aCltMtfSqMtL/OELSDJP5uu4rU/k
+XG8TlJnbldV126gat5SRtHdb9UgMj2p5fRRwBH1tr5D12nDYR7e/my9s5wW34RFg
+rHmRFHzF1qbk4X7Vw37lktI8ALU2gt554W3ztW74nzPJy1J9c5g224uha6KVl5uj
+3sJNJv8GlmclBsjnrOTuEjOVMZnINQhONMp5U9W1vmMyWUA2wKVOBE0921sHM+RY
+v+8/U2TYQlk1V/0PRXwkBE2e1jh0EZcikM5oRHSSb9VLb7CG48c2QqDQ/MHAWvmj
+YbkwR3GWChawkcBCle8Qfyhq4yofseTNAz93cQTHIPxJDx1FiKTXy36IrY4t7EXb
+xFEEySr87IaemhGXW97OU4jm4rf9rJXCKEDb7wSQ34EzOdmyRaUjhwalVYkxuwYt
+YA5BGH0fLrWXyxHrFdUkpZTvFRSJ/Utz+jJb/NEzAPlZYnAHMuouq0Ate8rdIWcb
+MJmPFqojqEHRsG4RmzbE3kB0nOFYZcFgHnpbOMiPuwQmfNQWQOW2a2yqhv0Av87B
+NQIDAQABo1EwTzALBgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQUDqyCYEBWJ5flJRP8KuEKU5VZ5KQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI
+hvcNAQEFBQADggIBAMURTQM6YN1dUhF3j7K7NsiyBb+0t6jYIJ1cEwO2HCL6BhM1
+tshj1JpHbyZX0lXxBLEmX9apUGigvNK4bszD6azfGc14rFl0rGY0NsQbPmw4TDMO
+MBINoyb+UVMA/69aToQNDx/kbQUuToVLjWwzb1TSZKu/UK99ejmgN+1jAw/8EwbO
+FjbUVDuVG1FiOuVNF9QFOZKaJ6hbqr3su77jIIlgcWxWs6UT0G0OI36VA+1oPfLY
+Y7hrTbboMLXhypRL96KqXZkwsj2nwlFsKCABJCcrSwC3nRFrcL6yEIK8DJto0I07
+JIeqmShynTNfWZC99d6TnjpiWjQ54ohVHbkGsMGJay3XacMZEjaE0Mmg2v8vaXiy
+5Xra69cMwPe9Yxe4ORM4ojZbe/KFVmodZGLBOOKqv1FmopT1EpxmIhBr8rcwki3y
+KfA9OxRDaKLxnCk3y844ICVtfGfzfiQSJAMIgUfspZ6X9RjXz7vV73aW7/3O21ad
+laBC+ZdY4dcxItNfWeY+biIA6kOEtiXb2fMIVmjAZGsdfOy2k6JiV24u2OdYj8Qx
+SSbd3ik1h/UwcXBbFDxpvYkSfesuo/7Yf56CWlIKK8FDK9kwiJ/IEPuJjeahhXUz
+fmye23MTZGJppS99ypZtn/gETTCSPW4hFCHJPeDD/YprnUr90aGdmUN3P7Da
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF7TCCA9WgAwIBAgIQKMw6Jb+6RKxEmptYa0M5qjANBgkqhkiG9w0BAQsFADCB
+iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
+ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMp
+TWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAw
+NjIzMjE1NzI0WhcNMzUwNjIzMjIwNDAxWjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
+BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
+c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm
+aWNhdGUgQXV0aG9yaXR5IDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQC5CJ4o5OTsBk5QaLNBxXvrrraOr4G6IkQfZTRpTL5wQBfyFnvief2G7Q05
+9BuorZKQHss9do9a2bWREC48BY2KbSRU5x/tVq2DtFCcFaUXdIhZIPwIxYR202jU
+byh4zly481CQRP/jY1++oZoslhUE1gf+HoQh4EIxEcQoNpTPUKRinsnWq3EAslsM
+5pbUCiSW9f/G1bcb18u3IWKvEtyhXTfjGvsaRpjAm8DnYx8qCJMCfh5qjvKfGInk
+IoWisYRXQP/1DthvnO3iRTEBzRfpf7CBReOqIUAmoXKqp088AQV+7oNYsV4GY5li
+kXiCtw2TDCRqtBvbJ+xflQQ/k0ow9ZcYs6f5GaeTMx0ByNsiUlzXJclG+aL7h1lD
+vptisY0thkQaRqx4YX4wCfquicRBKiJmA5E5RZzHiwyoyg0v+1LqDPdjMyOd/rAf
+rWfWp1ADxgRwY7UssYZaQ7f7rvluKW4hIUEmBozJw+6wwoWTobmF2eYybEtMP9Zd
+o+W1nXfDnMBVt3QA47g4q4OXUOGaQiQdxsCjMNEaWshSNPdz8ccYHzOteuzLQWDz
+I5QgwkhFrFxRxi6AwuJ3Fb2Fh+02nZaR7gC1o3Dsn+ONgGiDdrqvXXBSIhbiZvu6
+s8XC9z4vd6bK3sGmxkhMwzdRI9Mn17hOcJbwoUR2r3jPmuFmEwIDAQABo1EwTzAL
+BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU1fZWy4/oolxi
+aNE9lJBb186aGMQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQELBQADggIB
+AKylloy/u66m9tdxh0MxVoj9HDJxWzW31PCR8q834hTx8wImBT4WFH8UurhP+4my
+sufUCcxtuVs7ZGVwZrfysVrfGgLz9VG4Z215879We+SEuSsem0CcJjT5RxiYadgc
+17bRv49hwmfEte9gQ44QGzZJ5CDKrafBsSdlCfjN9Vsq0IQz8+8f8vWcC1iTN6B1
+oN5y3mx1KmYi9YwGMFafQLkwqkB3FYLXi+zA07K9g8V3DB6urxlToE15cZ8PrzDO
+Z/nWLMwiQXoH8pdCGM5ZeRBV3m8Q5Ljag2ZAFgloI1uXLiaaArtXjMW4umliMoCJ
+nqH9wJJ8eyszGYQqY8UAaGL6n0eNmXpFOqfp7e5pQrXzgZtHVhB7/HA2hBhz6u/5
+l02eMyPdJgu6Krc/RNyDJ/+9YVkrEbfKT9vFiwwcMa4y+Pi5Qvd/3GGadrFaBOER
+PWZFtxhxvskkhdbz1LpBNF0SLSW5jaYTSG1LsAd9mZMJYYF0VyaKq2nj5NnHiMwk
+2OxSJFwevJEU4pbe6wrant1fs1vb1ILsxiBQhyVAOvvH7s3+M+Vuw4QJVQMlOcDp
+NV1lMaj2v6AJzSnHszYyLtyV84PBWs+LjfbqsyH4pO0eMQ62TBGrYAukEiMiF6M2
+ZIKRBBLgq28ey1AFYbRA/1mGcdHVM2l8qXOKONdkDPFp
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD
+VQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv
+bHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv
+b3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV
+UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
+cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
+b2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH
+iM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS
+r41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4
+04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r
+GwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9
+3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P
+lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
+VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
+biBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEm
+MCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wHhcNOTYwODAx
+MDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
+DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3
+dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl
+cyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3
+DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
+gY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91
+yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCX
+L+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGj
+EzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG
+7oWDTSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e
+QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ
+qdq5snUb9kLy78fyGPmJvKP/iiMucEc=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
+VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
+biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
+dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
+MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
+MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
+A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
+b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
+cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
+bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
+VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
+ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
+uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
+9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
+hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
+pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEc
+MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBT
+ZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIw
+MDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0VxdWlmYXggU2Vj
+dXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEdsb2JhbCBlQnVzaW5l
+c3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRVPEnC
+UdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc
+58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/
+o5brhTMhHD4ePmBudpxnhcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAH
+MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1dr
+aGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUA
+A4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkA
+Z70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv
+8qIYNMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
+UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
+dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
+MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
+dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
+AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
+BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
+cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
+AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
+MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
+aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
+ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
+IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
+MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
+A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
+7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
+1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDkjCCAnqgAwIBAgIRAIb+HV/DgfhH1zMsc5R1ezcwDQYJKoZIhvcNAQEFBQAw
+PTELMAkGA1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFz
+cyAxIFByaW1hcnkgQ0EwHhcNOTkwNzA3MTcwMTAwWhcNMjAwNzA2MjM1OTU5WjA9
+MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2VydHBsdXMxGzAZBgNVBAMTEkNsYXNz
+IDEgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMNr
+Kcgux658UgXpk4lWClp5yczcJe+Hii0F2IEXBBs6Rfh5Dg1J1IFByKtF+3XIFfLi
+0LzZYWyEpBMZp9n58kncTA/GfVe0E9weCXEpNp2AWPQb2IkU69PSk0sq8XfnamW9
+GeWq/QxKY+HCmbQPBLZaGzY8Nzy/xeVe8V9XDh/H/Szn5G9qm2KWORGbZvAstlLc
+4Sf/223+66tjFB1jiGPiFgz5IFQPm90VanaDT70ni1OmN9KH8kdQUjtm6dF4Ghuy
+O2nwWTw4W9EqTDNeDspWpe0tW4KDTdY4TopWtmovJGsSMKYq3q8Mu6pEEhwTxWUP
+4/3YGjFL5D8MfEXoFjMCAwEAAaOBjDCBiTAPBgNVHRMECDAGAQH/AgEKMAsGA1Ud
+DwQEAwIBBjAdBgNVHQ4EFgQUIy7f6YG00IT9jrup3fkMo+PzSVMwEQYJYIZIAYb4
+QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMu
+Y29tL0NSTC9jbGFzczEuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC+JlPWXp+QPwGU
+AuwIwYia0Kf6UA3a/JQdqNRQI9CfHIthsbKqRA+s2BMN1dah6DF40O8eg0Ca5f1B
+6ZL97qOVkPPAuG9+9zSlod88895WssffhyZEx+KDuRNvMEVxKSIVq8TbP0/zd/mZ
+GDT1c5J9N2ZnSW4zmk0plIu9UDljZQ8Q53sQatFH+Z4lDCcpwtsIiOeqiTpFqp9J
+sn3qaIpA/pHBwkn/IdFnDhoSHUouHPuU+W07eTL5HimRCkKWRfHvylgPcp0MqYO8
+Mt2YBNFZ4WQXvcyBowNelmDlfxY4CmvR+rOEnSrKPvtC+E/op1soGRit4KZmHrAp
+IfK4mY//
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEZjCCA06gAwIBAgIQRL4Mi1AAJLQR0zYt4LNfGzANBgkqhkiG9w0BAQUFADCB
+lTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
+Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
+dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAbBgNVBAMTFFVUTi1VU0VSRmlyc3Qt
+T2JqZWN0MB4XDTk5MDcwOTE4MzEyMFoXDTE5MDcwOTE4NDAzNlowgZUxCzAJBgNV
+BAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxHjAc
+BgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3
+dy51c2VydHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0LU9iamVjdDCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6qgT+jo2F4qjEAVZURnicP
+HxzfOpuCaDDASmEd8S8O+r5596Uj71VRloTN2+O5bj4x2AogZ8f02b+U60cEPgLO
+KqJdhwQJ9jCdGIqXsqoc/EHSoTbL+z2RuufZcDX65OeQw5ujm9M89RKZd7G3CeBo
+5hy485RjiGpq/gt2yb70IuRnuasaXnfBhQfdDWy/7gbHd2pBnqcP1/vulBe3/IW+
+pKvEHDHd17bR5PDv3xaPslKT16HUiaEHLr/hARJCHhrh2JU022R5KP+6LhHC5ehb
+kkj7RwvCbNqtMoNB86XlQXD9ZZBt+vpRxPm9lisZBCzTbafc8H9vg2XiaquHhnUC
+AwEAAaOBrzCBrDALBgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQU2u1kdBScFDyr3ZmpvVsoTYs8ydgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDov
+L2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmlyc3QtT2JqZWN0LmNybDApBgNV
+HSUEIjAgBggrBgEFBQcDAwYIKwYBBQUHAwgGCisGAQQBgjcKAwQwDQYJKoZIhvcN
+AQEFBQADggEBAAgfUrE3RHjb/c652pWWmKpVZIC1WkDdIaXFwfNfLEzIR1pp6ujw
+NTX00CXzyKakh0q9G7FzCL3Uw8q2NbtZhncxzaeAFK4T7/yxSPlrJSUtUbYsbUXB
+mMiKVl0+7kNOPmsnjtA6S4ULX9Ptaqd1y9Fahy85dRNacrACgZ++8A+EVCBibGnU
+4U3GDZlDAQ0Slox4nb9QorFEqmrPF3rPbw/U+CRVX/A0FklmPlBGyWNxODFiuGK5
+81OtbLUrohKqGU8J2l7nk8aOFAj+8DCAGKCGhU3IfdeLA/5u1fedFqySLKAj5ZyR
+Uh+U3xeUc8OzwcFxBSAAeL0TUh2oPs0AH8g=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFmTCCA4GgAwIBAgIIcYwvOXxAdEAwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UE
+BhMCR1IxGzAZBgNVBAoMEkJZVEUgQ29tcHV0ZXIgUy5BLjEuMCwGA1UEAwwlQllU
+RSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IDAwMTAeFw0xNDA5MTAyMjAx
+NTRaFw0zOTA5MTAyMjAxNTRaMFoxCzAJBgNVBAYTAkdSMRswGQYDVQQKDBJCWVRF
+IENvbXB1dGVyIFMuQS4xLjAsBgNVBAMMJUJZVEUgUm9vdCBDZXJ0aWZpY2F0aW9u
+IEF1dGhvcml0eSAwMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDt
+Ei4Xc55v9POZ6J4IVwk0JBFAH4whfhuvOMPRx+YU5fobul5m9SVp9+3NboJwr7pC
+8LEZXCv8RYQYLHoXT2GFRhl8zsGNn1SedyVmD+D2+JLKKc4nVxUqbII4bSfmvk1z
+DnOv43E9vAlCD9UNoe19a673wfBszcKXoVj9NRWWF0yfv/XxOUtwt+dKbBw/wXBb
+z9aL6+9vMOhfyEZ3IWIWXsZURTn1dLpnJGilcVs+wfsJk+simfjS9XsCbI9Y4qvv
+3XQh5CRplEDWwQQYDthC8P3XigXAXxuK6y7ADQcGcwGFjh/BwIqhWKZRuViRQg9u
+4bwK6LsogxV15Q3+STApKULCwjb/pDx9Lvfa8qIvFrxhqJlYGKRJxmoHEusbfLTO
+5/shgCtwpsjOrVUeHx2E0P1UakxWY8jdfqD5OdvvfFr3jDWlbipW+v7jX5NUcg5o
+40krk001IpcUlWZPp3c6LiVM9gmLEhtxxXKnm7m86xygpclUg2HcV1WttebaeCt2
+p/742/6MM6SKo0ZcrbIKEg6K5FCe8LjLmVNMZCFrijgq4IiGANQXrGay574tOynl
++KeU24xY+NJLMJ/yxGJlUEdygM+kcEC2vUT+2b8oKy43x7NRDoIptbFvrX4sk8Cp
+f5H6xx818LuXyU9hKJCEQeh9IUDFyYY87ZqthZyiUwIDAQABo2MwYTAdBgNVHQ4E
+FgQUtE1mt9OzyJl8ATLQkTr31qgSMd4wDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME
+GDAWgBS0TWa307PImXwBMtCROvfWqBIx3jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
+hvcNAQELBQADggIBABwa6wauVb07PzYsYZ7qx1P8cKoyb+RCquu9hewbilrylZYp
+oQQGks4kV/9AI3hOyfgwTUJVRE43on1rjmj+Dv5/37CfY1Hz4cWllJ+KIyhI80GL
+0v547dnQCA9tfdWdlazV/hJmGuS+dVTz0U2cThPUnnA0bai6CjOIja0FN/5LeX99
+A0F5Ew2fPfc4nDVaRE8+PKLlgcV/X3ZPGztub5ptt+0PyzIfiLRFDJwR0vgEWhM3
+WZiBzkz05ZQoBMS1U8lUjXA/aAHbzBMK5CWjbJntELN6IKlJvAX0+Bto1rogHYJn
+ZuCwn1zKNdJFrtWIGdt6BpuMoDeHUSO+Rdpcs39rz8aoHDOKex2R+p687H07RRVP
+G6c7NbR581uCUOCcp+0WddtjgGKh2hgCaoDegqpETUQ4KKpu+hhjOWD3QylJWrok
+wL+zCpcdZ0laIrJnBJxYqfgMNFxAlrSHtUVhGeWO7wbekRXAuIrKlMkKdX1xO1iB
+M8j3B0FVmClDtcuaQ+ly+s/wizG85++5auNBnSE+DRWohb0bToeOR7IQ/jcYaoTl
+iRwUY+i5g6m1u+hjmnoZjMt09/gXCPGLGdi07B5uSXM/XCDdNSqWd+lGbxY7y6nv
+mwohEcjDpMkjRW0/YpWd0yjHnQ+z/jeNHUiyUOYluU4zYTbWFhzKMjcgdhws
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFojCCA4qgAwIBAgIGC4LclDN2MA0GCSqGSIb3DQEBCwUAMHAxCzAJBgNVBAYT
+AkNBMSswKQYDVQQKEyJDYXJpbGxvbiBJbmZvcm1hdGlvbiBTZWN1cml0eSBJbmMu
+MSIwIAYDVQQLExlDZXJ0aWZpY2F0aW9uIEF1dGhvcml0aWVzMRAwDgYDVQQDEwdD
+SVNSQ0ExMB4XDTEyMTAxNjE4MjgzM1oXDTMyMTAxNjE4MjgzM1owcDELMAkGA1UE
+BhMCQ0ExKzApBgNVBAoTIkNhcmlsbG9uIEluZm9ybWF0aW9uIFNlY3VyaXR5IElu
+Yy4xIjAgBgNVBAsTGUNlcnRpZmljYXRpb24gQXV0aG9yaXRpZXMxEDAOBgNVBAMT
+B0NJU1JDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDEdvFial/N
+Kc0ENn9uYX5z9J1m3yJamoNEgWb9ThGwPqzoiLJTOf/jur7U/9OF2L1br2hPM6y4
+FH0SW3qVa8c2/iuP9IhgiTqqWThMwV1VgaXf2B8xetOjTvBRy8Mxh64L3speG6F0
+OPCSd3E8yxN+oMEKmL3YuPhUNJhOZxaaV0smhl8bZnKqwfJogp1YQXxxIuLPATH+
+4uBWqWjgrTOvNTkunG4GTPMjdi9pJugFOWm39Uga99/ZOTcyVREnBIEfnTyLjINS
+d8GuLM0rKkrlLfEZabqHXoud4HHIdNLN7m44N2pdGQDSdt2i6247qh31NgZPX15s
+whDz3W+12nla/tVGRDRIr4YANHwkhN1FkPkWgqyokdTpRjNvfrpHH+Hvr+VQ1sb5
+p+1sl6orKU5dxfge9nTJqyT4DVPHaBW+/FyrPXIL0nAEtxbjaanxZ7rGAEx7gDQ1
+Ll7tH6Al96WCahB/v49Zb8NGpspCTkIjhQY5NYy18dfBI0JF/S8lcfjzB9MHaL7b
+mGwq9qVH97BlYK2ufOYRHSdUCGWw2ILAYWvpfo8i1nEda0EgZdhXmh98DlpU4JSw
+bXXvKDI1PFXDbWf4JL37QPNanTbZNUy74mvZsTYP5G8gGsVvesOROa+vzPP2vSCG
+utMkITwfNynmn/wav5jfPLogIRKpwjoqkwIDAQABo0IwQDAdBgNVHQ4EFgQU6pUV
+2lw5AOKa28S6LWf6ofd1NO0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AcYwDQYJKoZIhvcNAQELBQADggIBADXQ2Lie8gn48J+ybkiy1+qhmyiJOc3+Fmod
+6ZyCX1FHOvWe0byuH5/iXErI7O1GQvF8QwcV326X9u2G/J/FCF6CDqMuqAouvI4b
+MRIo9nkowSK20ZVpQOhZCSeikWR26tATjXD8ZcNvEZ8qSMqnYvWDFOUaFseRi7QJ
+xc574+QdbZei6csmHmu03D6Ddi9eTahoiVT9TtJGqED22Mp4zzYaPVlljJv1Kx9M
+gt94eE0mSkdprW8zHwMeIk7ZBlmeRvxQNV/GhRvkG/gAyeDTOqsmQ81H+lr4hQvH
+Mtq1DS0wKTp5sxTppQ9wJdGNCVCU7U2SnjA3QNtaeEmPDzkvvS7XqwiUySmK992M
+vYJ8MFti6DVGVjhdkfYOb4zulZ/9dJ3t7RCrzouPt61/TWlJ8McRVZuagvei+jPy
+RBH6FUtGqZtrl0LWtLcJERR5U6bnfy0nOgo0JETOVYx6gHVzAkvi+kaUfTMUDUJW
+uaDmL4VIkZ9EuqEoqbEfiXomClNchbl8hJiMKGCltnqNPaAAPdx/qkjpqC6sX96H
+LVykaxbqveiVtc54CfhxNuWQaNIHlrq8AIsOmG1NcFPAw8wbE5xImpk9EsAnjmGS
+TGhSb40DHIn104bA/3FJTyBr/dFvkST18UcjTVnf0L1JQv1AOD7i8QVcJegQ5FoC
+A+O7fCUq
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFkzCCA3ugAwIBAgIRANaWLsEKFZMSr49jvNREyVswDQYJKoZIhvcNAQELBQAw
+YzELMAkGA1UEBhMCVFcxIzAhBgNVBAoMGkNodW5naHdhIFRlbGVjb20gQ28uLCBM
+dGQuMS8wLQYDVQQDDCZlUEtJIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+LSBHMjAeFw0xNTExMTcwODIzNDJaFw0zNzEyMzExNTU5NTlaMGMxCzAJBgNVBAYT
+AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEvMC0GA1UE
+AwwmZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggIiMA0G
+CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCkWR+gL9++4Pvp3LWJ/lqXA8k6d6eO
+XK/y4xg59ardD0bSaA9XnKdjYNNYzjXCp/aIwk9/Gyjp0KcAxBdNbeIPxQ4mIyCr
+9zoookwKC8yOzuYAmlpADdRQGpvRDZyU+dvuXNDxigfNmitALEmkXWJfp2vf7lYI
+UPNCGGwxsF7lnHOSvA7SDH3FOFe8u1jbJhkC7eNDhIpOVmvbraEx2cwiZ5Z4/3ed
+zGTFMiBq704w1SQl/Yh5r3Ea/tVLGxWIvBhwqr2tOApmMEbliYXVdiSpqbPmWWAP
+tKlTwjqdRRrWruN3XsRiNjMvMMS/lfEtOKV16NFqky5Fh0tKot+/WCeaymIZql7U
+sYBJlt0r7F+Pm+Cdl4j1hAOjr7Olcy1BuuUHt29rcff3yVqvaZmzL8hPQutsa3Fn
+eN8KrE/XSoUARhrVzbif6pWdD3zRxgWF5gjeiBeB9tW1buqhHNdhquNZQomcWX6x
+fGQ03WEjKjm1EKv8hqlTGsXrauKATlmRwDiJ/rNd1vuR6dewfdl4CMz1K8wr4aHW
+lHPB/lH0jH0KtZqKufXa4Mmz2I+qgoONaVMt/QAEGEqg2lTheYyJ63/1gueguXdN
+rvm6AjuIdut8XbNaE9t8KRZrmdEd5Eghog1eAYjovvGYTT7HFlccX+EIbxxMWENW
+94BljHEOogRnTwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRy
+W7qqcjjuJZAktZQi+gmIyosK+zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEL
+BQADggIBAAaj8bZzVcZnZiHlnVvWlC5KImDyVAGQof21v8CVvxhfLPZrNQ78Mcjt
+RA6Sl9yv3VbPtR+6cpwwyJuxkcB2d9QPGpUa6U0UiKHPawKmautkRU1kjd7862zy
+UwmhhVEV0E+eYvoRuc7IJA5yZIh1NCMwKj+8PDnMzN0LNru9BoKPEgHFcQXRJKGZ
+bMrk96rtitenCq2v8OCAu6GyP1qHZHCGM3sNHtcAhoNDl3X1O8FI/bYOQ6gCbrg+
+f49O4l20fZ4wNC+o8esnh2gNWgpNAdvJFFiV8ppNFqpz2/QliBc4t69ZCQm0Hy0P
+q/W4J1XuRTAzuO0bjryIbK/4Wipr4KyxBSShCfyjD/OwLXuWuraUBxVFjincWA6p
+Bdg7OqB7zYrHZoKXz9Yz4Gf8pttALwXlxYt6KnrwsDabDBj2N+lBof2xKPlva73r
+H0xjcXtQ3Sny/+73x0Vf6DYK6GxbIsPowOcm3OOolYDluToT2wBLGv2uM0d+eJTj
+sV0rtVa1QoufgcX8k0wQtboKvH434/pUbfUExXCzqQTSUdeFzX1vQ49ZaOUxVhFx
++WQpCRP+0B+8iwA4stDKNFZ2EDlWc2bD0UnZvldPPxZ9ani3qIK4W86uhYoKQgwD
+0RfEGPfYV4jGgrgHuT79pOku3G+6kJLuZbBQNNMH2gGXD7znc4J7
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGbzCCBFegAwIBAgIQQxwoxnQP7SVXRJ/y/Q5eFDANBgkqhkiG9w0BAQsFADB7
+MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0
+aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJhIFMuQS4xIzAhBgNVBAMM
+GkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMB4XDTE2MDUyNDE4Mzk0NloXDTMx
+MDUyNDE4Mzk0NlowezELMAkGA1UEBhMCQ08xRzBFBgNVBAoMPlNvY2llZGFkIENh
+bWVyYWwgZGUgQ2VydGlmaWNhY2nDs24gRGlnaXRhbCAtIENlcnRpY8OhbWFyYSBT
+LkEuMSMwIQYDVQQDDBpBQyBSYcOteiBDZXJ0aWPDoW1hcmEgUy5BLjCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAKtriaNTzEgjCPvDz1GWCC64CHptPJAX
+hqnp7S4TNEey0HDcyTzQjcruSxer0IWwpyMEy6ii/OV120DKYomPUJ4BPSZbGIQc
+y3w3t33s039zGbBqstiIii1FdKj3s7jA1NrNIol0TVoVOXMYdE+165mnwR6ItMKT
+kGOX86enErIJIgcz2ZHNDpwfDiDH7rszjY/C0linX/1lN+KIwtiPhnVe+S2nhzPy
+eDcvi7wdhjc5sZTy2LxKnIMYWgb889TUuowVCSXw+baNBH4XEjNrV0hMT9smHuvM
+kOeL+Wh8cA+jKtA6ON83l+Jb3oBh04DYkYNCWkwEiWgRPKxfaIBBzGBCzg1aKgwP
+mzDApvCG26tJ15dtSIv5A8BSZ5sS98LyLphlQtnWmuPQGTEMrYfVVwJ6MOiGJvuP
+I4pUh+S/PO7rw3VIXx45b4FibMUtxBdUGbc3jZw3kcj2C9XqY2+DrDjC8z/emvvh
+I2HwyCbLNsih8zCPpKOiod1Ts97wmjIfg5F5MMGpH1ObU6IVUz/dnbMQO0h9iQ/8
+7QP1+yVkdQ4XGQ2PABZneXpA/C1ZB9mQ+pqtPdyAiuZcNaJnTBFrsfiAZAAtbyJh
+xaxLJuVaEIKbpIN7NPeeiZEgl463Qsdmw9DppNb1II3Ew5WsRAqdW3M8Jj0vSr6n
+yacQHvufUGnzAgMBAAGjge4wgeswHQYDVR0OBBYEFNEJ0OnXznl0VPk6MLP0bSwD
+AxtoMIGoBgNVHSAEgaAwgZ0wgZoGBFUdIAAwgZEwMwYIKwYBBQUHAgEWJ2h0dHBz
+Oi8vd2ViLmNlcnRpY2FtYXJhLmNvbS9tYXJjby1sZWdhbDBaBggrBgEFBQcCAjBO
+GkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW507WFzIGRlIGVzdGUgY2VydGlmaWNhZG8g
+c2UgcHVlZGVuIGVuY29udHJhciBlbiBsYSBEUEMuMA8GA1UdEwEB/wQFMAMBAf8w
+DgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQBRG5A+g1oa6Gpwpa1w
+/hCCYTCtjMO1xtjTMRLJH3lTFeJDx+EO8T1IzmgLFXlt4XaHf3Bm7fUPgqS8ce+x
+K8yxuusqqWAfQ4C+knJCLp+h/xgIsV5d9WzOKNvAbJrNh16W6cjvNZe6ZKq3fkVA
+ibBDg0574bT0dglLzFY+IUmyxp9j293wtg8X9bpMcI3VJwDJQ1QPZqq6rrHZdu4D
+ke2YtxobopZQblV/zV4Y0Gcbv/T6ctm72vvemqpRLgW6ztpqbRhoJmiChTTtTXna
+mnYN9PHUw/uxKnTskFLjDV31SVhUJwAwl6AjAWyJvx0A8f38GayfOymow4HNknH4
+1+Wx2hs6F49T2qauAc6ynhrNCWLPddTXZ1Cin1n2hPPHJzGeqh4mS7oOiqzp9eNc
+HaEqNzm7NG4zltVxpUM+NjSH/5Kiq+kl4NlRd1Sqe0E0hljxquU+kt7INBCThD8m
+Rb1Sxjx29yEcruDhxaNT8gmffROeqfOyWYIUlE7fdqqD6SjaiohU+xRxqlA7viT9
+xD5E+Jhk82qPYnWwrEdl9psiOiHhtVdBVsUk1hmSd3CwrBf0LpUQThIwmahURWEv
+N2/6iVdGMvRb6ZvtCSkvla6U4oeqHmpx6W8bOe38fNQNpk4jIjb5Zc9C8ByxM500
+1YkkaeYXaKOZ73pcL/0gvXeZYA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC
+VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T
+U0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx
+NTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv
+dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv
+bSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49
+AgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA
+VIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku
+WnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP
+MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX
+5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ
+ytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg
+h5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF4zCCA8ugAwIBAgIIHWwR62/aOZ0wDQYJKoZIhvcNAQELBQAwfzELMAkGA1UE
+BhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK
+DA9TU0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTc1MDQ4WhcNNDEwMjEy
+MTc1MDQ4WjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcM
+B0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM
+LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMY3fBNvzw/ZUM/m16poL1xR1L/NTKbV
+NzFAEDRBev3LlI1if7iQzc5pljrE/9nXY+bQhCWAEb/R7TDohAbhoJe4VZAdrfOk
+mhtOnBH39dnWj2AqPjf4deyAo1Wg9CdBwqo55FLfEPn1ZTk/jJ3MeyfPBhR3Tj1S
+54SBMWwSMqyEWhdqxMFcgDHC2kd7dg9C6OciFNONxFuPi2VYKSyPDo5J1NTYClrT
+JtMJjthDspRP0sAc3XRiEWm8VCLoOh7QVVZFj3BwjS/vwl29XlTdLnvpGIuKSdlP
+jRDzpVfha6sYS46uLvHyuvVdQfc52KPCXd6fWrEvRJM+P/EiOZRAbSfGzA14DAu9
+KlYmrSlXuHHkf+sTssh99Wtd8/IAMDP6W8sSanpBb28JTLdpDQ95IyMaZo1ZNmOW
+gHsYImseIhgt5KV1ChBZ+6N+JhBTxsgZLh4nGPswBT2RBHqucMbMD6A00yQWGAEF
+Z2nlRdFWqJu/r/qsVQgMAn5Ld6w3wdjtmTSgQbM1OusxNMk738Q9KUU1VLh/ls8I
+D+mxnlXKZ4SgJ2Cr+lAxOdV7yraa7ZGMeB757uDiWUHUH0KAefX0g1AIrfNHQV9Q
+o5+J87QnKlS5GllrCZxRwChrW7go0m81ftWTA250JWXqFgWRAfEHY0+rhMVy2c1o
+m00sfgQ48OpHAgMBAAGjYzBhMB0GA1UdDgQWBBTZWir/pc6doZF9/4ddq2o1EtnJ
+TDAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNlaKv+lzp2hkX3/h12rajUS
+2clMMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAvIzPI/q9M1eW
+H9CC8BKuNETq8bwh1/WJxjQeeKbiUd/deIDV6m3Gqm8JAoyn5svIiVqUekqzVu/d
+3VMyY/Bp791AuZCiLgN3lrUpAFLu+w6nlGjFPAMt6Wuqne6n2GeS4hFaON+YZqOg
+jssMQjZMxVZbn3XwQNHoOyoIm1LDHF+QNFf7xvkdcfwlfM96fR5pxrv0FP4dHeeX
+ooab8t9XkgZSZJMpWQovoRfcu+6tO7MAZTjZqJyBrc01nIvp4vSEjw7PjXFtAIA5
+b7MENaA4YanyL/Q1jdjf3qRpMPqgJnxaInnwaP7LzbzvlYwn5YT5/YRCxrr9ucnG
+WnEwdjYCH9B8qRMO4SDZUgysHoh3oCmGOohmU6/DpcnbVLGk6O5Mbj+5ezCjQugC
+pr2EbSp8/fTtRbcw+mxcI1ZaPGEqx5vmxfJEtwe/dp1C5Fzw7rk+EPPPUtLNzlIY
+f2D2LpVMNQBMRtYQ7DTLWHtqDeRjVcxY2U9jZzHCUqF5DyrPyU7MEsuNGlqqRjET
+Ow3pV2haC4QENi+fEbw8eq1av0bjtyCJHdwHfNx66+l2yQANcLeflxpi7xjmZL4I
+p6SZu3+MaJqYyYZi9qGYNjmj85ZXpAJj+VU+sIyfv6l6SzzZua4PivS6HCWrVVmh
+VsIzuTrEQM+LGvcDDr0bYGN9JdSpvuU=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC
+VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T
+U0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0
+aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz
+WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0
+b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS
+b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI
+7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg
+CemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud
+EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD
+VR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T
+kdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+
+gA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE
+BhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK
+DA9TU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTcz
+OTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv
+dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv
+bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2R
+xFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX
+qhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcC
+C52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ3
+6YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh
+/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrF
+YD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93E
+JNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVc
+US4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8
+ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2snYxnP/Okm
++Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi
+M+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV
+HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4G
+A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGV
+cpNxJK1ok1iOMq8bs3AD/CUrdIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBc
+Hadm47GUBwwyOabqG7B52B2ccETjit3E+ZUfijhDPwGFpUenPUayvOUiaPd7nNgs
+PgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAslu1OJD7OAUN5F7kR/
+q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjqerQ0
+cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jr
+a6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I
+H37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/Y
+K9f1JmzJBjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtu
+nLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktuf
+oYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY
+Ic2wBlX7Jz9TkHCpBB5XJ7k=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCB
+gDELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu
+QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIG
+A1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQSAyMCIYDzIwMTExMDA2MDgz
+OTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZ
+VW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3
+b3JrIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWA
+DGSdhhuWZGc/IjoedQF97/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn
+0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+oCgCXhVqqndwpyeI1B+twTUrWwbNWuKFB
+OJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40bRr5HMNUuctHFY9rnY3lE
+fktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2puTRZCr+E
+Sv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1m
+o130GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02i
+sx7QBlrd9pPPV3WZ9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOW
+OZV7bIBaTxNyxtd9KXpEulKkKtVBRgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgez
+Tv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pyehizKV/Ma5ciSixqClnrDvFAS
+adgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vMBhBgu4M1t15n
+3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
+AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMC
+AQYwDQYJKoZIhvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQ
+F/xlhMcQSZDe28cmk4gmb3DWAl45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTf
+CVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuAL55MYIR4PSFk1vtBHxgP58l1cb29
+XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMoclm2q8KMZiYcdywm
+djWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tMpkT/
+WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jb
+AoJnwTnbw3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksq
+P/ujmv5zMnHCnsZy4YpoJ/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Ko
+b7a6bINDd82Kkhehnlt4Fj1F4jNy3eFmypnTycUm/Q1oBEauttmbjL4ZvrHG8hnj
+XALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P
+5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7zAYspsbi
+DrW5viSP
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQEL
+BQAwRjELMAkGA1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNV
+BAMMFkx1eFRydXN0IEdsb2JhbCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUw
+MzA1MTMyMTU3WjBGMQswCQYDVQQGEwJMVTEWMBQGA1UECgwNTHV4VHJ1c3QgUy5B
+LjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xvYmFsIFJvb3QgMjCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNMPIf5U2o3C/IPPIfOb9wmKb3F
+ibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJIcRHIbjuend+JZTem
+hfY7RBi2xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy95iJMHZP1
+EMShduxq3sVs35a0VkBCwGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsn
+Xpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4
+zDRbIvCGp4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkmFRseTJIpgp7VkoGSQXAZ
+96Tlk0u8d2cx3Rz9MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niFwpN6cj5m
+j5wWEWCPnolvZ77gR1o7DJpni89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4g
+DEa/a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+
+8kPREd8vZS9kzl8UubG/Mb2HeFpZZYiq/FkySIbWTLkpS5XTdvN3JW1CHDiDTf2j
+X5t/Lax5Gw5CMZdjpPuKadUiDTSQMC6otOBttpSsvItO13D8xTiOZCXhTTmQzsmH
+hFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB/zBCBgNVHSAEOzA5MDcGByuB
+KwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5Lmx1eHRydXN0
+Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT
++Et8szAdBgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQEL
+BQADggIBAGoZFO1uecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9
+BzZAcg4atmpZ1gDlaCDdLnINH2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTO
+jFu1EVzPig4N1qx3gf4ynCSecs5U89BvolbW7MM3LGVYvlcAGvI1+ut7MV3CwRI9
+loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaXcozrhAIuZY+kt9J/Z93I055c
+qqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8wkbIEa91WvpWAVWe+
+2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/
+JEAdemrRTxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKre
+zrnK+T+Tb/mjuuqlPpmt/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQf
+LSoSOcbDWjLtR5EWDrw4wVDej8oqkDQc7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+
+x9CWttrhSmQGbmBNvUJO/3jaJMobtNeWOWyu8Q6qp31IiyBMz2TWuJdGsE7RKlY6
+oJO9r4Ak4Ap+58rVyuiFVdw2KuGUaJPHZnJED4AhMmwlxyOAgwrr
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFyDCCA7CgAwIBAgIQR0ORJD/Oww1XSChr7oBdqzANBgkqhkiG9w0BAQsFADBd
+MQswCQYDVQQGEwJFUzESMBAGA1UEBRMJUTI4NjMwMDZJMScwJQYDVQQKDB5DT05T
+RUpPIEdFTkVSQUwgREUgTEEgQUJPR0FDSUExETAPBgNVBAMMCEFDQSBST09UMB4X
+DTE2MDUyNzEwNTg1MVoXDTQxMDUyNzEwNTg1MVowXTELMAkGA1UEBhMCRVMxEjAQ
+BgNVBAUTCVEyODYzMDA2STEnMCUGA1UECgweQ09OU0VKTyBHRU5FUkFMIERFIExB
+IEFCT0dBQ0lBMREwDwYDVQQDDAhBQ0EgUk9PVDCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBALkrXvU+uokenfXRE8+7o1666d85cmSYUodppbbe4b+URb7F
++KRTZxVQ3FJPKnYsLo0gaozmXbnZaL6RG7ppAxitGE42oqxGqyD4A2qqrXnV3x3B
+7kVvIXT5TbGxPZA7PDKA7f8Vz1HK16SHLqrlDrbRelrHufhRu9mU3T7Ghk4K/juJ
+8vhuJM6RA1gFEkrdUKtBes7tqR8RUx6lE9th8PWqgN50eR2k4ynW++D8l9qiuKsi
+PmWwIcTlxRBEh7Lj4CqCLn3m9LikEyXzd2BfY1OuLrGdimt2ezpxvZKBNrCcgvH3
+xYkoXf+8QgazCGpPYc2kLZDTObh3/8jHo3m7A7mRAwE0Etgwi7aMAsrkSOw4KjJM
+bcp2KFqGCrrUII6voF8gLWKciPnxFW1bvbEDUMA/NteuP1HRyuNYZkTmo5t3LjH6
+2X8ixAVM63QbXGN6pgKTfkMOdhQPTW8ylYiAklKXFPU8/JQH02wpBZVGD+Rx4X/4
+bRQSgpK181M+mRGXR3ZKCXLu1MOWCaza//FLS7bXJc8eTJcmCzS7tpTxLGRxX4ny
+FTs3pwLkDU9IiTOjjGh4MVFnChnbtOJ0Lz1683cAn3ESY/9zKmRpVOysOq7a8lhj
+NH74PF7AQjql27Oo1FrBTli4abasgmLb0fsaQyEi/B31nE9OO+WN/3ZaI15bAgMB
+AAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
+BBYEFBpV5BUx4jGbEdSIcXoAPXAoBb/NMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkG
+CCsGAQUFBwIBFh1odHRwOi8vd3d3LmFjYWJvZ2FjaWEub3JnL2RvYzANBgkqhkiG
+9w0BAQsFAAOCAgEAezDKVYbTr+4a17iVmOz5O92QE6OckkWgkolpoXGRvHGFh6At
+MAnkwlM99Km3aC1Nmc2kz547kJ2aCikNKkLBPVtrQILFixOxQWePvqR34MB25PO2
+KVYs73FPwmTx2rQLytA5X1OygwH7sn3Zg3R6NdDBXY+b917nUt/uqjeTq9k9fR7x
+vRzb6HXduFtM4xaj9nWIDo88wwts22BZ5AWrKEb3Zmkld97KSjPYWF57j5rPUo49
+bf3Rsr0+eVeGHkQcB030whCqeMvzURcNdj2NbmhJ6e8HSdG4Fsl5ncyuCwVHev2Y
+rDGhkFqHYvn4q2Ja4CF20GhC6By+coHwxmd9fnQ81VVvj6VolhHxytMwF71GtjGv
+cOmkhDdXugk8LtkLE1YHPpXEtXAvk8Kur4FdRhQw+67F85r3QXqx3ksW2UV1RwJ8
+FB7VsTugLEG1m0t7o4PwuczOHpS3Xi4jBpWRHDhHHO3EeA6kD/wbfNbya9CKW+qW
+8zHUXmrElLgwn5XhB4m4iNInhaRhdOWoRDF6IHXo+Njrs0+q/1M/lu3qu/xRQKYr
+7CSh+/lEjSPnppcAD8ukar9QoMpxomyub9/Zg4Jm3FNdr/pU94P/qz+Jlae0bfMP
+Cg1IMy+BKcdLBcTGV3SEw5g2/++FMqtinBPRIoexvpjbdJqP6sLWk3lFIMM=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9
+MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBH
+bG9iYWwgRzIgUm9vdDAeFw0xNjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0x
+CzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEds
+b2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxeYr
+b3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmToni9
+kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzm
+VHqUwCoV8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/R
+VogvGjqNO7uCEeBHANBSh6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDc
+C/Vkw85DvG1xudLeJ1uK6NjGruFZfc8oLTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIj
+tm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/R+zvWr9LesGtOxdQXGLY
+D0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBeKW4bHAyv
+j5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6Dl
+NaBa4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6
+iIis7nCs+dwp4wwcOxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznP
+O6Q0ibd5Ei9Hxeepl2n8pndntd978XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/
+BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIHEjMz15DD/pQwIX4wV
+ZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo5sOASD0Ee/oj
+L3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5
+1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl
+1qnN3e92mI0ADs0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oU
+b3n09tDh05S60FdRvScFDcH9yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LV
+PtateJLbXDzz2K36uGt/xDYotgIVilQsnLAXc47QN6MUPJiVAAwpBVueSUmxX8fj
+y88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHojhJi6IjMtX9Gl8Cb
+EGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZkbxqg
+DMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI
++Vg7RE+xygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGy
+YiGqhkCyLmTTX8jjfhFnRR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bX
+UB+K+wb1whnw0A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBH
+MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBF
+eHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMx
+MDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNV
+BAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrsiWog
+D4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvS
+sPGP2KxFRv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aop
+O2z6+I9tTcg1367r3CTueUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dk
+sHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR59mzLC52LqGj3n5qiAno8geK+LLNEOfi
+c0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH0mK1lTnj8/FtDw5lhIpj
+VMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KRel7sFsLz
+KuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/
+TuDvB0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41G
+sx2VYVdWf6/wFlthWG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs
+1+lvK9JKBZP8nm9rZ/+I8U6laUpSNwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQD
+fwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS3H5aBZ8eNJr34RQwDwYDVR0T
+AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBADaN
+l8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR
+ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQ
+VBcZEhrxH9cMaVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5
+c6sq1WnIeJEmMX3ixzDx/BR4dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp
+4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb+7lsq+KePRXBOy5nAliRn+/4Qh8s
+t2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOWF3sGPjLtx7dCvHaj
+2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwiGpWO
+vpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2C
+xR9GUeOcGMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmx
+cmtpzyKEC2IPrNkZAJSidjzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbM
+fjKaiJUINlK73nZfdklJrX+9ZSCyycErdhh2n1ax
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT
+AkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD
+VQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx
+NjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT
+HFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5
+IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
+AASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl
+dB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK
+ULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu
+9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O
+be0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFfzCCA2egAwIBAgIJAOF8N0D9G/5nMA0GCSqGSIb3DQEBDAUAMF0xCzAJBgNV
+BAYTAkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMScw
+JQYDVQQDEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTMwHhcNMTYwNjE2
+MDYxNzE2WhcNMzgwMTE4MDYxNzE2WjBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
+U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UEAxMeU2VjdXJpdHkg
+Q29tbXVuaWNhdGlvbiBSb290Q0EzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEA48lySfcw3gl8qUCBWNO0Ot26YQ+TUG5pPDXC7ltzkBtnTCHsXzW7OT4r
+CmDvu20rhvtxosis5FaU+cmvsXLUIKx00rgVrVH+hXShuRD+BYD5UpOzQD11EKzA
+lrenfna84xtSGc4RHwsENPXY9Wk8d/Nk9A2qhd7gCVAEF5aEt8iKvE1y/By7z/MG
+TfmfZPd+pmaGNXHIEYBMwXFAWB6+oHP2/D5Q4eAvJj1+XCO1eXDe+uDRpdYMQXF7
+9+qMHIjH7Iv10S9VlkZ8WjtYO/u62C21Jdp6Ts9EriGmnpjKIG58u4iFW/vAEGK7
+8vknR+/RiTlDxN/e4UG/VHMgly1s2vPUB6PmudhvrvyMGS7TZ2crldtYXLVqAvO4
+g160a75BflcJdURQVc1aEWEhCmHCqYj9E7wtiS/NYeCVvsq1e+F7NGcLH7YMx3we
+GVPKp7FKFSBWFHA9K4IsD50VHUeAR/94mQ4xr28+j+2GaR57GIgUssL8gjMunEst
++3A7caoreyYn8xrC3PsXuKHqy6C0rtOUfnrQq8PsOC0RLoi/1D+tEjtCrI8Cbn3M
+0V9hvqG8OmpI6iZVIhZdXw3/JzOfGAN0iltSIEdrRU0id4xVJ/CvHozJgyJUt5rQ
+T9nO/NkuHJYosQLTA70lUhw0Zk8jq/R3gpYd0VcwCBEF/VfR2ccCAwEAAaNCMEAw
+HQYDVR0OBBYEFGQUfPxYchamCik0FW8qy7z8r6irMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4ICAQDcAiMI4u8hOscNtybS
+YpOnpSNyByCCYN8Y11StaSWSntkUz5m5UoHPrmyKO1o5yGwBQ8IibQLwYs1OY0PA
+FNr0Y/Dq9HHuTofjcan0yVflLl8cebsjqodEV+m9NU1Bu0soo5iyG9kLFwfl9+qd
+9XbXv8S2gVj/yP9kaWJ5rW4OH3/uHWnlt3Jxs/6lATWUVCvAUm2PVcTJ0rjLyjQI
+UYWg9by0F1jqClx6vWPGOi//lkkZhOpn2ASxYfQAW0q3nHE3GYV5v4GwxxMOdnE+
+OoAGrgYWp421wsTL/0ClXI2lyTrtcoHKXJg80jQDdwj98ClZXSEIx2C/pHF7uNke
+gr4Jr2VvKKu/S7XuPghHJ6APbw+LP6yVGPO5DtxnVW5inkYO0QR4ynKudtml+LLf
+iAlhi+8kTtFZP1rUPcmTPCtk9YENFpb3ksP+MW/oKjJ0DvRMmEoYDjBU1cXrvMUV
+nuiZIesnKwkK2/HmcBhWuwzkvvnoEKQTkrgc4NtnHVMDpCKn3F2SEDzq//wbEBrD
+2NCcnWXL0CsnMQMeNuE9dnUM/0Umud1RvCPHX9jYhxBAEg09ODfnRDwYwFMJZI//
+1ZqmfHAuc1Uh6N//g7kdPjIe1qZ9LPFm6Vwdp6POXiUyK+OVrCoHzrQoeIY8Laad
+TdJ0MN1kURXbg4NR16/9M51NZg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIG4DCCBMigAwIBAgIINJotoYIGsrMwDQYJKoZIhvcNAQELBQAwggEMMQswCQYD
+VQQGEwJFUzEPMA0GA1UECAwGTUFEUklEMQ8wDQYDVQQHDAZNQURSSUQxOjA4BgNV
+BAsMMXNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2Fk
+ZHJlc3MxKTAnBgNVBAsMIENIQU1CRVJTIE9GIENPTU1FUkNFIFJPT1QgLSAyMDE2
+MRIwEAYDVQQFEwlBODI3NDMyODcxGDAWBgNVBGEMD1ZBVEVTLUE4Mjc0MzI4NzEb
+MBkGA1UECgwSQUMgQ0FNRVJGSVJNQSBTLkEuMSkwJwYDVQQDDCBDSEFNQkVSUyBP
+RiBDT01NRVJDRSBST09UIC0gMjAxNjAeFw0xNjA0MTQwNzM1NDhaFw00MDA0MDgw
+NzM1NDhaMIIBDDELMAkGA1UEBhMCRVMxDzANBgNVBAgMBk1BRFJJRDEPMA0GA1UE
+BwwGTUFEUklEMTowOAYDVQQLDDFzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5j
+YW1lcmZpcm1hLmNvbS9hZGRyZXNzMSkwJwYDVQQLDCBDSEFNQkVSUyBPRiBDT01N
+RVJDRSBST09UIC0gMjAxNjESMBAGA1UEBRMJQTgyNzQzMjg3MRgwFgYDVQRhDA9W
+QVRFUy1BODI3NDMyODcxGzAZBgNVBAoMEkFDIENBTUVSRklSTUEgUy5BLjEpMCcG
+A1UEAwwgQ0hBTUJFUlMgT0YgQ09NTUVSQ0UgUk9PVCAtIDIwMTYwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQDqxqSh1K2Zlsmf9bxQAPQsz/J46PIsAifW
+g4wEq9MOe1cgydSvZfSH3TAI185Bo3YK24pG5Kb97QjOcD/6EGB5TGuBVIBV5Od6
+IbZ1mtxe9g6Z/PjC30GOL6vHW20cUFnA7eisgkL+ua8vDEFRnL0AbmRRsjvlNquV
+kRL7McdzrBzYZXY7zhtMTrAfIAb7ULT7m6F5jhaV45/rGEuEqzmTzTeD0Ol8CyeP
+7UII6YZGMqyaJmlwYS0YvT9Q8J72aFBOaZVwwe2TqZdOKaK63cKfbkkIK6P6I/Ep
+XrB9MVmb7YzNpm74+PfYGOjaVulI8kB0fp7NIK8UJFnudzWFv0qZSql13bMm4wbO
+fW9LZKN2NBk+FG+FVDjiiy1AtWRmH1czHHDNw7QoWhQjXPy4vbP+OxJf9rmMHciU
+Clbbcn7vJwcNALS/fZk/TUWzm/cdGdBPBPrHc5SIfYsUKpng6ZmSCcbWAWu38NtD
+V2Ibx0RS4pdjus/qzmDmCuUYaC0zgHWgMAdo9tX3Eyw6sJ7oWFVujFZETUMXQQLM
+d9xfRQVZz81g07/S9uL01dyHcTMHGvVvtH89l/tfZPRODgBECenr7D5xGQQXOUhg
+uEv/XshlmSumMvJbhqid6CN0EHjvyyedMbpgi04GUOJQHQdgwkGMFbRbNxwK5QkZ
+cgSKPOMB2wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSeLmVP
+Plf1q32WxovfszVtSuieizAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQAD
+ggIBAAVpKoWXJlC6QjkckyzST1vRXUQm2m9pK7V7ntD0Si5Ix+x/n8pZerlE9z69
+91BrUZ90/5AaQNCTeZIPiiNei6+BC9CLrWbgKtyaKb012GxAFElCPYkvupsrOLwa
+owu3iNetxhQM7nxJrK7s8j0YT4xtFF0Oqrffd6s7j2JOiwxlxhmOzcAMoXeqtN16
+pxMF5jkYx5VkfgO2i5DB5V8AI5jmc9oR0hD/HlMiJ8fTAckvxTsybvDDOMoSZ7y6
+Iym7xJVJWgbd1FqQ1BNt59XCfOJYBMDsxL2iPH7GI4F1fKtwXzSElfez1UeWT3HK
+eDIIILRCpEJr1SWcsifrwQ5HRAnhKw/QIzZuHLm6TqzM8AyUzkEPa90P1cjgF4ve
+Ol1Svul1JR26BQfaVhk8jdHX8VE22ZLvonhRBVi9UswKXm+v2tDlDNtswSPvOTF3
+FwcAjPa6D3D5vL7h5H3hzER6pCHsRz+o1hWl7AGpyHDomGcdvVlUfqFXFTUHxXLJ
+Prcpho2f2jJ5MtzbqOUJ/+9WKv6TsY4qE+2toitrLwTezS+SktY+YLV4AZUHCKls
+4xza++WbI1YgW+nQXMZKJDu847YiFiqEkv+o/pe/o53bYV7uGSos1+sNdlY4dX5J
+AJNXyfwjWvz08d8qnbCMafQQo1WdcDwi/wfWK7aZwJfQ9Cqg
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF4jCCA8qgAwIBAgIQTANLrGcYTH+vRAhNgpbHsjANBgkqhkiG9w0BAQwFADCB
+ijELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkZMMRUwEwYDVQQHEwxKYWNrc29udmls
+bGUxITAfBgNVBAoTGE5ldHdvcmsgU29sdXRpb25zIEwuTC5DLjE0MDIGA1UEAxMr
+TmV0d29yayBTb2x1dGlvbnMgUlNBIENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0x
+NTExMTgwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGKMQswCQYDVQQGEwJVUzELMAkG
+A1UECBMCRkwxFTATBgNVBAcTDEphY2tzb252aWxsZTEhMB8GA1UEChMYTmV0d29y
+ayBTb2x1dGlvbnMgTC5MLkMuMTQwMgYDVQQDEytOZXR3b3JrIFNvbHV0aW9ucyBS
+U0EgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAhN+opqOMC3geyE0Zld0pkJIgNZAqlI2CMy1wElilCIqewQjzk9Zo
+wC8Uvnmk/H3M1bw+j+2cSgJhWT2qw290ANL4GjTUVJ5qdEeaL+DS9w/3w90/pb/B
++n1CaWAAgOw85ruBN6QeBhQ9V4+QpDVKNHOHthrDXZDvBk1wdjY8gontz2QZgyVD
+Thzi8WpShv5R5H443xWNTGxgQUpPsEBVRjl1yYE5AHOKYuoPZbePT5dAzs/uwWoo
+oHGpmSfRPck1c3qAmfh9hrmdeTrt0yr6fqa4/1cqc7Kmv9qJugYb2mWg5r5glIj2
+32bhJ2ob/tBeqY0giwrEH36IQS+ywdDztmjtyDvx76oH3n7XIuCB9qXqexb0QlSd
+ln72YhZTzf0Kq7JCoU4qiEJ1g72M5U165x3jTLje46tgOC1nKf7kX67CqOi/rmz5
+67NS8X/p7MIv2Z3KF55C+jtYwT6IYk9fk8GXbWaPHCLzmsH07blrGn42hMgxuPBe
+K36V5HnPdUzC2AS/OI4os91btthPI26S6DeVroOu1vw5KkYGH/GEdSHWuE6mKpdY
+ZfWaGAHX9cN/KckQ7nNKQ3Z70aYwUf/WKx0eYoS++b5pl5nHDed8JFB1F/2kIOc1
+aANglKfZDcYaLOXiTtXMDsB6MFbvYJK+2S71x/DoRc/ahq7v2HepEicCAwEAAaNC
+MEAwHQYDVR0OBBYEFA/xSkp1dAURDB3YW5nrv/6qfV7XMA4GA1UdDwEB/wQEAwIB
+hjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4ICAQA9y9JGePX2Ohfo
+w3tk0cW7kHiN9U+5xC2X+wvmxbjxturoWEs0rXd5LDUfcn0CPu610BaKBjeWte9D
+0AkQLJdmx4EfHuYnxYKRWF7zyFtBaICDkbmcgfgn+kXf7nnyXG1wAlTuwFPYQ+sF
+esz0Ud2p1CJ9ajvy/ojUUkk6hZJkU/hqU2CIj/Jb1K4rUuDq/1R+oeTvhhungwsG
+Zl4wgIxVoEcz/2seREhLYaoePuhMZMfYbX0Orjw8Qj3KJBpw8WEUnDoY1fAGKZEi
+sjo6oRZUYxr5M5VEnySjIWQECOKb1d4IUhxiHFMWRzVCJsenDP3zWxN3Aoxc4hbw
+GB/ZffXfAiSIevNe/xcOs2JnoauxF449Okaw9UaMq4TY9Q6hIOvC8Jl0PY6zA9gk
+xWzrawxTv2Bp3YwoxW/Pu9KBdyvGfLHESmwVEDcpXa74sREFxBSN7BOjRP1Ni2i4
+wf+d1TcuSPgofNz5c1PZtgF1Qnq/C99RULhTsuHudJDLvKrQcYOiq07JELY9HO9A
+109DkDO5AZZUXSrVBluShrgGEIEGyJHbKSCyU73zS1tM22kfiW5UP9eJXee1zQy+
+P314OAHStmemz1hIlBpF/ZBzScq1Q6AhYo1JBCaq+B8uP/IuofKr9AYesC3EwXBC
+Pf3DUUmIAA7Kgg2beQLiwC6T3+Ty8Q==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIClDCCAhmgAwIBAgIQeThLtBkajXQizP+FMvLkujAKBggqhkjOPQQDAzCBijEL
+MAkGA1UEBhMCVVMxCzAJBgNVBAgTAkZMMRUwEwYDVQQHEwxKYWNrc29udmlsbGUx
+ITAfBgNVBAoTGE5ldHdvcmsgU29sdXRpb25zIEwuTC5DLjE0MDIGA1UEAxMrTmV0
+d29yayBTb2x1dGlvbnMgRUNDIENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xNTEx
+MTgwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGKMQswCQYDVQQGEwJVUzELMAkGA1UE
+CBMCRkwxFTATBgNVBAcTDEphY2tzb252aWxsZTEhMB8GA1UEChMYTmV0d29yayBT
+b2x1dGlvbnMgTC5MLkMuMTQwMgYDVQQDEytOZXR3b3JrIFNvbHV0aW9ucyBFQ0Mg
+Q2VydGlmaWNhdGUgQXV0aG9yaXR5MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEFOED
+C2VvrVnWHu7Jv7RMxcZcLzDHn1LbaGHAaRDiknoaw7+SqIk5ivvnoLtxpKDD33fW
+lDcTX35TXVC640wIx2XiQbDmWfKc+MCyd8EKkSZ38mm2u9BBPCqIGpSRFsY+o0Iw
+QDAdBgNVHQ4EFgQUm3vryP+D8lKYRzAKVvg4vuPrAM4wDgYDVR0PAQH/BAQDAgGG
+MA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwMDaQAwZgIxAKlkWPecuRNmIkl/
+stEC6RP8HPukNJLkygcNt7FSeCg0y/IhVpGGhsiKC68yhFRliQIxAOx5DZ2J8AwY
+6ntXUq0L5tR5W8ub4gZFdRi90Pyn3cfhxyK240EkXSPmqJ8AalAyJQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEIjCCAwqgAwIBAgIUKeuSM0ZPMkH/gxkAqa3E2fjj4n8wDQYJKoZIhvcNAQEL
+BQAwcTELMAkGA1UEBhMCQVUxDDAKBgNVBAoTA0dPVjEMMAoGA1UECxMDRG9EMQww
+CgYDVQQLEwNQS0kxDDAKBgNVBAsTA0NBczEqMCgGA1UEAxMhQXVzdHJhbGlhbiBE
+ZWZlbmNlIFB1YmxpYyBSb290IENBMB4XDTE2MTEyODIyMjUyOFoXDTM2MTEyODIy
+MTM0OFowcTELMAkGA1UEBhMCQVUxDDAKBgNVBAoTA0dPVjEMMAoGA1UECxMDRG9E
+MQwwCgYDVQQLEwNQS0kxDDAKBgNVBAsTA0NBczEqMCgGA1UEAxMhQXVzdHJhbGlh
+biBEZWZlbmNlIFB1YmxpYyBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEA005UBBvQ9JuduCOH4CDHnpixcXoGkC7irUj+kwVs7Ia/KECFs0x5
+70dTmBAeVO59eLgYEwxEUv3QgaqTCCM5vl8Pa90ll/MBQt/UgQDEUL56iS0Zr3NK
+P8w6wL+iqMUV9z58QXSCay53ZuJqpZGIbgYxp68L5lrgrn1ary9H0PL7hHOcRqEe
+hERRxF8u2pACX4HfEQ7S+7s6F3Oj8o1jqk//cnplYoNaKjzyzSwjjc/rIR+/1ANX
+9TcWDF7lVxHCqPr/bDnyPVLmtXnAW+Ky6mMgDA6lKl4S4eavX4t8oK05NTWYX/Gv
+ONAm0029Ynd1Pa9rFIZ7WvYhj9bq4qcOrQIDAQABo4GxMIGuMA8GA1UdEwEB/wQF
+MAMBAf8wSwYDVR0gBEQwQjAGBgRVHSAAMDgGCSokAYJOAQEBBzArMCkGCCsGAQUF
+BwIBFh1odHRwOi8vY3JsLmRlZmVuY2UuZ292LmF1L3BraTAOBgNVHQ8BAf8EBAMC
+AcYwHwYDVR0jBBgwFoAUrJnhAi/oXEtBtzS4HumbgzYNlLQwHQYDVR0OBBYEFKyZ
+4QIv6FxLQbc0uB7pm4M2DZS0MA0GCSqGSIb3DQEBCwUAA4IBAQB4vIFK2DpXu70m
+v+oqKPCIivJQTJBn2kv1uBQIutt/cqiaWbzxHImo9DoDEFQTel3G2ro+D4jVatMb
+ly1iYTpv+QCvcgZz7BDAYR7MXE8ZMkY4wd0/0jcapY6GoPAJzDXWGQJ8zTn89/kf
+55R5Tj23+JdOO0RqzZSwufd+4uP5mX/F06ZQtEn7Fn5OQSzPPsd5QLqBGCYI+cWd
+49jxbxxoP2pbdxdSowbeGcJLbqKV/NUIvyy1aTVR4+PfTxopbYN4PTgkygI/VBDh
+s2Th1Zre8zf2MxC1drOr18kfUzqtVUEcSMk2nof/ddxp0K/ZelfGyrFD/DmB/Nx6
+o5qlmFBU
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEijCCAvKgAwIBAgINAJCud3YAAAAAVx3QbzANBgkqhkiG9w0BAQsFADBcMQsw
+CQYDVQQGEwJTSTEcMBoGA1UEChMTUmVwdWJsaWthIFNsb3ZlbmlqYTEXMBUGA1UE
+YRMOVkFUU0ktMTc2NTk5NTcxFjAUBgNVBAMTDVNJLVRSVVNUIFJvb3QwHhcNMTYw
+NDI1MDczODE3WhcNMzcxMjI1MDgwODE3WjBcMQswCQYDVQQGEwJTSTEcMBoGA1UE
+ChMTUmVwdWJsaWthIFNsb3ZlbmlqYTEXMBUGA1UEYRMOVkFUU0ktMTc2NTk5NTcx
+FjAUBgNVBAMTDVNJLVRSVVNUIFJvb3QwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAw
+ggGKAoIBgQDTy5wtwuAwQ2UxJP9LsDjZqVPXNdHbt0uTtHKN8cuV0lMrdJsymqQv
+PgIG3a9wFaGqzxGHimZ7y8wdcERcj6zK5sNbJ7SNo44Qv25UdAhwiiPoysd0xGaR
+IN1L6KWEdaWYlYKLG+EgJAdGqwxlNkBni3XuqdmRKRvtby1FwtbiYAGx8045Kztv
+P4W+CPZTK3uiyUWhRIGAZppgOhvEvgzMMBB/ETY4SuaboZZTnJTMEcYETKJVS/+A
+4a+MHDX8uZM33/ldPdzrDSdsRMlZZitWb/8EG/f1acNdwxj+vafZZC+in2DZcmw9
+PHXyJSeYLjq4yd1Ndb2rsCJhWAE3KKYgnS5gXPuQvEZDuP5t2MBmIiRrNHgi5bni
+WOlIOO5MvQF7bj5A6tHCCkKTZ8MmLz8HW8+v4x3oOuJl4YSRP/VmAP2qM0ZC7BY+
+0hNlLw4JU/bkKnUUnBkzFppF4dtXz8841Kf37VhD5A6YXMTgMT+UpG9LSqLVSo0m
+qR1kJQg1DecCAwEAAaNLMEkwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwEwYDVR0jBAwwCoAITKPDaF4IAmMwEQYDVR0OBAoECEyjw2heCAJjMA0GCSqG
+SIb3DQEBCwUAA4IBgQAmI4W7XUEZbpKDiu4BiwQ1GX+rj9zWM8H5eZZeI/Xwzt3q
+22E7Wq/dWOlCiUDv+dlnEX9N8e3pEXuxQQ/tpNIWtu/B/Yv2ESss7/wHBkYMzwIL
+7Tvejwm5M6smgFREQmXX56/NUA7KyIihEpwqlTs+VDxIc/Z8eNSb/5P3ReQphGP8
++n4a51zgclewL3gdMMYT/YhfsWWI2l6XE4F7/h7Pe79XMMFwkkOmmfBVn5jFI0K9
+dBwxjhKl2UVqKlrIWM291t0+NQsZfwMczgcPh0WTFaFrvTQc4N711LjlkRxLBbUn
+JrzP0QmYFsbh8VVLOntt3sZntsE3LZ+ojlnHt6bF798W4u3esrfzojakKDI6CpTL
+P17+blntujayk9bGwxn+9Zl460dH5a1Ceuy8e8kuQU5NDwQOikszh9zxdnxaGIyc
+ChLXorPChYeubTFQYjIhoGgWX5Q1dFUp0nGBCErh112qVAGzG3xZrr6sDMq4QGRn
+W53qBgYR1tAwcx7jvCs=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGVjCCBD6gAwIBAgIRAPsfC0IrqEE+V9HuKm5aT7swDQYJKoZIhvcNAQELBQAw
+bjELMAkGA1UEBhMCQ0gxHTAbBgNVBAoTFFN3aXNzIEdvdmVybm1lbnQgUEtJMRkw
+FwYDVQQLExB3d3cucGtpLmFkbWluLmNoMSUwIwYDVQQDExxTd2lzcyBHb3Zlcm5t
+ZW50IFJvb3QgQ0EgSUlJMB4XDTE2MDQxNTA3MDAwMFoXDTQxMDQxNTA2NTk1OVow
+bjELMAkGA1UEBhMCQ0gxHTAbBgNVBAoTFFN3aXNzIEdvdmVybm1lbnQgUEtJMRkw
+FwYDVQQLExB3d3cucGtpLmFkbWluLmNoMSUwIwYDVQQDExxTd2lzcyBHb3Zlcm5t
+ZW50IFJvb3QgQ0EgSUlJMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
+4UOGjk8YlLrTwjlwbV1pUYRZvLvIfy/9F6N4nL3YkuPYeCE+u5pf+7JlUHK2p+yl
+58HFAATjzLMCSvkA229tu5MXRPkjwlY6MB+Beftkv/VUhb87K2+VBAZdaArDj7gr
+ZhK+othalAV9r8ETBqaROj8ZC4WDwJZd84HIE4r1EEugdTpbo0AHvaFmGGWEVHmR
+mtNyhGbVDeY7Wur626FU/QAjWehX6py39I9BC2mxR7CaL2LamhmtoJUwzS6tZ7tt
++TZDt5R5yZAJAGlfl6bTbyXo72KHd9em2U4cX2Fm0LFw1eBiIDbYlkD4XjHeQZlp
+ENag7j2tEy7SlEqNgB3cjEYhVotJW96h2APKzthltLAFPSZpSm2ljHkvpI8SeBDp
+sgkIQ8PGBLszPkc1pVwgIAriNvhjhuQN9D4Ueb5FB7SLCZP19iomob1Ex/NQDQ1h
+mzsR36iD6iIslUQNOUFjTagrbWilS59Ah2o8RQq+cqeIvvA5KlvvWaQg77Tcw9pB
+20GluiJfl6PIY6EkLU4loMMXKMWIQZOWZGY3QwWbFXy2vp77G8hmGLoU77kYz4Rp
+m5+9ggcSbRsZvzB+8ZIOwEwW/9E+b/irsmGaaEPiClTHAaNXjvNEBiLDcKa7pbPM
+ghjYQI696nBBb5RXDL4HdG6Ok3oZj8Zo/BulRbO5hakCAwEAAaOB7jCB6zAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQH646qccsnpbvHMWC+7R/PoDPE5jCBqAYD
+VR0jBIGgMIGdgBQH646qccsnpbvHMWC+7R/PoDPE5qFypHAwbjELMAkGA1UEBhMC
+Q0gxHTAbBgNVBAoTFFN3aXNzIEdvdmVybm1lbnQgUEtJMRkwFwYDVQQLExB3d3cu
+cGtpLmFkbWluLmNoMSUwIwYDVQQDExxTd2lzcyBHb3Zlcm5tZW50IFJvb3QgQ0Eg
+SUlJghEA+x8LQiuoQT5X0e4qblpPuzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcN
+AQELBQADggIBALNPZrze6Yxl/LdTEC78/N2JGhFAcJQxiZV2xtYqzD2no8G4zhJr
+NFDBdSov52Em70s/3o0jnw2YPh871mrOPPHf0Ut3jKhP8lDlKKnBaupWb0e0gium
+J7Il8N0jCj/pPYwl7MO1Tzf6UwrpOJhrKexTNdeGkJr6Y7p2VONQT8rW58Bx0NLn
+6mhUrZPkMvx6cUCHBSi46rjCPI0AXsFOKFblw2y19aqN72cWB9COxfJaGTu7wYuz
+RJ8MpcfL3tNEYKe9G2naDpr/l0WGbfqxZIof7N9RWFJN1uq6BvZTcVve6VX1LBNy
+BkxTlvrKW/Q/HKffUv3LTn2fEECUp6FVunM+dHQw+KPgn6pfH13A30HPAYEh26iu
+szOtRhN3mzswtKTgF4LAirU0FBwFi67gPdrFfKsmCEy9SmDpcOyoWIh1Z/EYl3YN
+bAt9GS0CtYKZd89i+p0SASvZ9bRXsTrr1SnwjNNCpzVIjGKDPgo+Yd2x8wehx3Ow
+ifC2WXujI9g3AzWIq0V3Y0z/cOuOagfRIuAykcsVcVorxYQ+kc3dtJlnjbSqjGUX
+pqycXlaYp/TiQBLVQZe1M/HtF6GlAhDhZLVA2h6t0aburB7HEdsXcXrZmh7GTpv0
+qLOUnwmKf0yb/ggLLKtQ0DeySTUatx4pIXbhm/ChqlhnJAPhGaTRE2rx
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDZDCCAkygAwIBAgILMaXzypDqI6zSnr0wDQYJKoZIhvcNAQELBQAwPjELMAkG
+A1UEBhMCSlAxDjAMBgNVBAoTBUxHUEtJMR8wHQYDVQQDExZBcHBsaWNhdGlvbiBD
+QSBHNCBSb290MB4XDTE3MDIxNTE1MDAwMFoXDTM3MDIxNTE0NTk1OVowPjELMAkG
+A1UEBhMCSlAxDjAMBgNVBAoTBUxHUEtJMR8wHQYDVQQDExZBcHBsaWNhdGlvbiBD
+QSBHNCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr6vH5Yym
+WJ4v1gXJkXcwvt4a1A5jYtHMLbHRhjiNHYVmU5+qQWXgWNLlKb6UqJWTPF9qxZuf
+NOhtwcbTp+VDoBIwwDk0YAyL9Gj1SN/pjhyuSKe7qj14t+JJu8EjBFobkAHFfatK
+AaHCk2rShbO253bra2846yBSMJUI9fks7sjAdbkB7cE3VjBcnX9kwspAILmVhbyl
+B30Mvi6h3cYm6SopbJ8omClR6HYTG+8uCzdaM57AJWeqDy2o1JImOAGn0GIYLiI4
+OHgLulKZoXwmArHixeLezooCRISio+mLiGMxyS84AOnEAk0eIycSSNwRsfDS4g4w
+Ga8DoQezNZQipQIDAQABo2MwYTAdBgNVHQ4EFgQUbtwKNR8gwuih030FTk9MYOWk
+xGcwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU
+btwKNR8gwuih030FTk9MYOWkxGcwDQYJKoZIhvcNAQELBQADggEBAFUz1UC3Gn5P
+3HSDDkS6P71SlciTliPyAbkU68oSdM1hiDSvTV70WYqrHtjjWcEe+DC1QMa7uK/R
+7T9sqnOYguSYNK6SQQ5ZNhq6UBwW9Bc6LBvil2+yr9Ha3hRS34A8x089h566lb14
+vFU8ifYuJtUV5dBAEsWzcT9sZh+j/Eu1TuJu3IAHw/koFHv3XhZqQ6eukQEfT2Wp
+SLPObhoGIaTTMYiIpUkRgmvruZ1g/p/+xff4f6s37q/nWEa6CeRdOadLBNgDAslg
+Kl5VaRELYHiBevRx9Y9Gro8EqJccgIkjY9v+66YXDlm2LrmG619ebN2B56swgSOQ
+J7H3K5A5C7g=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFrjCCA5agAwIBAgIQUJZucr0Q1oxPa8diP5xwODANBgkqhkiG9w0BAQsFADBx
+MQswCQYDVQQGEwJMVDErMCkGA1UEChMiU2thaXRtZW5pbmlvIHNlcnRpZmlrYXZp
+bW8gY2VudHJhczEZMBcGA1UECxMQQ0EgUk9PVCBTZXJ2aWNlczEaMBgGA1UEAxMR
+U1NDIEdETCBDQSBSb290IEEwHhcNMTMwNjA0MTMwMDQ3WhcNMzMwNjA0MTMwMDQ3
+WjBxMQswCQYDVQQGEwJMVDErMCkGA1UEChMiU2thaXRtZW5pbmlvIHNlcnRpZmlr
+YXZpbW8gY2VudHJhczEZMBcGA1UECxMQQ0EgUk9PVCBTZXJ2aWNlczEaMBgGA1UE
+AxMRU1NDIEdETCBDQSBSb290IEEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCfXEr8HGu3GZfZATc+CukYhtMF6qLa3wmCV+5tK42aFj1VPonXyb7hAaOA
+NaNG7OER7ag8leU6UoHKTpgIKg+E3LvppPl5tknCFZ6glegPSPdQ1/mmQ9QHCzBB
+yTYSYrdseAsGPy6znuow/UFjT4QsN84Hpjlke3EVWysB8td9mA0YPtuFmuABUCEk
+uBujY0PTgVtNDIFOOGvOYMXqB+In4uv2w1SayMmz0SsyNwK8bXuekHcjjZMTJjuH
+V6NlTyZYFGpjJZrlYfocV/0NLGkPxgrwJjkXAqPWc4FCw0Ixg4vg+ktOWGExKJI8
+xskQCMkMW0SsY8LXYhnyce4gt0mDGZ5H2lbFHKykOWgXXxEabKqlko+9G8vF4AKA
+VdNwU+WLKv5C6r07XONSAH14PybMEa400TIM+Hug0X0944q8vh4ekj84sl8yXjXE
+fsKSDZ22y1nV6xJq3XIhURGwc+Uy6dbMDt2zOVoi7+T16QZphip8c68YInMsNiXc
+ValSMbOKjhV9sk4Qe1CKAEy6h+JFU3d+TWUCa4yTtmt17e+Wt0iOqOC6uYKyUm0h
+/5K60T6wXLGrGQ4Zc0Yr01JIZTTaBDXSeD7PYzWkU+ZL41CDvfObh7Ih2kihekvs
+suLx1CUFlFMWTCtmJBDI4NecEqSUwgEjk6EApuBuuzni9XpoqQIDAQABo0IwQDAO
+BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoBF+H+SU
+ZFE7Ejl6bN1Jk/n9wFwwDQYJKoZIhvcNAQELBQADggIBAAzxS4zhTxYW0upikrat
+1FKOCxlkSznwmDlzSlLqTs2OZEewMI88Dy3aImXzGVgyPH+DjwoM5VTmqb64rpdW
+5rcNGXy9lyxqKqVWc4LeTpiLPRzE0Csru8UM+E7+La6/qWd/V7Nv7f+L01YM7zCM
+wV6m6VmKPC7cR8/MlF6DrBR2+n68DKMOXBuI7CsbNWiIsfV7xfOzxRq8+++1Xt/w
+OR51aO1EwksicD5ca5TJEKzw/cgvfiPigacbzgy6RTInUEU5rOD+ALQqdQcMZxu7
+ccCC45dWl9Dkd1m5/3xnXIRluwg2qEtOkcJp/h3smhMfdTMsKcbpsGiQI/8jX3/G
+O6coELgfoojNZBYlT+OAt8BKgFfwkNs6sgIyINVryNgUQMnZOBlUOOvoZTtvXNVF
+eq/b2diVnranlc0cCR0CHgHpBJVdhZc4Fb2ox5ne00RCXYaDQSR8UYmqQwknNOjx
+CrWWS7TzoP7yAI1qO3S5Q7lmuc/q6zfO/5vpI/hs0yP96Ongbvj7DVJAiqyAayAQ
+XdCo/ao9ORErL/9SkTqg3IrHdjYRWYW7MIqkSDCcYUOr1K927cC/F5R4NdtINwjU
+jmoA6SLdyvDTEjg8mJ9gTG0/Qv3vjJq3HnF6GknUYMnrj/Tpxr9wVIjSx1c7Vs3X
+btztDXR+5XVBkVeTNH2p9b2H
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNV
+BAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE
+CgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQy
+MDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G
+A1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQD
+DC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvq
+M0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf
+OePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa
+4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9
+HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYR
+aZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcA
+b9ZhCBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQ
+Gp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQV
+PWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMO
+pgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUCYHBBXtSu
+UDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY
+MBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV
+HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa4
+9QaAJadz20ZpqJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBW
+s47LCp1Jjr+kxJG7ZhcFUZh1++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5
+Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAg
+cLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2GguDKBAdRUNf/ktUM
+79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDzOFSz
+/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXt
+ll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm
+Kf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKK
+QbNmC1r7fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQ
+w/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooi
+S9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07
+mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDgDCCAmigAwIBAgIDDN+bMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYTAlNJ
+MRQwEgYDVQQKEwtIYWxjb20gZC5kLjEXMBUGA1UEYRMOVkFUU0ktNDMzNTMxMjYx
+KjAoBgNVBAMTIUhhbGNvbSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0x
+NjA2MTAwNzA3NTBaFw0zNjA2MTAwNzA3NTBaMGgxCzAJBgNVBAYTAlNJMRQwEgYD
+VQQKEwtIYWxjb20gZC5kLjEXMBUGA1UEYRMOVkFUU0ktNDMzNTMxMjYxKjAoBgNV
+BAMTIUhhbGNvbSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAOlSpsYa72O7rYH0kLJajw3VFjO0HBj7y4kq
+MLtlgcTh+wKplAd25dcV5HpkEIDqPNCzoq2uHB/qu4FhmNT5jWmVxEUuAwnKhvpc
+WhEXQDA+8MZjCcnxjUGlVg0FZGlLWKwqKZa7QDMWNEtnbNfxtEal6lmoQ2gPjDgq
+qjz2RAOG+IrbRSErKR4St/qlZUHeBghYcJU+9EzZ6w8pqZGKnq3KEvXlleY42Rqm
+i5xPpkgTEKV5RL1qOyn1FndAy36bXN++i+vnoBlvnxU/J54psfUN/F9HojzdLgsC
++/SN6uwMsfm0Baz5j6k9biwdOZ/QTp9OyGqegANh3M/4bZTLD88CAwEAAaMzMDEw
+DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIQq6mQ8eYKLAwCwYDVR0PBAQDAgEG
+MA0GCSqGSIb3DQEBCwUAA4IBAQBSuXnQ22P+GYH7DPnB5VBZyp2y+1wz0Dioq7Ua
+TlMldSLTSb/Kgc/T4XujkUZ1yhrr2fVdvHuGNf2Bl5yE1yaYIvyxNdCplbZ8/+SX
+tEB+SV1oyOLUOXUnTwORsjFXv4bXbcpxACI30DtYJFCgnIyaiY71KEZs5xbtsIGr
+9EYmr6boGkV3cBaSsntxcdz330lnwDMIDi5TwXerx0qRTBLv5w4J5XUxIK5u/FqK
+gJwQsNuoSszzK9w2NKb3qQtnnZDLPSafdc1MyR0GCnWLUsCB8NEmrMySphScXDwW
+QvuTzAKoE/PargrDuBX0sNDU4BYgT6xQmHgmlB5o65Ry/veL
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQsw
+CQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91
+bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwg
+Um9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRaFw00MjA1MDkwOTU4MzNaMG0xCzAJ
+BgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBGb3Vu
+ZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2JhbCBS
+b290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4ni
+eUqjFqdrVCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4W
+p2OQ0jnUsYd4XxiWD1AbNTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7T
+rYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV
+57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtkAjEA2zQg
+Mgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAkKgAwIBAgIBMTANBgkqhkiG9w0BAQsFADA+MQswCQYDVQQGEwJKUDEO
+MAwGA1UEChMFTEdQS0kxHzAdBgNVBAMTFkFwcGxpY2F0aW9uIENBIEczIFJvb3Qw
+HhcNMTQwNjAzMTUwMDAwWhcNMzQwNjAzMTQ1OTU5WjA+MQswCQYDVQQGEwJKUDEO
+MAwGA1UEChMFTEdQS0kxHzAdBgNVBAMTFkFwcGxpY2F0aW9uIENBIEczIFJvb3Qw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNRT730ZYiXJEvPgoAA8y2
+92xU/Cg31AQY7K2Yya/Tpbnn2b9O5qOZPJluoSAeRhvidVW80uz2iBrsNEVLg53T
+subdB4nBCNn4O4uSZHJdmjvMrTeJx9xgeQjgcKz3K+2fA0kfjj6DqG7iklxU0Xnf
+7Bg6fbhtj9ajJU2tH0CmX9SqTrFwGFmZ8gtUaT55KESI93GXzX8F3MrcdkqQTGtg
+6PomMdi1+Of8bYskarbvQtcjVMUaY4o7x/yqbTyPy2zaILDyvGUcAUwilQ0cIx+s
+1fnOdVvqML1MASQfddRhScMbmWWOCFw5OM0pwzhFzWR5t5tNR+pYMvqm9pLwwbdf
+AgMBAAGjYzBhMB0GA1UdDgQWBBSpNSpIviw37YbbfFWHACa+GC1cLjAOBgNVHQ8B
+Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSpNSpIviw37Ybb
+fFWHACa+GC1cLjANBgkqhkiG9w0BAQsFAAOCAQEAtoK9xUbQcYulkT1+LVr5nIR9
+ByeVHedNyHzs5pPoVhp6MEg7DPpO9Qmyr4itlOz9sq0v5gV0IRuEizgqw+3vRmi1
+3VL6cMJ1T/+jQS48F5RMCSK0jsF/xKas7YNoz2Ve7Hq9xWbu0KN/8lexCMJ5cOty
+f0FZCXl18byxIf6Ds0Q9iaO+sXrYncMf5sRU4Y3l2FDc5FY3e74oAPMsd9ojf2CY
+PQUW8nhprZnDOnRsPpqylO2PqvZTa+fIt+g8jPvHfE8ZXaRmFel/h6DQ1a0gpEYJ
+RazlyGWHuwbf/NdoVkNzogCZMpLCDqAcDpG9lVi8k5+EwqVm52XNKeJi8gWSYA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
+A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
+cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
+MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
+BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
+YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
+ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
+BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
+I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
+CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
+lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
+AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGDDCCA/SgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCQVQx
+DTALBgNVBAgTBFdpZW4xDTALBgNVBAcTBFdpZW4xIzAhBgNVBAoTGmUtY29tbWVy
+Y2UgbW9uaXRvcmluZyBHbWJIMSowKAYDVQQLEyFHTE9CQUxUUlVTVCBDZXJ0aWZp
+Y2F0aW9uIFNlcnZpY2UxGTAXBgNVBAMTEEdMT0JBTFRSVVNUIDIwMTUwHhcNMTUw
+NjExMDAwMDAwWhcNNDAwNjEwMDAwMDAwWjCBlzELMAkGA1UEBhMCQVQxDTALBgNV
+BAgTBFdpZW4xDTALBgNVBAcTBFdpZW4xIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9u
+aXRvcmluZyBHbWJIMSowKAYDVQQLEyFHTE9CQUxUUlVTVCBDZXJ0aWZpY2F0aW9u
+IFNlcnZpY2UxGTAXBgNVBAMTEEdMT0JBTFRSVVNUIDIwMTUwggIgMA0GCSqGSIb3
+DQEBAQUAA4ICDQAwggIIAoICAQDUppeo8vSQEUOttIJGQfEvkW9jos0NINy9DDiK
+ZUoKKzqodKl3oYuO8i+B94QYza3rYraSfeBB5U5UODeC78vg7c+7ysyjS/db/rh8
+pwhty0PETCIUZuOdA7l3IatEayFHI8gg+irLkXYddWz4m+kPJulDL5ogBWgYx46Z
+hS1BB6ZkjljhjZWApE1f9QLYgXnb1effoiL9FKdnFuzZWEzKqd3qGo6pCGRPUSG2
+cqJO/1BxvTtl5L1/UxGu3xA5e132R3AX90ORA3phJV8s/PiJETzsOVQWScQhmnHg
+eYt2HXY9B1m4B7GM3MfNTuH7rUNNP0DvIWIvMUROacdvIsurVEvowvoRaKzIbg7e
+bMUnlglRAk0Btle/MijVCUOW98SItflU/ho6arcstSRk+0p4csP82U/ITiO5KdgN
+oUhBkwJtvxKFm8bFYC3wkfyZ/SCUnnFjq9VJq5DshzmFf42FzAvo20s7DvzCdn1G
+5zkmnt9V3x6E+UE2JmwCWSuO+7zpHyckYgRnhOE/2J0YTpagJe7KKANPAlHP9zU3
+aaS01tbVHhlDJxYfR1HuSglMEVq2Wz1h6DsQvtZG5vQc/bhFvXz6dVrs4VIjDY4f
+hpdTkVybmyjWjuVuJ60gjKfBQamXN4ss6m4YBZf2zgNS8b15NJtAxyOSdPNv7aPp
+WfBVSwIBA6NjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0OBBYEFMuw3T2MPN9iLCtmPJ486RVtcbTXMB8GA1UdIwQYMBaAFMuw3T2MPN9i
+LCtmPJ486RVtcbTXMA0GCSqGSIb3DQEBCwUAA4ICAQCifVUEZu4WFLyCgYclGTli
+9P47H+HAcwBxynWp4nPxxQ1Bo12OwS3ZZVvZieLwjsWgfb3LzEZTH1/tILYCKtYT
+8p19UUpAVXGtnux26kUgjqr6ekOacGd+E96Y6MuN3R+sNNKhte3+uOcWz/jRODCN
+NInSzn2B0h7/URhTNpPcCcsIFrgI11owkIoK+S+1z8TNVHIqxr0B51gLbgZAtAnO
+tI6zmumJkZSselTh++OELIOgT/7r6MH067Ym0zjELa2sRYA0bSE9XYU64nv+VLfd
+6IVUy6TxqylQeNcktaMvnq8RZq4YuP1dKM9A11XgLOtSMWhDZgWXkrvF8SEs/RJk
+MZlDb4udS2D+FF5SsyOo4Zh67hTJoeLMP3YhYv1rDdm0SpXmblt6JMPTxtYfous3
+a06j32Lr6w5KCL/rGIj7RxqtwlHD1Xz3HyuzyEpQDmlYIGIBSlvKY5YmIq726ZxA
+rGcDnZ1pFcLA+F2nJLEnPL8F4quiysmwLX6jwTEgRiFlkt3K3t+TG7xtL1+pFqRX
+hyxymlqCZ9FE4j0JCoGMHhD9xjRo7P93YXZ/Jvfb/BJGEqrA0fh5haICzIuqpK1s
+FMC9/GiuRH0i+QpFXewE5vrjpMXm+bIZw9mMqJN7OoppO1ITPB0zAk6WQJ+5lf2T
+FzPByQv2/b1pEPWtKfvj2g==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAqigAwIBAgIQFJgmZtx8zY9AU2d7uZnshTAKBggqhkjOPQQDAzCBlDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE+MDwGA1UEAxM1TWlj
+cm9zb2Z0IEVDQyBQcm9kdWN0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw
+MTgwHhcNMTgwMjI3MjA0MjA4WhcNNDMwMjI3MjA1MDQ2WjCBlDELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
+BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE+MDwGA1UEAxM1TWljcm9zb2Z0IEVD
+QyBQcm9kdWN0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTgwdjAQBgcq
+hkjOPQIBBgUrgQQAIgNiAATHERYqdh1Wjr65YmXUw8608MMw7I9t1245vMhJq6u4
+40N41YEGXe/HfZ/O1rOQdd4MsJDeI7rI0T5n4BmpG4YxHl80Le4X/RX7fieKMqHq
+yY/JfhjLLzssSHp9pvQBB6yjgbwwgbkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB
+/wQFMAMBAf8wHQYDVR0OBBYEFEPvcIe4nb/siBncxsRrdQ11NDMIMBAGCSsGAQQB
+gjcVAQQDAgEAMGUGA1UdIAReMFwwBgYEVR0gADBSBgwrBgEEAYI3TIN9AQEwQjBA
+BggrBgEFBQcCARY0aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2Nz
+L1JlcG9zaXRvcnkuaHRtADAKBggqhkjOPQQDAwNpADBmAjEAocBJRF0yVSfMPpBu
+JSKdJFubUTXHkUlJKqP5b08czd2c4bVXyZ7CIkWbBhVwHEW/AjEAxdMo63LHPrCs
+Jwl/Yj1geeWS8UUquaUC5GC7/nornGCntZkU8rC+8LsFllZWj8Fo
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAw
+gb4xCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQL
+Ex9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykg
+MjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAw
+BgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc0
+MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1
+c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJ
+bmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3Qg
+Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc0MIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3DumSXbcr3DbVZwbPLqGgZ
+2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV3imz/f3E
+T+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j
+5pds8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAM
+C1rlLAHGVK/XqsEQe9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73T
+DtTUXm6Hnmo9RR3RXRv06QqsYJn7ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNX
+wbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5XxNMhIWNlUpEbsZmOeX7m640A
+2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV7rtNOzK+mndm
+nqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8
+dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwl
+N4y6mACXi0mWHv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNj
+c0kCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9nMA0GCSqGSIb3DQEBCwUAA4ICAQAS
+5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4QjbRaZIxowLByQzTS
+Gwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht7LGr
+hFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/
+B7NTeLUKYvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uI
+AeV8KEsD+UmDfLJ/fOPtjqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbw
+H5Lk6rWS02FREAutp9lfx1/cH6NcjKF+m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+
+b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKWRGhXxNUzzxkvFMSUHHuk
+2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjAJOgc47Ol
+IQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk
+5F6G+TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuY
+n/PIjhs4ViFqUZPTkcpG2om3PVODLAgfi49T3f+sHw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFlTCCA32gAwIBAgILAIZNvw/jXtd9jtgwDQYJKoZIhvcNAQEMBQAwZzELMAkG
+A1UEBhMCSU4xEzARBgNVBAsTCmVtU2lnbiBQS0kxJTAjBgNVBAoTHGVNdWRocmEg
+VGVjaG5vbG9naWVzIExpbWl0ZWQxHDAaBgNVBAMTE2VtU2lnbiBSb290IENBIC0g
+RzIwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4MTgzMDAwWjBnMQswCQYDVQQGEwJJ
+TjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9s
+b2dpZXMgTGltaXRlZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMjCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMNwGIWW2kHfHK+sXTNwxF07K+IV
+ySTuyFM2r1v002wUfcdT+zs5OM5QbMYFFnedXQI6gCFLsjKrcaej48Zt37OyEb3i
+aPs7CsP4kAyTwzKH9aZe6gXYHrJq40/ZVMNcQVI2PcIp40B/SAN2gUZ+ZaUtIOvV
+jEx26/ebNaXRIsthlkOG/caB+QRwDw1tl7338Zlv0M2oTBUy4B3e7dGP5pgXH71M
+jqHPCoNo+xv9f0NTBT+hUDa8h8wUtcGQq9CDeJTpjWcD2bP2AMdVG6oVpMAUeUzo
+cCyglvtFdUMjggxBbw4qhau1HXPG8Ot9hwL7ZMi8tkTzrvUIxxb8G9LF/7kKeCE7
+tGZaVzDTnXuifl3msR4ErHsQ4P7lVu2AIjIAhrAXoedDidb7pMcf7TABdrYUT1Jo
+G/AiK+J9jO6GTjeADD4LMDSBZhHMuBK/PJ/g0kGBt+/C1L+/HURzQhJkMlRnM6Rv
+XoCtfKopSlns5trZmTi971Wjbn88QXP61lGpBCUPwCjs7rpOYvSUJtI+lcbF+37q
+kIqOXYkVT3cupDSpw+H89kFtj5GKY+Xny4LxY+3IvDIRiyd6ky1DPj713DI0yqve
+EpsIr3A0PdwuyUI7CS1jg0NnGFT6Xxyr0xB+VDt83FJYW8v16k2pbaQ4kVxA3aXd
+X9dZYyVR1S59KM75AgMBAAGjQjBAMB0GA1UdDgQWBBTt7E1FYRgo57MjKBEcTaUn
+DV7s9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B
+AQwFAAOCAgEACFC/ilQg8KTCVBxFJW/sazomkS0kNYbEIZg4B3obqwsJ7SX98z8Z
+gfzBpz0nYClwwJjWbFN1R2zY8pCEot6/dgmA8Vbq0GxhwPM5YN/SZquNyRIxO3cU
+dlAcwf+vSezdVCf9wOzvSAF3q0a5ljvbdbNJNpfScQVp7UUd5sBsZk8jXO1KQ/go
+/Vf/GDPnrIFmxpAIGE3sgnO8lAv9FzUaAeuv7HWe47xN9J7+bQzF93yHuIXACPTL
+pQHhg2zMv5C7BAbuDHfbj1Cu294Z832yhSfBcziWGskOvl3es2EcHytbS9c9P+0z
+Mpka7zGC1FHrvLb/FoduH86TeZt0QjZ6pcplNzoaxDnDvzTJ6CC2Eny+qH/APFCu
+VUv5/wjwF+HPm8Pup2ARj9cEp92+0qcerfHacNq5hMeGZdbA/dzdUR/5z5zXdxAk
+nl8mcfGb0eMNSTXQmmB/i4AecNnr72uYjzlaXUGYN7Nrb6XouG0pnh0/BBtWWp0U
+ShIPpWEAqs7RJBj6+1ZUYXZ4ObrCw962DxhN2p19Hxw9LtuUUcLqqTPrFXYvwO4t
+ouj7KJnAkaTUfXGdEaFVtFig1EA30WzJY2X1vAQ7hVnniCjgaXAGqjsU6sklNM9n
+xDx5rFCCCEtj9Kh8UHjGK2QqgP5kwgttjOApQMaCoezMfK4KD7WpOXU=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQG
+EwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNo
+bm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g
+RzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4MTgzMDAwWjBrMQswCQYDVQQGEwJJ
+TjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9s
+b2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMw
+djAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0
+WXTsuwYc58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xyS
+fvalY8L1X44uT6EYGQIrMgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuB
+zhccLikenEhjQjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggq
+hkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+DCBeQyh+KTOgNG3qxrdWB
+CUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7jHvrZQnD
++JbNR6iC8hZVdyR+EhCVBCyj
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFcjCCA1qgAwIBAgIKLwq3aw3LSq8nWDANBgkqhkiG9w0BAQwFADBWMQswCQYD
+VQQGEwJVUzETMBEGA1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJ
+bmMxHDAaBgNVBAMTE2VtU2lnbiBSb290IENBIC0gQzIwHhcNMTgwMjE4MTgzMDAw
+WhcNNDMwMjE4MTgzMDAwWjBWMQswCQYDVQQGEwJVUzETMBEGA1UECxMKZW1TaWdu
+IFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxHDAaBgNVBAMTE2VtU2lnbiBSb290
+IENBIC0gQzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCMfX1lA+Tb
+mh9YInmRgOW97IVx4LUJf2DRZfs837Jrml+py64aVnYgWO4t6C78fgjfS7jX+c4T
+inIzEquWcI+zi0fd4Sc8NDf7JONp27VWX0qwUYqzLDRCt+s7zpLcfx1ky0zVIJj6
+L06uPyK3kIr9+YAsrVj+39utm6e2MBQsRNstSI3fCQYAGvoQTQ8fULauTqNWaYAk
+NYFe6HUHHQPp2u1Ua00odMXiD5oRFxLcDnGAcE1I/9E9mLCdkggXijYUmico7+Xw
+ZeFoPhva6eIJ5p03Lt3Du5W3EcHR0cJmmY1pyeA36JaXKWRNM9IRjYMVNCcp4jhB
+2tIYiZ+LVk8bwQ9/1c23txmv3u97taZlV22NF4ttS1qq3J+MOp0oGULBzpKfRx0q
+GVqbPukQNGAjOLIN8KDNQNzbR1iAl2d8H+MSoicBo4Aid8TjLWcNv48oCWL53ZrF
+BMTDjaIA6frG1t4IpbnHadA7qCJJe2qpJN6n2eQKAUn6UiQDHPsSqNBlcUhQ4Y/0
+Y0mU5rghm2OB9rXQS1Fb1JRCfJMNnJIm5AUB2+2RWzq5Tgz7SbSho8NsZk0UbQnF
+xciqQ9uoVTAsK14Sk9oG8Q3zfsM08cdPoRb0WlIZklR6mKD7L8nH/zfGu8PIJv94
+GGB9RZ9U4A69r3ePmy8MvrzfNxHKtH6svwIDAQABo0IwQDAdBgNVHQ4EFgQUs/eK
+pNYPiABZ6FEXT9V+7IYigZ0wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB
+Af8wDQYJKoZIhvcNAQEMBQADggIBADQlpiWM0cv2nZ0H5jVsBq0x2q62Q0LwqATs
+CFvyub7gxNCytRuoA8stmPOEu/lg8Igxj4FIjoyhIrWUVxyiLU7No4P+WjEUOwUT
+xIpkEOtvGUQ9fiOlcGHtIZDNBlZq7WpktXAxeV55RPPsor26p2FNAMRFfZQh0sLX
+hKgk8iulSSggqx8ezgPye63FaiYEi4c/dzRj3HOCnsZiwZZU02df5YpNFjxSwZvE
+41cjGpsrpWMfQFI2s53RbeXp47lSAxYE4NzjBFMe+EwFuEveBCJBEAH5rvYu3pi2
+orsJ424TqWEQV1tCsCkQz+Yq/Okal7yHAkKDeOXcP7oN4A+TdXc2pdqxuVCnBO0R
+mWz2JpGSSeJjiTk/OPwRsPNWtwG/KXL04o2ta3jiPpJuICVtWDAc9R3auBEgJl5r
+ShRmBdszG0LmzsHuZPCFSYC15RBDCOBsa8bDRJ8pBFU2Wi/CVXCACEuavgoveA4F
+a5bt38o0PWxsBP+MpocCdVtDMqzQhxy9IohKuXWAGresoIvKDg3xFk6rBOrjfVwJ
+elwi/xAisojHPJVQv9W1zVIoHp+EQg/4MQC21NbIX2RoioB+V3hK439b/w7deU8x
+2M8cl1OG0nPfbnARl5GPM7vJgi470jto4SeMg6HMAW3Egb56tQcNLwI9U8mZnNvR
+gUMrkAgL
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQG
+EwJVUzETMBEGA1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMx
+IDAeBgNVBAMTF2VtU2lnbiBFQ0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAw
+MFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln
+biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQDExdlbVNpZ24gRUND
+IFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd6bci
+MK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4Ojavti
+sIGJAnB9SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0O
+BBYEFPtaSNCAIEDyqOkAB2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
+Af8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQC02C8Cif22TGK6Q04ThHK1rt0c
+3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwUZOR8loMRnLDRWmFLpg9J
+0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDFzCCAp6gAwIBAgIQFTh14WR+0bBHtO+vQRKCRTAKBggqhkjOPQQDAzCBjzEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE5MDcGA1UEAxMwTWlj
+cm9zb2Z0IEVDQyBUUyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE4MB4X
+DTE4MDIyNzIwNTEzNFoXDTQzMDIyNzIxMDAxMlowgY8xCzAJBgNVBAYTAlVTMRMw
+EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
+aWNyb3NvZnQgQ29ycG9yYXRpb24xOTA3BgNVBAMTME1pY3Jvc29mdCBFQ0MgVFMg
+Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxODB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABN7Nu3Ag8SUgtJTo17Q7D26H3ausz01AL4Eza1kJGNaHDSYjnLSNlZ12
+n6W5BkLmrTayxLOuejwI1cudOl5FIWwL4yD1m8LdRDPjQrnq8ihCkqr+DAfKihOZ
+O2IA7drzNaOBvDCBuTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAd
+BgNVHQ4EFgQU6EfIQpqwna5vCyg7mBWP47HogLIwEAYJKwYBBAGCNxUBBAMCAQAw
+ZQYDVR0gBF4wXDAGBgRVHSAAMFIGDCsGAQQBgjdMg30BATBCMEAGCCsGAQUFBwIB
+FjRodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y
+eS5odG0AMAoGCCqGSM49BAMDA2cAMGQCMBSGUMAmGuvqoRR3OlvfYzmlM8dQQNVr
+NWsPtN99VrnhpZ14GYKhQ24a11ijVQNC2wIwGJS0HjqNZPoMJxuHE0rStzoAlMby
+5WO/r+P63JPV50aaa4FpPgLfUQ2PKHFBiZEv
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw
+CQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x
+ITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1
+c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx
+OTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI
+SWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI
+b2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+ALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn
+swuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu
+7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8
+1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW
+80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP
+JqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l
+RtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw
+hI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10
+coos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc
+BW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n
+twiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud
+DwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W
+0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe
+uyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q
+lG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB
+aCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE
+sLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT
+MaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe
+qu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh
+VicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8
+h6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9
+EEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK
+yeC2nOnOcXHebD8WpHk=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD
+VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf
+BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3
+YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
+NzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G
+A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0
+d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF
+Q0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG
+SM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN
+FWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w
+DwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw
+CgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh
+DDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD
+VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf
+BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3
+YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
+NzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G
+A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0
+d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF
+Q0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ
+j9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF
+1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G
+A1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3
+AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC
+MGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu
+Sw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICIjCCAamgAwIBAgIQdlP+rhgmQ29p9RzCdxbyXjAKBggqhkjOPQQDAzBTMQsw
+CQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEpMCcGA1UEAxMg
+R2xvYmFsU2lnbiBDb2RlIFNpZ25pbmcgUm9vdCBFNDUwHhcNMjAwMzE4MDAwMDAw
+WhcNNDUwMzE4MDAwMDAwWjBTMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFs
+U2lnbiBudi1zYTEpMCcGA1UEAxMgR2xvYmFsU2lnbiBDb2RlIFNpZ25pbmcgUm9v
+dCBFNDUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR2GW0DtfWEI6syai5h3YQlL+/o
+eSeJg8ODdfO2eGoIbaKtISoCkAbsmkCceoaRuViFyCiaLgv34nap37K9qcPpKRl5
+CLJQ0MLFnQphDONdNwZKXP6EvcCAhPpLVSPg4j6jQjBAMA4GA1UdDwEB/wQEAwIB
+hjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSnn93TVM3b+Gy/JmwO5Ndbb4DM
+QjAKBggqhkjOPQQDAwNnADBkAjBsjFa2xTeuLZAreO2xHkYI0sNKKO94GQiOJDRG
+T4dxYV+pEUpvMqsc0VJ7qjrq5ZoCMFUrdy/O+D+baEra16hLRQ1+smv2bNqxFeK8
+SBl3i1fBXRTXQQDMJlLQILgZT5bnmg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFcjCCA1qgAwIBAgIQdlP+rHVGSJP15ddKSDpO+DANBgkqhkiG9w0BAQwFADBT
+MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEpMCcGA1UE
+AxMgR2xvYmFsU2lnbiBDb2RlIFNpZ25pbmcgUm9vdCBSNDUwHhcNMjAwMzE4MDAw
+MDAwWhcNNDUwMzE4MDAwMDAwWjBTMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xv
+YmFsU2lnbiBudi1zYTEpMCcGA1UEAxMgR2xvYmFsU2lnbiBDb2RlIFNpZ25pbmcg
+Um9vdCBSNDUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2LcUw3Xro
+q5A9A3KwOkuZFmGy5f+lZx03HOV+7JODqoT1o0ObmEWKuGNXXZsAiAQl6fhokkuC
+2EvJSgPzqH9qj4phJ72hRND99T8iwqNPkY2zBbIogpFd+1mIBQuXBsKY+CynMyTu
+UDpBzPCgsHsdTdKoWDiW6d/5G5G7ixAs0sdDHaIJdKGAr3vmMwoMWWuOvPSrWpd7
+f65V+4TwgP6ETNfiur3EdaFvvWEQdESymAfidKv/aNxsJj7pH+XgBIetMNMMjQN8
+VbgWcFwkeCAl62dniKu6TjSYa3AR3jjK1L6hwJzh3x4CAdg74WdDhLbP/HS3L4Sj
+v7oJNz1nbLFFXBlhq0GD9awd63cNRkdzzr+9lZXtnSuIEP76WOinV+Gzz6ha6Qcl
+mxLEnoByPZPcjJTfO0TmJoD80sMD8IwM0kXWLuePmJ7mBO5Cbmd+QhZxYucE+WDG
+ZKG2nIEhTivGbWiUhsaZdHNnMXqR8tSMeW58prt+Rm9NxYUSK8+aIkQIqIU3zgdh
+VwYXEiTAxDFzoZg1V0d+EDpF2S2kUZCYqaAHN8RlGqocaxZ396eX7D8ZMJlvMfvq
+QLLn0sT6ydDwUHZ0WfqNbRcyvvjpfgP054d1mtRKkSyFAxMCK0KA8olqNs/ITKDO
+nvjLja0Wp9Pe1ZsYp8aSOvGCY/EuDiRk3wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
+AYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUHwC/RoAK/Hg5t6W0Q9lWULvO
+ljswDQYJKoZIhvcNAQEMBQADggIBAF4runSXNERfdkgoQIST7gFu6aGz1oAl5nvk
+vAmRPQ/8dq3X1DAgu49g0JHWHPKc73gaK5QyAsEkllJSAtDz0fzymzlumeEfjkNB
+fZoeW8ldmoT8JuaH83RyJq2kG9k9O2pSoDwJHi8ee7MztEXH96yxr5NgrXauuLIV
+eOuDauv/20arJOXuAvqQH1nAL13Wt12kXBC3clP4QU7M+ngaJUrK/oViQ2HDtDeq
+gdL01joPvY1ZfjBH3itr5yFQM1/UZ5vUuGefPCeZA/+FQ45zEsogzehh1bFm3BfW
+OW0P288jN6GCiU4caz/WoM2qB50+Qiaq1wzu+ke/GlJ+0XWB08mKYhdtT4igIaAm
+Pq9t2WIwH+mYKK5ujdWOTHJmk4CNKuNVx2BnkEJWXCJRD7PcTjnuTd3ZHXgQVDtu
+0JdvA7UesiNzxhKymmTQ/JWFJKj/36Gw3JFArt8JM6u53ZK38cyRdDtp62eXG5C/
+58egb3G7V7+3j1rtekBqFs2AhC0v4QLUJJRDsxX8DCsb/XFv/Mu8dRc6XoPSybMv
+G9WcjX9U/n5+5Fajh6ed4VlSlEGPbVu+hpWa/xp23UDSUUpwtB8zYyN3P+wnHlnk
+CIftNIJKDz/+oB3B9WdzRYZ49Kop6SeHxhnbxhMUwzlJh02gl+BlE/Wdd1bp2rNY
+xzrywM2C
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw
+CQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw
+JQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT
+EENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0
+WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT
+LkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX
+BgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE
+KI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm
+Fy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj
+QjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8
+EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J
+UG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn
+nvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFwDCCA6igAwIBAgIQHr9ZULjJgDdMBvfrVU+17TANBgkqhkiG9w0BAQ0FADB6
+MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEu
+MScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHzAdBgNV
+BAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwHhcNMTgwMzE2MTIxMDEzWhcNNDMw
+MzE2MTIxMDEzWjB6MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEg
+U3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQDRLY67tzbqbTeRn06TpwXkKQMlzhyC93yZ
+n0EGze2jusDbCSzBfN8pfktlL5On1AFrAygYo9idBcEq2EXxkd7fO9CAAozPOA/q
+p1x4EaTByIVcJdPTsuclzxFUl6s1wB52HO8AU5853BSlLCIls3Jy/I2z5T4IHhQq
+NwuIPMqw9MjCoa68wb4pZ1Xi/K1ZXP69VyywkI3C7Te2fJmItdUDmj0VDT06qKhF
+8JVOJVkdzZhpu9PMMsmN74H+rX2Ju7pgE8pllWeg8xn2A1bUatMn4qGtg/BKEiJ3
+HAVz4hlxQsDsdUaakFjgao4rpUYwBI4Zshfjvqm6f1bxJAPXsiEodg42MEx51UGa
+mqi4NboMOvJEGyCI98Ul1z3G4z5D3Yf+xOr1Uz5MZf87Sst4WmsXXw3Hw09Omiqi
+7VdNIuJGmj8PkTQkfVXjjJU30xrwCSss0smNtA0Aq2cpKNgB9RkEth2+dv5yXMSF
+ytKAQd8FqKPVhJBPC/PgP5sZ0jeJP/J7UhyM9uH3PAeXjA6iWYEMspA90+NZRu0P
+qafegGtaqge2Gcu8V/OXIXoMsSt0Puvap2ctTMSYnjYJdmZm/Bo/6khUHL4wvYBQ
+v3y1zgD2DGHZ5yQD4OMBgQ692IU0iL2yNqh7XAjlRICMb/gv1SHKHRzQ+8S1h9E6
+Tsd2tTVItQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSM+xx1
+vALTn04uSNn5YFSqxLNP+jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQAD
+ggIBAEii1QALLtA/vBzVtVRJHlpr9OTy4EA34MwUe7nJ+jW1dReTagVphZzNTxl4
+WxmB82M+w85bj/UvXgF2Ez8sALnNllI5SW0ETsXpD4YN4fqzX4IS8TrOZgYkNCvo
+zMrnadyHncI013nR03e4qllY/p0m+jiGPp2Kh2RX5Rc64vmNueMzeMGQ2Ljdt4NR
+5MTMI9UGfOZR0800McD2RrsLrfw9EAUqO0qRJe6M1ISHgCq8CYyqOhNf6DR5UMEQ
+GfnTKB7U0VEwKbOukGfWHwpjscWpxkIxYxeU72nLL/qMFH3EQxiJ2fAyQOaA4kZf
+5ePBAFmo+eggvIksDkc0C+pXwlM2/KfUrzHN/gLldfq5Jwn58/U7yn2fqSLLiMmq
+0Uc9NneoWWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7D
+P78v3DSk+yshzWePS/Tj6tQ/50+6uaWTRRxmHyH6ZF5v4HaUMst19W7l9o/HuKTM
+qJZ9ZPskWkoDbGs4xugDQ5r3V7mzKWmTOPQD8rv7gmsHINFSH5pkAnuYZttcTVoP
+0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZckbxJF0WddCajJFdr60qZf
+E2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkG
+A1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkw
+FwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYx
+MDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9u
+aXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWiD59b
+RatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9Z
+YybNpyrOVPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3
+QWPKzv9pj2gOlTblzLmMCcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPw
+yJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCmfecqQjuCgGOlYx8ZzHyyZqjC0203b+J+
+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKAA1GqtH6qRNdDYfOiaxaJ
+SaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9ORJitHHmkH
+r96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj0
+4KlGDfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9Me
+dKZssCz3AwyIDMvUclOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIw
+q7ejMZdnrY8XD2zHc+0klGvIg5rQmjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2
+nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1UdIwQYMBaAFNwu
+H9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA
+VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJC
+XtzoRlgHNQIw4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd
+6IwPS3BD0IL/qMy/pJTAvoe9iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf
++I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS8cE54+X1+NZK3TTN+2/BT+MAi1bi
+kvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2HcqtbepBEX4tdJP7
+wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxSvTOB
+TI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6C
+MUO+1918oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn
+4rnvyOL2NSl6dPrFf4IFYqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+I
+aFvowdlxfv1k7/9nR4hYJS8+hge9+6jlgqispdNpQ80xiEmEU5LAsTkbOYMBMMTy
+qfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICFjCCAZ2gAwIBAgIQA2mP5xLVGfPO0P23sWQwETAKBggqhkjOPQQDAzBNMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERp
+Z2lDZXJ0IENTIEVDQyBQMzg0IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYw
+MTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIElu
+Yy4xJTAjBgNVBAMTHERpZ2lDZXJ0IENTIEVDQyBQMzg0IFJvb3QgRzUwdjAQBgcq
+hkjOPQIBBgUrgQQAIgNiAAR/FK2Ftpf9AiE1TWDoOJOTmz0FEG2v0/7v+rv7c5nz
+7DISjcdouIveiaKIVHeNuyF+M5VWlgno1YyhBLibbhkAYuhCKKZYN4QZVSZ7Mzdn
+8ppyraGurgBCPBx+uHqeIZyjQjBAMB0GA1UdDgQWBBTwjJhxOThlwjobphdmHcjt
+Zd6SNjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQD
+AwNnADBkAjAjb+EAGSZQ5EYgZYs3p8/rBuHMMskqoewyDXOiHgIcNWEqTmmrOXft
+l4jAfWvqid0CMEPx0VijdT6Gm7ZVEYsX9z3+CmnFf07GdRtalMvqERHGCCKI3tB6
+oqV56OMhp80Tsw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFZDCCA0ygAwIBAgIQBs7hMb5tVcgH98DH+0TmIDANBgkqhkiG9w0BAQwFADBM
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJDAiBgNVBAMT
+G0RpZ2lDZXJ0IENTIFJTQTQwOTYgUm9vdCBHNTAeFw0yMTAxMTUwMDAwMDBaFw00
+NjAxMTQyMzU5NTlaMEwxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg
+SW5jLjEkMCIGA1UEAxMbRGlnaUNlcnQgQ1MgUlNBNDA5NiBSb290IEc1MIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtjNzgNhiA3AULBEcOV58rnyDhh3+
+Ji9MJK2L6oNfqbw9W/wLmEwCRzDs4v7s6DRbZl6/O9cspiX/jFmz3+rafCnZRlBy
+CB1u0RsK3R/NmYn6Dw9zxOGcHXUyzW+X2ipqlbJsyQnQ6gt7fRcGSZnv1t7gyFPU
+rsZ38Ya7Ixy4wN9Z94590e+C5iaLWji1/3XVstlPCfM3iFDaEaSKFBTRUwQAffNq
+RBj+UHAyBxyomg46HcUKH24LJmm3PKJXcCyG+kxulalYQ7msEtb/P+3XQxdrTM6e
+xJCr//oQUJqjkFfW54wQrp8WGs81HX/Xdu2KnDWnKLinXSH8MDfd3ggZTxXG56ba
+kEeO95RTTI5TAr79meXqhtCvAwLTm6qT8asojiAB/0z7zLcpQPWHpBITBR9DbtdR
+UJ84tCDtFwkSj8y5Ga+fzb5pEdOvVRBtF4Z5llLGsgCd5a84sDX0iGuPDgQ9fO6v
+zdNqEErGzYbKIj2hSlz7Dv+I31xip8C5HtmsbH44N/53kyXChYpPtTcGWgaBFPHO
+lJ2ZkeoyWs5nPW4EZq0MTy2jLvee9Xid9wr9fo/jQopVlrzxnzct/J5flf6MGBv8
+jv1LkK/XA2gSY6zik6eiywTlT2TOA/rGFJ/Zi+jM1GKMa+QALBmfGgbGMYFU+1Mk
+mq9Vmbqdda64wt0CAwEAAaNCMEAwHQYDVR0OBBYEFGgBk7HSSkBCaZRGLBxaiKkl
+tEdPMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
+DAUAA4ICAQCS/O64AnkXAlF9IcVJZ6ek8agkOOsMaOpaQmuc9HPBaUotszcFUEKY
+kp4GeSwuBpn2798roM2zkgGDtaDLJ7U8IxqYSaLsLZmlWUOs0rGT1lfXHLyT1sZA
+4bNvGVW3E9flQzOktavL2sExZA101iztw41u67uvGUdhYS3A9AW5b3jcOvdCQGVT
+kb2ZDZOSVKapN1krm8uZxrw99wSE8JQzHQ+CWjnLLkXDKBmjspuYyPwxa2CP9umG
+KLzgPH10XRaJW2kkxxCLxEu7Nk/UWT/DsKSRmfgu0UoBnfWIEu+/WhFqWU9Za1pn
+84+0Ew/A2C89KHKqGX8RfWpbn5XnX7eUT/E+oVr/Lcyd3yd3jzJzHGcKdvP6XLG/
+vB29DCibsscXZwszD8O9Ntz7ukILq+2Ew2LWhBapsQdrqW7uxs/msEQpwvCzYYAq
+i2/SFFwlh1Rk86RMwaH4p2vq/uo6/HnbDo/cxvPJ1Gze6YOhjh0i7Mk6sgB73Dun
+Qhp/3IupET2Op8Agb10JXUNE5o9mzKlbB/Hvm3oOs1ThlP0OLMaT11X9cZg1uAlK
+/8YpKCz2Ui3bFBiSJ+IWfozK1GG+goeR65g3P79fXXc/NKwbOEOraHKZMh46Ghml
+ozhMI9ej58zVKpIXkAtaS70WvfuGauKJmezkoFUYyaMIHxPgMghy0A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFXjCCA0agAwIBAgIQCL+ib5o/M2WirPCmOMQBcDANBgkqhkiG9w0BAQwFADBJ
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xITAfBgNVBAMT
+GERpZ2lDZXJ0IFJTQTQwOTYgUm9vdCBHNTAeFw0yMTAxMTUwMDAwMDBaFw00NjAx
+MTQyMzU5NTlaMEkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5j
+LjEhMB8GA1UEAxMYRGlnaUNlcnQgUlNBNDA5NiBSb290IEc1MIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAqr4NsgZ9JvlH6uQb50JpuJnCue4ksUaQy1kk
+UlQ1piTCX5EZyLZC1vNHZZVk54VlZ6mufABP4HgDUK3zf464EeeBYrGL3/JJJgne
+Dxa82iibociXL5OQ2iAq44TU/6mesC2/tADemx/IoGNTaIVvTYXGqmP5jbI1dmJ0
+A9yTmGgFns2QZd3SejGrJC1tQC6QP2NsLOv6HoBUjXkCkBSztU9O9YgEQ4DDSLMm
+L6xRlTJVJS9BlrBWoQg73JgfcoUsd8qYzDj7jnLJbewF7O1NtzxbFFCF3Zf7WfeQ
+EvQTv4NNgLIVZRGXYOXWXOYEtVDmcTO2IJOpaAA4zknbtFw7ctdFXFS/zTwBIx58
+1vhpLKUACmwySLTecC06ExfBf2TL8zDtoT2WZ/GUtWBsW2lo9YIzCaK22fOFsm6g
+lPDCxH2hLMpz9a7gUpyiZuYDzurf7RjUuWOL9+j/+7Nbj0PFr7d0lFA1Za7WL/GF
+j1OhcPSNMl28lsMewgQEnAQPs11+iSDKXicNiUoSI7T2xN3YH/hoszb4HrzG94S2
+6IpOiDA4wCbYcAoJOjQOa4ISlhwv5p6t2HE1gbGMBm70bmb/S0quvfD+11xfU7sy
+PM1i0RSgKR8Q3qlyT7GtZOWDKo+L6oSV7pglmJqzcTzBp1DyrEJiMcKhkMbu4reK
+qLW2GzsCAwEAAaNCMEAwHQYDVR0OBBYEFGJtt5FPxOqjYmCPoNC+tY8GfGgAMA4G
+A1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4IC
+AQBh6PsnbdbiuLMJr6rwsYJM/j0XiU0tFZ377tC7hOyEddtDE96Mn8cp74d0yxNw
+gVYAdPyu9Nk63iIIUaWgXIJmtntMqdqPq6wcQZZm1p3eVua/TrGyXl/Aw27UwoSQ
+9X2xuhbRKYrInenP0McZOz/P7vfhM65CyJjACJ7zWvPf1Cs7jqgoVhnHTnc8JVTc
+uEhI0fknaj7sE6+yBYn9VV/zfY4NnAldLIp+hc744b8RPTKMWtd+PfQzWM+iBZij
+s/vOib/9whbdbtyISQ0LoAP/50XpBMHp/aqddfi4H4eD2es501qny5isE4kA/G+V
+TuF9EUZt9jhGoxOgLAH1Ys+/HFCRJ3Rdt+xHfNDRdct77tFNIwrDYKV3LYDaZw+O
+a3YH8KYP6oSuHnm/CIraCfP07rU289R6Q7qUNeH6wTsblpmkV2PrtaiC9634d9d2
+hvN2U1Zb/CZChM6fg5GRr/S+cBWApdjoabHYkVS4GbJi+aL6Ve0Ev7lEhuTP8ZsA
+vxEPvrV0JFH/dzRj7EgjDugR63dt2sqCkb6khJNM2qH+zAaE6CHoVLrm0x1jPcJa
+/ObJg55yZKmGWQCMwvcTg7bQpDHGrJGOe6QiVhPGdccjvItb/EY9/l1SKa+v6MnD
+dkvoq0cC8poN0yyIgAeGwGMPAkyOBFN2uVhCb3wpcF2/Jw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICETCCAZegAwIBAgIQDfPZN2WjecWVZuqS4iRPNDAKBggqhkjOPQQDAzBKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xIjAgBgNVBAMTGURp
+Z2lDZXJ0IEVDQyBQMzg0IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0
+MjM1OTU5WjBKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4x
+IjAgBgNVBAMTGURpZ2lDZXJ0IEVDQyBQMzg0IFJvb3QgRzUwdjAQBgcqhkjOPQIB
+BgUrgQQAIgNiAAT8WR/OmWx/mw62KWNvxoXzCtPWm65XFUwO7V3jCX5tKqOGqrp4
+oKdxvUT6CMBKBtZv3SxKOHTl0L3/ev/lOU69vRceH0Ot1bwn2Eu/dowwMqT7+VPl
+2Ko4U12ooDegZwqjQjBAMB0GA1UdDgQWBBSSlvfmutURuvkiLnt+WtnwJeUFGzAO
+BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBl
+AjEA/cBN8aSn26cMJhH0Sb0HOGMrRGIGeQjHw9TPmz6rOieqkMf9WaK4MlLbyo4X
+CwqQAjBdGuxRidRk3PnlHji9Wy7j5UTkOxh61/CVQI/y68/0+dBlokHysOZ8wTYs
+j1453Tc=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNV
+BAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRk
+LjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJv
+b3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZaFw00MjA4MjIxMjA3MDZaMHExCzAJ
+BgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMg
+THRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25v
+IFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtv
+xie+RJCxs1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+H
+Wyx7xf58etqjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBSHERUI0arBeAyxr87GyZDvvzAEwDAfBgNVHSMEGDAWgBSHERUI0arB
+eAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEAtVfd14pVCzbhhkT61Nlo
+jbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxOsvxyqltZ
++efcMQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFtjCCA56gAwIBAgIQFcKuKk2ZmmOM07oTGXYI9TANBgkqhkiG9w0BAQsFADB1
+MQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
+c2VhcmNoIEluc3RpdHV0aW9ucyBDQTEtMCsGA1UEAwwkSEFSSUNBIENvZGUgU2ln
+bmluZyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTk1NFoXDTQ1MDIxMzEw
+NTk1M1owdTELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj
+IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExLTArBgNVBAMMJEhBUklDQSBD
+b2RlIFNpZ25pbmcgUlNBIFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAIpq7qoKI1UMiwZC45VbVHhfxY4GLHw8Mb6vDamh7EogWAWd
+4miyu+tffyozufJVnG+qpB7tEL6DKRE25p4/+m17UeHVd6W9y2kOOyIglAwxZUAN
+Ca8QNXqb6nkIRKSLZ6krTcHn0Nen9rU6jdmjqXm4pGVcvPM+95+Z9rjDZWgtq4Mu
+3YWZBKn10VzVUUIBuZ9BtUsisgD0y2cQ72nEEK36lAZ2UBJXgq7FFK08fbud8XPh
+fPCucd5b9xLd94Dx3D7xYLrJGZdvdXSFTP05Q8NkbjSsE8EcZbZSQvFG6y/6XabP
+Dkmd93R8eA0GOiwS++JLJuRviyGBM0I5E+hCq1tV1Bu7N7YSkffzfbzS/+yxw9Wg
+zLIrx49dfkxSQkj7j/1akHMQ1alyVI1J2zhSqkZIDi/6ACzMcww2SyTOE2ympKSj
+1nyb6TgLxiTbTaxnIUlbQTdk5mBrH+0qL2AZMB7YPJwZQ4ffwAr05MpgiHrWo7nk
+JS554v7Byzy3989OWEz7w62rfarKiPsOOA0fnlw567gHxFAiTfiFf27sjPq2cU3e
+fZZpxN0+Ht4mkAosTRWVqaI+3D0Od3yNQShPuINRvj63j5A6cDGJWvqTU/xgyY11
+kO5aLx2EnwCp5sOGI6Ie3RLjoUZgG2e/UBUiknxKtIyPbpyVwizcOzogtryLAgMB
+AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFLRkFkjo/FpLMymJ65lA
+uSC09mEaMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAK6xZi+Y5
+RNz7rUqI4GT/q8Py0s5wLwPlb7LE9TbWU2uHqx2LmQfIMI5Hcv2huHXWF6EWvWRz
+kTBXrX39BUCGk9FJlrIL1HxkE4vTIUk4u/vozD4x8a57TCrfggajjgWEnH9wzsC7
+RRffXWUM5FBIB0SLpC9W2sZ69mCNpDjxnYcWMLLwX3pCVSBxz8zuALESR79CueSz
+tR0ZhLmYbeBptBVBteJQSMcf6pq3eZHd1dVTGfyuGGxp261ZKJtkmKc8x1WO0TAA
+z9QynmKxwyruNSLGu/B8u4O4AIn13BqX2TiaKVNhGaan9DtH/d1nlQ+OpGYsgpq3
+LXHm3674+GjBuw/qUKBFl7calRJvyLO2BWjaah4ONYWErHQMirT0dZ8ir7BUu7ae
+IvnZ69WKDcfc+JgxX576xpf0QRB104G2MV963YiFCK9wRwI3e+JK7F3y3SkSRMiK
+qt3SVXgXda9xaQ13cEqwH39C28dx3FjWGL1QxblyBMdne3xTYMpJGBW8QHOuK6gr
+rG8RRDnsgkh+Ecr71j+2wLm4BpN1vZMndxcNXKWe6sFbAC0MqDVgx+JvNRs9drXn
+rd10I0+GskfvyC/QhXw5ljehKykCvT6Hz6j2HXUyzzjjc7HuEIG1KrGIBlEeWjpI
+UfM2WWLfQmZZULdYvvV2QJoSFuYOqtdsoNU=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICZjCCAe2gAwIBAgIQTIpjHaljjwWi+3YU/1uizTAKBggqhkjOPQQDAzB1MQsw
+CQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh
+cmNoIEluc3RpdHV0aW9ucyBDQTEtMCsGA1UEAwwkSEFSSUNBIENvZGUgU2lnbmlu
+ZyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDQzNloXDTQ1MDIxMzExMDQz
+NVowdTELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFu
+ZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExLTArBgNVBAMMJEhBUklDQSBDb2Rl
+IFNpZ25pbmcgRUNDIFJvb3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IA
+BEOfvFxCakPhrEu4Dl+ABuMFd4t/C3nXYaCQv/JTKKNYupTAZmocWdqAWIEATLzJ
+eZgQDMcdC+OT3IU5aNm/p0PSMcyCgie6iNHSLVY39zrabjnccRBl7jgLh3oDujBf
+ZKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUanHBc2qTQqaXcl67kF+C
+kg8r1uswDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMB6l1QtElRDk
+Z3xOhV65RUkCc7CyHLOnItEAYUAPs4c3Fo0A7baLVSUGlJDc1+d1nwIwf3Rr8Urf
+8PeEe/LFeTADSPIeICJXZFRXNIB3tz8jT7T1gJjCwVZboOfWoY/1DG8d
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFzDCCA7SgAwIBAgIQVJjS0dRbGZVIE3nIEcCHmTANBgkqhkiG9w0BAQwFADB3
+MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMUgw
+RgYDVQQDEz9NaWNyb3NvZnQgSWRlbnRpdHkgVmVyaWZpY2F0aW9uIFJvb3QgQ2Vy
+dGlmaWNhdGUgQXV0aG9yaXR5IDIwMjAwHhcNMjAwNDE2MTgzNjE2WhcNNDUwNDE2
+MTg0NDQwWjB3MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
+cmF0aW9uMUgwRgYDVQQDEz9NaWNyb3NvZnQgSWRlbnRpdHkgVmVyaWZpY2F0aW9u
+IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMjAwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCzkSoHgwZn/Z6d4MfAt6TmQgR/D6bbX/vVWtdFoPt3
+C/CA86ZtWk15U9ighoRXRSDHolT7x6K/isduNfOiFcQvTuNKhZZJDf++mdgU9rwn
+B+5Cmyv1C5IG5P1pE2WokXLymITrgz0O5NdxEkghyw3t9kdJt5v5yccXtoRP/7is
+mtdzZ0mF44a9N0DQJYbU3rXCbWJq1al4vC1vSfnlbBQU/RTH02UWN97LbrxeKY39
+YpsVLNYF5rmJMjOjYsfX1lJnCMQu9FYrnguHzOyntKaq6wXNGVelOgsEJxyRZ54t
+Yi0vHr7awCDLBBnKM/uJvpjicqByNb554ZyDb+RtF2+Q8z0AhnU4jtDgSZq729P4
+MMrVV4hoTXLTv21/cdj9vQ2ukmRIt1tveSa1zZuVIYTR7w8yPXtXjPNFB0x84F4Y
+DjV2i22eyzZ0qwX44HNdMlaUZ5clCsY1PZSX58FEi4D9wfj0dBnlMPYG+yFXPgYc
+i2sVhidJe4KTylnodUfoPzj0x1N5oLa04lxR771fOMET5ngMlVouxUBZKMwPJMDs
+ugl3I5k4prYc2se6ILbXN9h/N68I4ztx225zG32ZcrDkhjNZdLUWAHtQbcaGE9r9
+xDmCPSQAmmDaupTABVEsNKxQmROHu7MFgLJNMAJcuCaDXbRjc++uI5VPYCi+N9Vb
+pQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
+HQ4EFgQUyH7SaoUqG8oZmAQHJ89QEE9oqKIwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
+KoZIhvcNAQEMBQADggIBAK9q3eYZ5y2UQxlOy+lQlWSlA5ECi+I2gDsVolLCFhm2
+alpddEMw9Jv/YHQJsSEekBZtxSSPXGaIY/RPzH3yEkxAEIsBn9qpyK7ylRvPnQXr
+ST50oGhb5VYsZRyCflPaVtlGF3mSRcQQNghSKRfLL6byftRpJIoej7BzDcwcSquy
+qu2nkWMBZCKoMrh+MiizZ3MtkbTcMQEL90cKpvHXSu1WYMQsCKN7QLC8dCdSh9a+
+iN03ioluZ4gd9cldoP62qzqA1xqXPBc2IkEerE3Vg+Y8OL1PMOlUqdO2BMMydmG7
+sBjFKxizwIDVt5WwXlFNIvzsWKro2JS0pS7tkt7nGHwhV91VY/e/bc0f0qZ3KHDH
+4ls6WwjSW07IAJaz4YM2r4YKZVx09ursemp0oPBL7u+Uo6xQ8oft1zowg8n7fVe+
+5eP4QcrlZK6zo+xY7IWazO+56vNWGLlcc5qvxXcXg1nbNxoYclSlQdK2I3WjQ5rl
+d3yWebdBjb/s3ICgn9F3dVhfNRPgJRpnC33OJfoHCuRhIdjUHOUHxjaZ9JbQxhX+
+Ts3Xroud2xb9BMaSvdSI5qmjqrv3ZDg7X8wM0DW+dBkDpsWqTKJhNoI+HfMrvJdd
+20t4Oy31O+9gI+j17AsjNpWvmGa/U9N7uGlKKpZmacSUxvRfbqyYeIiABlyisu2i
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFojCCA4qgAwIBAgIUf/Go+fQ66IduLcb/XkM9su4wpkMwDQYJKoZIhvcNAQEN
+BQAwaTELMAkGA1UEBhMCVVMxFjAUBgNVBAoMDUVudHJ1c3QsIEluYy4xQjBABgNV
+BAMMOUVudHJ1c3QgQ29kZSBTaWduaW5nIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkgLSBDU0JSMTAeFw0yMTA1MDcxMzI2MzZaFw00MDEyMzAxMzI2MzZaMGkx
+CzAJBgNVBAYTAlVTMRYwFAYDVQQKDA1FbnRydXN0LCBJbmMuMUIwQAYDVQQDDDlF
+bnRydXN0IENvZGUgU2lnbmluZyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+IC0gQ1NCUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCngY/3FEW2
+YkPy2K7TJV5IT1G/xX2fUBw10dZ+YSqUGW0nRqSmGl33VFFqgCLGqGZ1TVSDyV5o
+G6v2W2Swra0gvVTvRmttAudFrnX2joq5Mi6LuHccUk15iF+lOhjJUCyXJy2/2gB9
+Y3/vMuxGh2Pbmp/DWiE2e/mb1cqgbnIs/OHxnnBNCFYVb5Cr+0i6udfBgniFZS5/
+tcnA4hS3NxFBBuKK4Kj25X62eAUBw2DtTwdBLgoTSeOQm3/dvfqsv2RR0VybtPVc
+51z/O5uloBrXfQmywrf/bhy8yH3m6Sv8crMU6UpVEoScRCV1HfYq8E+lID1oJeth
+l3wP5bY9867DwRG8G47M4EcwXkIAhnHjWKwGymUfe5SmS1dnDH5erXhnW1XjXuvH
+2OxMbobL89z4n4eqclgSD32m+PhCOTs8LOQyTUmM4OEAwjignPqEPkHcblauxhpb
+9GdoBQHNG7+uh7ydU/Yu6LZr5JnexU+HWKjSZR7IH9Vybu5ZHFc7CXKd18q3kMbN
+e0WSkUIDTH0/yvKquMIOhvMQn0YupGaGaFpoGHApOBGAYGuKQ6NzbOOzazf/5p1n
+AZKG3y9I0ftQYNVc/iHTAUJj/u9wtBfAj6ju08FLXxLq/f0uDodEYOOp9MIYo+P9
+zgyEIg3zp3jak/PbOM+5LzPG/wc8Xr5F0wIDAQABo0IwQDAdBgNVHQ4EFgQUgrrW
+PZfOn89x6JI3r/2ztWk1V88wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AYYwDQYJKoZIhvcNAQENBQADggIBABLvOKGI4aGj1mXcR5zzvNzPrEuMPBq+K/T3
+0GcXaIZNcKjyzdAxAld9qQyKO1c5nvBu9yQiBWfRwZbBvtHw+FZnC96614ibjddr
+CHb1WJHZtcNAUxqk8YXNPwBOP06TO3i50gdSZAyGaW3oVGVWF+gAU4SK89v7s84L
+VWKPzUxJBjh/UsPzHNc99zPKMq3Bqa9v6xHL7qxRv7AmmnpOI7RK9mm0QmnWoI22
+jEdKOyA3t0EH7y8g2GYcaZeobDB8d0Nea74mmIMPOtbHcCoWRi0lVIZjZVdC9yNB
+6VBqB0POTrXpH2jY2NYJSqjosvyQZ5LkkCbzR/rWIPuJgOJEczn3ioYzC/iqqedN
+7Nxv1c8xTauOH5BA1nxcgg+uF1Jx6aznTTjtKth2eYetF6NMq7dCV78GrOXQTTDp
+VU/jRcrz4GohNI3HnxyjY0iS0pYHvqVHPsIqmTinjtohfFFt3Ms9B+mpvUnUXTVf
+W4wEUeqaWJC6G69oeLEWD5QpO4+bKo/JIPBxQkxcTasxjKvpfyZoaaClFg2BxNEF
+DMOHZuUHY6obTv+yB0FPpSJGUKxmAIdSbDyyO5yXoUa0W97PwmpZVQeMo6TRdzVn
+RgQv2Ti5Rq+6jhtyJgIvdlTvg8IvLHdwzHcQkqoDrcrM4E/pg0blszwZb3p5h7Y4
+mr1CzqRi
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF8zCCA9ugAwIBAgIUDU3FzRYilZYIfrgLfxUGNPt5EDQwDQYJKoZIhvcNAQEL
+BQAwgYAxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUt
+VHVncmEgRUJHIEEuUy4xHTAbBgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYw
+JAYDVQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENBIFJTQSB2MzAeFw0yMDAzMTgw
+OTA3MTdaFw00NTAzMTIwOTA3MTdaMIGAMQswCQYDVQQGEwJUUjEPMA0GA1UEBxMG
+QW5rYXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1
+Z3JhIFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBD
+QSBSU0EgdjMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCiZvCJt3J7
+7gnJY9LTQ91ew6aEOErxjYG7FL1H6EAX8z3DeEVypi6Q3po61CBxyryfHUuXCscx
+uj7X/iWpKo429NEvx7epXTPcMHD4QGxLsqYxYdE0PD0xesevxKenhOGXpOhL9hd8
+7jwH7eKKV9y2+/hDJVDqJ4GohryPUkqWOmAalrv9c/SF/YP9f4RtNGx/ardLAQO/
+rWm31zLZ9Vdq6YaCPqVmMbMWPcLzJmAy01IesGykNz709a/r4d+ABs8qQedmCeFL
+l+d3vSFtKbZnwy1+7dZ5ZdHPOrbRsV5WYVB6Ws5OUDGAA5hH5+QYfERaxqSzO8bG
+wzrwbMOLyKSRBfP12baqBqG3q+Sx6iEUXIOk/P+2UNOMEiaZdnDpwA+mdPy70Bt4
+znKS4iicvObpCdg604nmvi533wEKb5b25Y08TVJ2Glbhc34XrD2tbKNSEhhw5oBO
+M/J+JjKsBY04pOZ2PJ8QaQ5tndLBeSBrW88zjdGUdjXnXVXHt6woq0bM5zshtQoK
+5EpZ3IE1S0SVEgpnpaH/WwAH0sDM+T/8nzPyAPiMbIedBi3x7+PmBvrFZhNb/FAH
+nnGGstpvdDDPk1Po3CLW3iAfYY2jLqN4MpBs3KwytQXk9TwzDdbgh3cXTJ2w2Amo
+DVf3RIXwyAS+XF1a4xeOVGNpf0l0ZAWMowIDAQABo2MwYTAPBgNVHRMBAf8EBTAD
+AQH/MB8GA1UdIwQYMBaAFLK0ruYt9ybVqnUtdkvAG1Mh0EjvMB0GA1UdDgQWBBSy
+tK7mLfcm1ap1LXZLwBtTIdBI7zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEL
+BQADggIBAImocn+M684uGMQQgC0QDP/7FM0E4BQ8Tpr7nym/Ip5XuYJzEmMmtcyQ
+6dIqKe6cLcwsmb5FJ+Sxce3kOJUxQfJ9emN438o2Fi+CiJ+8EUdPdk3ILY7r3y18
+Tjvarvbj2l0Upq7ohUSdBm6O++96SmotKygY/r+QLHUWnw/qln0F7psTpURs+APQ
+3SPh/QMSEgj0GDSz4DcLdxEBSL9htLX4GdnLTeqjjO/98Aa1bZL0SmFQhO3sSdPk
+vmjmLuMxC1QLGpLWgti2omU8ZgT5Vdps+9u1FGZNlIM7zR6mK7L+d0CGq+ffCsn9
+9t2HVhjYsCxVYJb6CH5SkPVLpi6HfMsg2wY+oF0Dd32iPBMbKaITVaA9FCKvb7jQ
+mhty3QUBjYZgv6Rn7rWlDdF/5horYmbDB7rnoEgcOMPpRfunf/ztAmgayncSd6YA
+VSgU7NbHEqIbZULpkejLPoeJVF3Zr52XnGnnCv8PWniLYypMfUeUP95L6VPQMPHF
+9p5J3zugkaOj/s1YzOrfr28oO6Bpm4/srK4rVJ2bBLFHIK+WEj5jlB0E5y67hscM
+moi/dkfv97ALl2bSRM9gUgfh1SxKOidhd8rXj+eHDjD/DLsE4mHDosiXYY60MGo8
+bcIHX0pzLz/5FooBZu+6kcpSV3uu1OYP3Qt6f4ueJiDPO++BcYNZ
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICpTCCAiqgAwIBAgIUJkYZdzHhT28oNt45UYbm1JeIIsEwCgYIKoZIzj0EAwMw
+gYAxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHEwZBbmthcmExGTAXBgNVBAoTEEUtVHVn
+cmEgRUJHIEEuUy4xHTAbBgNVBAsTFEUtVHVncmEgVHJ1c3QgQ2VudGVyMSYwJAYD
+VQQDEx1FLVR1Z3JhIEdsb2JhbCBSb290IENBIEVDQyB2MzAeFw0yMDAzMTgwOTQ2
+NThaFw00NTAzMTIwOTQ2NThaMIGAMQswCQYDVQQGEwJUUjEPMA0GA1UEBxMGQW5r
+YXJhMRkwFwYDVQQKExBFLVR1Z3JhIEVCRyBBLlMuMR0wGwYDVQQLExRFLVR1Z3Jh
+IFRydXN0IENlbnRlcjEmMCQGA1UEAxMdRS1UdWdyYSBHbG9iYWwgUm9vdCBDQSBF
+Q0MgdjMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASOmCm/xxAeJ9urA8woLNheSBkQ
+KczLWYHMjLiSF4mDKpL2w6QdTGLVn9agRtwcvHbB40fQWxPa56WzZkjnIZpKT4YK
+fWzqTTKACrJ6CZtpS5iB4i7sAnCWH/31Rs7K3IKjYzBhMA8GA1UdEwEB/wQFMAMB
+Af8wHwYDVR0jBBgwFoAU/4Ixcj75xGZsrTie0bBRiKWQzPUwHQYDVR0OBBYEFP+C
+MXI++cRmbK04ntGwUYilkMz1MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNp
+ADBmAjEA5gVYaWHlLcoNy/EZCL3W/VGSGn5jVASQkZo1kTmZ+gepZpO6yGjUij/6
+7W4WAie3AjEA3VoXK3YdZUKWpqxdinlW2Iob35reX8dQj7FbcQwm32pAAOwzkSFx
+vmjkI6TZraE3
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFmzCCA4OgAwIBAgIQEJfEnIwlQyi7pui5m6tPoTANBgkqhkiG9w0BAQsFADBX
+MQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMS4wLAYDVQQD
+DCVTU0wuY29tIENvZGUgU2lnbmluZyBSU0EgUm9vdCBDQSAyMDIyMB4XDTIyMDgy
+NTE2MzIwOFoXDTQ2MDgxOTE2MzIwN1owVzELMAkGA1UEBhMCVVMxGDAWBgNVBAoM
+D1NTTCBDb3Jwb3JhdGlvbjEuMCwGA1UEAwwlU1NMLmNvbSBDb2RlIFNpZ25pbmcg
+UlNBIFJvb3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AIx1IMiM3E6RUQa1W+9Fu9n+YOtKk4fs/5ePYJOecWFA6u9Ly5JY2GsW3N4tiPLz
+0wSWwCVnIeUd259SgfYAK2aQ8aweqE9hJN12LwPHNcg2rIFTYCLAUZKZ7+gmLplU
+zQmPX1w88KvnO7OnqwbGMZe+TO30BoExgktQELWgEXncWMvA5R6zwW9IXK2XCrMe
+rC5X2L2+OFBE4zP918G1v6JO+3i0OziYKOlWLVSAi2t+HeOVhqeeF1RGW17/n+Zr
+NYpRpaZ7XAoiDcLXgy/aPD3yih79Hj6h2BxPbghSbk+sH8n+n5lNu1JUsZKDW0AT
+7xS1M5E8gqSr9apIaum4+4BABvzlHn4/vAqrJuLFqwcE1014tevaa1NbU4qm8tde
+USJNH8yqi7rADoLZFLrZ8i33JbjLqUPSTEQeFnXMteRwHymBVTSyPv7/0XgaQJIn
+KmgltdKe77z4FEtvUiMWaxCJ1N+63MwYWXGp5svYkHG9IPSkaiZJlZ1GGEUWiR8V
+XahDsGCXntc22jqyb0tyTpl21zA396adu9tdpu58GOxC+RXoDrjbbEJrEF1EDNbU
+zoKM7yswi3HhCPJBkWPj/uDAqKWNmQBBYs5CRqGdyuWanFHbYHpEVQ4qKnCkmf8q
+fmC0HZZXujv827/GMYCqOgAZL4gfSaTrd0D3TIPugpEvAgMBAAGjYzBhMA8GA1Ud
+EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUx/bIC2LtFAyjF7aquR7R4INWoV0wHQYD
+VR0OBBYEFMf2yAti7RQMoxe2qrke0eCDVqFdMA4GA1UdDwEB/wQEAwIBhjANBgkq
+hkiG9w0BAQsFAAOCAgEAYlDeMj/rNjV4jYl3SA8Po10HqLr2Uj82Us61wHlM610r
++BKsQ9vne4wpKp9rOtN89RV3lzv9If3zyFzJPgWUr3ur6I3irw3AoBvfrwu6qrRF
+VYHIYZlhuLCa6FnMCRPZp1YHhu7toOyNAWWamcwjosCRHV0G3Q2n+jzExFkixps6
+wB1pPSy2sR6Kvj2CD2sxcmBXkAtUit5VCh51SQBstkoz70bY1svE8XxsCZbpqeEY
+/a//tM9nb38HpUiNBRCWOZB5Wpa34+Y3ODKxxjEBJHQCxMsLz7p2vlyKIMPpdGfr
+bRKcOT3gitUrSyTjeYxInJGr14IhOL/Es8EH7pA9rfqivilbUjGqbLMcdfPmoNiM
+A5aIuvjKUTNhCx3Va5wTGS4Wz88Nh0uXxAfZC6uYkeq6B4OYkkAKIM24a5r3gP47
+yeL5Q8go502XF8B38zDqJoQb1VO8MIVfae48tAnosZukOIK668BqjG0rKDB45DKr
+txvhUiQAkedLGtuhiAxu6l0cR5mNcU293t5AmQSzQOHDi6rEkhiXe/zMg4A82iny
+f87EaQCbYX1tltYVgoz1gyoc91N2ciXwKYDEMmRTD09U9FcN1gvc/nKItF9L2R4/
+A4YvORA2pzHFJgeVi0hx8assBurSHE6VjecX6q2xRkXTNv3LxGFvCSJEMiena2g=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICSzCCAdKgAwIBAgIQbo7kWxBMyQx+tNiIj+XsZDAKBggqhkjOPQQDAzBXMQsw
+CQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMS4wLAYDVQQDDCVT
+U0wuY29tIENvZGUgU2lnbmluZyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2
+MzEzNVoXDTQ2MDgxOTE2MzEzNFowVzELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NT
+TCBDb3Jwb3JhdGlvbjEuMCwGA1UEAwwlU1NMLmNvbSBDb2RlIFNpZ25pbmcgRUND
+IFJvb3QgQ0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABHbIrNTWlZJ8FzLl
+y2tB+Sm7seuidrU22GxLjeU+SlcmJsefO19GZidRwCxjHHTdrDnTbz0OlL6+KzCS
+zqJCVg1Q1KQscfQnYduggT/VTVYWtcwcN8szNBFoxzx7DemUzaNjMGEwDwYDVR0T
+AQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRYXhbDLbPm6qNJs6W+1t6ueZVrjTAdBgNV
+HQ4EFgQUWF4Wwy2z5uqjSbOlvtbernmVa40wDgYDVR0PAQH/BAQDAgGGMAoGCCqG
+SM49BAMDA2cAMGQCMFOMczFOgFy3njsPCFgTvtlA9vG/ffeZoOvMgAANqnA27TYj
+e0G4FBVWdtOW4xWFZAIwJOT2+L0Tbjq3P9y/zXjfJoBXEq9oZ0//8iuxoqGZtMOT
+G456y3y/FI7r6rj+4QNf
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFeDCCA2CgAwIBAgIQSyw7AQGLrSq8jHtbPu2QVzANBgkqhkiG9w0BAQwFADBW
+MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS0wKwYDVQQD
+EyRTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcgUm9vdCBSNDYwHhcNMjEwMzIy
+MDAwMDAwWhcNNDYwMzIxMjM1OTU5WjBWMQswCQYDVQQGEwJHQjEYMBYGA1UEChMP
+U2VjdGlnbyBMaW1pdGVkMS0wKwYDVQQDEyRTZWN0aWdvIFB1YmxpYyBDb2RlIFNp
+Z25pbmcgUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCN
+55QSIgQkdC7/FiMCkoq2rjaFrEfUI5ErPtx94jGgUW+shJHjUoq14pbe0IdjJImK
+/+8Skzt9u7aKvb0Ffyeba2XTpQxpsbxJOZrxbW6q5KCDJ9qaDStQ6Utbs7hkNqR+
+Sj2pcaths3OzPAsM79szV+W+NDfjlxtd/R8SPYIDdub7P2bSlDFp+m2zNKzBenjc
+klDyZMeqLQSrw2rq4C+np9xu1+j/2iGrQL+57g2extmeme/G3h+pDHazJyCh1rr9
+gOcB0u/rgimVcI3/uxXP/tEPNqIuTzKQdEZrRzUTdwUzT2MuuC3hv2WnBGsY2HH6
+zAjybYmZELGt2z4s5KoYsMYHAXVn3m3pY2MeNn9pib6qRT5uWl+PoVvLnTCGMOgD
+s0DGDQ84zWeoU4j6uDBl+m/H5x2xg3RpPqzEaDux5mczmrYI4IAFSEDu9oJkRqj1
+c7AGlfJsZZ+/VVscnFcax3hGfHCqlBuCF6yH6bbJDoEcQNYWFyn8XJwYK+pF9e+9
+1WdPKF4F7pBMeufG9ND8+s0+MkYTIDaKBOq3qgdGnA2TOglmmVhcKaO5DKYwODzQ
+RjY1fJy67sPV+Qp2+n4FG0DKkjXp1XrRtX8ArqmQqsV/AZwQsRb8zG4Y3G9i/qZQ
+p7h7uJ0VP/4gDHXIIloTlRmQAOka1cKG8eOO7F/05QIDAQABo0IwQDAdBgNVHQ4E
+FgQUMuuSmv81lkgvKEBCcCA2kVwXheYwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB
+/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAHZlwuPXIkrXHYle/2lexhQCTXOm
+zc0oyrA36r+nySGqql/av/aDbNCA0QpcAKTL88w5D55BcYjVPOiKe4wXI/fKNHSR
+bAauUD8AWbImPDwXg1cDPi3RGj3UzwdUskMLUnKoiPXEF/Jv0Vil0WjkPZgIGO42
+9EhImvpUcPCI1HAWMEJJ0Nk/dUtFcdiuorthDoiFUFe5uhErNikfjyBynlyeidGC
+2kWNapnahHFrM6UQu3nwl/Z0gaA/V8eGjDCMDjiVrgHGHqvcqB9vL9f/dh6uF3Nt
+5bl1s2EGqJUzwk5vsjfylb6FVBK5yL1iQnb3Kvz1NzEDJlf+0ebb8BYCcoOMCLOE
+rKnkB/ihiMQTWlBHVEKm7dBBNCyYsT6iNKEMXb2s9395p79tDFYyhRtLl7jhrOSk
+PHHxo+FOY9b0Rrr1CwjhYzztolkvCtQsayOinqFN7tESzRgzUO1Bbst/PUFgC2ML
+ePV170MVtzYLEK/cXBipmNk22R3YhLMGioLjexskp0LO7g8+VlwyfexL3lYrOzu6
++XpY0FG2bNb2WKJSJHpEhqEcYD9J0/z6+YQcBcI0v+Lm8RkqmS9WVzWctfUHw0Yv
+3jg9GQ37o/HfE57nqXJYMa+96trX1m13MzOO9Kz9wb9Jh9JwBWd0Bqb2eEAtFgSR
+Dx/TFsS4ehcNJMmy
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICKDCCAa+gAwIBAgIQUCSbou+Opr9sLB8aY4XUwzAKBggqhkjOPQQDAzBWMQsw
+CQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS0wKwYDVQQDEyRT
+ZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcgUm9vdCBFNDYwHhcNMjEwMzIyMDAw
+MDAwWhcNNDYwMzIxMjM1OTU5WjBWMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2Vj
+dGlnbyBMaW1pdGVkMS0wKwYDVQQDEyRTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25p
+bmcgUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQIMoEDH487om+BR4zl
+e7m6wWmyW0nAKLkUWG8kM85Qm3PZO8FoOZx6Yc5c0iJHRKuAhanllayqrmZYhlan
+uIODzLTRDqlR+EtnOX+MubY5aDSPGUq6jiHrQrisVp0J3AejQjBAMB0GA1UdDgQW
+BBTPfSygkHqYHd22XoXC4NoVcdLlXjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/
+BAUwAwEB/zAKBggqhkjOPQQDAwNnADBkAjACd++zAerlV83j8HflRwwwlLmgchbs
+aGX/4g44dv/oG8KfzCVTRg6sZHMobtK0IqYCMGk5W6+oBFyZMtOebrSwXs8lGjll
+/zHz43Zy8DMXO+iiqzSEwWGneZ6KupkGGqfVKw==
+-----END CERTIFICATE-----
+
diff --git a/dotnet/sdk/8.0.402/trustedroots/timestampctl.pem b/dotnet/sdk/8.0.402/trustedroots/timestampctl.pem
new file mode 100644
index 0000000000000000000000000000000000000000..b7c1e34e15420a59730e340d45326be0a09b97f8
--- /dev/null
+++ b/dotnet/sdk/8.0.402/trustedroots/timestampctl.pem
@@ -0,0 +1,9307 @@
+-----BEGIN CERTIFICATE-----
+MIIFUTCCAzmgAwIBAgIIAPtxJlitmeUwDQYJKoZIhvcNAQELBQAwNjEWMBQGA1UE
+AwwNQ0FFRElDT00gUm9vdDEPMA0GA1UECgwGRURJQ09NMQswCQYDVQQGEwJFUzAe
+Fw0xNDA1MjExMTA2MzVaFw0zNDA1MjExMDIwMDBaMDYxFjAUBgNVBAMMDUNBRURJ
+Q09NIFJvb3QxDzANBgNVBAoMBkVESUNPTTELMAkGA1UEBhMCRVMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQDbgMroSXTH0zgu8cUjYvw2jC8efjkL6Qb0
+VZulmCmU7YZHMoPzxZJ6BdcpAj4Wwyh/NWQpenm7oeIeYRSN5wDQ3KJUZYrfablx
+R384OBZGp2kxETVM4Sp//21PlT3jXUhNGVMIWmsh1RIwaZeQry3B9X9BX0k2j024
+HhqVX9oPb1wVNcQRvF+Fm72tO1Veu9/Ou69cmWDdH2kaSUgh+QkKz3Kn8PLe5XgZ
+vhLdzYd5Qc4vRdcLkRARBB4SnfI4A18Waa6gCtrA+eugDRgPeV6RneQfFJw0ExkC
+RLpRw+55smAUo6+8SC0oOGgBQ2TKDoaDYtCKGaYn8St7SykhW5rMaEIQyEtPDyOy
+iHzEXG4XcMV3r5XAJaQiCtN8+dhyyNAtvafo0i2LTKFuCvy0QDO7mmv8pOrJ/uA0
+iEPMxrw/ddKlqa/6l7k+t85UoE3AXS7BKNhjVHK4rFr1OvsgYQY69KArOKvMgwxJ
+1G4+bQ8+cy825vNPs8AA0UVJW4z2o5gdhH+ZCsPqCjzD0yR4SGf1GzsOHQ5DsQR1
+waA5dov22QKlHeGeWwe7NldKIU35iWm0bA/Xr6AVJJnn+NdTlOwSv6Sl1+3ujjV3
+d9ymfyBUktZj1nKeTSq2j3PzGaHEsB/mNKMLAD6XSSdhqqoEQTM4tVBRzDYV2x//
+vcpIg0inswIDAQABo2MwYTAdBgNVHQ4EFgQUFM0qWXhjq2EZ6Lg9oeBawHXn+csw
+DwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBQUzSpZeGOrYRnouD2h4FrAdef5
+yzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAD0JGQC2kQJs7A73
+4eJisL8zDf1VEvQImvcrLa73nEfYHwYBE7WO57KCCz2EWUPUB9grXBB6JCzKjejV
+ozmcMczr4Drh1b/Px4d7YP9HOdejRNYIJlvPWlTsiNOOD3k8yKNPpsKOJ/DeEq5e
+Ga3nIlaKWDLg+QbQqSq0NZsMhiZRAJRHUPylxCVh+VjwRXAuSXZ/EdZvtfkpBeEN
+w05YH68d7DfQSvkGBoHT26CWuA6RMHnmUN+IuAupXNQH9MmozH2Pk2MJZAAFKmhm
+Q7uiu/6VrvnEpQqIYkh4JXwqPxFkptMiIEedMtby48ikYXTngsJEuqDRXV+88UQO
+g08cUIXE6eds/Oa4VeGiGoC3kESnhCKXRyLeqzg3z7XyHD5CcLt1tmUoa8t/gjWq
+9vMgeChzB5YwcKUqcVyheaQWuUY9XrQASYWJ0w7fga5YjVjW4cVEeC4cILuiR5e/
+dhQ7qSiPnwt10qE87SvHjpCheqKZMGL8hR01czvztVkiG80IsQyddWrbhTsOh58y
+T5IAAQFMSWiCgEFs+f1xvYv0eApgo56xUh3AiuOexb8rGWqYp7HeFVCfqpQlj6mA
+gqdyuklkCSdhK268IygzXZ5u8Lm9IDKM3aALmbu0hAQkdSmW96elF7hRBet0rVF5
+lvy7+98JLQiSRM7A0rMYxxQivyHx
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAw
+WjELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAw
+MiA0ODE0NjMwODEwMDAzNjEZMBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0x
+MzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjdaMFoxCzAJBgNVBAYTAkZSMRIwEAYD
+VQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYzMDgxMDAwMzYxGTAX
+BgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
+ggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sO
+ty3tRQgXstmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9M
+CiBtnyN6tMbaLOQdLNyzKNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPu
+I9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8JXrJhFwLrN1CTivngqIkicuQstDuI7pm
+TLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16XdG+RCYyKfHx9WzMfgIh
+C59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq4NYKpkDf
+ePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3Yz
+IoejwpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWT
+Co/1VTp2lc5ZmIoJlXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1k
+JWumIWmbat10TWuXekG9qxf5kBdIjzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5
+hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp//TBt2dzhauH8XwIDAQABo4IB
+GjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
+FBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of
+1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczov
+L3d3d3cuY2VydGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilo
+dHRwOi8vY3JsLmNlcnRpZ25hLmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYr
+aHR0cDovL2NybC5kaGlteW90aXMuY29tL2NlcnRpZ25hcm9vdGNhLmNybDANBgkq
+hkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOItOoldaDgvUSILSo3L
+6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxPTGRG
+HVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH6
+0BGM+RFq7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncB
+lA2c5uk5jR+mUYyZDDl34bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdi
+o2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1
+gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS6Cvu5zHbugRqh5jnxV/v
+faci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaYtlu3zM63
+Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayh
+jWZSaX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw
+3kAP+HwV96LOPNdeE4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF
+ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
+b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL
+MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
+b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj
+ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM
+9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw
+IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6
+VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L
+93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm
+jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA
+A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI
+U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs
+N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv
+o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU
+5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy
+rqXRfboQnoZsG4q5WTP468SQvvG5
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF
+ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6
+b24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL
+MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv
+b3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK
+gXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ
+W0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg
+1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K
+8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r
+2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me
+z/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR
+8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj
+mUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz
+7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6
++XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI
+0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB
+Af8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm
+UjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2
+LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY
++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS
+k5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl
+7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm
+btmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl
+urR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+
+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63
+n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE
+76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H
+9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT
+4PsJYGw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5
+MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g
+Um9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG
+A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg
+Q0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl
+ui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j
+QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr
+ttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr
+BqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM
+YyRIHN8wfdVoOw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5
+MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g
+Um9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG
+A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg
+Q0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi
+9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk
+M6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB
+/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB
+MAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw
+CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW
+1KyLa2tJElMzrdfkviT8tQp21KW8EA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix
+DzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5k
+IFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMT
+N0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9v
+dENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAxMTIxWjCBpjELMAkG
+A1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNh
+ZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkx
+QDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1
+dGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA
+4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0
+AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe10
+4S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06C
+ojXdFPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV
+9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrD
+gfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6
+Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZYeCsargq
+NhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko
+LfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc
+Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVd
+ctA4GGqd83EkVAswDQYJKoZIhvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0I
+XtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMI
+M4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrMd/K4kPFox/la/vot
+9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+yd+2V
+Z5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/ea
+j8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh
+X9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQ
+l033DlZdwJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdf
+bzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4
+pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK
+e7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0
+vm9qp/UsQu0yrbYhnr68
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGfjCCBGagAwIBAgIEBfXhADANBgkqhkiG9w0BAQ0FADBwMQswCQYDVQQGEwJD
+WjEtMCsGA1UECgwkUHJ2bsOtIGNlcnRpZmlrYcSNbsOtIGF1dG9yaXRhLCBhLnMu
+MRkwFwYDVQQDDBBJLkNBIFJvb3QgQ0EvUlNBMRcwFQYDVQQFEw5OVFJDWi0yNjQz
+OTM5NTAeFw0xNTA1MjcxMjIwMDBaFw00MDA1MjcxMjIwMDBaMHAxCzAJBgNVBAYT
+AkNaMS0wKwYDVQQKDCRQcnZuw60gY2VydGlmaWthxI1uw60gYXV0b3JpdGEsIGEu
+cy4xGTAXBgNVBAMMEEkuQ0EgUm9vdCBDQS9SU0ExFzAVBgNVBAUTDk5UUkNaLTI2
+NDM5Mzk1MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqj9VtYmvdhQG
+KmQmlDgPX/bcBG8xRfUK/Tt/m3Jv+EB8/l39NJkFOJRJurHwvfiZXMBR+qoN++Zx
+FYVjESp3BpGSBoiz/BThmUa0KYKuhIPutSaHbviLVUSdQNj/Klqq6H/SZeEUR8J8
+Mf11YQobjIBKnrTiLhRHMe68BVGupn7PEbjFSL0FVMKE5Kdoa/i4+n4oybnP5CFP
+ZcmIaKA42XWlETtMHG5LHtSGbMGtBUfTLJQNzIctGi3D1szehP7sa8DhIxOh05wY
+fuBy11xVvEyzQDEbnEDNmuuADnGu12JuWhZPH/ZlRdGfeoVBGcJ6Os4hkuSUcEy7
+qEHGxLs1zfU6nmOpjaBq0SBEqiq2SKVyw86e5FhIRwl/AkHzDRxtCXjw1xTRoFX8
+EdZaGgB55TvmCMtSnqQJq2vnbJwqLyJ9+7lQst5Q0y8McrnWs7ezCObre6z0tMX2
+wTIfpxkh9dxeN6rHH1ObQz7mnp/aDddWog9TaS1Vv+uGeBG/ptdaTfMOk3Pq/w7Q
+54/xyLPw2BhzbKVyiPFwTEdUtpta0bwmN40Y35trLtsLJbOKsuOtBlxtu30XAwcB
+ijCXiXRtSpR3Luvuz7Aetep29LUUOJXX1dkvP7KkJsxNo1yNCfNeDIUyzlZsAgjx
+S6Orv8hUoAWFdOR1HXq8nDtgPWr9GZECAwEAAaOCAR4wggEaMA4GA1UdDwEB/wQE
+AwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2uQNI+9UYoaE3oO3MaIJM
+UjQ2DTCB1wYDVR0gBIHPMIHMMIHJBgRVHSAAMIHAMIG9BggrBgEFBQcCAjCBsBqB
+rVRlbnRvIGt2YWxpZmlrb3Zhbnkgc3lzdGVtb3Z5IGNlcnRpZmlrYXQgYnlsIHZ5
+ZGFuIHBvZGxlIHpha29uYSAyMjcvMjAwMCBTYi4gdiBwbGF0bmVtIHpuZW5pL1Ro
+aXMgcXVhbGlmaWVkIHN5c3RlbSBjZXJ0aWZpY2F0ZSB3YXMgaXNzdWVkIGFjY29y
+ZGluZyB0byBBY3QgTm8uIDIyNy8yMDAwIENvbGwuMA0GCSqGSIb3DQEBDQUAA4IC
+AQAZVAIlg9silosdlZ6Z2zTOk9AfLntcYCRqDNeFRHgfHEnyFPiDVBmmnTJmuCOm
+O4Yqnzb8F/xQD2DGN/0kqPd5p46/2AcVVF5SDL74ptjIQUTx9hPcgxlbr91k9zMW
+hw8VWvFkvNTnVT8yOIma88xIxWwxcZKaJhfCfEcCbTUnn/Ma4aodDXQRqZN8Qahv
+u46cxQHkc/a6UC7mENS8bxOaOLlpRqUG1vJMbDerPPjbGsZV8Mj4HSFuLwBqseJt
+WgQtfd0JT/bvFC/AEuoJGSsayqBxm7E6Mrz/QxjzfS/1LojpUbbxSZBM/ybHw1nd
+dF/BUF04XJ1oVWlqtEB3yV8yKUhUk8GzISN2oVUwaSM/MUnEoc07dlmVWoK0rXG1
+vqaRzIAVSi/OlK4YVUl1IES48wGbwXgsjhBMp2StrTrrTB1WLn+U1B7QCtXJVIEO
+Hv73lPlhOj817tNgyftIsm7C2b56bpgFcACj0RfHxjSvbPVNj11SDN2Am3pt55jj
+OYVcP4vMRKJANjKTElaQAp4+WWgCH1aIHq/B/g97VY2X2bumk0e6fPhHtjnXjPJA
+bIecDP4t3dxx/A6RCKRDPYpX3d0H66eXUdC6hJmti3n+yQSQgxMr6ZcNZYnyES03
+jku4u9J6OSrF3NBdDd0EJ5ifWP2OhrsFf/DtN5KQ3Zy9/A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEg
+MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2Jh
+bFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQx
+MjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSNjET
+MBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQssgrRI
+xutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1k
+ZguSgMpE3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxD
+aNc9PIrFsmbVkJq3MQbFvuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJw
+LnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqMPKq0pPbzlUoSB239jLKJz9CgYXfIWHSw
+1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+azayOeSsJDa38O+2HBNX
+k7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05OWgtH8wY2
+SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/h
+bguyCLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4n
+WUx2OVvq+aWh2IMP0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpY
+rZxCRXluDocZXFSxZba/jJvcE+kNb7gu3GduyYsRtYQUigAZcIN5kZeR1Bonvzce
+MgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTAD
+AQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNVHSMEGDAWgBSu
+bAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN
+nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGt
+Ixg93eFyRJa0lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr61
+55wsTLxDKZmOMNOsIeDjHfrYBzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLj
+vUYAGm0CuiVdjaExUd1URhxN25mW7xocBFymFe944Hn+Xds+qkxV/ZoVqW/hpvvf
+cDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr3TsTjxKM4kEaSHpz
+oHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB10jZp
+nOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfs
+pA9MRf/TuTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+v
+JJUEeKgDu+6B5dpffItKoZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R
+8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+tJDfLRVpOoERIyNiwmcUVhAn21klJwGW4
+5hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID2DCCAsCgAwIBAgIQYFbFSyNAW2TU7SXa2dYeHjANBgkqhkiG9w0BAQsFADCB
+hTELMAkGA1UEBhMCREUxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fzc2VuIFZl
+cmxhZyBHbWJIMScwJQYDVQQLEx5TLVRSVVNUIENlcnRpZmljYXRpb24gU2Vydmlj
+ZXMxIjAgBgNVBAMTGVMtVFJVU1QgVW5pdmVyc2FsIFJvb3QgQ0EwHhcNMTMxMDIy
+MDAwMDAwWhcNMzgxMDIxMjM1OTU5WjCBhTELMAkGA1UEBhMCREUxKTAnBgNVBAoT
+IERldXRzY2hlciBTcGFya2Fzc2VuIFZlcmxhZyBHbWJIMScwJQYDVQQLEx5TLVRS
+VVNUIENlcnRpZmljYXRpb24gU2VydmljZXMxIjAgBgNVBAMTGVMtVFJVU1QgVW5p
+dmVyc2FsIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCo
+4wvfETeFgpq1bGZ8YT/ARxodRuOwVWTluII5KAd+F//0m4rwkYHqOD8heGxI7Gsv
+otOKcrKn19nqf7TASWswJYmM67fVQGGY4tw8IJLNZUpynxqOjPolFb/zIYMoDYuv
+WRGCQ1ybTSVRf1gYY2A7s7WKi1hjN0hIkETCQN1d90NpKZhcEmVeq5CSS2bf1XUS
+U1QYpt6K1rtXAzlZmRgFDPn9FcaQZEYXgtfCSkE9/QC+V3IYlHcbU1qJAfYzcg6T
+OtzoHv0FBda8c+CI3KtP7LUYhk95hA5IKmYq3TLIeGXIC51YAQVx7YH1aBduyw20
+S9ih7K446xxYL6FlAzQvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
+AQH/BAQDAgEGMB0GA1UdDgQWBBSafdfr639UmEUptCCrbQuWIxmkwjANBgkqhkiG
+9w0BAQsFAAOCAQEATpYS2353XpInniEXGIJ22D+8pQkEZoiJrdtVszNqxmXEj03z
+MjbceQSWqXcy0Zf1GGuMuu3OEdBEx5LxtESO7YhSSJ7V/Vn4ox5R+wFS5V/let2q
+JE8ii912RvaloA812MoPmLkwXSBvwoEevb3A/hXTOCoJk5gnG5N70Cs0XmilFU/R
+UsOgyqCDRR319bdZc11ZAY+qwkcvFHHVKeMQtUeTJcwjKdq3ctiR1OwbSIoi5MEq
+9zpok59FGW5Dt8z+uJGaYRo2aWNkkijzb2GShROfyQcsi1fc65551cLeCNVUsldO
+KjKNoeI60RAgIjl9NEVvcTvDHfz/sk+o4vYwHg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF8TCCA9mgAwIBAgIIVE2lvEA1VlowDQYJKoZIhvcNAQELBQAwgYUxCzAJBgNV
+BAYTAlBUMUIwQAYDVQQKDDlNVUxUSUNFUlQgLSBTZXJ2acOnb3MgZGUgQ2VydGlm
+aWNhw6fDo28gRWxlY3Ryw7NuaWNhIFMuQS4xMjAwBgNVBAMMKU1VTFRJQ0VSVCBS
+b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IDAxMB4XDTE0MDQwNDA4NTk0N1oX
+DTM5MDQwNDA4NTk0N1owgYUxCzAJBgNVBAYTAlBUMUIwQAYDVQQKDDlNVUxUSUNF
+UlQgLSBTZXJ2acOnb3MgZGUgQ2VydGlmaWNhw6fDo28gRWxlY3Ryw7NuaWNhIFMu
+QS4xMjAwBgNVBAMMKU1VTFRJQ0VSVCBSb290IENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5IDAxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAztw/9BluuxVp
+hvTkzec6cDvHmos7gwCBW/sgFlq+v1gAXynmV29+iiwVB1waY4xCXxbd2omERVcX
+lqCcoXUiQRo6/cUXkRP2vmIKvG4lLVvAjBBm9+LW+9xIMaMaqOVNSMmiHHP+j2ZA
+Y3dZBzw9FJ/U94WR0MNC9Rths3eAgCptEgKWi1HZwW8nCxoHNAD/0llMKejXGWPY
+kbQ//I4OJfKhEgdlyjXeq/4WowiMr39+EvRZFgUf6K10eTL3eAK2tMyr2x44YQQZ
+ekFA2loRZHUC/WTR1pRCDyLnZc2vkA4MWzEBmVHvRYx9pTjannxL5Kbos6SC1gM0
+Lk+3Uat3OAn1Bv7cZhsPP/p974xVvuANhpWh3L3EwwjRRR7yvb5w8eYmxrsIsSil
+wqXtiNahwPsj8Sc5zOGEBxm8fvbMOP9uELtG6SOJJIH/AOJRANxSUH0TUH0WPUCN
+07/5imXYYhIpd8K6wkk0T4p5aclLFfM03s+vhuLlyKlWYUwGVFrFbBnq88hEzSQa
+dtFxAFlr2XWbzv0Q/rGDoqW3koZ2m0r3HdyMhaZYrYqmaGkXyW0bps8nSyks3XFC
+GokQ5dWbEl9Ji4S82Ahc+884Qq++0W57kapmQMUFfivQZrbH31L+9EVtI5IhnhIB
+kHOD4qUJDdfA+IWVHmPRPzXalNE32fUCAwEAAaNjMGEwHQYDVR0OBBYEFNU5HJxb
+bwSqopVM7yDdKXSkxUVxMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1Tkc
+nFtvBKqilUzvIN0pdKTFRXEwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUA
+A4ICAQA/51/zIhbeg54g5ILn5Z53yfsrsHQN3xt0Ig9zEKGwF+xMDNQocGpmckRp
+EJN2Nc8v+I88qxl8cZKVcRs3FcIbKHrvbng43/uPmwEg3K/21o0JZtrERqn8lapE
+IxLfR8CwFey1sZ5sD5GqpjrlwQ1gbFBAcFxcyM6zzOvtqogZVqWkyAx65XZAZzO0
+PZbcd8sjePlTW8+N3rGnjlp6ojJjo4jXJWFaXUk6cubPqpSGbG73guCOZ5MoxagN
+Te84rXlKZo2EAQgEefNSxkHnmmIGs/USHuzZAEPT65Z3dOF5+RSUhG26VIIFjN8B
+8jCIgax6L4tDLHY0zjXnh45OCwqlGlexU1q/a9i+AH7G+e5mMQix35QzhJx3T3tk
+L++OD1koIsvwXD4r/TXWlf8D7GVSfr7yGfh71VIsUneakWZBcI3VSecLSH+Krt5F
+Pd3+5tLkksN7zjCgSW43rajTLLY9niHbBlfi8K4G+9nFETehe9sdEXxodiA+9byl
+2Wa1Ia1FJsZdHgKjQcTUfYEZyxeXBg/m7HQARsR13T3wQzSvprz89oL7z8X6sw8l
+pT9mENaegqXbOhN53o2p16aNhtIv2WkN4nV4fklfIquGcChRs3q2oHn61OWDp7B3
+ytsBgu/ivk0v08BN0ONpbnwmm+um+0XvsQSKL6ohBvbm1LxBIw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE
+BhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ
+IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0
+MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNV
+BAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w
+HQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJj
+Dp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBj
+TnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u
+KU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEj
+qcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpm
+MUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12
+ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloP
+zgsMR6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3Gk
+L30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeC
+jGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLwwoC8N9VKejveSswoA
+HQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeFd3mqgnkC
+AwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg
+p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZm
+DRd9FBUb1Ov9H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5
+COmSdI31R9KrO9b7eGZONn356ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ry
+L3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPf
+JWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQHtZa37dG/OaG+svg
+IHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBDF8Io
+2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV
+09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ
+XR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrq
+T8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe
+MTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAmSgAwIBAgIQayXaioidfLwPBbOxemFFRDANBgkqhkiG9w0BAQsFADBY
+MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxLTArBgNV
+BAMTJENlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbiBHMjAeFw0xNDEx
+MDgwMDU4NThaFw00NDExMDgwMDU4NThaMFgxCzAJBgNVBAYTAkNOMRowGAYDVQQK
+ExFXb1NpZ24gQ0EgTGltaXRlZDEtMCsGA1UEAxMkQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkgb2YgV29TaWduIEcyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAvsXEoCKASU+/2YcRxlPhuw+9YH+v9oIOH9ywjj2X4FA8jzrvZjtFB5sg+OPX
+JYY1kBaiXW8wGQiHC38Gsp1ij96vkqVg1CuAmlI/9ZqD6TRay9nVYlzmDuDfBpgO
+gHzKtB0TiGsOqCR3A9DuW/PKaZE1OVbFbeP3PU9ekzgkyhjpJMuSA93MHD0JcOQg
+5PGurLtzaaNjOg9FD6FKmsLRY6zLEPg95k4ot+vElbGs/V6r+kHLXZ1L3PR8du9n
+fwB6jdKgGlxNIuG12t12s9R23164i5jIFFTMaxeSt+BKv0mUYQs4kI9dJGwlezt5
+2eJ+na2fmKEG/HgUYFf47oB3sQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU+mCp62XF3RYUCE4MD42b4Pdkr2cwDQYJ
+KoZIhvcNAQELBQADggEBAFfDejaCnI2Y4qtAqkePx6db7XznPWZaOzG73/MWM5H8
+fHulwqZm46qwtyeYP0nXYGdnPzZPSsvxFPpahygc7Y9BMsaV+X3avXtbwrAh449G
+3CE4Q3RM+zD4F3LBMvzIkRfEzFg3TgvMWvchNSiDbGAtROtSjFA9tWwS1/oJu2yy
+SrHFieT801LYYRf+epSEj3m2M1m6D8QL4nCgS3gu+sif/a+RZQp4OBXllxcU3fng
+LDT4ONCEIgDAFFEYKwLcMFrw6AF8NTojrwjkr6qOKEJJLvD1mTS+7Q9LGOHSJDy7
+XUe3IfKN0QqZjuNuPq1w4I+5ysxugTH2e5x6eeRncRg=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICCTCCAY+gAwIBAgIQaEpYcIBr8I8C+vbe6LCQkDAKBggqhkjOPQQDAzBGMQsw
+CQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNVBAMT
+EkNBIFdvU2lnbiBFQ0MgUm9vdDAeFw0xNDExMDgwMDU4NThaFw00NDExMDgwMDU4
+NThaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRlZDEb
+MBkGA1UEAxMSQ0EgV29TaWduIEVDQyBSb290MHYwEAYHKoZIzj0CAQYFK4EEACID
+YgAE4f2OuEMkq5Z7hcK6C62N4DrjJLnSsb6IOsq/Srj57ywvr1FQPEd1bPiUt5v8
+KB7FVMxjnRZLU8HnIKvNrCXSf4/CwVqCXjCLelTOA7WRf6qU0NGKSMyCBSah1VES
+1ns2o0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQUqv3VWqP2h4syhf3RMluARZPzA7gwCgYIKoZIzj0EAwMDaAAwZQIxAOSkhLCB
+1T2wdKyUpOgOPQB0TKGXa/kNUTyh2Tv0Daupn75OcsqF1NnstTJFGG+rrQIwfcf3
+aWMvoeGY7xMQ0Xk/0f7qO3/eVvSQsRUR2LIiFdAvwyYua/GRspBl9JrmkO5K
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgICJ60wDQYJKoZIhvcNAQELBQAwOjELMAkGA1UEBhMCSU4x
+EjAQBgNVBAoTCUluZGlhIFBLSTEXMBUGA1UEAxMOQ0NBIEluZGlhIDIwMTQwHhcN
+MTQwMzA1MTAxMDQ5WhcNMjQwMzA1MTAxMDQ5WjA6MQswCQYDVQQGEwJJTjESMBAG
+A1UEChMJSW5kaWEgUEtJMRcwFQYDVQQDEw5DQ0EgSW5kaWEgMjAxNDCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAN7IUL2K/yINrn+sglna9CkJ1AVrbJYB
+vsylsCF3vhStQC9kb7t4FwX7s+6AAMSakL5GUDJxVVNhMqf/2paerAzFACVNR1Ai
+MLsG7ima4pCDhFn7t9052BQRbLBCPg4wekx6j+QULQFeW9ViLV7hjkEhKffeuoc3
+YaDmkkPSmA2mz6QKbUWYUu4PqQPRCrkiDH0ikdqR9eyYhWyuI7Gm/pc0atYnp1sr
+u3rtLCaLS0ST/N/ELDEUUY2wgxglgoqEEdMhSSBL1CzaA8Ck9PErpnqC7VL+sbSy
+AKeJ9n56FttQzkwYjdOHMrgJRZaPb2i5VoVo1ZFkQF3ZKfiJ25VH5+8CAwEAAaMz
+MDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIQrjFz22zV+EwCwYDVR0PBAQD
+AgEGMA0GCSqGSIb3DQEBCwUAA4IBAQAdAUjv0myKyt8GC1niIZplrlksOWIR6yXL
+g4BhFj4ziULxsGK4Jj0sIJGCkNJeHl+Ng9UlU5EI+r89DRdrGBTF/I+g3RHcViPt
+One9xEgWRMRYtWD7QZe5FvoSSGkW9aV6D4iGLPBQML6FDUkQzW9CYDCFgGC2+awR
+Mx61dQVXiFv3Nbkqa1Pejcel8NMAmxjfm5nZMd3Ft13hy3fNF6UzsOnBtMbyZWhS
+8Koj2KFfSUGX+M/DS1TG2ZujwKKXCuKq7+67m0WF6zohoHJbqjkmKX34zkuFnoXa
+Xco9NkOi0RBvLCiqR2lKfzLM7B69bje+z0EqnRNo5+s8PWSdy+xt
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDKzCCAhOgAwIBAgICJ7UwDQYJKoZIhvcNAQELBQAwPjELMAkGA1UEBhMCSU4x
+EjAQBgNVBAoTCUluZGlhIFBLSTEbMBkGA1UEAxMSQ0NBIEluZGlhIDIwMTUgU1BM
+MB4XDTE1MDEyOTExMzY0M1oXDTI1MDEyOTExMzY0M1owPjELMAkGA1UEBhMCSU4x
+EjAQBgNVBAoTCUluZGlhIFBLSTEbMBkGA1UEAxMSQ0NBIEluZGlhIDIwMTUgU1BM
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl9c2iT03QQ6RP2sgX/w6
+fjtaXS/DDIdTPBiiyGFzDQgOVh7SbmClV2Xc/s9Qhg9aTqtiiwTKVu/h0Z6udK2q
++j9BWNFVcHA+RckbgHP8CIjki3KoCrUpV7CtCpFBGpxfUH2sFxolWyHwlSvn3zes
+NPMHsPEdwRPvey46xalhkLJ4X1RQPLNaVWO2yxCjb/sN9Lbv5gjeohC/dpd/6tmW
+0dTDcwJxtKmwrKwfFyClR0bWRAI4mb7LFHj+5l/Ef91v6apHFJAR2B2AwBXUjKCZ
+4xkOCg/MGgic1FMHAOAfSb+CgkzPm9hu09QRABJsD31gZ0qMUNvyL+C5eYeDw1zC
+OQIDAQABozMwMTAPBgNVHRMBAf8EBTADAQH/MBEGA1UdDgQKBAhMEXCqj90fBzAL
+BgNVHQ8EBAMCAQYwDQYJKoZIhvcNAQELBQADggEBAC28jBXKNO1MKCK74VMlSzqX
+qe0moqSrTfsKEm7nNeZnDhiBYjalzMLfGuVoAYFOs5nURxUSnXbpoaYTHbD/fbtX
+4+9Zm8g7UGnGYzqsoMHlkOhkKVxIQWk3rDu73eNVxteSDZWDsChXwqOplqfK3kwe
+mv8+pS4nXttmZyeF76uKXHN8iM1HZvCdg8yEj+Ip9B9Bb7f1IQ31lFZR4/z/E1i3
+nwPuKZ/SAbBinpS9GYZaQ/pqiYGw6lwYh8qAlfvtAb8RGt+VFK4u4q/NkZC6syfD
+bxDY2Q60pXRsgbdfGcz+J06zRZhYGJxXxJJyEs+ngjnV4RCXCoYwRYVjqGtNmvw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFqjCCA5KgAwIBAgIQMmmiv0BrjbRHg2Q8iw3JQzANBgkqhkiG9w0BAQsFADBm
+MQswCQYDVQQGEwJTRTEoMCYGA1UEChMfU3dlZGlzaCBTb2NpYWwgSW5zdXJhbmNl
+IEFnZW5jeTEtMCsGA1UEAxMkU3dlZGlzaCBHb3Zlcm5tZW50IFJvb3QgQXV0aG9y
+aXR5IHYzMB4XDTE1MDkyOTExMzIzMloXDTQwMDkyOTExNDIwOVowZjELMAkGA1UE
+BhMCU0UxKDAmBgNVBAoTH1N3ZWRpc2ggU29jaWFsIEluc3VyYW5jZSBBZ2VuY3kx
+LTArBgNVBAMTJFN3ZWRpc2ggR292ZXJubWVudCBSb290IEF1dGhvcml0eSB2MzCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALoeomkbaE9cj7r0I8deZgV4
+hTZYo6J/Z++iDBaSpEqL4KCSh1U3C8TRxNBAQ5cyUE/slUe3P69DBeWElwnvVlTn
+QzNH/a3xOpuYpOHkUaO5rIwL7iUGCfLTujVnYYzCvSbL12PM14Mz2Uzi7/kbn6jL
+DXYBLXLJIrtokd6QDzs9tEK9GX2fhFw8fkI3hrFgwkiHUk5cV/7Okq7KPla3s56V
+mpT4L6HQoi7CVFpszMzWrUtH0C6HgjOoe1A5pyossVsnCp+t9RTr/I1TsnMrVCP0
+jJeZl/s13My1+jMUJo11pySm6BQuLaaAKIOaP7jKO8f1GOD97I55+6pCbEpLFn7z
+ggNuuucRBqWfhCvSYG3pRu5BWpa5FP0cP4YS8VQmJv1ngC/lqC0oLkO3ZMLv5Ld+
+ltyEiyfZdj2YgVMU3EJFoVRn+doYZpAKtEeQPAHlK6Nm72/7MoPxM30yIWylRRU/
+L/NVkUiTnyXPLTw5O1INGq/H36tvgNiQy55xcmpCaZPqkgA9SQTZo1y6RfsCEP+t
+aXRSpThjmmaIBLIRuhOqOdWDX+1lW1PInVyyhaB4cDVNXCQQpPYxKpJVQdnzF2yZ
+E1j63SjQbBO9W4eNk4OtWClWFbRYJ0qbEWygpmdFOs7Q2M7/kDPsWjFND1IS+632
+YV/kL28NZjDloE/Pz/1fAgMBAAGjVDBSMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
+Af8EBTADAQH/MB0GA1UdDgQWBBScvAHnq2Q19TGbjbX7F5mIAsub8jAQBgkrBgEE
+AYI3FQEEAwIBADANBgkqhkiG9w0BAQsFAAOCAgEAh6tq5OdrJFI99iKDT1MERTKc
+YVoWXJxEtaPRltBA/s9mFV5+QAAgFf2nqmTap2FmaMLdUnEloGq53cDNzoYI1Dw1
+ES999G/S2gyXA2WXg7Q+OssJdI3rBcp66YCwt1EtIpPjmhnu7ZcIIYOtxwqRX8TK
+216vuOeMujpJ0lUDNRkZUErihqe7eD2V/bEfRvJPZvL7v4VktgojGJIJnklFMbbW
+FFee/IlFdH85zMBqaMjPR9DhHsfTLy35LCQ7/Gq6lBPezHLyoh3LH5/Vg3cmXn6b
+oK9pn3jbpcFucVxIQk4r2Hi41Q+lP2zLj5DNR9iQGUmF1mz84quqQr/LE5e/aUR1
+YzUt2qDH/WH3ykE9VJz0NsDkbiFIn11xYoHT8iXmWYxZQSZIp+PrZ2rT7DS3mPfM
+yqM2BpXnyDBZ9//JodHkebzfEx8u2bN10QS3IwkhzB0hHCecDiv6wYcYyfr5SYOM
+Ehb7xRLOOw9C+vAFZX6ox+tSSvmYXnGjrBLHKHEaWnXPh8ofNygcFJ2QUG/Gv0rM
+xyXPMd1bkU52qBHVdmbZv4BzYrDsw/5EvM1ZEwsMLdihzKpiTVRFXqRSo4xXPBQx
+k1TOpRZUXi1Cs+5lqbadP2zOYdlWy97qoFbebYYD+reBaozS2PPXtsCsKYRZIw6b
+l2rmoM7VKlQY71CYeSA=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGCzCCA/OgAwIBAgIQVBIVn6uKdZNElMp3QFYu7zANBgkqhkiG9w0BAQsFADBm
+MQswCQYDVQQGEwJTRTEoMCYGA1UEChMfU3dlZGlzaCBTb2NpYWwgSW5zdXJhbmNl
+IEFnZW5jeTEtMCsGA1UEAxMkU3dlZGlzaCBHb3Zlcm5tZW50IFJvb3QgQXV0aG9y
+aXR5IHYyMB4XDTE1MDUwNTExMTUyM1oXDTQwMDUwNTExMjQxOVowZjELMAkGA1UE
+BhMCU0UxKDAmBgNVBAoTH1N3ZWRpc2ggU29jaWFsIEluc3VyYW5jZSBBZ2VuY3kx
+LTArBgNVBAMTJFN3ZWRpc2ggR292ZXJubWVudCBSb290IEF1dGhvcml0eSB2MjCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMiutUO8QkVLNWM/AkvF/9s2
+1yfFwq5FZqNxhxZNiU9hlOBWRrjQRBPmc5DwYXhBiuAafjesAim+6P8CJsYafAqx
+j2QpotoHitUkhWgZkjLfnylgWG0qhYARNsm2wtOehAy6URHMVOmrBjASjyB3BcDG
+jZqbWci2hehwBwKxHv/Xac8WRothL0LNUqbYDnovhy3GLzwiQ7GTfsMWdtnM14vs
+ERvQyXEUwolJfvGkEKo1PKgbu//sMkDlvSrzpgETyIyXGZDOY/mwa333+YrObuCF
+59uU1XogJaA18Kn3r1ooWgzI83Q5izE7IsxJJclvuFx6LiyW4y+jPsp5d2mRWvjw
+xVM3TlNtSSdWYsrl+XNgqRc7W6Ilry17ybfbzxkROjNxOVlaA+nnLAz/bZxyY2OA
+BVhThtwodRbC5fATWaGB/wUMmai2PGwuxQ4AmIHpg3dmQztajoVFTLLPuT3knDaT
+QHpTFSnUEZC6oWCKnav0Skpq3Yeqwe0F2p5bVuGITyprlSiGZlCh79pKspAKNjdJ
+hZdCeAdn5psgoQxsyc/P/neVhFp6Oxew70z3LZGqzxlvxvkSKOceCqaWzSGwA2JQ
+gwYg5uje30MWFrmBoPCBNFvLwYn28+giuM64Uj5RHrEFuLcDKwusdHVTJOF2uE8l
+dl3v0Zrzbkq4fEv4isAZAgMBAAGjgbQwgbEwDgYDVR0PAQH/BAQDAgEGMBIGA1Ud
+EwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYEFGNrQmBTVxG7yCSJJQJmRHShDSVuMBAG
+CSsGAQQBgjcVAQQDAgEAMBEGA1UdIAQKMAgwBgYEVR0gADBHBgNVHSUEQDA+Bggr
+BgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMEBgorBgEEAYI3CgMMBggrBgEFBQcD
+AwYIKwYBBQUHAwgwDQYJKoZIhvcNAQELBQADggIBACMuqoWXS6RcEK/a+D29k1gv
+ePsZdwM5FkdJclXMh+i9pH/SqySs59RQ7p3Yg8aZIPsWL4jGFzfKix6r0OJsB1i4
+ZJGhEKFpN3Ve/tpzFOaKa77CYCEvwPmjBEg2Wze+2mz96ZaOnvFTfI9lRKdVfQuU
+TlT2/zK9L32cpV5CxEwp4xBkL+bPWjs0VShh0ScSu25Um4FYrNVenVcDoE3R/zd0
+po3z+ZX9Kol1enk3/SZ5Lydzf6kZIOXQX5jolgWPmHnpeRBBKQFD9Wk3zFAQaLXY
+RE4O8pnjJyxqjl+7fbtrcUsGit0q2Ao/W8hyLlhhCg+BaB5Hx+ktuu+N3A6jI8Oy
+LbVHsYu0PidI59wIYgxU/kPXlUq/By9KQH4GpVGHJokF3TzKT/4cJ+nbiB7Asv7j
+7x9+sehZlaBPqwqJAOBzsuccwRdQgIdM0kMZWZXSWxRbClvAfIlxerUKwIpFL+7E
+wP5ULeeVJHcFLu50xqCQsXPcQtagdclYWQWi3hG/WekNpybCbsBGisYe0/XqD309
+cs0ZlUy64GiXjVjAau9597JoarhyNsMkDOgy7b3xn8jv3nXS23aplCc49AFhv2Y4
+j2o93ABbs/xE3wNL+fF2JTX/Uh8IHdClFOmLBit4gyxxXE+Rh2PWDA4FiDyUoLFa
+VBbf3VHDqDYuLIJ8uZqw
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFvDCCA6SgAwIBAgIQIWYVBQUnBQW8irAdrwq+xDANBgkqhkiG9w0BAQsFADB4
+MQswCQYDVQQGEwJUTjE5MDcGA1UEAxMwVHVuaXNpYW4gUm9vdCBDZXJ0aWZpY2F0
+ZSBBdXRob3JpdHkgLSBUdW5Sb290Q0EyMS4wLAYDVQQKEyVOYXRpb25hbCBEaWdp
+dGFsIENlcnRpZmljYXRpb24gQWdlbmN5MB4XDTE1MDUwNTA4NTcwMVoXDTI3MDUw
+NTA4NTcwMVoweDELMAkGA1UEBhMCVE4xOTA3BgNVBAMTMFR1bmlzaWFuIFJvb3Qg
+Q2VydGlmaWNhdGUgQXV0aG9yaXR5IC0gVHVuUm9vdENBMjEuMCwGA1UEChMlTmF0
+aW9uYWwgRGlnaXRhbCBDZXJ0aWZpY2F0aW9uIEFnZW5jeTCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBALAH52L70A1Vzme3V41uDKknVB7rqSSrZ4+PnGEP
+2ygyLzv4LGWSLa66M5LAK57yH15tI12zWB+NocBtdYUKsBNOW1ZGizm9C4K7OkOb
+CLpG7vkX683I1+N1E96uUUgKziCVRp8C7FWMdKpa/PzqCTM1bqNHBsfdfoRoDscS
+ypTD7eZsAm3eAok1swTLRfh8R6TTH9/lXCPi8yJ7uUui/Rc1XUjpv/WzJWOL53jr
+/HUnvYhcpoU/Qd+VfN16Ro/+Htqxq9jTjs0GjMnYUkIRUqKDj1yDe+Qnto8foF49
+0nV9eVOTBpfjA8eWLNoBPHnFO1DosNOhpOLTg31E+BDPoBoq8mWAvXfBmGV2rhIh
+Yso6vr61mcNbxNG/m8AKylgeFabXIV6xTQrlcHiaaOZ0ZjIUKh4Rvoj3BvZVo8Mf
+bheQVdGKQIlWQ9VP5qLJiGQABVE/V7Q8tr5qkXFA8aJc8dftnLZX9lnUKhHl1OW/
+ux7RyNdfRAWbu4k6radDd34VYHyIXZvspVzSRq0Mi1RF1JRRVUVSqlzYEaz4ViJs
+2dIU6bdOQoVURvgBxj0mBnfosjUb8J1CyX/+gCcBUMt/xaxU+mttloxBpKHS57WR
+SG93HIvCK3T+PFzEXZTOq/EglmvBDFpf+eU1uWyjEGfvkapIDu9It3ZYYtm+nkKz
+pL01AgMBAAGjQjBAMB0GA1UdDgQWBBTMc8Wjaikxl6eNoNhUwQp1tiM/pjAPBgNV
+HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEA
+LvKHSO2Znp8BDDzJCnhTfBg13rblbPQAgOGbi9n6+6r7ZbfSyfXXp8t+ybGicVht
+WTfW4DMQyrXZcttOJTeqpt0dGL31yYqceojuHwLELZJUfVfiXBkYIwJ6XEmVtpjn
+wmBBZUC77Fq3cZxQ8nN2+18N7zXPtGmNhehMkBcDC8mzLiA3YxFipk/jNOD7eVXn
+xsKuQv6wNGxJIw5yB3tmBVVI+xIPoMD6TtH7Pcz+/RZLVlDNESynm/exCs+m6+/d
+jriuQgh8pIyU6obHQ+P3PIrfR9IwQMgtU/VvEUnMIYyWQ08QoEehVo0fHFvYVlvr
+NHbhNTpx1MwhL541KPJa3p7k7kdqEOg4vUq0fQR/Ba5ICrQDvy6zChufy63dTdCH
+IbdHdoKDLcdXvpoVoxswGGyjOnFvZEcoktsRYSCad2Ut+axWE2xLo1//m6To7+dY
+6HueO39qp745ChOUyUhOZmTYU0zsQWv9/DYu1w7fYQt7tUCs3UJJbZ6Av2CV8OnA
+P3u7GOk4tVZOp36KYu+YHvh4QKm72OnltLT542ec7FPPuEK0L5OBNaBs9rogimg9
+923/f9NM93qUaAN3Qzs1UapTEj5HExQ5rNZlj6hG/zwh9NK/0EikfqdRm5cS9Zk0
+FyNWhBNjyzTKH8q6qAcp80MkCkl//Q7UkPCrQyFinI8=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFbzCCA1egAwIBAgISESChaRu/vbm9UpaPI+hIvyYRMA0GCSqGSIb3DQEBDQUA
+MEAxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9w
+ZW5UcnVzdCBSb290IENBIEcyMB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAw
+MFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9wZW5UcnVzdDEdMBsGA1UEAwwU
+T3BlblRydXN0IFJvb3QgQ0EgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQDMtlelM5QQgTJT32F+D3Y5z1zCU3UdSXqWON2ic2rxb95eolq5cSG+Ntmh
+/LzubKh8NBpxGuga2F8ORAbtp+Dz0mEL4DKiltE48MLaARf85KxP6O6JHnSrT78e
+CbY2albz4e6WiWYkBuTNQjpK3eCasMSCRbP+yatcfD7J6xcvDH1urqWPyKwlCm/6
+1UWY0jUJ9gNDlP7ZvyCVeYCYitmJNbtRG6Q3ffyZO6v/v6wNj0OxmXsWEH4db0fE
+FY8ElggGQgT4hNYdvJGmQr5J1WqIP7wtUdGejeBSzFfdNTVY27SPJIjki9/ca1TS
+gSuyzpJLHB9G+h3Ykst2Z7UJmQnlrBcUVXDGPKBWCgOz3GIZ38i1MH/1PCZ1Eb3X
+G7OHngevZXHloM8apwkQHZOJZlvoPGIytbU6bumFAYueQ4xncyhZW+vj3CzMpSZy
+YhK05pyDRPZRpOLAeiRXyg6lPzq1O4vldu5w5pLeFlwoW5cZJ5L+epJUzpM5ChaH
+vGOz9bGTXOBut9Dq+WIyiET7vycotjCVXRIouZW+j1MY5aIYFuJWpLIsEPUdN6b4
+t/bQWVyJ98LVtZR00dX+G7bw5tYee9I8y6jj9RjzIR9u701oBnstXW5DiabA+aC/
+gh7PU3+06yzbXfZqfUAkBXKJOAGTy3HCOV0GEfZvePg3DTmEJwIDAQABo2MwYTAO
+BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUajn6QiL3
+5okATV59M4PLuG53hq8wHwYDVR0jBBgwFoAUajn6QiL35okATV59M4PLuG53hq8w
+DQYJKoZIhvcNAQENBQADggIBAJjLq0A85TMCl38th6aP1F5Kr7ge57tx+4BkJamz
+Gj5oXScmp7oq4fBXgwpkTx4idBvpkF/wrM//T2h6OKQQbA2xx6R3gBi2oihEdqc0
+nXGEL8pZ0keImUEiyTCYYW49qKgFbdEfwFFEVn8nNQLdXpgKQuswv42hm1GqO+qT
+RmTFAHneIWv2V6CG1wZy7HBGS4tz3aAhdT7cHcCP009zHIXZ/n9iyJVvttN7jLpT
+wm+bREx50B1ws9efAvSyB7DH5fitIw6mVskpEndI2S9G/Tvw/HRwkqWOOAgfZDC2
+t0v7NqwQjqBSM2OdAzVWxWm9xiNaJ5T2pBL4LTM8oValX9YZ6e18CL13zSdkzJTa
+TkZQh+D5wVOAHrut+0dSixv9ovneDiK3PTNZbNTe9ZUGMg1RGUFcPk8G97krgCf2
+o6p6fAbhQ8MTOWIaNr3gKC6UAuQpLmBVrkA9sHSSXvAgZJY/X0VdiLWK2gKgW0VU
+3jg9CcCoSmVGFvyqv1ROTVu+OEO3KMqLM6oaJbolXCkvW0pujOotnCr2BXbgd5eA
+iN1nE28daCSLT7d0geX0YJ96Vdc+N9oWaz53rK4YcJUIeSkDiv7BO7M/Gg+kO14f
+WKGVyasvc0rQLW6aWQ9VGHgtPFGml4vmu7JwqkwR3v98KzfUetF3NI/n+UL3PIEM
+S1IK
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICITCCAaagAwIBAgISESDm+Ez8JLC+BUCs2oMbNGA/MAoGCCqGSM49BAMDMEAx
+CzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5U
+cnVzdCBSb290IENBIEczMB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFow
+QDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9wZW5UcnVzdDEdMBsGA1UEAwwUT3Bl
+blRydXN0IFJvb3QgQ0EgRzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARK7liuTcpm
+3gY6oxH84Bjwbhy6LTAMidnW7ptzg6kjFYwvWYpa3RTqnVkrQ7cG7DK2uu5Bta1d
+oYXM6h0UZqNnfkbilPPntlahFVmhTzeXuSIevRHr9LIfXsMUmuXZl5mjYzBhMA4G
+A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRHd8MUi2I5
+DMlv4VBN0BBY3JWIbTAfBgNVHSMEGDAWgBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAK
+BggqhkjOPQQDAwNpADBmAjEAj6jcnboMBBf6Fek9LykBl7+BFjNAk2z8+e2AcG+q
+j9uEwov1NcoG3GRvaBbhj5G5AjEA2Euly8LQCGzpGPta3U1fJAuwACEl74+nBCZx
+4nxp5V2a+EEfOzmTk51V6s2N8fvB
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFazCCA1OgAwIBAgISESBVg+QtPlRWhS2DN7cs3EYRMA0GCSqGSIb3DQEBDQUA
+MD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2Vy
+dHBsdXMgUm9vdCBDQSBHMTAeFw0xNDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBa
+MD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2Vy
+dHBsdXMgUm9vdCBDQSBHMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+ANpQh7bauKk+nWT6VjOaVj0W5QOVsjQcmm1iBdTYj+eJZJ+622SLZOZ5KmHNr49a
+iZFluVj8tANfkT8tEBXgfs+8/H9DZ6itXjYj2JizTfNDnjl8KvzsiNWI7nC9hRYt
+6kuJPKNxQv4c/dMcLRC4hlTqQ7jbxofaqK6AJc96Jh2qkbBIb6613p7Y1/oA/caP
+0FG7Yn2ksYyy/yARujVjBYZHYEMzkPZHogNPlk2dT8Hq6pyi/jQu3rfKG3akt62f
+6ajUeD94/vI4CTYd0hYCyOwqaK/1jpTvLRN6HkJKHRUxrgwEV/xhc/MxVoYxgKDE
+EW4wduOU8F8ExKyHcomYxZ3MVwia9Az8fXoFOvpHgDm2z4QTd28n6v+WZxcIbekN
+1iNQMLAVdBM+5S//Ds3EC0pd8NgAM0lm66EYfFkuPSi5YXHLtaW6uOrc4nBvCGrc
+h2c0798wct3zyT8j/zXhviEpIDCB5BmlIOklynMxdCm+4kLV87ImZsdo/Rmz5yCT
+mehd4F6H50boJZwKKSTUzViGUkAksnsPmBIgJPaQbEfIDbsYIC7Z/fyL8inqh3SV
+4EJQeIQEQWGw9CEjjy3LKCHyamz0GqbFFLQ3ZU+V/YDI+HLlJWvEYLF7bY5KinPO
+WftwenMGE9nTdDckQQoRb5fc5+R+ob0V8rqHDz1oihYHAgMBAAGjYzBhMA4GA1Ud
+DwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSowcCbkahDFXxd
+Bie0KlHYlwuBsTAfBgNVHSMEGDAWgBSowcCbkahDFXxdBie0KlHYlwuBsTANBgkq
+hkiG9w0BAQ0FAAOCAgEAnFZvAX7RvUz1isbwJh/k4DgYzDLDKTudQSk0YcbX8ACh
+66Ryj5QXvBMsdbRX7gp8CXrc1cqh0DQT+Hern+X+2B50ioUHj3/MeXrKls3N/U/7
+/SMNkPX0XtPGYX2eEeAC7gkE2Qfdpoq3DIMku4NQkv5gdRE+2J2winq14J2by5BS
+S7CTKtQ+FjPlnsZlFT5kOwQ/2wyPX1wdaR+v8+khjPPvl/aatxm2hHSco1S1cE5j
+2FddUyGbQJJD+tZ3VTNPZNX70Cxqjm0lpu+F6ALEUz65noe8zDUa3qHpimOHZR4R
+Kttjd5cUvpoUmRGywO6wT/gUITJDT5+rosuoD6o7BlXGEilXCNQ314cnrUlZp5Gr
+RHpejXDbl85IULFzk/bwg2D5zfHhMf1bfHEhYxQUqq/F3pN+aLHsIqKqkHWetUNy
+6mSjhEv9DKgma3GX7lZjZuhCVPnHHd/Qj1vfyDBviP4NxDMcU6ij/UgQ8uQKTuEV
+V/xuZDDCVRHc6qnNSlSsKWNEz0pAoNZoWRsz+e86i9sgktxChL8Bq4fA1SCC28a5
+g4VCXA9DO2pJNdWY9BW/+mGBDAkgGNLQFwzLSABQ6XaCjGTXOqAHVcweMcDvOrRl
+++O/QmueD6i9a5jc2NvLi6Td11n0bt3+qsOR0C5CB8AMTVPNJLFMWx5R9N/pkvo=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICHDCCAaKgAwIBAgISESDZkc6uo+jF5//pAq/Pc7xVMAoGCCqGSM49BAMDMD4x
+CzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBs
+dXMgUm9vdCBDQSBHMjAeFw0xNDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4x
+CzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBs
+dXMgUm9vdCBDQSBHMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABM0PW1aC3/BFGtat
+93nwHcmsltaeTpwftEIRyoa/bfuFo8XlGVzX7qY/aWfYeOKmycTbLXku54uNAm8x
+Ik0G42ByRZ0OQneezs/lf4WbGOT8zC5y0xaTTsqZY1yhBSpsBqNjMGEwDgYDVR0P
+AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNqDYwJ5jtpMxjwj
+FNiPwyCrKGBZMB8GA1UdIwQYMBaAFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMAoGCCqG
+SM49BAMDA2gAMGUCMHD+sAvZ94OX7PNVHdTcswYO/jOYnYs5kGuUIe22113WTNch
+p+e/IQ8rzfcq3IUHnQIxAIYUFuXcsGXCwI4Un78kFmjlvPl5adytRSv3tjFzzAal
+U5ORGpOucGpnutee5WEaXw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFSzCCAzOgAwIBAgIRALZLiAfiI+7IXBKtpg4GofIwDQYJKoZIhvcNAQELBQAw
+PzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eTAeFw0xMjA5MjgwODU4NTFaFw0zNzEyMzExNTU5NTla
+MD8xCzAJBgNVBAYTAlRXMTAwLgYDVQQKDCdHb3Zlcm5tZW50IFJvb3QgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQC2/5c8gb4BWCQnr44BK9ZykjAyG1+bfNTUf+ihYHMwVxAA+lCWJP5Q5ow6ldFX
+eYTVZ1MMKoI+GFy4MCYa1l7GLbIEUQ7v3wxjR+vEEghRK5lxXtVpe+FdyXcdIOxW
+juVhYC386RyA3/pqg7sFtR4jEpyCygrzFB0g5AaPQySZn7YKk1pzGxY5vgW28Yyl
+ZJKPBeRcdvc5w88tvQ7Yy6gOMZvJRg9nU0MEj8iyyIOAX7ryD6uBNaIgIZfOD4k0
+eA/PH07p+4woPN405+2f0mb1xcoxeNLOUNFggmOd4Ez3B66DNJ1JSUPUfr0t4urH
+cWWACOQ2nnlwCjyHKenkkpTqBpIpJ3jmrdc96QoLXvTg1oadLXLLi2RW5vSueKWg
+OTNYPNyoj420ai39iHPplVBzBN8RiD5C1gJ0+yzEb7xs1uCAb9GGpTJXA9ZN9E4K
+mSJ2fkpAgvjJ5E7LUy3Hsbbi08J1J265DnGyNPy/HE7CPfg26QrMWJqhGIZO4uGq
+s3NZbl6dtMIIr69c/aQCb/+4DbvVq9dunxpPkUDwH0ZVbaCSw4nNt7H/HLPLo5wK
+4/7NqrwB7N1UypHdTxOHpPaY7/1J1lcqPKZc9mA3v9g+fk5oKiMyOr5u5CI9ByTP
+isubXVGzMNJxbc5Gim18SjNE2hIvNkvy6fFRCW3bapcOFwIDAQABo0IwQDAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBTVZx3gnHosnMvFmOcdByYqhux0zTAOBgNV
+HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAJA75cJTQijq9TFOjj2Rnk0J
+89ixUuZPrAwxIbvx6pnMg/y2KOTshAcOD06Xu29oRo8OURWV+Do7H1+CDgxxDryR
+T64zLiNB9CZrTxOH+nj2LsIPkQWXqmrBap+8hJ4IKifd2ocXhuGzyl3tOKkpboTe
+Rmv8JxlQpRJ6jH1i/NrnzLyfSa8GuCcn8on3Fj0Y5r3e9YwSkZ/jBI3+BxQaWqw5
+ghvxOBnhY+OvbLamURfr+kvriyL2l/4QOl+UoEtTcT9a4RD4co+WgN2NApgAYT2N
+vC2xR8zaXeEgp4wxXPHj2rkKhkfIoT0Hozymc26Uke1uJDr5yTDRB6iBfSZ9fYTf
+hsmL5a4NHr6JSFEVg5iWL0rrczTXdM3Jb9DCuiv2mv6Z3WAUjhv5nDk8f0OJU+jl
+wqu+Iq0nOJt3KLejY2OngeepaUXrjnhWzAWEx/uttjB8YwWfLYwkf0uLkvw4Hp+g
+pVezbp3YZLhwmmBScMip0P/GnO0QYV7Ngw5u6E0CQUridgR51lQ/ipgyFKDdLZzn
+uoJxo4ZVKZnSKdt1OvfbQ/+2W/u3fjWAjg1srnm3Ni2XUqGwB5wH5Ss2zQOXlL0t
+DjQG/MAWifw3VOTWzz0TBPKR2ck2Lj7FWtClTILD/y58Jnb38/1FoqVuVa4uzM8s
+iTTa9g3nkagQ6hed8vbs
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDyzCCArOgAwIBAgIDFE3kMA0GCSqGSIb3DQEBBQUAMIGLMQswCQYDVQQGEwJB
+VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
+bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRgwFgYDVQQLDA9BLVRydXN0LVF1
+YWwtMDIxGDAWBgNVBAMMD0EtVHJ1c3QtUXVhbC0wMjAeFw0xNDA3MDExMTIzMzNa
+Fw0yNDA3MDEwOTIzMzNaMIGLMQswCQYDVQQGEwJBVDFIMEYGA1UECgw/QS1UcnVz
+dCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
+a2VociBHbWJIMRgwFgYDVQQLDA9BLVRydXN0LVF1YWwtMDIxGDAWBgNVBAMMD0Et
+VHJ1c3QtUXVhbC0wMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJaR
+q9eOsFm4Ab20Hq2Z/aH86gyWa48uSUjY6eQkguHYuszr3gdcSMYZggFHQgnhfLmf
+ro/27l5rqKhWiDhWs+b+yZ1PNDhRPJy+86ycHMg9XJqErveULBSyZDdgjhSwOyrN
+ibUir/fkf+4sKzP5jjytTKJXD/uCxY4fAd9TjMEVpN3umpIS0ijpYhclYDHvzzGU
+833z5Dwhq5D8bc9jp8YSAHFJ1xzIoO1jmn3jjyjdYPnY5harJtHQL73nDQnfbtTs
+5ThT9GQLulrMgLU4WeyAWWWEMWpfVZFMJOUkmoOEer6A8e5fIAeqdxdsC+JVqpZ4
+CAKel/Arrlj1gFA//jsCAwEAAaM2MDQwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4E
+CgQIQj0rJKbBRc4wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBh
+MfOINQm4XpzF6DmkOmb/ArSXHf5LObqFmIMooNr2TkyzrUTK/NE+mdrm15Rfdts7
+kZVq/ICfQSFeaPvWaAVq4plH/26OjvMTVv7DfgfPBUxDWqlCuDnDnPAVQ+yo/o5i
+BA5uUlMbp5znbDtlxwF/5gWqcn/hKxSUCP1uiOPIlKfeVvsRmBcJAdoixTM/Ic10
+pavJMGOI20onArvQZAUEbXQLA8cs8naxfF6Bo36U9nk6wn7q8VPXhViekByd17F6
+9A+ah0Iqw4SPf9BqNRIe1YxxjDhCmjWt3aoyE3ZFBuGjW+r2ipb/vGU1+2oyy2Fd
+2dMmiMQ7gGhWX9X6gWLd
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGgTCCBGmgAwIBAgIEUVLFjDANBgkqhkiG9w0BAQ0FADCBzzELMAkGA1UEBhMC
+VEgxSTBHBgNVBAoMQEVsZWN0cm9uaWMgVHJhbnNhY3Rpb25zIERldmVsb3BtZW50
+IEFnZW5jeSAoUHVibGljIE9yZ2FuaXphdGlvbikxNzA1BgNVBAsMLlRoYWlsYW5k
+IE5hdGlvbmFsIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxPDA6BgNVBAMM
+M1RoYWlsYW5kIE5hdGlvbmFsIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+LSBHMTAeFw0xMzAzMjcwOTQwMjJaFw0zNjAzMjcxMDEwMjJaMIHPMQswCQYDVQQG
+EwJUSDFJMEcGA1UECgxARWxlY3Ryb25pYyBUcmFuc2FjdGlvbnMgRGV2ZWxvcG1l
+bnQgQWdlbmN5IChQdWJsaWMgT3JnYW5pemF0aW9uKTE3MDUGA1UECwwuVGhhaWxh
+bmQgTmF0aW9uYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTE8MDoGA1UE
+AwwzVGhhaWxhbmQgTmF0aW9uYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1rpK5Izxmi6J
+F8JA84IAMf4TAnplygjYqyKxAppxNEpkWYLlQkbrI/aLWiKxzzbnc20UbfdJlF7v
+5zRZZ/aoz1ZZI4RV4vsaEcqj+YqrZx6CE9CLOZq/D8IPPNZh2OqbzxUOvtTwzD9z
+nAT0onFzfYCwnTHxBvmwE+WISTD2Fn2IVyk6LKKMkJjOERbOTVEP/MeyzPJmGCGA
+BYitudDFC3gB/k7SCIs28VbPbrpzJgvW96VGamlOlranBlbM5i4xn26L7ZwAVUf0
+e6Z6tt8BHUgEC6tCwnBKlL38rFHyqz/W62DfCP/1ErKJKnq5RZklfXzvzxXQSCwQ
+1tS8CCe1hinU49PEKpAS9qIq+YuvFv8C83puz6LLarTgcgv7PoV/4ofgL0Mj+IXJ
+merWQN6g++fedv+PgDnrZxITpvvlo/wmgFlj8tIj6x/GSHNRnbezoFuraoj5v/tx
+UdxutnbvsFvyy4gwugbbG0HTVbSttOogIfzUd7Y9W6EMLSUhUiNS1zRTbRYEUmb4
+1erxLFjyO7HxfkO13IK4XuOH4aOkX+eJDryc6Sk6JafYT2qH1JZElxgWh8JxUoXO
+eoytHme+ui2/oyEnxecw6QaZG7AM475SZZNNYUvyOOaPGPECUpgupg4dBc8m7AEj
+Bzb24BM3qUeIA4dHy92yAR9fZBsEm8UCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB
+/zAOBgNVHQ8BAf8EBAMCAQYwHwYDVR0jBBgwFoAUfyN2t4Mqcfcs0YgP3UxfMgpo
+u38wHQYDVR0OBBYEFH8jdreDKnH3LNGID91MXzIKaLt/MA0GCSqGSIb3DQEBDQUA
+A4ICAQANZRxaB6merEzJX0/dMWzZ4lMdP5GNWrOMvTSeLk3KWNOvWWJJNnOwYXYR
+vos2x5Sq+DZpByDfXC8L9o4CFu9SBjjd7TRgqodeF844bVBN5d/lUb4dBJb03Orl
+2eqO3p90y4KUU4Fs+14s1aF1lk37MFzNYaCeocyCuVJyC4djYXthNHS2Lt3i4Ye1
+SRRhFUdKSz53uQjSNk9YZ0KJgHhaEiPtRTvdvyAmVPxbP2ABGEHjZ3UTtyoVcMzL
+edIU+PPC4CoQ9/lC2NzaCtMBBdtXmMm26wyZCsqMfe87FijA91/hR1HT+AZFB/AL
+usKcmOzSf01+/Qb8c8LCVRJi0CNE3yLk+HnnpRBOPsmOqoPpNuqrecYFhM2WaHx0
+rD8y/67JQOyPUL9QqLdO1a02atcnM/rn2C3ZN5iFG6YM6nsQE3AenojF3D6OuQ1V
+3wHO0El2UdsQYnhBrWljpZUJtxgGb/0EZ9QQD07bO18MY3zrZL1uSwCogfqSMoYw
+jAm/fVg/ZQ2pN9FF42ZpxGj0YqmoHjfZLplJoLAGjEB/hbH18UxLOKAIzCrZlsDs
+wA08LkVXw++V2rbL7ltlqCsyr8kn+RVTN3VYH0vql6IiXGdW4qDMNcSswzFAuZwD
+er3JSA7qahXanLx4b8kV52QD2UkTZkVLLfSEmbPqpxKV5ZMu/A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFdjCCA16gAwIBAgIQXmjWEXGUY1BWAGjzPsnFkTANBgkqhkiG9w0BAQUFADBV
+MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxKjAoBgNV
+BAMTIUNlcnRpZmljYXRpb24gQXV0aG9yaXR5IG9mIFdvU2lnbjAeFw0wOTA4MDgw
+MTAwMDFaFw0zOTA4MDgwMTAwMDFaMFUxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFX
+b1NpZ24gQ0EgTGltaXRlZDEqMCgGA1UEAxMhQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkgb2YgV29TaWduMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvcqN
+rLiRFVaXe2tcesLea9mhsMMQI/qnobLMMfo+2aYpbxY94Gv4uEBf2zmoAHqLoE1U
+fcIiePyOCbiohdfMlZdLdNiefvAA5A6JrkkoRBoQmTIPJYhTpA2zDxIIFgsDcScc
+f+Hb0v1naMQFXQoOXXDX2JegvFNBmpGN9J42Znp+VsGQX+axaCA2pIwkLCxHC1l2
+ZjC1vt7tj/id07sBMOby8w7gLJKA84X5KIq0VC6a7fd2/BVoFutKbOsuEo/Uz/4M
+x1wdC34FMr5esAkqQtXJTpCzWQ27en7N1QhatH/YHGkR+ScPewavVIMYe+HdVHpR
+aG53/Ma/UkpmRqGyZxq7o093oL5d//xWC0Nyd5DKnvnyOfUNqfTq1+ezEC8wQjch
+zDBwyYaYD8xYTYO7feUapTeNtqwylwA6Y3EkHp43xP901DfA4v6IRmAR3Qg/UDar
+uHqklWJqbrDKaiFaafPz+x1wOZXzp26mgYmhiMU7ccqjUu6Du/2gd/Tkb+dC221K
+mYo0SLwX3OSACCK28jHAPwQ+658geda4BmRkAjHXqc1S+4RFaQkAKtxVi8QGRkvA
+Sh0JWzko/amrzgD5LkhLJuYwTKVYyrREgk/nkR4zw7CT/xH8gdLKH3Ep3XZPkiWv
+HYG3Dy+MwwbMLyejSuQOmbp8HkUff6oZRZb9/D0CAwEAAaNCMEAwDgYDVR0PAQH/
+BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOFmzw7R8bNLtwYgFP6H
+EtX2/vs+MA0GCSqGSIb3DQEBBQUAA4ICAQCoy3JAsnbBfnv8rWTjMnvMPLZdRtP1
+LOJwXcgu2AZ9mNELIaCJWSQBnfmvCX0KI4I01fx8cpm5o9dU9OpScA7F9dY74ToJ
+MuYhOZO9sxXqT2r09Ys/L3yNWC7F4TmgPsc9SnOeQHrAK2GpZ8nzJLmzbVUsWh2e
+JXLOC62qx1ViC777Y7NhRCOjy+EaDveaBk3e1CNOIZZbOVtXHS9dCF4Jef98l7VN
+g64N1uajeeAz0JmWAjCnPv/So0M/BVoG6kQC2nz4SNAzqfkHx5Xh9T71XXG68pWp
+dIhhWeO/yloTunK0jF02h+mmxTwTv97QRCbut+wucPrXnbes5cVAWubXbHssw1ab
+R80LzvobtCHXt2a49CUwi1wNuepnsvRtrtWhnk/Yn+knArAdBtaP4/tIEp9/EaEQ
+PkxROpaw0RPxx9gmrjrKkcRpnd8BKWRRb2jaFOwIQZeQjdCygPLPwj2/kWjFgGce
+xGATVdVhmVd8upUPYUk6ynW8yQqTP2cOEvIo4jEbwFcW3wh8GcF+Dx+FHgo2fFt+
+J7x6v+Db9NpSvd4MVHAxkUOVyLzwPt0JfjBkUO1/AaQzZ01oT74V77D2AhGiGxMl
+OtzCWfHjXEa7ZywCRuoeSKbmW9m1vFGikpbbqsY3Iqb+zCB0oy2pLmvLwIIRIbWT
+ee5Ehr7XHuQe+w==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFWDCCA0CgAwIBAgIQUHBrzdgT/BtOOzNy0hFIjTANBgkqhkiG9w0BAQsFADBG
+MQswCQYDVQQGEwJDTjEaMBgGA1UEChMRV29TaWduIENBIExpbWl0ZWQxGzAZBgNV
+BAMMEkNBIOayg+mAmuagueivgeS5pjAeFw0wOTA4MDgwMTAwMDFaFw0zOTA4MDgw
+MTAwMDFaMEYxCzAJBgNVBAYTAkNOMRowGAYDVQQKExFXb1NpZ24gQ0EgTGltaXRl
+ZDEbMBkGA1UEAwwSQ0Eg5rKD6YCa5qC56K+B5LmmMIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA0EkhHiX8h8EqwqzbdoYGTufQdDTc7WU1/FDWiD+k8H/r
+D195L4mx/bxjWDeTmzj4t1up+thxx7S8gJeNbEvxUNUqKaqoGXqW5pWOdO2XCld1
+9AXbbQs5uQF/qvbW2mzmBeCkTVL829B0txGMe41P/4eDrv8FAxNXUDf+jJZSEExf
+v5RxadmWPgxDT74wwJ85dE8GRV2j1lY5aAfMh09Qd5Nx2UQIsYo06Yms25tO4dnk
+UkWMLhQfkWsZHWgpLFbE4h4TV2TwYeO5Ed+w4VegG63XX9Gv2ystP9Bojg/qnw+L
+NVgbExz03jWhCl3W6t8Sb8D7aQdGctyB9gQjF+BNdeFyb7Ao65vh4YOhn0pdr8yb
++gIgthhid5E7o9Vlrdx8kHccREGkSovrlXLp9glk3Kgtn3R46MGiCWOc76DbT52V
+qyBPt7D3h1ymoOQ3OMdc4zUPLK2jgKLsLl3Az+2LBcLmc272idX10kaO6m1jGx6K
+yX2m+Jzr5dVjhU1zZmkR/sgO9MHHZklTfuQZa/HpelmjbX7FF+Ynxu8b22/8DU0G
+AbQOXDBGVWCvOGU6yke6rCzMRh+yRpY/8+0mBe53oWprfi1tWFxK1I5nuPHa1UaK
+J/kR8slC/k7e3x9cxKSGhxYzoacXGKUN5AXlK8IrC6KVkLn9YDxOiT7nnO4fuwEC
+AwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+BBYEFOBNv9ybQV0T6GTwp+kVpOGBwboxMA0GCSqGSIb3DQEBCwUAA4ICAQBqinA4
+WbbaixjIvirTthnVZil6Xc1bL3McJk6jfW+rtylNpumlEYOnOXOvEESS5iVdT2H6
+yAa+Tkvv/vMx/sZ8cApBWNromUuWyXi8mHwCKe0JgOYKOoICKuLJL8hWGSbueBwj
+/feTZU7n85iYr83d2Z5AiDEoOqsuC7CsDCT6eiaY8xJhEPRdF/d+4niXVOKM6Cm6
+jBAyvd0zaziGfjk9DgNyp115j0WKWa5bIW4xRtVZjc8VX90xJc/bYNaBRHIpAlf2
+ltTW/+op2znFuCyKGo3Oy+dCMYYFaA6eFN0AkLppRQjbbpCBhqcqBT/mhDn4t/lX
+X0ykeVoQDF7Va/81XwVRHmyjdanPUIPTfPRm94KNPQx96N97qA4bLJyuQHCH2u2n
+FoJavjVsIE4iYdm8UXrNemHcSxH5/mc0zy4EZmFcV5cjjPOGG0jfKq+nwf/Yjj4D
+u9gqsPoUJbJRa4ZDhS4HIxaAjUz7tGM7zMN07RujHv41D198HRaG9Q7DlfEvr10l
+O1Hm13ZBONFLAzkopR6RctR9q5czxNM+4Gm2KHmgCY0c0f9BckgG/Jou5yD5m6Le
+ie2uPAmvylezkolwQOQvT8Jwg0DXJCxr5wkf09XHwQj02w47HAcLQxGEIYbpgNR1
+2KvxAmLBsX5VYc8T1yaw15zLKYs4SgsOkI26oQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEBDCCAuygAwIBAgIQcm4t6SET0D64HacvEQKpmTANBgkqhkiG9w0BAQUFADA5
+MQswCQYDVQQGEwJERTERMA8GA1UECgwIREFURVYgZUcxFzAVBgNVBAMMDkNBIERB
+VEVWIEJUIDAzMB4XDTE0MDUwMjA1NDA1OVoXDTIyMDgwMjA3NDA1OVowOTELMAkG
+A1UEBhMCREUxETAPBgNVBAoMCERBVEVWIGVHMRcwFQYDVQQDDA5DQSBEQVRFViBC
+VCAwMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN8m/u6FoJEwIAN6
+CrR0SFKYJg/iSx9uP210DTcYg37PHHTGyN1bLiGHgbvqk+mM/SZ4cATft6TehfRd
+IRPYRd07MJcpaK4n71I6Ol1lg+IpZdovxcVIXPb/VIi1K2JIlaSjOLJA0uWUEyMo
+LQofyt0pq2ca880X36a5Rh4bZkcqf7pN2y3ELgnEpJKpXR7iPlR1kPh5v7BWzUmR
+s8+ZHDAQXI1OFktvzZ62aC6AhQK7V5mVLn7VyimbENtQHAvidjJgEKy4GfCnnrUw
+6/y3D05souCR17Dbp4HKqJ49xb/qrqkiy+eH3DHEGAeS6X72D9hgz6roBXd3C83x
+uuaqQZ0CAwEAAaOCAQYwggECMA4GA1UdDwEB/wQEAwIBBjBwBgNVHSMEaTBngBT0
+tL5vfBKNFXaHONl/TXyHwin5w6E9pDswOTELMAkGA1UEBhMCREUxETAPBgNVBAoM
+CERBVEVWIGVHMRcwFQYDVQQDDA5DQSBEQVRFViBCVCAwM4IQcm4t6SET0D64Hacv
+EQKpmTAdBgNVHQ4EFgQU9LS+b3wSjRV2hzjZf018h8Ip+cMwEgYDVR0TAQH/BAgw
+BgEB/wIBADBLBgNVHSAERDBCMEAGBgQAj3oBAjA2MDQGCCsGAQUFBwIBFihodHRw
+Oi8vd3d3LmRhdGV2LmRlL3plcnRpZmlrYXQtcG9saWN5LWJ0MA0GCSqGSIb3DQEB
+BQUAA4IBAQASxRtR+U+exsXxFNZ/3i8mD5wvDMcYCGgHbi+ex/7SjzgRoUrlg0kF
+c95PH1fE8efpxKKAlJqdGDl3Cup23hXV09mQGNQWXk8sgoFm75RN027JLFxgYJhc
+ipdxMHuO4cUW+0oEg9VpsMcoC4WoZ5F4YPMETUofIvfolbGe+8MXrjPp3Vh3HCNf
+pyOEcGViu0NWVLhu0BdC8E4W9Ea8NfPTkNhLY0AbrlH/nFHf1RVgVRDMfZTYNLSf
+xPnCquLZzk06M09wZgYDoBasz5hWY+nUJ6SSUuzwMthy9fv8f9CLILWfJLWFWJVg
+b7mAY32oFbztAP50xVl2qNh9mZKnxfLz
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIECDCCAvCgAwIBAgIQW3oYF1OHGkfQD1vxtQn2yjANBgkqhkiG9w0BAQUFADA6
+MQswCQYDVQQGEwJERTERMA8GA1UECgwIREFURVYgZUcxGDAWBgNVBAMMD0NBIERB
+VEVWIElOVCAwMzAeFw0xNDA1MDIwNTQwNTlaFw0yMjA4MDIwNzQwNTlaMDoxCzAJ
+BgNVBAYTAkRFMREwDwYDVQQKDAhEQVRFViBlRzEYMBYGA1UEAwwPQ0EgREFURVYg
+SU5UIDAzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxYNSf7y1o3fz
+L6/fABPC7hUfbUCf0WkxSsoP8wg3oBGzdSkELQFML0wyqVJocztAu7etnMatNJ5f
+CliK6XSRUdSsHA3szCf8NqMttmXVaLokvVvt1LT4XE4obgUNzRTyfuJJVmE9QGrc
+7NBrHi01jjKjCOlBuUm7L1ukdfaQZFqEOSp+HTtoKqnssPfZT++B/7qVxpEwSZ9C
+09aMmwejv5S3VxIDB2GAeYnUxedcp3DDspAWH1hs/lLc4cd76XJE+9mD25ZIZinM
+YZLm4QRjG9PfJWiKxkB2wAcVVEmK/xLazHW1IkpgCcLCemOGC7e8wsImaSkv3qAE
+Bj2CpVI0tQIDAQABo4IBCDCCAQQwDgYDVR0PAQH/BAQDAgEGMHEGA1UdIwRqMGiA
+FH3XXqYaNtab4NBMlveqzleeKPIjoT6kPDA6MQswCQYDVQQGEwJERTERMA8GA1UE
+CgwIREFURVYgZUcxGDAWBgNVBAMMD0NBIERBVEVWIElOVCAwM4IQW3oYF1OHGkfQ
+D1vxtQn2yjAdBgNVHQ4EFgQUfddepho21pvg0EyW96rOV54o8iMwEgYDVR0TAQH/
+BAgwBgEB/wIBADBMBgNVHSAERTBDMEEGBgQAj3oBAjA3MDUGCCsGAQUFBwIBFilo
+dHRwOi8vd3d3LmRhdGV2LmRlL3plcnRpZmlrYXQtcG9saWN5LWludDANBgkqhkiG
+9w0BAQUFAAOCAQEAcRETUunY9ZdyWCVtJx4vlIu4YbI5+/lq0uR4W/LuiwNlMw+V
+jLGOMCGzfI7J1TnLzLeTTbjH87sKfmpSxzjIUB/xvYKSF7Kt0UK7KSU6EqEGQp+e
+JzeES6LVoJSVB3N+POxqAkFnm3f+NY79ViebM++FD47kmLZznTSF/NNzNVhf0VOS
+FNRjbcXiL7J/uzAX9uzb8dk0rpXatyTCj0EB8r1PsuHChLxc1qva6VX3kFWLfwnd
+yugKpYD+pivJ5TbEjc1GQIg3bURXDazhOjuWfqbpgR6Bdg7qUYvlDiCqhv0P1dUJ
+DAYD2j7lSL3gAYptpFUUBD+wEN5MsRC+qpliNA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIECDCCAvCgAwIBAgIQfMCV6tWUdOnELRqV7iGZITANBgkqhkiG9w0BAQUFADA6
+MQswCQYDVQQGEwJERTERMA8GA1UECgwIREFURVYgZUcxGDAWBgNVBAMMD0NBIERB
+VEVWIFNURCAwMzAeFw0xNDA1MDIwNTQwNTlaFw0yMjA4MDIwNzQwNTlaMDoxCzAJ
+BgNVBAYTAkRFMREwDwYDVQQKDAhEQVRFViBlRzEYMBYGA1UEAwwPQ0EgREFURVYg
+U1REIDAzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzpQxOR+SFjjF
+uW2XftQhU/iMCILJXtGsxOdAL9ljNuHqHqr/LbSKTKisfYEFUReIl+z/khXty9yb
+KEFj8zR/0rVU+cI8u9TauxFrniIEo4+G6GIHpzR11PkK5l5ZsENHJUG7YKE4l+ZD
+6CZjMlIvmgvUGruOwtf5jB85lfL3vlBkwnTx5Rq2RpMZblOoi6ZihF70Uu1H0Ef3
+Di2OHn1iFXai16KSvgFzQ/x+SSfnzz/I75xMfiXou95yXpUElumMEHrvAVmR+poc
+DjDPu9gqei8gaBfeNKdHqk7T5Qm2mDCHxJobRqpyRoIflmuPg8/2IXsHFByJJqJe
+fVuEncEgrQIDAQABo4IBCDCCAQQwDgYDVR0PAQH/BAQDAgEGMHEGA1UdIwRqMGiA
+FCKhhjsmvVsU/2qRhfUikvpxvtr8oT6kPDA6MQswCQYDVQQGEwJERTERMA8GA1UE
+CgwIREFURVYgZUcxGDAWBgNVBAMMD0NBIERBVEVWIFNURCAwM4IQfMCV6tWUdOnE
+LRqV7iGZITAdBgNVHQ4EFgQUIqGGOya9WxT/apGF9SKS+nG+2vwwEgYDVR0TAQH/
+BAgwBgEB/wIBADBMBgNVHSAERTBDMEEGBgQAj3oBAjA3MDUGCCsGAQUFBwIBFilo
+dHRwOi8vd3d3LmRhdGV2LmRlL3plcnRpZmlrYXQtcG9saWN5LXN0ZDANBgkqhkiG
+9w0BAQUFAAOCAQEAQACLpf/FFwFE0kvgkz96y0OzYAub0s9aQnQmKa0WPDLgWNRj
+7I4tXJBK51b2gG/jRSP74aIyOI3pgDJ8JkR9BXg0wbU4fZFxxrPf5RWyMcYhjMDw
+SYrUBHqXHVlGjO+/glVkgO14E1F9oJBNhp24AvY8tBBzdhUdhZUFvQfB2EdP4F4Q
+5LTPrB/F41k5YC/IXZSL82tkx6lc5L3beXmEst4ZI6vy01l/BMP62mKmt1CfvMVt
+1Rbn9tMNJrC0yESqCyLV8QC2FMv+pJg9zn8xOWtdVD8q76iwECz95sBJF9cklhSD
+lAx62uVfeY/NzvGVLPYiO8Nhj/GEktP25k20OA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjET
+MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAb
+BgNVBAMTFENlcnRpbm9taXMgLSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMz
+MTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMx
+FzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRDZXJ0aW5vbWlzIC0g
+Um9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQosP5L2
+fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJfl
+LieY6pOod5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQV
+WZUKxkd8aRi5pwP5ynapz8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDF
+TKWrteoB4owuZH9kb/2jJZOLyKIOSY008B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb
+5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09xRLWtwHkziOC/7aOgFLSc
+CbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE6OXWk6Ri
+wsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJ
+wx3tFvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SG
+m/lg0h9tkQPTYKbVPZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4
+F2iw4lNVYC2vPsKD2NkJK/DAZNuHi5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZng
+WVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIB
+BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I6tNxIqSSaHh0
+2TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF
+AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/
+0KGRHCwPT5iVWVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWw
+F6YSjNRieOpWauwK0kDDPAUwPk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZS
+g081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAXlCOotQqSD7J6wWAsOMwaplv/8gzj
+qh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJy29SWwNyhlCVCNSN
+h4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9Iff/
+ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8V
+btaw5BngDwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwj
+Y/M50n92Uaf0yKHxDHYiI0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ
+8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nMcyrDflOR1m749fPH0FFNjkulW+YZFzvW
+gQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVrhkIGuUE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIExTCCA62gAwIBAgIESbY1GDANBgkqhkiG9w0BAQsFADBiMQswCQYDVQQGEwJT
+QTEyMDAGA1UECgwpTmF0aW9uYWwgQ2VudGVyIGZvciBEaWdpdGFsIENlcnRpZmlj
+YXRpb24xHzAdBgNVBAsMFlNhdWRpIE5hdGlvbmFsIFJvb3QgQ0EwHhcNMTIwNDI5
+MDY1NTIwWhcNMjkxMTI5MDcyNTIwWjBiMQswCQYDVQQGEwJTQTEyMDAGA1UECgwp
+TmF0aW9uYWwgQ2VudGVyIGZvciBEaWdpdGFsIENlcnRpZmljYXRpb24xHzAdBgNV
+BAsMFlNhdWRpIE5hdGlvbmFsIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDj5CziDK+WOay1n4cRF/Ojv4FFDfMaDLoy4kzop4bbXNK52zVK
+Ls1+cYIk+twf8uS8zrfG4sreKWjP7yRbv6YVz57jaUuUufz7nNhjpblp383u3Mhc
+wKD+KRWTvz2Gg1W1lhy9p3DatwXkOZO/pXnk9ZNGGPLbDecqd2YMgCdKPjzdT5A1
+xmuBqj1vCaWMLiFXC7AKkOqhHvpYDUmnzyuyqMA46RPalFhAki/lOL22iSZzhIGN
+60pZNDB4KuqLFkjBN5J1mI0KSi5/2xKO1ik5MCvuvYC2KOlXcBSCfYST/gk1vGD1
+GHVQlBQkWkwYlxNCogT8mb2oWpvRZ7McG/KfAgMBAAGjggGBMIIBfTAOBgNVHQ8B
+Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAzBggrBgEFBQcBAQQnMCUwIwYIKwYB
+BQUHMAGGF2h0dHA6Ly9vY3NwLm5jZGMuZ292LnNhMIHkBgNVHR8Egdwwgdkwgaag
+gaOggaCGKWh0dHA6Ly93ZWIubmNkYy5nb3Yuc2EvY3JsL25yY2FwYXJ0YTEuY3Js
+pHMwcTELMAkGA1UEBhMCU0ExMjAwBgNVBAoMKU5hdGlvbmFsIENlbnRlciBmb3Ig
+RGlnaXRhbCBDZXJ0aWZpY2F0aW9uMR8wHQYDVQQLDBZTYXVkaSBOYXRpb25hbCBS
+b290IENBMQ0wCwYDVQQDDARDUkwxMC6gLKAqhihodHRwOi8vd2ViLm5jZGMuZ292
+LnNhL2NybC9ucmNhY29tYjEuY3JsMB8GA1UdIwQYMBaAFPyZmEEX4/M9Hv23cqm/
+oxbkKumqMB0GA1UdDgQWBBT8mZhBF+PzPR79t3Kpv6MW5CrpqjANBgkqhkiG9w0B
+AQsFAAOCAQEALpUOix3h+/qcQm1Ai7/f7DMESwUOXCI2H6QClDh1/AhZm52FvznN
+m86ATFaGmU1zZvW2Asm0JEiPC2Pzjn8xgZt8WXeRtSMIeXptPsXVD0eCsO+XLic0
+uYfR1AV8Xz0hN6R/yavRmJD3S5EYrsTpI4nou2DGS88L2PcrfSWM4DZk5KuqeD02
++qL0SZIDtRnu13JgsP7JB2q4YAWZP31WBHBI3TPGSOkB88LqRXGaQ1r9vhkzM4ne
+PFjJEodWE2EmHpEQQ3y8Hgw+0Fp8SX523G4BHUuSqdlm5Xod9LiLYC7slSz/TWTI
+7CUAD9jzEqpL1/PSBmXeLdniE6YHskWu6g==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFrjCCA5agAwIBAgIQPoxPvOQpg4JNhFWO1TWAzzANBgkqhkiG9w0BAQsFADBx
+MQswCQYDVQQGEwJMVDErMCkGA1UEChMiU2thaXRtZW5pbmlvIHNlcnRpZmlrYXZp
+bW8gY2VudHJhczEZMBcGA1UECxMQQ0EgUk9PVCBTZXJ2aWNlczEaMBgGA1UEAxMR
+U1NDIEdETCBDQSBSb290IEIwHhcNMTMwNjA0MTQyMDE1WhcNMzMwNjA0MTQyMTU1
+WjBxMQswCQYDVQQGEwJMVDErMCkGA1UEChMiU2thaXRtZW5pbmlvIHNlcnRpZmlr
+YXZpbW8gY2VudHJhczEZMBcGA1UECxMQQ0EgUk9PVCBTZXJ2aWNlczEaMBgGA1UE
+AxMRU1NDIEdETCBDQSBSb290IEIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCPlenS68FzJcc4Z/CDjlO8tsvOunPbTyf2IpA/Qr8h1t5igrRvBAVJCTt3
+AddLX1LS2RnHbXwMqToJYuQqGGmMoN3rrBO2DjkRgGlOY1/cPA362YxivmSFMjJZ
+l1CTid/7/9TYZXHHRlWiG5lhH9xQAMgXeehQsAxe5v52pgFOCchwbPqQs17cPQfN
+SaNOVl4ST2RBf34MFcOg3rOjKQZJRKFfbz+BoERN8HsKOCjtEu5jl8N7XYxPcd2V
+OtouqAFGCvNs6LXxHwgA8UCSGyYAMXU5RkkmuaTUcXcRpE8zzAnb2dEhS5JErM54
+YoIX+/oStH3V8obt9H6WFOaNA1KvzRei1Ryl/oGmmu195NkOMmYQj9vZMzGBfilX
+78yyoWDuilu5Zdt/G5osjycxiYoota+xVtQDIu4lT9iavdJsV7yDpkgfLFUHCTQr
+uXksAqWgX3x2nyQyPC2S3+tIV4eh9v4j+jSrifVoG44fqm4OpdIh0u+50bFJVzVa
+hNMe4gJtUhB/4oxNIdsyMhx9zJYiAy1qpwZCbW6Qh/ocXLBP0ANBE/oLU+bBEAJI
+C3dj9KWcUXuYZtfFdjLlb10UYX0Mu22VQNqpJsf3qcvS/ifBK/axaIb+42JSmVCO
+K95BIQcbh/VAHXCtz/3CQ6g1VhFCxcteZqHIqGj3/kxXYTZSgQIDAQABo0IwQDAO
+BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUcgNGh2H2
+HbPUlWO5UHduDauY/i8wDQYJKoZIhvcNAQELBQADggIBAAjbijKBdDNxFuwhhVNI
+Cm8fcuPjBPgutz/zJJVPnO0T4YiCAvZm97exLYAnra64bf4jBxEIq3RhjCgS+fYQ
+NPDPtnyjdS0S1JTfdO6xmKux7iJiS1kff/4aZa1N4qQRPxMhtNg1i3ZApl+9MxHf
+mOMhXh2ju3g2AjvY/WSE2jfNWe38DNB0pGtxPDYSRJ5+bk8KIRxlH0sSbL+Octbd
+PgBwmAFFK+yVkOPTaTjnK51+ZVlb4duFymP+q7/k0P3kUroa5v7GkLp7zvGkYsVH
+viTHoHrlIeHGCOAMiYOPgGn97qDfekw600gqFr+uppW13Wgf+w61BYzRskR8YDBW
+dhe1NU+o1QrrwrVuAu6cXw6jsQGo5VNvfoNBHxXY/+HCthrxRpxkoBrgSsq4prSJ
+JO57lZli1OJAu86jmn0dcvMbgUF3AF7sPKIwBTzNfEg2E8gysGtvnzgoOGlce+bi
+rYO7bRPRLrfRdm9dMF65UEVI1kiAk1HJFqkQXWfGy35nfQVP9CDvJCVe7WdDxvtu
+efuy8sjJzkF8BeCti80KRS7iYp+XkfT5Y+zywmCK3Bv/Iaj/I4eMc42wOswfjzFy
+Cv2Wod8aU9M2trB3Rt4D9sKALm+XI+ERzFGYP+5A//Q9m4h/jLvhWYa9CTQnXJ4K
+kzI7VSqpXgsND6mmUQTimyoR
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGQDCCBCigAwIBAgIIdPhg8eijj0EwDQYJKoZIhvcNAQELBQAwgasxCzAJBgNV
+BAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDE8MDoGA1UECgwzTklTWiBOZW16ZXRp
+IEluZm9rb21tdW5pa8OhY2nDs3MgU3pvbGfDoWx0YXTDsyBacnQuMUswSQYDVQQD
+DEJGxZF0YW7DunPDrXR2w6FueWtpYWTDsyAtIEtvcm3DoW55emF0aSBIaXRlbGVz
+w610w6lzIFN6b2xnw6FsdGF0w7MwHhcNMTMwOTEzMTAyNzA0WhcNMzMwOTEzMTAy
+NzA0WjCBqzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MTwwOgYDVQQK
+DDNOSVNaIE5lbXpldGkgSW5mb2tvbW11bmlrw6FjacOzcyBTem9sZ8OhbHRhdMOz
+IFpydC4xSzBJBgNVBAMMQkbFkXRhbsO6c8OtdHbDoW55a2lhZMOzIC0gS29ybcOh
+bnl6YXRpIEhpdGVsZXPDrXTDqXMgU3pvbGfDoWx0YXTDszCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBALVCpWRI22SlN/gsuJkCUbmiKMT7cATE2WyKhvcP
+iRekhMIubE71/0TvW0MOiX83NaVbyOQjW68ZnFvtrNYALttjysNU2K9n1MtgRKJP
+z6Te/B8xZla34d04ilP8zyMVi4qH/Qkw5ZhHBA4Waa8JBbzH1JBFj2hjvoJYN/vY
+TG+lrBV3daWIZDhc0mUPUwXOlDCXb3qB6WSYEtEeSp/B8xfbGTYQObgBs7d4TbUM
+e16qTp25zV04/39J/rdIrwNCbL5kG2H5zmt6m1BxAPNXl8UBdBurySZZbHq/Cpdn
+lrWARUgBRpxAFORhOCFbiWTiBTYToCrO24gEhkQ13JM0WVdq7VNj+ovCGBY89HHH
+PgwaEeTODyDDFyOro38TVay0/5bYwC96CZvbHJaNpoz8oWqma9EMnTGsmjH6UvmJ
+OfovU/PpkS5Qjqq4pCWvG4vZalKIVwrDC5pxn7zKRYrpudWVwbbCztENaUo2PK6N
+rMt19pAhwwmXzi0SdmJe6w6Pcl8rm7DJChXz/s/3RIRGAf3PZuzQMJd8bazROMFG
+cgcXDj77MObLNNW1cxNFIQ4dGWtIFtrokakG0Og9b/qM0bj1mQPx69i1abu4iU9S
+Aqd+PtvsxZcGlftT6+DT58iPiJn/LreXmX2E81H9joND3vOv4DN0xBUcKRenSXPc
+wE7dAgMBAAGjZjBkMB0GA1UdDgQWBBTVqFEOeTByXrSsFg3TtevqwUvcOjASBgNV
+HRMBAf8ECDAGAQH/AgEDMB8GA1UdIwQYMBaAFNWoUQ55MHJetKwWDdO16+rBS9w6
+MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAYfZkTup7l8LCAtlZ
+MoBtgpKi+k2Cc2ZanYLSVWIw+CDNp9OJwcZzxNhdST3Ovgx6HchpbD367wD2gZqN
+O1VPDJ1W2afmTeZrsKK1oP7fXYNbqxHyaxivq2bbG8lLGvdE3fGcgqyaXqioqDGe
+3pzBQiKMxBOE5SxDBhspaTPX4AcCH6vuSZ7Xw4iuWRuXy/gbZWABzG3hQCAtSyEB
+7B4ssYFr3saM9TSwjMOb3lg+EU3oSEyHlu5aR0tCb57og0iCuZrpPET5UZNUq5RF
++aiVrqaIefXmkqhYIi7UlEwYuq39p4VaghNqva5bwCwZXdiTwN11QDNp2U4mCjaH
+pAEM4d+tDBkYX4jKNbEKe4EHZvl/Dy1tGYrk5IO7Qx1eT9LhKTjBH/Vco1Rg6/hD
+3uaVBJmH4cupJDp5LRpwZZ8RJ104LkUNW/gRWS4ONRNq16dUBP5S+EwV5gOZXLKH
+/KpGCPjTaAdgHC8nUnWTAtjd07GH1P2ZdnzB/AOq78eCSXr6+kvah9sFn1jib75j
++hqjNMHPukwiAAcFgF8F5gFzV9SR4dBh74Yo433MyjKX47NtvL/wCaAtxABUM20F
+h/SHJB2Fzd7DOzeg5Qiv44sBHbgdNmOiEOElK2xS4B3Gx/ZtneDHIuTdsIYupqOY
+ZTMgdlbbZ/DGXkOCwgptZNXejGw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEWDCCA0CgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBzjELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEWMBQGA1UEBxMNU29tZXJzZXQgV2VzdDEq
+MCgGA1UEChMhU291dGggQWZyaWNhbiBQb3N0IE9mZmljZSBMaW1pdGVkMRowGAYD
+VQQLExFTQVBPIFRydXN0IENlbnRyZTEdMBsGA1UEAxMUU0FQTyBDbGFzcyAyIFJv
+b3QgQ0ExKTAnBgkqhkiG9w0BCQEWGnBraWFkbWluQHRydXN0Y2VudHJlLmNvLnph
+MB4XDTEwMDkxNTAwMDAwMFoXDTMwMDkxNDAwMDAwMFowgc4xCzAJBgNVBAYTAlpB
+MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxFjAUBgNVBAcTDVNvbWVyc2V0IFdlc3Qx
+KjAoBgNVBAoTIVNvdXRoIEFmcmljYW4gUG9zdCBPZmZpY2UgTGltaXRlZDEaMBgG
+A1UECxMRU0FQTyBUcnVzdCBDZW50cmUxHTAbBgNVBAMTFFNBUE8gQ2xhc3MgMiBS
+b290IENBMSkwJwYJKoZIhvcNAQkBFhpwa2lhZG1pbkB0cnVzdGNlbnRyZS5jby56
+YTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALd8aXxg9Wwm9KocF39d
+1BFL5/Pa53On+qRCSWg/2qVAXAZoX07Mvb6BOCQtzCagRG0DyyPgu96FU0uUX197
+qsgal/7XI5PtsGq92PwAPrOSBOBLvk87mKed7c1j8IHnbJjUbGBVAOW5POY0lV3g
+/XGH6f+B7uV3bxj/88l8pZXdgtwU2aLhvs0nc7tFWz90sWJ4ZhAiLPVo8xeIFjua
+Gx37FK4NuvKQVaLVMNYrlTLHOW57ZdJ3OM5uVqXZI6s4sjtRhcAdG7cRLwVpR9gC
+ypKo4TPehQib7ZDV2CGZcb+29XPvZwiYZNLyKnpLIRbhH1hh3pFHHyGfH/6MI4aD
+GCcCAwEAAaM/MD0wDgYDVR0PAQH/BAQDAgEGMAwGA1UdEwQFMAMBAf8wHQYDVR0O
+BBYEFKudI5P9HzNKMi2qJFryLWSpAZpBMA0GCSqGSIb3DQEBBQUAA4IBAQBWUlG5
+DwLh9i6csTFapvjOvO4ChBUJ8ShSX+fhLL3beQp6v+tintWGRynudDDsTHW1HuOq
+M++t4WpMvzcBvlWDTKlS2DeYUG9o3UdBtywwyG5MByzG00m5tVzSy8zUNsYHDRhP
+P2MAxOy2iPsBZGOt0fd3fGRUKxI9NBWF8KC6eSlfmJtC6q7BqJ8TiYpt6bg4yWHt
+YOz3KlgFm6FgeIMX4X5f6P144GtWKoZ2rlvCXutF5DC4Me1ksV0uwD2ADccnE9N2
+4ob73NuACoHh/Qj5C8QxtGNb54wz5Qa2Umqz1+lr4zJ4MmaUTt2Nd23TJChbVGF3
+Amd1lEtXS+ZsxTlv
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGWDCCBECgAwIBAgIBAjANBgkqhkiG9w0BAQUFADCBzjELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEWMBQGA1UEBxMNU29tZXJzZXQgV2VzdDEq
+MCgGA1UEChMhU291dGggQWZyaWNhbiBQb3N0IE9mZmljZSBMaW1pdGVkMRowGAYD
+VQQLExFTQVBPIFRydXN0IENlbnRyZTEdMBsGA1UEAxMUU0FQTyBDbGFzcyAzIFJv
+b3QgQ0ExKTAnBgkqhkiG9w0BCQEWGnBraWFkbWluQHRydXN0Y2VudHJlLmNvLnph
+MB4XDTEwMDkxNTAwMDAwMFoXDTMwMDkxNDAwMDAwMFowgc4xCzAJBgNVBAYTAlpB
+MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxFjAUBgNVBAcTDVNvbWVyc2V0IFdlc3Qx
+KjAoBgNVBAoTIVNvdXRoIEFmcmljYW4gUG9zdCBPZmZpY2UgTGltaXRlZDEaMBgG
+A1UECxMRU0FQTyBUcnVzdCBDZW50cmUxHTAbBgNVBAMTFFNBUE8gQ2xhc3MgMyBS
+b290IENBMSkwJwYJKoZIhvcNAQkBFhpwa2lhZG1pbkB0cnVzdGNlbnRyZS5jby56
+YTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMp4Gge89vu0t4m80BlW
+OCpZnQfqGvn4+GhnXo/vyvf1aonmo5V/qdspJBw10DiWbD5WJP9eYlGQLofonMfa
+vDPxnqFvC44KJPT4TZCmss1eEdPCl0z1X0AdJiRNjQkQC/+7IBuTJhkMQz/pjrwx
+NxBukcpIglZGx7y5Op5GgWbP2ehcEM85nmXDnsVa9EvMRJlmhvRyG6NTSequR80y
+DXDmoKB2B53/WO/kPJHAteTcuAEM0/6zQqA7YQLUN1vXTEWV0nVd9W4wX1dRi7L/
+fsiLnKqjQTcMEJGopoVcucePBVGy0HjS4ktJ6dQapzusqjPmmioDQJhvdFITMZTR
+EsG0yzD5/0S4kltS1jDZM9F14xmlFhW3VFfxVlDOTr4DOy/stjDuFGBeX3o19E5k
+BxHqpQdmG26T4rBPXtbgROCz3K7vuP2os+zs5TmIRLShuxRgZI/WkpPL88xQ3ekH
+yGdn+fCHhJGyAGLpv0oVdMW/BEwFRl0Ky+XqYQDhb0GxNI6mAKJ8pqWm+mxMQ+Wo
+Jpo0mB6HmOdMeNGPnwVVXYpLyc+gC30GkJwYkrLEstfjRdlrc8OXOb8pHgYJVUC6
+vNpIdUPt/kR+PSzmYpED/T2J7370XSSPpQsrsz56KSi8uz+/63eFBCaLlLKQ9euN
+T6JEIlConCpESAB4GaudCJYVAgMBAAGjPzA9MA4GA1UdDwEB/wQEAwIBBjAMBgNV
+HRMEBTADAQH/MB0GA1UdDgQWBBRhs3lSnUqVklGOgiRw045AyMVm0DANBgkqhkiG
+9w0BAQUFAAOCAgEAf8azJIRQN/nEsMUwPBbpUA16urQ70iPl6Yl4auXjGwUekRzO
+BpeNZhYHRO+BuQh+o8c5NLi/mm2NsMEgQi4N9wsGA09uy7y3sC8ZcY2OrwpNWDGL
+RJkqKGaFx4AmZrBHwjmy+k8+Vb3ciSdLczME/ntHkMkFwC0z+LcIgilBQ/0mU+b6
+HzdWjU8Xutj9OoRw2D7wM67EBUhUobnVIT/qPsepMUf3m65KYpjRZyBl3nnhsTIe
+a9/7gGtHXDnHDgiqx6PuKek04pv5dbgm64idtDkRLnD9UQQyuw95hFAhRXwv5Nn/
+JTgGI6tOsQ7cOzEKrdpLAGlrLuLDDMkFAUVm4aWJYRxkmY0LmJCzfmY7C9ir6HUO
+2X+abn3JgyfJvOg0OMJahzJyBwz+1ZTR8MB48oCoRvVrmuzi2RaOivqE9tFSyZyy
+IVZgQ6YQ939Jv74H01BkbQK6KlUsz9nCbq98C0jQ8eGnwq10j4bk7ar6XIN9Quh9
+Bx0HVcwraTK5d4JoxnfyImmmyQpdh5nlcZ59LxMe0vT9CXknWCsKh4Eq+2ojLUsk
+hXQWRxgPCcX+qUgk46zQaT1fU5gyvezgUcFTSrH2O/A0SPWa3tzR4OO9JbNE6Dpz
+yXnQrNHt4gAKX6EdZllKc2jUBXIzOKdrr5HbDceMQOiekIjJ+/4k14Gs894=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGWDCCBECgAwIBAgIBAzANBgkqhkiG9w0BAQUFADCBzjELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEWMBQGA1UEBxMNU29tZXJzZXQgV2VzdDEq
+MCgGA1UEChMhU291dGggQWZyaWNhbiBQb3N0IE9mZmljZSBMaW1pdGVkMRowGAYD
+VQQLExFTQVBPIFRydXN0IENlbnRyZTEdMBsGA1UEAxMUU0FQTyBDbGFzcyA0IFJv
+b3QgQ0ExKTAnBgkqhkiG9w0BCQEWGnBraWFkbWluQHRydXN0Y2VudHJlLmNvLnph
+MB4XDTEwMDkxNTAwMDAwMFoXDTMwMDkxNDAwMDAwMFowgc4xCzAJBgNVBAYTAlpB
+MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxFjAUBgNVBAcTDVNvbWVyc2V0IFdlc3Qx
+KjAoBgNVBAoTIVNvdXRoIEFmcmljYW4gUG9zdCBPZmZpY2UgTGltaXRlZDEaMBgG
+A1UECxMRU0FQTyBUcnVzdCBDZW50cmUxHTAbBgNVBAMTFFNBUE8gQ2xhc3MgNCBS
+b290IENBMSkwJwYJKoZIhvcNAQkBFhpwa2lhZG1pbkB0cnVzdGNlbnRyZS5jby56
+YTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANvc7UiaoKOf4BGO2ciS
+dTpVwVEiygt6pDUNxeZXLYPwKm8iODcxbXyFJKIGL0OCPUUwQCUc7lhHQebwngAe
++PQvEbuSsphFLdMfgMl2FBPDzEDmres5YPzPyN8q/YwSUe/PDGTGV+gjUV3nZlLq
+Zr2Tf516KPEZcG6EnzBHt7A5axMs60tNLq8/v/0CE0o55z4zxRCRUb4PR51NUvws
+8+MTogCC4RQMzdKes/Lggdq+mZJT432Zd0Ph4UgpgZ7WBVc6cdw+mK1YcG9Gu34y
+A+KDm1lX9/izzVQW7LatoRwaktHUKZ6PzbPofVDxwoKsur20dVag9UVdGH0sjPF7
+QcyGsZqESwoqXZuW4c36qxYnQeeVNabLiqeW86XMUfktfR5D+9xttbk4vQX7WPou
+0+xeZC2vWAFKfCJG00HLPeSWXklDOLuJ6/ScaTkSA1yEu+WMHurgZrvAv4z+ngpN
+PWg/QHbWMqnqRbhqB1KOzVHxXShjDNNZOPzJ/YLJRSC85ujMogzLe2Q5SUZF9XMc
+apcg6yFC97QgUrdK/XW8yw8MZxFXH/cw8auQzF08lgVi08pVAUtGxYCHHHLQc1Qh
+6tejnNOuf9RT2Sj8V97lP1JKu8gmJEdTHHO6z8a0MM1eccdWvEk4JebFEAl42dQd
+XM1u7duRXKFTFFaqjSeppo4bAgMBAAGjPzA9MA4GA1UdDwEB/wQEAwIBBjAMBgNV
+HRMEBTADAQH/MB0GA1UdDgQWBBQWhC37G+e0HmiY00IgGm5+T5FXAjANBgkqhkiG
+9w0BAQUFAAOCAgEAe+MNYzpkIG3M/Cy46dar29erJilHogxW7XXMlZlSNssg+xE0
+F0JOdQWw2OS4sIQvmBm5+9A5bHIGGMlcinp0CDdIaf0ioV3F13gT8ChCQcPJwzkJ
+B9Sh+DciaeTfMlVvwny5k/GyN3XMrtIzlow29wHt42TpC2hbEKoBNpl8z5qUXf0a
+WWGiZRV9nhdk1J9TmAH9cVfQXUARFj8/RNKvyfwIMn12+NVD6Nw2aAfDTsOWl1fG
+fTZe23Ct/q7UiJ21pGDWo2K+fPk0Hvy79EpyxYMeRmjDDpeDGD3TDgoRNXxplcWr
+KvXIORBNDIkwKYlJG0SXkfTqZSEbPwpDcoIcbRFd4CJFX2FMoqb636NGuuGBYGwy
+tPzk3DYF5DP36493SaqNCu9IiuZBl347q0OH8ghgC2/XWWb9K7svzjNPcuC217NT
+V4nwO7xu4hC/cz5ij6UI6VNnwU7BLkJDp7Kk+RaLQu7cNH9Is5DbJOLI5FM1U5zq
+N4XPv5gGNUcm165t3YSpY1gmQfV1Mi5hnk+TUlL2WiPrwaBzJiUiQpGRkYBP/4jO
+XnPnlsLtCRL3dpapeWKQSYGDnwwyMuJbyt1INKyHjnGVrkzkfHgdp1HDvRH6AtGV
+iXMIRiKJaQDPT4DBTVuUxMqZUZgvDb19VGTUCtonWac3u1YM0AaicrkSuVs=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK
+MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu
+VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw
+MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw
+JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT
+3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU
++ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp
+S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1
+bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi
+T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL
+vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK
+Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK
+dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT
+c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv
+l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N
+iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD
+ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH
+6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt
+LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93
+nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3
++wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK
+W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT
+AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq
+l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG
+4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ
+mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A
+7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN
+MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu
+VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN
+MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0
+MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7
+ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy
+RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS
+bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF
+/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R
+3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw
+EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy
+9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V
+GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ
+2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV
+WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD
+W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN
+AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj
+t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV
+DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9
+TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G
+lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW
+mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df
+WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5
++bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ
+tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA
+GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv
+8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNV
+BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu
+MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQy
+MDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx
+EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjEw
+ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy3QRk
+D2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/o
+OI7bm+V8u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3A
+fQ+lekLZWnDZv6fXARz2m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJe
+IgpFy4QxTaz+29FHuvlglzmxZcfe+5nkCiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8n
+oc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTaYVKvJrT1cU/J19IG32PK
+/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6vpmumwKj
+rckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD
+3AjLLhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE
+7cderVC6xkGbrPAXZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkC
+yC2fg69naQanMVXVz0tv/wQFx1isXxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLd
+qvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
+DwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ04IwDQYJKoZI
+hvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR
+xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaA
+SfX8MPWbTx9BLxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXo
+HqJPYNcHKfyyo6SdbhWSVhlMCrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpB
+emOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5GfbVSUZP/3oNn6z4eGBrxEWi1CXYBmC
+AMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85YmLLW1AL14FABZyb
+7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKSds+x
+DzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvk
+F7mGnjixlAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqF
+a3qdnom2piiZk4hA9z7NUaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsT
+Q6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJa7+h89n07eLw4+1knj0vllJPgFOL
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV
+BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu
+MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy
+MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx
+EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw
+ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe
+NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH
+PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I
+x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe
+QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR
+yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO
+QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912
+H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ
+QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD
+i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs
+nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1
+rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
+DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI
+hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM
+tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf
+GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb
+lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka
++elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal
+TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i
+nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3
+gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr
+G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os
+zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x
+L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
+b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
+cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA
+n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc
+biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp
+EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA
+bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu
+YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB
+AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW
+BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI
+QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I
+0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni
+lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9
+B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv
+ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo
+IhNzbM8m9Yop5w==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw
+CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
+ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg
+RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
+Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq
+hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf
+Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q
+RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
+BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD
+AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY
+JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv
+6pZjamVFkpUBtA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH
+MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
+b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI
+2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx
+1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ
+q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz
+tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ
+vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP
+BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV
+5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY
+1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4
+NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG
+Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91
+8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe
+pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl
+MrY=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw
+CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
+ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe
+Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw
+EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x
+IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF
+K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG
+fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO
+Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd
+BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx
+AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/
+oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8
+sycX
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg
+RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV
+UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu
+Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y
+ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If
+xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV
+ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO
+DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ
+jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/
+CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi
+EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM
+fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY
+uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK
+chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t
+9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD
+ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2
+SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd
++SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc
+fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa
+sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N
+cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N
+0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie
+4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI
+r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1
+/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm
+gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGnTCCBIWgAwIBAgISAu4Am2bYah1n/tqKJW8hWnUbMA0GCSqGSIb3DQEBCwUA
+MFoxOjA4BgNVBAMMMUF1dG9yaWRhZCBDZXJ0aWZpY2Fkb3JhIFJhw616IE5hY2lv
+bmFsIGRlIFVydWd1YXkxDzANBgNVBAoTBkFHRVNJQzELMAkGA1UEBhMCVVkwHhcN
+MTExMTAzMTUwMjQ5WhcNMzExMDI5MTUwMjQ5WjBaMTowOAYDVQQDDDFBdXRvcmlk
+YWQgQ2VydGlmaWNhZG9yYSBSYcOteiBOYWNpb25hbCBkZSBVcnVndWF5MQ8wDQYD
+VQQKEwZBR0VTSUMxCzAJBgNVBAYTAlVZMIICIDANBgkqhkiG9w0BAQEFAAOCAg0A
+MIICCAKCAgEAl8QfKkShgUtIkXXd69qPyhuL8rQ8LMbl9MEe0bgwE29cn+VRln8a
+pBb+0tQdJfbQ5jdgXwCjGansJ79QLQWgXF6T6+No/Zs9uRQ2LeclFRCQGpLJEbEp
+l5NWVWKtR6x/1Qx3ltKTaGox3VTvk/IKT6BfAlrvtkQ+55myjkXeoPfA6EiwR+ze
+QhTbNXugafwewAEpFtozoSGhMjIQdn2ox8Auc4Nk/Fr3mzaMae0gVSN5zfPzbGtg
+XHiN/D2FLLyp93DopcpN2HyY74Z2GITVQCkQJzLn7wNEC0/JKvG2tCug1QOUhCHT
+dPMpbXjwBWquAQ9hH8al8MeCFdk7+92LdGnu5MfH9BHcFFHBhBolVhNrW85fLP2L
+Gy0PyMBVqhhPmJzPoncItDWV2LmLnEkOtBAL/PxHTdSaV/mfer3pV7u0D18VkNho
+bNWFJYMthgxHYpezeU25ZQh3Um9K426AwKyj1bzqSeJl4kxZaoLeK/WqPv5l6FFw
+TTeEBgQ/koPUVijjJdVUyoXuVsAuzvlwEBJfXZ7GvEsQHVZtynLBUwkqEz3Ytfkc
+O0XGhxTQOH6eIV/8dh3/CylC26HEeTnhTdWGUOPy4LPXWZvePx4aA/PUaYZLRxwy
+fzwHCRMQp5sHMHczvGkR0TQ9fBAquB6OvUfe+bJ5VWYhAgf7OSwKF6ECAQOjggFd
+MIIBWTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBiBgNVHR8EWzBZ
+MCygKqAohiZodHRwOi8vd3d3LmFnZXNpYy5ndWIudXkvYWNybi9hY3JuLmNybDAp
+oCegJYYjaHR0cDovL3d3dy51Y2UuZ3ViLnV5L2Fjcm4vYWNybi5jcmwwgbIGA1Ud
+IASBqjCBpzBcBgtghlqE4q4dhIgFADBNMEsGCCsGAQUFBwIBFj9odHRwOi8vd3d3
+LnVjZS5ndWIudXkvaW5mb3JtYWNpb24tdGVjbmljYS9wb2xpdGljYXMvY3BfYWNy
+bi5wZGYwRwYLYIZahOKuHYSIBQEwODA2BggrBgEFBQcCARYqaHR0cDovL3d3dy5h
+Z2VzaWMuZ3ViLnV5L2Fjcm4vY3BzX2Fjcm4ucGRmMB0GA1UdDgQWBBSSnpG4VSg9
+d0IsM6WYX9DJrI21ozANBgkqhkiG9w0BAQsFAAOCAgEAXeerWepJ3L9GQ/2Uu5hw
+lBT6zgNd8X0xE5JOhSQwFGts0+fO5nnV205VThcr15NF3xMMJ2cdx0KQVDDG8ahp
+KLROpm2lNaZQlmhJo+4vC6v8AwJQaPGVKT5xLNza5S3Zdi7uVjN+F6EnAuGhJygh
+ir8B52LHu7IlBNobpiOMfJO6yYvrCvk3t5Q5/U2PfqLcgW8brRQPWyADeEFzZ57S
+lxeQKopUS6d5fyQSkZ87LMc3pAxccmoTnjIJJ+tDMnVf10fDKkVTFVZ2T7sJ6IRg
+Ee9z1edQbmko/evGy8pOE2MNDjcsMR/bp1igsv0NF4ezkq4bKIAftpJ+hhHh9kyY
+f2aLHxNJA0L8+5ic7oaWqS4FfnAcwXfI6V2CuA7OW2QFY+4/Bi02DOkfclserN0m
+9Rw4bv2MPU2G6yfLygONQPMq0YrYNA7CrbWI7YeaioWih+/puTjnaJajAc+CPRxL
+KJ0n9fmZlntI/azQ8DL3OATdTZmuDpKCw/o8GxPHaLdd4JNGuLi4pAzEG8a6Rpbd
+nlUPR532gaWsZVnY3a4GbOBDgsZn2HACNfU2BONKOal1Ah7mP0bPnCwehIgXqiap
+pkOA4MBbo2SDm5rtawFltsE9GOyTGWaUqNMRUJl6iH2vPn+UkDsKw2q3jV/Sp1HR
+Mh+58jJ9d5NtQ+xBaavPyWE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDcTCCAlmgAwIBAgIVAOYJ/nrqAGiM4CS07SAbH+9StETRMA0GCSqGSIb3DQEB
+BQUAMFAxCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGlj
+emVuaW93YSBTLkEuMRcwFQYDVQQDDA5TWkFGSVIgUk9PVCBDQTAeFw0xMTEyMDYx
+MTEwNTdaFw0zMTEyMDYxMTEwNTdaMFAxCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9L
+cmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRcwFQYDVQQDDA5TWkFGSVIg
+Uk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKxHL49ZMTml
+6g3wpYwrvQKkvc0Kc6oJ5sxfgmp1qZfluwbv88BdocHSiXlY8NzrVYzuWBp7J/9K
+ULMAoWoTIzOQ6C9TNm4YbA9A1jdX1wYNL5Akylf8W5L/I4BXhT9KnlI6x+a7BVAm
+nr/Ttl+utT/Asms2fRfEsF2vZPMxH4UFqOAhFjxTkmJWf2Cu4nvRQJHcttB+cEAo
+ag/hERt/+tzo4URz6x6r19toYmxx4FjjBkUhWQw1X21re//Hof2+0YgiwYT84zLb
+eqDqCOMOXxvH480yGDkh/QoazWX3U75HQExT/iJlwnu7I1V6HXztKIwCBjsxffbH
+3jOshCJtywcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFFOSo33/gnbwM9TrkmdHYTMbaDsqMA0GCSqGSIb3DQEBBQUA
+A4IBAQA5UFWd5EL/pBviIMm1zD2JLUCpp0mJG7JkwznIOzawhGmFFaxGoxAhQBEg
+haP+E0KR66oAwVC6xe32QUVSHfWqWndzbODzLB8yj7WAR0cDM45ZngSBPBuFE3Wu
+GLJX9g100ETfIX+4YBR/4NR/uvTnpnd9ete7Whl0ZfY94yuu4xQqB5QFv+P7IXXV
+lTOjkjuGXEcyQAjQzbFaT9vIABSbeCXWBbjvOXukJy6WgAiclzGNSYprre8Ryydd
+fmjW9HIGwsIO03EldivvqEYL1Hv1w/Pur+6FUEOaL68PEIUovfgwIB2BAw+vZDuw
+cH0mX548PojGyg434cDjkSXa3mHF
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFyDCCA7CgAwIBAgIBATANBgkqhkiG9w0BAQsFADB1MQswCQYDVQQGEwJQTDEk
+MCIGA1UECgwbVGVsZWtvbXVuaWthY2phIFBvbHNrYSBTLkEuMScwJQYDVQQLDB5T
+aWduZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFzAVBgNVBAMMDlNpZ25ldCBS
+b290IENBMB4XDTEzMDUwNjExMzgwNFoXDTM4MDUwNjExMzgwNFowdTELMAkGA1UE
+BhMCUEwxJDAiBgNVBAoMG1RlbGVrb211bmlrYWNqYSBQb2xza2EgUy5BLjEnMCUG
+A1UECwweU2lnbmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRcwFQYDVQQDDA5T
+aWduZXQgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKlk
+y7gx4rUPgCcGzEVe6g1f13dql2i2XaB4BUSrMLB6h+9i7ghYVVwX+iuADhx1p2d2
+SpbDKGt4+Vrf+mp5p4pUHSqWhvG1F9VdGlb3QBC3DuEH3GcLmaIACNQEInemQ46f
+1TCq+p2BRvI9zl7CfsF8nzOvJtod3mD3gqc2zPXIwAKPks9uTv/7/mE/rr+9lmf+
+0K8d1iP3MOZ7iF3p9TNEyoq7pztZjnAXaSgXuxBWpcK0Cw37tHeJEERVbYmr1U0y
+udf3aZz9ta8DsiG2LGD1X9HCVIgvYO+cVIa1QQczLGwLHBLaR5lmNK6g7G3QY5d/
+xAWAk/hCLFTY/tqVGGuF8lz5doc2HrGAH0DgCwqT1K5acVcNOu/h7Htd+BCaN3yp
+FqLEjlc7EBt2rahxQDOFAz9t2B495zBTx+Pq19AwVcSaZ0J8t0Br3KlEUPLjLkVi
+cby5bigFOXb1WeqhAzB04N+yCiMVTuNYOqJPeMiIW1GSzjoqNg/O37MCTy78hapD
+1ga1eLfIuyMbRY+nNTTKqhQ31Z97MFaP6VcKRqcBl5ssp03/WT3unjMsLPMgu1j4
+cx8B0EMiwygXtiQAElW4WxO8v9fZvVn7wlNp9a5SJs2sUrfIHVOaoQSgAkNQnRKp
+wG5Rwe0RTt/vxBQhurqhDpWDNVLQ559S1ZL5IsOHAgMBAAGjYzBhMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB8GA1UdIwQYMBaAFFB7Ca9pLS+14JGv
+jZITK7Ey6EnQMB0GA1UdDgQWBBRQewmvaS0vteCRr42SEyuxMuhJ0DANBgkqhkiG
+9w0BAQsFAAOCAgEAECWnACU9/o1G1kDHL9laJIVImKPg0UCh06PABJU0IXYW6daL
+KqbRNiY+w+VIjmv4BtPJbSCLwfl4hyztdUEoPnD5wnFtMQw34BXi217wwK5QFeyI
+UVODyaXyz6zC5swQx2wYd1ZYtSSahwNhdk8eWPPblTJ4ESuxIBOxftLl5Hu0MGUD
+ixvi6N7qEt6Xal4ARdbgWyqQodAr6NF2SWkW79uCtFMySCVsdPDK987d4UmPUtVU
+FfQIrwZnU5jnrOw1ipsT9B39gegbMc7z4IWS64NazrQXibBO4WFwX+ixMs6bHgp7
+GS3IaDYzpFb1ukm9L/yzCrJrml4++0wYr1zwX9mx2wkdRlLHcNu4mCnUOWpePGKH
+eoqPdr/cp2i6i8U5xglPb3ZCTM8AUwq0H1jGShX9+uG8t3xUhk+8d3kkEk1kXbR6
+22k2dGbofeRbKfIw/bXd3qEhYWZgJTtIb86rj02iTMsM+8E29FDBbCxpXEpEHcRc
+J00k907hP6tlA9O4kXzwhTjWikdELLAOCaWy0vfq7PR1tmtVS8EpO6ZEm8IQ7HqO
+TB2joiHcZcaAHtSXT/SAUwq6XY07doAnOllbH/VWhuHoili3mvdC71qoSu5U+iSe
+n7jM7KII4qyCjdIzI8Ju4+T/mfVcZ8WydiIbbSz2BveONFEi6PYZar9QmoI=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIE5DCCA8ygAwIBAgIBATANBgkqhkiG9w0BAQsFADB/MQswCQYDVQQGEwJteTEL
+MAkGA1UECgwCVE0xNDAyBgNVBAsMK1RNIEFwcGxpZWQgQnVzaW5lc3MgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkxLTArBgNVBAMMJFRNIEFwcGxpZWQgQnVzaW5lc3Mg
+Um9vdCBDZXJ0aWZpY2F0ZTAeFw0xMTEwMTAwNjIzMzlaFw0zMTEwMTAwNjUzMzla
+MH8xCzAJBgNVBAYTAm15MQswCQYDVQQKDAJUTTE0MDIGA1UECwwrVE0gQXBwbGll
+ZCBCdXNpbmVzcyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEtMCsGA1UEAwwkVE0g
+QXBwbGllZCBCdXNpbmVzcyBSb290IENlcnRpZmljYXRlMIIBIDANBgkqhkiG9w0B
+AQEFAAOCAQ0AMIIBCAKCAQEAxbd1GV7r9EIJjbFqbG4ydqQFBw+PK2Q672vHtxtX
+WiUzwGEYo4IdgHft7RxkskC6yMJVtV+Owt2RbvPF56M5m0wvfqPm948VXH0bWrqW
+lpOgYXIgRIgnq0FHdz5eMKWLNegwRqBY6k4CbT1iDTnzZK5m7twSfhlL0b/CgkT6
++deZSOyzDPRiZzWbnUZoR5emIl4TVgALUfX7ZF9b4L/yb+9F1K7Gr9ycH+0UHbKm
+7wc45wh3Nqq5qDw5GuWRaKqQjsGYGeTqbYWTGwbm3FELoQDsxK5ypxxpEXI+3M7z
+OFfXGhpXFE2LUHZFVXMwI29Lr0pIQpNCX/nx2jlcBtUPyQIBA6OCAWswggFnMIGr
+BgNVHSMEgaMwgaCAFEAa+7SWN5aD3yw7FO0cxsveIG0IoYGEpIGBMH8xCzAJBgNV
+BAYTAm15MQswCQYDVQQKDAJUTTE0MDIGA1UECwwrVE0gQXBwbGllZCBCdXNpbmVz
+cyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEtMCsGA1UEAwwkVE0gQXBwbGllZCBC
+dXNpbmVzcyBSb290IENlcnRpZmljYXRlggEBMB0GA1UdDgQWBBRAGvu0ljeWg98s
+OxTtHMbL3iBtCDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zB3BgNV
+HR8EcDBuMGygaqBohmZsZGFwOi8vbGRhcC50bWNhLmNvbS5teTozODkvY249YXJs
+MWRwMSxvdT1BUkwsb3U9VE0gQXBwbGllZCBCdXNpbmVzcyBDZXJ0aWZpY2F0aW9u
+IEF1dGhvcml0eSxvPVRNLGM9bXkwDQYJKoZIhvcNAQELBQADggEBAECJXpdECqtm
+MStt3E6m5y2xR/9SefPt26eB6To8VWf1RdHuGXn9N+CupCiiGDjez9KXkqQ5vFSD
+7x2hgWfIjCZlhrrKbwBCWE26GWa3G0BRJZLQghWIbGIy4vFAEt2+wO8Q8iaEJfX0
+ag9ZPyMZHb0NvDk6vNrcbj8OjCaRJDPM/TM5jF2iu0eX5xAqhCZUsSt+X/mqf+3H
+/sojplW/38pe4Ps+p1LWKjqle2PyhfwhNCvBrvBBkBg/RcQjjbw7ht2qRmdphyGi
+Vxamp3w7/okgRxj61XL9XDpotTvhPMIrS3hTVVqy9oa+wD3bSP/wwHoQ1B7f5LYu
+whrUDnpqoHY=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNV
+BAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBC
+aWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNV
+BAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1
+Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMwNTEyMDk0OFoXDTIz
+MDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+
+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhp
+em1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN
+ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4vU/kwVRHoViVF56C/UY
+B4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vdhQd2h8y/L5VMzH2nPbxH
+D5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5KCKpbknSF
+Q9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEo
+q1+gElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3D
+k14opz8n8Y4e0ypQBaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcH
+fC425lAcP9tDJMW/hkd5s3kc91r0E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsut
+dEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gzrt48Ue7LE3wBf4QOXVGUnhMM
+ti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAqjqFGOjGY5RH8
+zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn
+rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUX
+U8u3Zg5mTPj5dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6
+Jyr+zE7S6E5UMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5
+XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAF
+Nzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAKkEh47U6YA5n+KGCR
+HTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jOXKqY
+GwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c
+77NCR807VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3
++GbHeJAAFS6LrVE1Uweoa2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WK
+vJUawSg5TB9D0pH0clmKuVb8P7Sd2nCcdlqMQ1DujjByTd//SffGqWfZbawCEeI6
+FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEVKV0jq9BgoRJP3vQXzTLl
+yb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gTDx4JnW2P
+AJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpD
+y4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8d
+NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID9zCCAt+gAwIBAgILMTI1MzcyODI4MjgwDQYJKoZIhvcNAQELBQAwWDELMAkG
+A1UEBhMCSlAxHDAaBgNVBAoTE0phcGFuZXNlIEdvdmVybm1lbnQxDTALBgNVBAsT
+BEdQS0kxHDAaBgNVBAMTE0FwcGxpY2F0aW9uQ0EyIFJvb3QwHhcNMTMwMzEyMTUw
+MDAwWhcNMzMwMzEyMTUwMDAwWjBYMQswCQYDVQQGEwJKUDEcMBoGA1UEChMTSmFw
+YW5lc2UgR292ZXJubWVudDENMAsGA1UECxMER1BLSTEcMBoGA1UEAxMTQXBwbGlj
+YXRpb25DQTIgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKaq
+rSVl1gAR1uh6dqr05rRL88zDUrSNrKZPtZJxb0a11a2LEiIXJc5F6BR6hZrkIxCo
++rFnUOVtR+BqiRPjrq418fRCxQX3TZd+PCj8sCaRHoweOBqW3FhEl2LjMsjRFUFN
+dZh4vqtoqV7tR76kuo6hApfek3SZbWe0BSXulMjtqqS6MmxCEeu+yxcGkOGThchk
+KM4fR8fAXWDudjbcMztR63vPctgPeKgZggiQPhqYjY60zxU2pm7dt+JNQCBT2XYq
+0HisifBPizJtROouurCp64ndt295D6uBbrjmiykLWa+2SQ1RLKn9nShjZrhwlXOa
+2Po7M7xCQhsyrLEy+z0CAwEAAaOBwTCBvjAdBgNVHQ4EFgQUVqesqgIdsqw9kA6g
+by5Bxnbne9owDgYDVR0PAQH/BAQDAgEGMHwGA1UdEQR1MHOkcTBvMQswCQYDVQQG
+EwJKUDEYMBYGA1UECgwP5pel5pys5Zu95pS/5bqcMRswGQYDVQQLDBLmlL/lupzo
+qo3oqLzln7rnm6QxKTAnBgNVBAMMIOOCouODl+ODquOCseODvOOCt+ODp+ODs0NB
+MiBSb290MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAH+aCXWs
+B9FydC53VzDCBJzUgKaD56WgG5/+q/OAvdVKo6GPtkxgEefK4WCB10jBIFmlYTKL
+nZ6X02aD2mUuWD7b5S+lzYxzplG+WCigeVxpL0PfY7KJR8q73rk0EWOgDiUX5Yf0
+HbCwpc9BqHTG6FPVQvSCLVMJEWgmcZR1E02qdog8dLHW40xPYsNJTE5t8XB+w3+m
+Bcx4m+mB26jIx1ye/JKSLaaX8ji1bnOVDMA/zqaUMLX6BbfeniCq/BNkyYq6ZO/i
+Y+TYmK5rtT6mVbgzPixy+ywRAPtbFi+E0hOe+gXFwctyTiLdhMpLvNIthhoEdlkf
+SUJiOxMfFui61/0=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk
+MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH
+bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX
+DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD
+QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu
+MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc
+8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke
+hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI
+KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg
+515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO
+xwy8p2Fp8fc74SrL+SvzZpA3
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEk
+MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpH
+bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX
+DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD
+QSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu
+MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprlOQcJ
+FspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAw
+DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61F
+uOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX
+kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTs
+ewv4n4Q=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL
+BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
+BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00
+MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV
+wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe
+rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341
+68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh
+4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp
+UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o
+abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc
+3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G
+KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt
+hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO
+Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt
+zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD
+ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC
+MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2
+cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN
+qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5
+YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv
+b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2
+8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k
+NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj
+ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp
+q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt
+nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL
+BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
+BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00
+MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf
+qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW
+n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym
+c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+
+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1
+o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j
+IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq
+IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz
+8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh
+vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l
+7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG
+cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD
+ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66
+AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC
+roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga
+W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n
+lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE
++V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV
+csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd
+dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg
+KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM
+HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4
+WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL
+BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc
+BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00
+MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM
+aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR
+/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu
+FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR
+U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c
+ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR
+FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k
+A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw
+eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl
+sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp
+VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q
+A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+
+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD
+ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px
+KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI
+FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv
+oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg
+u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP
+0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf
+3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl
+8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+
+DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN
+PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/
+ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG
+A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3
+d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu
+dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq
+RW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy
+MTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD
+VQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0
+L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g
+Zm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi
+A2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt
+ByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH
+Bz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+BBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC
+R98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX
+hTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF9jCCA96gAwIBAgIQZWNxhdNvRcaPfzH5CYeSgjANBgkqhkiG9w0BAQwFADCB
+lDELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8w
+HQYDVQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMUUwQwYDVQQDEzxTeW1hbnRl
+YyBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+IC0gRzYwHhcNMTIxMDE4MDAwMDAwWhcNMzcxMjAxMjM1OTU5WjCBlDELMAkGA1UE
+BhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYDVQQLExZT
+eW1hbnRlYyBUcnVzdCBOZXR3b3JrMUUwQwYDVQQDEzxTeW1hbnRlYyBDbGFzcyAz
+IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzYwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC3DrL6TbyachX7d1vb/UMPywv3
+YC6zK34Mu1PyzE5l8xm7/zUd99Opu0Attd141Kb5N+qFBXttt+YTSwZ8+3ZjjyAd
+LTgrBIXy6LDRX01KIclq2JTqHgJQpqqQB6BHIepm+QSg5oPwxPVeluInTWHDs8GM
+IrZmoQDRVin77cF/JMo9+lqUsITDx7pDHP1kDvEo+0dZ8ibhMblE+avd+76+LDfj
+rAsY0/wBovGkCjWCR0yrvYpe3xOF/CDMSFmvr0FvyyPNypOn3dVfyGQ7/wEDoApP
+LW49hL6vyDKyUymQFfewBZoKPPa5BpDJpeFdoDuw/qi2v/WJKFckOiGGceTciotB
+VeweMCRZ0cBZuHivqlp03iWAMJjtMERvIXAc2xJTDtamKGaTLB/MTzwbgcW59nhv
+0DI6CHLbaw5GF4WU87zvvPekXo7p6bVk5bdLRRIsTDe3YEMKTXEGAJQmNXQfu3o5
+XE475rgD4seTi4QsJUlF3X8jlGAfy+nN9quX92Hn+39igcjcCjBcGHzmzu/Hbh6H
+fLPpysh7avRo/IOlDFa0urKNSgrHl5fFiDAVPRAIVBVycmczM/R8t84AJ1NlziTx
+WmTnNi/yLgLCl99y6AIeoPc9tftoYAP6M6nmEm0G4amoXU48/tnnAGWsthlNe4N/
+NEfq4RhtsYsceavnnQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAdBgNVHQ4EFgQUOXEIAD7eyIbnkP/k/SEPziQZFvYwDQYJKoZIhvcN
+AQEMBQADggIBAFBriE1gSM5a4yLOZ3yEp80c/ekMA4w2rwqHDmquV64B0Da78v25
+c8FftaiuTKL6ScsHRhY2vePIVzh+OOS/JTNgxtw3nGO7XpgeGrKC8K6mdxGAREeh
+KcXwszrOmPC47NMOgAZ3IzBM/3lkYyJbd5NDS3Wz2ztuO0rd8ciutTeKlYg6EGhw
+OLlbcH7VQ8n8X0/l5ns27vAg7UdXEyYQXhQGDXt2B8LGLRb0rqdsD7yID08sAraj
+1yLmmUc12I2lT4ESOhF9s8wLdfMecKMbA+r6mujmLjY5zJnOOj8Mt674Q5mwk25v
+qtkPajGRu5zTtCj7g0x6c4JQZ9IOrO1gxbJdNZjPh34eWR0kvFa62qRa2MzmvB4Q
+jxuMjvPB27e+1LBbZY8WaPNWxSoZFk0PuGWHbSSDuGLc4EdhGoh7zk5//dzGDVqa
+pPO1TPbdMaboHREhMzAEYX0c4D5PjT+1ixIAWn2poQDUg+twuxj4pNIcgS23CBHI
+Jnu21OUPA0Zy1CVAHr5JXW2T8VyyO3VUaTqg7kwiuqya4gitRWMFSlI1dsQ09V4H
+Mq3cfCbRW4+t5OaqG3Wf61206MCpFXxOSgdy30bJ1JGSdVaw4e43NmUoxRXIK3bM
+bW8Zg/T92hXiQeczeUaDV/nxpbZt07zXU+fucW14qZen7iCcGRVyFT0E
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICpzCCAi2gAwIBAgIQTHm1miicdjFk9YlE0JEC3jAKBggqhkjOPQQDAzCBlDEL
+MAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYD
+VQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMUUwQwYDVQQDEzxTeW1hbnRlYyBD
+bGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0g
+RzQwHhcNMTIxMDE4MDAwMDAwWhcNMzcxMjAxMjM1OTU5WjCBlDELMAkGA1UEBhMC
+VVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1h
+bnRlYyBUcnVzdCBOZXR3b3JrMUUwQwYDVQQDEzxTeW1hbnRlYyBDbGFzcyAzIFB1
+YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcq
+hkjOPQIBBgUrgQQAIgNiAARXz+qzOU0/oSHgbi84csaHl/OFC0fnD1HI0fSZm8pZ
+Zf9M+eoLtyXV0vbsMS0yYhLXdoan+jjJZdT+c+KEOfhMSWIT3brViKBfPchPsD+P
+oVAR5JNGrcNfy/GkapVW6MCjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
+BTADAQH/MB0GA1UdDgQWBBQknbzScfcdwiW+IvGJpSwVOzQeXjAKBggqhkjOPQQD
+AwNoADBlAjEAuWZoZdsF0Dh9DvPIdWG40CjEsUozUVj78jwQyK5HeHbKZiQXhj5Q
+Vm6lLZmIuL0kAjAD6qfnqDzqnWLGX1TamPR3vU+PGJyRXEdrQE0QHbPhicoLIsga
+xcX+i93B3294n5E=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD
+TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx
+MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j
+aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP
+T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03
+sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL
+TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5
+/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp
+7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz
+EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt
+hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP
+a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot
+aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg
+TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV
+PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv
+cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL
+tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd
+BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB
+ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT
+ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL
+jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS
+ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy
+P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19
+xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d
+Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN
+5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe
+/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z
+AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ
+5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix
+RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1
+dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p
+YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw
+NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK
+EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl
+cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
+c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz
+dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ
+fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns
+bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD
+75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP
+FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV
+HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp
+5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu
+b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA
+A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p
+6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8
+TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7
+dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys
+Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI
+l7WdmplNsDz4SgCbZN2fOUvRJ9e4
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDHjCCAgagAwIBAgIDB7HTMA0GCSqGSIb3DQEBDQUAMDcxCzAJBgNVBAYTAlNJ
+MQ8wDQYDVQQKEwZIYWxjb20xFzAVBgNVBAMTDkhhbGNvbSBSb290IENBMB4XDTEy
+MDIwODA5NTU0MVoXDTMyMDIwODA5NTU0MVowNzELMAkGA1UEBhMCU0kxDzANBgNV
+BAoTBkhhbGNvbTEXMBUGA1UEAxMOSGFsY29tIFJvb3QgQ0EwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCJuYXK/vR1fX/snUI3urqNvOw9FwP92UVl1s3J
+Tl+MSFyXCFcUiy2cPJBJmc9pr0mN2xwBsG7p9OqRZ13Ks2lP2MzBDT3uqgN24Mlw
+op/+65vQtsmW0/D7W9DwB6tMXk2k4kdeBWh0po4iR+5+02eEVDeSRw7zo+wVGvNt
+e78ZNSGPgkusVJwJzW62wVe90Ek9b59zjrFsfr3+1rs9A+jmTBq07q+0g04ykFT2
+ThvhL86lNBqOoyD52T4ia29u4/rZM1wIoPcVAD2cEJJKVc2Asgaq/dePt1qSJyQP
+MzwouvEfaLV3KV6uwtqNNnDiejIbI6bexWENmqUSILXzllm1AgMBAAGjMzAxMA8G
+A1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECE6U2Ipjws95MAsGA1UdDwQEAwIBBjAN
+BgkqhkiG9w0BAQ0FAAOCAQEAKb7nseT6A6IPr3ZZnfhOU008BIOfoeKM9pTZtK5o
+KlZrMlMogwdyTLBOqB2BgyFnAzfRjMbBToTpNDvT9fUnto0jBVK4TDLyLtrRKn0+
+gwMq0rHjmumKg0LwLAqhUw/AK+KPGk6VuUW8S2c6vTLzraWPj8Mu6vb0e2LQbm7F
+YTETZuZnSZk7L4BPenxzigMNX/WzMigKisDh+bijJu7cG1fPdhpPU772SotXFysv
+mYaq3ozatqhs32g21mGLbsBzTrc5RfR9zknE8x35qXds7++SFRMnmUbon6mKG58p
+L6IdPtYrx+RVEDoY97N7Ty7HACLt5DHQ57jkVE/BgEUlbg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAw
+ZzELMAkGA1UEBhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdp
+dGFsIENlcnRpZmljYXRlIFNlcnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290
+IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcNMzEwNjI1MDg0NTA4WjBnMQswCQYD
+VQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0YWwgQ2Vy
+dGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYgQ0Eg
+MjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7Bx
+UglgRCgzo3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD
+1ycfMQ4jFrclyxy0uYAyXhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPH
+oCE2G3pXKSinLr9xJZDzRINpUKTk4RtiGZQJo/PDvO/0vezbE53PnUgJUmfANykR
+HvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8LiqG12W0OfvrSdsyaGOx9/
+5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaHZa0zKcQv
+idm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHL
+OdAGalNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaC
+NYGu+HuB5ur+rPQam3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f
+46Fq9mDU5zXNysRojddxyNMkM3OxbPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCB
+UWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDixzgHcgplwLa7JSnaFp6LNYth
+7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/BAQDAgGGMB0G
+A1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED
+MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWB
+bj2ITY1x0kbBbkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6x
+XCX5145v9Ydkn+0UjrgEjihLj6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98T
+PLr+flaYC/NUn81ETm484T4VvwYmneTwkLbUwp4wLh/vx3rEUMfqe9pQy3omywC0
+Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7XwgiG/W9mR4U9s70
+WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH59yL
+Gn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm
+7JFe3VE/23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4S
+nr8PyQUQ3nqjsTzyP6WqJ3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VN
+vBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyAHmBR3NdUIR7KYndP+tiPsys6DXhyyWhB
+WkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/giuMod89a2GQ+fYWVq6nTI
+fI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuWl8PVP3wb
+I+2ksx0WckNLIOFZfsLorSa/ovc=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDHzCCAgegAwIBAgIEGZk8PzANBgkqhkiG9w0BAQUFADAiMQswCQYDVQQGEwJD
+TjETMBEGA1UEChMKQ0ZDQSBHVCBDQTAeFw0xMTA2MTMwODE1MDlaFw0yNjA2MDkw
+ODE1MDlaMCIxCzAJBgNVBAYTAkNOMRMwEQYDVQQKEwpDRkNBIEdUIENBMIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv3PGWiuMePZYt/zSF5ClK3TsgSyT
+zVLMbuQqyyShMeStMG7jmCIx1yGbn9UPNy9auziit3kmZ9YNxRcqnLlUBOENdYZu
+2MzFgGcbyIwtACaGPHp5Prapwk4gsDeXxoV2EoIK51S7i/49ruPsa1hD9qU361ii
+vZDE5fvKa8owbLd7ifYx0oz/T8KWJUOpcTUlCxjhrMijJLZxk4zxXfycEAV7/8Bb
+4LGXrR/Y/kX1wB+dW0c5HAb622aF2yQj6nvSOSD46yqyGlHzlFooAk6nXEduz/zZ
+6OZhWhYnxxUNmNno0wM1kCnfsi+NEHcjyLh60xFhavP/gZKl7EJLaE6A1wIDAQAB
+o10wWzAfBgNVHSMEGDAWgBSMdlDOJdN5Kzz0bZ2a4Z4FT+g9JTAMBgNVHRMEBTAD
+AQH/MAsGA1UdDwQEAwIBxjAdBgNVHQ4EFgQUjHZQziXTeSs89G2dmuGeBU/oPSUw
+DQYJKoZIhvcNAQEFBQADggEBAL67lljU3YmJDyzN+mNFdg05gJqN+qhFYT0hVejO
+aMcZ6cKxB8KLOy/PYYWQp1IXMjqvCgUVyMbO3Y6UJgb40GDus27UDbpa3augfFBy
+ptWQk1bXWTnb6H+zlXhTgVJSX/SSgQLB+yK50QNXp37L+8BGvBN0TCgrdpJpH8FQ
+kRHFTN4LlIwXg4yvN4e06mtvolo1QWGFL5wXwPu5DqJhBkd2vJAJmHQN0ggvveQN
+cvGmX8N8wH3qvNOrIJHLXAWMnag1+jZWuwnzhF3W8eIsntl+8YKg4bcvfu35e6AA
+uLLeHXnhgfNSWZoUXefCEfOawzp4I75OZt6kOWnymDosCgA=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFoTCCA4mgAwIBAgIBATANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTDEZ
+MBcGA1UEChMQRGlnaWRlbnRpdHkgQi5WLjEkMCIGA1UEAxMbRGlnaWRlbnRpdHkg
+TDMgUm9vdCBDQSAtIEcyMB4XDTExMDQyOTEwNDQxOVoXDTMxMTExMDEwNDQxOVow
+TjELMAkGA1UEBhMCTkwxGTAXBgNVBAoTEERpZ2lkZW50aXR5IEIuVi4xJDAiBgNV
+BAMTG0RpZ2lkZW50aXR5IEwzIFJvb3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBALgRo0XeAUdWDWK4jrpYZlz6MsZrgG64f/hT337fYqjB
+V0+aRSXISkUtUzgksyCsT+qt/5oQr3/iDsq0DiQlkc52jhCpL5lTp5BLBItterlB
+G9MBeYyfQWu5kNeBEhoHltAJr+nkaiFTgLiGnmJoQ62zahX69m0DMmo1sVATSMd6
+tSETnASc2pP5aivBpxj99sB+Wfb75w4Rtdwj6hzvZwVXzhfp8Xux0TIkjM9l59S8
+NhlwfKInIdaA0i0VT0q14FWQlVGTIYDznEQf/x1VVeTiEBGUFlPQ/q/z75e6RuJ3
+W8vWolkRiKbnVUHDkmUdIxRiFH8lciD2pIcpbwf8/uDQGNKX+RSONsboDBiX8XYc
+9CTa40r5t0wSGWfz8OFT+13kwHRjXyWRCtk+9DOs5At1X87mmLxUDZ2iMcUVVF0i
+HIs6VKYN0dcjOqw+qkoXZHYtDftU5euCPDlBQ53hrnlgz2bux3GDewxrCdueok1O
+RpNot/pn4dq/35GA2qOiia1ebMxLd3Vkb40k44iIC+M/6b+n5VZiDYN/vWphyJCJ
+eFsMrxIq4pOtZOfZRS72sMirRe5wOG+7NT4W/quew2Yv874JYNVvgL1N26+N/gxg
+M2sP6J1rxDB3nyxQONCYaew36J4P5GLq+v8RRFTZ782TdZFM4YllppS5U/n5SWPF
+AgMBAAGjgYkwgYYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0OBBYEFCsjIGC9LYqIR6ytK74CObqY1OyYMEQGA1UdIAQ9MDswOQYEVR0gADAx
+MC8GCCsGAQUFBwIBFiNodHRwOi8vcGtpLmRpZ2lkZW50aXR5LmV1L3ZhbGlkYXRp
+ZTANBgkqhkiG9w0BAQsFAAOCAgEAqf3vuo8bfjISZx1BDS2mi8/y9K1WeH4KmNib
+qNG0SywmrOTSf2c3vQmN5blzETpuCcdXZAchNPgOXSrYkXzxVFG8nPAMakL0PAFO
+k0VBPazzmEsecR4zWTL/fDDwXOThvi0uterdYiEOPbQNlfzJuNm6oPdip+3DA64I
+LEHV70NxOLcUcq4/9BR0R9jejFF5zu+xVKxwR5Z+LS7dm+6hAS4Z775YYHEtrZdb
+WmAwyzKCYk5W5WdqtNIxVHI/AtC8MDmPt0MJKh8mOwzHfB2bgGCEDuku0vkVu1vg
+iqQA6eMp+yhbvTZFYCFDMf9woV9cg1uXfA23U1nsmLVO4imx1HxG4+jjQ+o6ljUf
+U/EEFiXjLPNooaaR3xX7vZ/mTp7CVGt+IlfjpJxcIiUfga+ZyN8RFUhD+LMzqSN/
+DjOPvEYdQ7Q7YPWXhRmiFrBV3BpwKWXa2X4JFzTribrpYZLY3jRjPEpVar/ahu3O
+M967U2/PHNqUT3ZUrGVVEFOayLhr3AbmuuVR1UF/H8TAQaFgkTTzE4LRoXfT90zk
+Gf/XRJqwtbzcyl6P3M7xoGk24ESSLpn6vK+zx3g6VWbHa6XkaSbpNB0fKpcK6Xep
+d1tzSDKBv//R7IPFcINpnpgbw1ffkZUcgPyN6JaDBdOfeoh7+uhX8cGEKL3N1hzM
+peJJCnM=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFkzCCA3ugAwIBAgIRAJBmYahiPWVEdwQ/cZrDlwwwDQYJKoZIhvcNAQEFBQAw
+OzELMAkGA1UEBhMCU0UxETAPBgNVBAoMCEluZXJhIEFCMRkwFwYDVQQDDBBTSVRI
+UyBSb290IENBIHYxMB4XDTEyMDMyOTA3NTQ0OVoXDTMyMDMyOTA3NTQ0OVowOzEL
+MAkGA1UEBhMCU0UxETAPBgNVBAoMCEluZXJhIEFCMRkwFwYDVQQDDBBTSVRIUyBS
+b290IENBIHYxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwO3mnqis
+qP/YNbn8+/CVTz89RyPRksnJ+PDiH4atiD/gAM9PEZVhPaXWIBnRiNLCVglFIKEq
+6iLD6rrMQmmeuIWfcMBsp75vo1zdQ4gHzcop32l6Hy2fVmobYiAhYcZQS2V1SUa/
+XNcpHsIehULhDjhNwzZxQkRROtFYzMm0qmxAx4PxxwmfSvNr8wcWNfSCjl6LhNxx
+ebn7bldFt8VwOv9CAtE0v4VwbU+P5x8ZIffVNLzuWeYuIvNxgmIZnwVkfDsicRil
+LcF4WJnRr96UQAYZdhNQhyPLR1eubMUT6pqFUsPKVyYf3hZtrXF+8thh/eY2TnEa
+ndMgNa0SIVh1NouJFqQ3KM+ggzpAo8oR77TlkBvjZZJnmG8OKeVnGNeI+o22x3ql
+oH+RHqu2+XSYdlJgL1o3majb0T7WhGpvUtO02hrHuLLRlBEfxYiJ6Vupo5Tmon1N
+pzKJod4ma83Vo/IyG9o1E4kRSU2/RjG76S0T+A4Apf4D9VZGPI8TK+Dlxx4D34rq
+RoVFhtntXgu4ZJP00FguKY1FV02JdZBlzGo7wZyAubSANQOO324qk76mvgoBRG9A
+c6oqghyEdn9p3bG7kljoQFFyXPc+OUT6pZmgf42LsEFYd60ixaDAuv0xmTVq2ckg
+Gl7zvbwIf91JLS+dkRANW6g/z7RXcztb4GcCAwEAAaOBkTCBjjAPBgNVHRMBAf8E
+BTADAQH/MEwGA1UdIARFMEMwQQYJKoVwSggBAgEBMDQwMgYIKwYBBQUHAgEWJmh0
+dHA6Ly9jcHMuc2l0aHMuc2Uvc2l0aHNyb290Y2F2MS5odG1sMA4GA1UdDwEB/wQE
+AwIBBjAdBgNVHQ4EFgQUMvmdT2npmI2g1ox9+R3Oozy6dhUwDQYJKoZIhvcNAQEF
+BQADggIBAB8/43hYyArKNCIJ2LIFi9FlnOHX130KwByYpSRSODPaZCIjgK7+PYC+
+T4/dg/YNTDNa1aM7UIpSWiYUc1GU5FKXY9u3Bqjvj63i7d6jvyDRRtsteOgsJ0Sc
+POy3F/yJl/Ojol7CWVPgz+S1ATtjUyjTr2ZLNDmvYQ4+m+6zidaToDsBxLMjVBA8
+TdeqsNrZbMowRC3dsihiikFg8kATbLB8PkHgi6Y08eeuUYcDjpl/2Wii9pwNeYKy
+n98kyGZg6LZIRCfIa1a3RIXOArfTinFcV1FXIYzqwlEPUD+AqwRNyVLd5KXyLh9t
+dbqHHZAL7hiEgHO7i5WEimENTl1in+NmDPs2DifTSPgGiAalX+5+XN2tCh09HKpA
+eZh5uFCMNo0LCjYL1T7nXYHdbNxtsW8NdJ4sL8IF8kQRsjP6gcVKbT5F1izia18u
+5EOVURuZMQXfJRtz0XucxHNJ+2Jg2Wlj3dE+ZW1H+mRMA1hQ2aa+5Spo6z+LEPHm
+uyIGKJqgpJhpbza01A0ODH3AKTG7LAMn4WenvdGLLraHxArgCQuCoeZPWJ372Phh
+4cqXxLi3UDnMMU79LRwa9kfjbOwbBeh/FzUQhNoz5zTmtaTrxCIHSvabWNgPnED7
+sYtfov2Z6qJ7WWLRXq7RSnIYK0s2OXIHmlrwYzrPG/nP3UhzWXDk
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFljCCA36gAwIBAgIQUqy+BxFJl7sfv4cbJRe/pDANBgkqhkiG9w0BAQUFADBl
+MQswCQYDVQQGEwJNTzETMBEGA1UEChMKTWFjYW8gUG9zdDFBMD8GA1UEAxM4TWFj
+YW8gUG9zdCBlU2lnblRydXN0IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+KEcwMikwHhcNMTAwMTA2MDAwMDAwWhcNMjAwMTA1MjM1OTU5WjBlMQswCQYDVQQG
+EwJNTzETMBEGA1UEChMKTWFjYW8gUG9zdDFBMD8GA1UEAxM4TWFjYW8gUG9zdCBl
+U2lnblRydXN0IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKEcwMikwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2+IendMxdI16uq5bc1yQoHaQU
+ZtegaIxenUXU1CnTswvrrRbqnVIRyaThcOXdvg4cEXfrn6NweBePuT4XU2mp6/VV
++ZWX6d85dp4fUhe0GwAS0M0846pJ0Z5BNzb1Yc0jD1ex9k3T2w1CUwKI9PCphotX
+z3IK1ZRLWto35T1HWWe+045W1Vc50Cfbn0lPqBZUv3hfzxydXqELjIMDswwUyVqp
+u//GrlnP9WUfI4kBU4rVWxedm/+YUQ9DSfeqLO3l6YY6M1Bz3FKla2OE6ROifMd3
+GvOqqQ0LTk4dRMNyO5lZ50EiOyxUXhIxlmhBGdXtdae5V1sR9pqkSS9i8wuYURuz
+M0LSzNRhGcPT3Jv7k7JizTb7jOkabhqxOSSOXdk+O4Z8iOa3JwP4lVGwv1A3/vhO
+EwEbJy2bktByV9ejmlboa6P3Vd5AXeIIH1y7UaaetN0OphpZYmeGcxCVnZXNur/Y
+nCoOi3aZk9RLsOhUPw3YivmAz0H9AXpFfH3WPU75Yk9BJXyqbVhWGwe0c6ofER88
+ulMj4O1KzZaJ3EjQTWLLkwf2oK5TF3xfXAccBUyrTGqqwg+gGWt5ecJ8s6n9PfvM
+fHHFu74lbSGn+9a+YPO1qalsdBg/qJ5CYEHyOS0dwg1z8uCxtkoaGL13aRnX0nqx
+3JY1mtgmhYO2EynC4wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB
+/wQEAwIBBjAdBgNVHQ4EFgQUAoG3tmb4kkVtwnHSn+wv07ofuf8wDQYJKoZIhvcN
+AQEFBQADggIBAFhTi77PQbJPttXeSmjNZc/GQIqsS5pbY2298T9ZUELQ35rjX1aR
+s1ub2UUGQ++TG/0zdx0GVDhI8VSMOlNrO3E1CXZl6VcPQ/aRmt4Qu7pokioly2dE
+CWu/nZdmy6lFtr43mR11Jb49PGNsv6kTR8dyjMvDz/T2hwWZiReoNCDx36EnZ9On
+I++rWYM9GtgqzcKtSjAMBjogi6T42kY3Qy60iR2Ec4pgvmQxJ0LA63JhbczefHMr
+6L85Ql55keyAG6o2dk4h6IYElwkoy0fnQNQsXhpeSPqux+kE6kckm77xR57V1XrR
+XtSF8gsjBJjUK5pWckZMQZoz8JK0v0HUvZuws/H1E9avW9Ty0UHwR116vHpZ8X1g
+aJQOSk+BkiKqH8Q8vhw6OkzwcKF/u5/c0sWk8SZu4fMmqXD78YmWYhVcWaC1I/qW
+arIakj0NJEoruAj+b9/cwu6W/86/e7j5hO9BO+RNuYeRusZfyO3wy4vTD5H2IN6R
+mMbnSGTRzlMS7sQVbdyAUBsTYE95W/wanP6in6ARM5HJS206ZpYt0zj42ZmBtEQm
+f7HnnnBtHW31IgnkrBk2+ycF2Hqb2byeG9oZN9jx3RWYZBuPU/AonawUul9pz5Yj
+7lasmc06j9VeGeZiEzpf64tfFsA74dGTj1ZhNwXQeRv9qLwPedKz5tNm
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIECDCCAvCgAwIBAgIQVKLklbYykRgc25nKrH2fpTANBgkqhkiG9w0BAQUFADA6
+MQswCQYDVQQGEwJERTERMA8GA1UECgwIREFURVYgZUcxGDAWBgNVBAMMD0NBIERB
+VEVWIFNURCAwMjAeFw0xMTA4MDIwNjU5NDRaFw0xOTA4MDIwODU5NDRaMDoxCzAJ
+BgNVBAYTAkRFMREwDwYDVQQKDAhEQVRFViBlRzEYMBYGA1UEAwwPQ0EgREFURVYg
+U1REIDAyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5TKH73zbZyv/
+tUaVT0P/Hc5vdYc3LRAuQd2oUwGyvKRTRQ36AFw1strjjLYLXj9DugVvnMPmpAtq
+p65YlRtt37azI1ebPWsb3DrE7HDCKfzi31u1zCKq7Eu4HJtWOw7Ew2/thhd/3hG3
+vQIvYrVyfUuYbiJ3YkL0iOKpoeVRfQA49Mz+/8uKzNzk/PJiWsT+cB9WKpsM4Bxa
+bvB2hjdKmZuFXWqI/ZtPyoQYbWTzuSuafOamUFHZpEG/+eLHsrXkRvf9siUJ22Uz
+dWDkjgUXibz/jYtfCvlij+Z66TLLaqet9ycpQZRtrHsRaHfeuHfJaD1psvCXpKAQ
+TBmsZXiiEwIDAQABo4IBCDCCAQQwDgYDVR0PAQH/BAQDAgEGMHEGA1UdIwRqMGiA
+FFeVI7OGS/ppd0EGeewQfCwC6AjUoT6kPDA6MQswCQYDVQQGEwJERTERMA8GA1UE
+CgwIREFURVYgZUcxGDAWBgNVBAMMD0NBIERBVEVWIFNURCAwMoIQVKLklbYykRgc
+25nKrH2fpTAdBgNVHQ4EFgQUV5Ujs4ZL+ml3QQZ57BB8LALoCNQwEgYDVR0TAQH/
+BAgwBgEB/wIBADBMBgNVHSAERTBDMEEGBgQAj3oBAjA3MDUGCCsGAQUFBwIBFilo
+dHRwOi8vd3d3LmRhdGV2LmRlL3plcnRpZmlrYXQtcG9saWN5LXN0ZDANBgkqhkiG
+9w0BAQUFAAOCAQEAKELiFx3I3iILwdpiRTjWMQyhTXVfg7yLZlRd2H432ubn/f8T
+5sRtiU9BLebp1rb9FYb9myWq89sNkpinAZ6VuKzbejS+e4eaDq2FsaDx9Z45Cs83
+wRiqlRYOBKFjsd8JkgtLWAWdAJiBaWWUhRJwxZnI7AvPIItkre291sBZcoNYc5Vk
+VDZ0hjqk/ZfnFWWmlgsm3RfY72uAIamwahrNdWEohWebxiYPgVjxHX6WtwYOwNHb
+iHSoOq4banveTGCiu73CE+1Wi0cm1T31+zQm6CfafIM3PX9SuLkhnfnk70vaIj79
+SDzaUA4SLEjhUIBO1pBjVoau2BBPe5EEIKj4ug==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIECDCCAvCgAwIBAgIQakYKg/C6q51c2UhLuD8zWTANBgkqhkiG9w0BAQUFADA6
+MQswCQYDVQQGEwJERTERMA8GA1UECgwIREFURVYgZUcxGDAWBgNVBAMMD0NBIERB
+VEVWIElOVCAwMjAeFw0xMTA4MDIwNjU5NDRaFw0xOTA4MDIwODU5NDRaMDoxCzAJ
+BgNVBAYTAkRFMREwDwYDVQQKDAhEQVRFViBlRzEYMBYGA1UEAwwPQ0EgREFURVYg
+SU5UIDAyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8D/SbBm5lK84
+epzqW8LKXQHpKZA2ZRJknw71BkjVCPIxDTj4qfHj3UsZ+juN8lLJNhAmVDKikEYf
+qpyeHLwvhf/0ZdkAL0sVHQYWNgmANcis+G5BLbSYwfzogNxjJtnqcpxVPSYB91vh
+pIshyBA4dqREbLlEcFXhsJI6ia8zlHz0wQ6fEraMjgh7XfdAyxbedGHIZAv+2yqB
+025Umn1L60O0Uw3whwKLL6JcpdmoihskNIrj3F/2ZCnE6GV+EzRp0XDLVgdtqJ9v
+hWzSh5o95gkvMW2uBo00tzzK/5LRJqW6hZszsrfgygo1u9HEipOj+ZJL17YDh4kY
+Vo8AdLERhQIDAQABo4IBCDCCAQQwDgYDVR0PAQH/BAQDAgEGMHEGA1UdIwRqMGiA
+FCl1kXZSCcTWCOzFJXPpMtsCU8NboT6kPDA6MQswCQYDVQQGEwJERTERMA8GA1UE
+CgwIREFURVYgZUcxGDAWBgNVBAMMD0NBIERBVEVWIElOVCAwMoIQakYKg/C6q51c
+2UhLuD8zWTAdBgNVHQ4EFgQUKXWRdlIJxNYI7MUlc+ky2wJTw1swEgYDVR0TAQH/
+BAgwBgEB/wIBADBMBgNVHSAERTBDMEEGBgQAj3oBAjA3MDUGCCsGAQUFBwIBFilo
+dHRwOi8vd3d3LmRhdGV2LmRlL3plcnRpZmlrYXQtcG9saWN5LWludDANBgkqhkiG
+9w0BAQUFAAOCAQEAPXXJmeR39fOeOmonlVp3K3TQnODSkT0p+osyDDbrmBI6zgIl
+AsInlyQUNTXA1vFV2ew6KhdqNMjeDah6C4WEdJViGsITu2G6w/S2mQlxram6T292
+xoGRbyRkB8PsGW1ObsZnVbLEYgD/dQqQ0ky3YJvmH1Uq2WiVPGD+dL9vWCdV/d4I
+/XYU6PHQRS4HUPMk26mbO8S9DclnuudKFjel7Riok4KIWihUrbECLzVDwaJO0bYC
+jga5fLWl5P+XzWQbRgCdFFYQ4tW+hTIJK4dQdvqGmqxWtpqplqSJN/wLbkiMxgRU
+816WE+5ydGaa+1oyPjixpjopkCeKiXXlR2NZvw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEBDCCAuygAwIBAgIQT2FsACTM4xqjODs9w5Qn9TANBgkqhkiG9w0BAQUFADA5
+MQswCQYDVQQGEwJERTERMA8GA1UECgwIREFURVYgZUcxFzAVBgNVBAMMDkNBIERB
+VEVWIEJUIDAyMB4XDTExMDgwMjA2NTk0NFoXDTE5MDgwMjA4NTk0NFowOTELMAkG
+A1UEBhMCREUxETAPBgNVBAoMCERBVEVWIGVHMRcwFQYDVQQDDA5DQSBEQVRFViBC
+VCAwMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOa7Qdql2+RJBM9F
+Do5XMDfGW7di0cUvn46gNXeFFvWDmhHsADdIrkUj+TjEvPvwOvNGxWpm7S76cizZ
+T8wxvm5K538U7/L37IhR5EI9Ub+QpounkXfqafRS3wpS3bQYVQGi7QCpTZ/jTMd3
+QG/xZ2VNl7t2LJqh0rolywF6z406820ENflOxQCb8TFeMrVpNiExEJo5OW58SNV4
+DDugRUsp1L6CbqeDaRo01uvcHYWfe4d1P1z3mCMGX1xpIeVXjem3IHXjZ2EjTCxg
+G73txsk3YCYwYQlMQBveu7CO1ipeb8T5B1tM33GkugMwpVYCEFV97wcOIDoi825d
+YarRgqcCAwEAAaOCAQYwggECMA4GA1UdDwEB/wQEAwIBBjBwBgNVHSMEaTBngBSo
+G4NG1/hLe6/OubcqpgWeDv4NlqE9pDswOTELMAkGA1UEBhMCREUxETAPBgNVBAoM
+CERBVEVWIGVHMRcwFQYDVQQDDA5DQSBEQVRFViBCVCAwMoIQT2FsACTM4xqjODs9
+w5Qn9TAdBgNVHQ4EFgQUqBuDRtf4S3uvzrm3KqYFng7+DZYwEgYDVR0TAQH/BAgw
+BgEB/wIBADBLBgNVHSAERDBCMEAGBgQAj3oBAjA2MDQGCCsGAQUFBwIBFihodHRw
+Oi8vd3d3LmRhdGV2LmRlL3plcnRpZmlrYXQtcG9saWN5LWJ0MA0GCSqGSIb3DQEB
+BQUAA4IBAQAXA5w3j9tpNBb/lDrjIZcR/VTbfnEZnwb1XPVB/tjOnhiN6uOe23oC
+zeJAYH0yba0dQfgQvFNCtkmKBJ1uWuIrlhAItWmS4BZtjItqRU2aIyWS5DUBkhJr
+fSUSN9QdbAx9N05cwCqOJT+v5jE/F50/Tw+bt5gKU3frBQwj6UR60GMOItqQ9uES
+/S6LRC4ZlH89zqi5FCyLr+rjwN8ljtrI8EqpLYbz+7tgB+1JUPoDy2xA8VqIX34h
+NhCmWTghY4O9BjE9G2jeuBUfWm3MxG6e3riIeyHAwvpajosHoeD3RZMGy6a/M4zz
+QQZIBGYyYVMivulJgEsBkXcS5a6zglV9
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF
+MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD
+bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha
+ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM
+HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03
+UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42
+tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R
+ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM
+lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp
+/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G
+A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G
+A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj
+dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy
+MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl
+cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js
+L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL
+BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni
+acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0
+o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K
+zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8
+PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y
+Johw1+qRzT65ysCQblrGXnRl11z+o+I=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF
+MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD
+bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw
+NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV
+BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn
+ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0
+3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z
+qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR
+p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8
+HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw
+ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea
+HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw
+Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh
+c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E
+RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt
+dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku
+Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp
+3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05
+nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF
+CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na
+xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX
+KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGoTCCBImgAwIBAgIBATANBgkqhkiG9w0BAQ0FADCBlzELMAkGA1UEBhMCQlIx
+EzARBgNVBAoTCklDUC1CcmFzaWwxPTA7BgNVBAsTNEluc3RpdHV0byBOYWNpb25h
+bCBkZSBUZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxNDAyBgNVBAMTK0F1
+dG9yaWRhZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVpcmEgdjIwHhcNMTAw
+NjIxMTkwNDU3WhcNMjMwNjIxMTkwNDU3WjCBlzELMAkGA1UEBhMCQlIxEzARBgNV
+BAoTCklDUC1CcmFzaWwxPTA7BgNVBAsTNEluc3RpdHV0byBOYWNpb25hbCBkZSBU
+ZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxNDAyBgNVBAMTK0F1dG9yaWRh
+ZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVpcmEgdjIwggIiMA0GCSqGSIb3
+DQEBAQUAA4ICDwAwggIKAoICAQC6RqQO3edA8rWgfFKVV0X8bYTzhgHJhQOtmKvS
+8l4Fmcm7b2Jn/XdEuQMHPNIbAGLUcCxCg3lmq5lWroG8akm983QPYrfrWwdmlEIk
+nUasmkIYMPAkqFFB6quV8agrAnhptSknXpwuc8b+I6Xjps79bBtrAFTrAK1POkw8
+5wqIW9pemgtW5LVUOB3yCpNkTsNBklMgKs/8dG7U2zM4YuT+jkxYHPePKk3/xZLZ
+CVK9z3AAnWmaM2qIh0UhmRZRDTTfgr20aah8fNTd0/IVXEvFWBDqhRnLNiJYKnIM
+mpbeys8IUWG/tAUpBiuGkP7pTcMEBUfLz3bZf3Gmh3sVQOQzgHgHHaTyjptAO8ly
+UN9pvvAslh+QtdWudONltIwa6Wob+3JcxYJU6uBTB8TMEun33tcv1EgvRz8mYQSx
+Epoza7WGSxMr0IadR+1p+/yEEmb4VuUOimx2xGsaesKgWhLRI4lYAXwIWNoVjhXZ
+fn03tqRF9QOFzEf6i3lFuGZiM9MmSt4c6dR/5m0muTx9zQ8oCikPm91jq7mmRxqE
+14WkA2UGBEtSjYM0Qn8xjhEu5rNnlUB+l3pAAPkRbIM4WK0DM1umxMHFsKwNqQbw
+pmkBNLbp+JRITz6mdQnsSsU74MlesDL/n2lZzzwwbw3OJ1fsWhto/+xPb3gyPnnF
+tF2VfwIDAQABo4H1MIHyME4GA1UdIARHMEUwQwYFYEwBAQAwOjA4BggrBgEFBQcC
+ARYsaHR0cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJyL0RQQ2FjcmFpei5wZGYw
+PwYDVR0fBDgwNjA0oDKgMIYuaHR0cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJy
+L0xDUmFjcmFpenYyLmNybDAfBgNVHSMEGDAWgBQMOSA6twEfy9cofUGgx/pKrTIk
+vjAdBgNVHQ4EFgQUDDkgOrcBH8vXKH1BoMf6Sq0yJL4wDwYDVR0TAQH/BAUwAwEB
+/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIBAFmaFGkYbX0pQ3B9
+dpth33eOGnbkqdbLdqQWDEyUEsaQ0YEDxa0G2S1EvLIJdgmAOWcAGDRtBgrmtRBZ
+SLp1YPw/jh0YVXArnkuVrImrCncke2HEx5EmjkYTUTe2jCcK0w3wmisig4OzvYM1
+rZs8vHiDKTVhNvgRcTMgVGNTRQHYE1qEO9dmEyS3xEbFIthzJO4cExeWyCXoGx7P
+34VQbTzq91CeG5fep2vb1nPSz3xQwLCM5VMSeoY5rDVbZ8fq1PvRwl3qDpdzmK4p
+v+Q68wQ2UCzt3h7bhegdhAnu86aDM1tvR3lPSLX8uCYTq6qz9GER+0Vn8x0+bv4q
+SyZEGp+xouA82uDkBTp4rPuooU2/XSx3KZDNEx3vBijYtxTzW8jJnqd+MRKKeGLE
+0QW8BgJjBCsNid3kXFsygETUQuwq8/JAhzHVPuIKMgwUjdVybQvm/Y3kqPMFjXUX
+d5sKufqQkplliDJnQwWOLQsVuzXxYejZZ3ftFuXoAS1rND+Og7P36g9KHj41hJ2M
+gDQ/qZXow63EzZ7KFBYsGZ7kNou5uaNCJQc+w+XVaE+gZhyms7ZzHJAaP0C5GlZC
+cIf/by0PEf0e//eFMBUO4xcx7ieVzMnpmR6Xx21bB7UFaj3yRd+6gnkkcC6bgh9m
+qaVtJ8z2KqLRX4Vv4EadqtKlTlUO
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF2TCCA8GgAwIBAgIQHp4o6Ejy5e/DfEoeWhhntjANBgkqhkiG9w0BAQsFADBk
+MQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0
+YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3Qg
+Q0EgMjAeFw0xMTA2MjQwODM4MTRaFw0zMTA2MjUwNzM4MTRaMGQxCzAJBgNVBAYT
+AmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZp
+Y2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAyMIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAlUJOhJ1R5tMJ6HJaI2nbeHCOFvEr
+jw0DzpPMLgAIe6szjPTpQOYXTKueuEcUMncy3SgM3hhLX3af+Dk7/E6J2HzFZ++r
+0rk0X2s682Q2zsKwzxNoysjL67XiPS4h3+os1OD5cJZM/2pYmLcX5BtS5X4HAB1f
+2uY+lQS3aYg5oUFgJWFLlTloYhyxCwWJwDaCFCE/rtuh/bxvHGCGtlOUSbkrRsVP
+ACu/obvLP+DHVxxX6NZp+MEkUp2IVd3Chy50I9AU/SpHWrumnf2U5NGKpV+GY3aF
+y6//SSj8gO1MedK75MDvAe5QQQg1I3ArqRa0jG6F6bYRzzHdUyYb3y1aSgJA/MTA
+tukxGggo5WDDH8SQjhBiYEQN7Aq+VRhxLKX0srwVYv8c474d2h5Xszx+zYIdkeNL
+6yxSNLCK/RJOlrDrcH+eOfdmQrGrrFLadkBXeyq96G4DsguAhYidDMfCd7Camlf0
+uPoTXGiTOmekl9AbmbeGMktg2M7v0Ax/lZ9vh0+Hio5fCHyqW/xavqGRn1V9TrAL
+acywlKinh/LTSlDcX3KwFnUey7QYYpqwpzmqm59m2I2mbJYV4+by+PGDYmy7Velh
+k6M99bFXi08jsJvllGov34zflVEpYKELKeRcVVi3qPyZ7iVNTA6z00yPhOgpD/0Q
+VAKFyPnlw4vP5w8CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0hBBYw
+FDASBgdghXQBUwIBBgdghXQBUwIBMBIGA1UdEwEB/wQIMAYBAf8CAQcwHQYDVR0O
+BBYEFE0mICKJS9PVpAqhb97iEoHF8TwuMB8GA1UdIwQYMBaAFE0mICKJS9PVpAqh
+b97iEoHF8TwuMA0GCSqGSIb3DQEBCwUAA4ICAQAyCrKkG8t9voJXiblqf/P0wS4R
+fbgZPnm3qKhyN2abGu2sEzsOv2LwnN+ee6FTSA5BesogpxcbtnjsQJHzQq0Qw1zv
+/2BZf82Fo4s9SBwlAjxnffUy6S8w5X2lejjQ82YqZh6NM4OKb3xuqFp1mrjX2lhI
+REeoTPpMSQpKwhI3qEAMw8jh0FcNlzKVxzqfl9NX+Ave5XLzo9v/tdhZsnPdTSpx
+srpJ9csc1fV5yJmz/MFMdOO0vSk3FQQoHt5FRnDsr7p4DooqzgB53MBfGWcsa0vv
+aGgLQ+OswWIJ76bdZWGgr4RVSJFSHMYlkSrQwSIjYVmvRRGFHQEkNI/Ps/8XciAT
+woCqISxxOQ7Qj1zB09GOInJGTB2Wrk9xseEFKZZZ9LuedT3PDTcNYtsmjGOpI99n
+Bjx8Oto0QuFmtEYE3saWmA9LSHokMnWRn6z3aOkquVVlzl1h0ydw2Df+n7mvoC5W
+t6NlUe07qxS/TFED6F+KBZvuim6c779o+sjaC+NCydAXFJy3SuCvkychVSa1ZC+N
+8f+mQAWFBVzKBxlcCxMoTFh/wqXvRdpg065lYZ1Tg3TCrvJcwhbtkj6EPnNgiLx2
+9CzP0H1907he0ZESEOnN3col49XtmS++dYFLJPlFRpTJKSFTnCZFqhMX5OfNeOI5
+wSsSnqaeG8XmDtkx2Q==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFwzCCA6ugAwIBAgISESGFDLOcajL6vmcbgT+khhWPMA0GCSqGSIb3DQEBCwUA
+MF4xCzAJBgNVBAYTAkZSMQ4wDAYDVQQKEwVBTlNTSTEXMBUGA1UECxMOMDAwMiAx
+MzAwMDc2NjkxJjAkBgNVBAMTHUlHQy9BIEFDIHJhY2luZSBFdGF0IGZyYW5jYWlz
+MB4XDTExMDcwODA5MDAwMFoXDTI4MDQxNTA5MDAwMFowXjELMAkGA1UEBhMCRlIx
+DjAMBgNVBAoTBUFOU1NJMRcwFQYDVQQLEw4wMDAyIDEzMDAwNzY2OTEmMCQGA1UE
+AxMdSUdDL0EgQUMgcmFjaW5lIEV0YXQgZnJhbmNhaXMwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCqfCifETCYzW9uLIUSJjsIBspB/VJPQ73AJidxdhpZ
+ltgJ6weqJk5PPkuh45eHhWaBccm5FXZvd1AYkxAtN4hNF7fzRb0iLrcnmFvHBf29
+M+2i9VMdKCNlv0A1bs5qC8Op9SUMqyLwuMDEfTcMo2J87rTbPSE5p5yJ45uiEPiK
+tkovLphpK2qghtrxCOW+TGcWLSVh89UNCxdERwnURgWdD8CITWHkJMTHaAmvrNKv
+uZUmb4AE/HasqscjtuQGkVVE7GTbmYEc0lZ0/dYyKLvLyTcN+2lsb7qjawaMakAu
+Fzo56tAM31ocum+kMrC4zD53G9OLH4b6/z4+b1yIRufjD/qrHfN9S/hUbk7M3DJa
+Y3iiMq8zeOpD4Ux6TdeUBi3mT6VCkq8oik/DFeypa6nf4N0TArzMff8t5gepvnWW
+6kJeWxreojOzY72rBfmL5r1N0W1WmuuJPJ/AeOS+JXAGxRFzoMjKFMs61PKcKjza
+Xxcz2XYUN6pJh2XZ9NkuGV/5oM2ouUEybXGmpMv3YyLQKeS6gRpqKR2apaRcRlQk
+RdTI7Xp5heyEd25nTWQPQ956g6Sn2Nu1U0z+YsgTw2I2pSgxMpu0lofimcYfVr9G
+o6lkMeXVsUuoZsxbof8W/Ao4KmiPdyUmrZF0hWjIfxrlWhS4fQ63IzHAZLcFL0FY
+VQIDAQABo3sweTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAWBgNV
+HSAEDzANMAsGCSqBegGBXwEBAjAdBgNVHQ4EFgQUn6rTKZbfAOVD4PFjrN4SjsIn
+ePowHwYDVR0jBBgwFoAUn6rTKZbfAOVD4PFjrN4SjsInePowDQYJKoZIhvcNAQEL
+BQADggIBAHW1ddGONmacSPeFDU4Fu02anLQOKKIEvFAwu/SUTJiQhavgUmRP0tIu
+YpOQsIUNiFT7xlRsnuuVeYBeopcWH/JndEGcVfS3aptKFoa9BR9mgHB+ydH1LSFx
+UDmlrYimJhyL1yUcOtbj9MIMn1fBZMhXUSMWI40PI2pWS//6xp81k8YiwGXxr96p
+bBi+V2VZzfQjVWQh2O2VYWkzcmpR9p/llW2O3mtzJxOUXn6XSMAyFr49N+3W3I68
+XC38YqjP9pD3sYsJ6zokYw3IlkXUL3dIQvUtYucnC+ARhhndpxD3YwaRMGladfSs
++aGNl8ag7zofkyVIVjoaiCEZk8OVIEkIVUlNolOcmZxzaS6n9cq3DiXvNyNfkNhD
+fu6EF2onXn/SLT+sPq8wp42RxPSPCR3z95EO4xi63ETJfQVTA7duoPN519EaT9C4
+bIh2wYCYVYVTYc9EV0zeTg0WUfE9iYGufQutirXuVsTGzBELGNT8/Xn7/gQRnCPv
+dnLHjb65Hnh28pocrWNCx9jtbWGQwiEqDwgULSBDJXwYtbegpH25pQwZ/smrPedb
+3q/6VxknhecjDvTNDRkwPorkxhEe8LR9aWObDpaGkOD7A29bWT4dIfVXZ1Ym8ocZ
+B4S6LJA6wyikBVogzalblXU5fyJQCk5/F/ezrNMHpr4tUgowTHgQ
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGMjCCBBqgAwIBAgIQWMv5ZJZxdJVA9K0IrGTk4zANBgkqhkiG9w0BAQsFADBz
+MQswCQYDVQQGEwJJTDEYMBYGA1UECgwPUGVyc29uYWxJRCBMdGQuMR0wGwYDVQQL
+DBRDZXJ0aWZpY2F0ZSBTZXJ2aWNlczErMCkGA1UEAwwiUGVyc29uYWxJRCBUcnVz
+dHdvcnRoeSBSb290Q0EgMjAxMTAeFw0xMTA5MDEwODM1MjFaFw00MTA5MDEwODQ1
+MTZaMHMxCzAJBgNVBAYTAklMMRgwFgYDVQQKDA9QZXJzb25hbElEIEx0ZC4xHTAb
+BgNVBAsMFENlcnRpZmljYXRlIFNlcnZpY2VzMSswKQYDVQQDDCJQZXJzb25hbElE
+IFRydXN0d29ydGh5IFJvb3RDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAsJWMYP4FDmoz7feL4/LV8nzTVkJU9yvyiKX157dshwErab4FSUTY
+2yF6KteKMaEhEJ7T4m5jgoVUhE0oJhviE/dR+y/rEtU9OYxkn6QTh8PYyfopI44J
+j0lGxNTJV1hpnxfPc3Sl7soYucfBMM1POjUIU/jsGvtvMO32nwnw8NDEjjt5Ti6F
+IlzUfXDR/5K6H9RVU2e6KFgt9xOM/KULnDimRhwO6Kp4K/UKMNM7YIbIf6WbomMB
+L9DTEiWFfpbNMbHkm47qLJOkYqg31faP3yGa0z4d4VARcFSbBBedTathzo8qLO95
+5ndFWdZo1bZLmquRSw5hF7lYwp5moY+JwUMgQrB/gJxKKrd6IEHGTcSSb3p+XVu5
+o8lOyuVQZbwAAHlH8EUEsCL7DpiqYR1PYGNyj7WwBJR/EKwZPydiadYcV905Tzjq
+AJr9KJ1AJsBAncSgSchBtWc9oEuUKRKpWCdZBH+P0Yx+DLMIFzSsj7lcvelwoX7C
+pWVh6bYQUI/c5HRh8V9ye39cLy18q9ZDMRAcWXfKSEoYomQLAFlnx9TKw5saCFIV
+vtfFxrcv5mKcpsfY3vAV+645VS1vUHUu/aAHtF96fgSL9pmide3JO9U9z2dSPT7v
+H3CaGDynIAZJDLFlrDO71H9HaYj2ioHundS0xy8D6K4ayVYFZ2moyIECAwEAAaOB
+wTCBvjALBgNVHQ8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBAjAdBgNVHQ4EFgQU
+x38LyC9Xjiny9gGL6yelVo79pB4wEAYJKwYBBAGCNxUBBAMCAQAwagYDVR0gBGMw
+YTBfBggrBgEEAeEYATBTMFEGCCsGAQUFBwIBFkVodHRwOi8vd3d3LmljYS5jby5p
+bC9yZXBvc2l0b3J5L2Nwcy9QZXJzb25hbElEX1ByYWN0aWNlX1N0YXRlbWVudC5w
+ZGYwDQYJKoZIhvcNAQELBQADggIBAEJliyT6khU0Ghz6yM5Nei9739ADQRzUpOH7
+6MytCd0dpAjZqCB9l58MSfGlwubVd0aXfqSQonnpvRpeNIJmCVL8UNGP0Kscov//
+Pe7+I/i/I7PNvuH3z+TYEuOUyE7M13uwN5t36u1cgcjMj8454+RlXd6C2I8jaeFR
+r1+3T5BppJllU7rm/a94Z5RKyMN/jAJPSuaHmPY4t0j4bSh/98ZsJVT9Ltbq2gbi
+sf0HaPCvgIy0wul0FaQav7nKQ1sS54VHXlID8JHg6VBx1CECLHuGkXA2xpy2dPkq
+Vfch+2+gBl3XMBLyUfHJODaPyGZhQdnHS4JoUqP1iQwVvE4qlawxaacb4tTXSPSR
+9QN8eRY+LA1p4Yo3Hp98GFVBL1/npHKbVfPjAbACpYQSakCmq+ShrOsD2bxfJFYn
+rSDgZjVFPUcJ8AWxb3F+QLDQFV4rrFKBqPuD9SxXRIY05BRq4899mnfYbEhcy5rh
+pvu/EaIG5R9xvTS1z73EQhbFKfjUwEyKst7FlIKGm8zgqQZEMSQkTfrt4UIlZqLB
+14AX73qVZUM+ZtMF8QHkQlZEAHhrnTYg+2X/QFzoaDUf4SagggN2A8twRhEkrt8v
+YP3xJwADvUsn27yclzdRK+V4tME2kBCM/z0A1LpIn0jKhzGa7cSaU9LdcxQ/CYKh
+XWVOTSbi
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE
+BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w
+MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290
+IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC
+SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1
+ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv
+UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX
+4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9
+KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/
+gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb
+rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ
+51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F
+be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe
+KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F
+v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn
+fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7
+jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz
+ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt
+ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL
+e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70
+jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz
+WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V
+SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j
+pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX
+X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok
+fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R
+K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU
+ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU
+LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT
+LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
+MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
+Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow
+TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
+HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y
+ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E
+N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9
+tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX
+0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c
+/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X
+KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY
+zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS
+O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D
+34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP
+K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3
+AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv
+Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj
+QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV
+cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS
+IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2
+HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa
+O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv
+033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u
+dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE
+kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41
+3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD
+u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq
+4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd
+MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg
+Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow
+TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw
+HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr
+6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV
+L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91
+1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx
+MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ
+QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB
+arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr
+Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi
+FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS
+P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN
+9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP
+AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz
+uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h
+9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s
+A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t
+OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo
++fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7
+KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2
+DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us
+H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ
+I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7
+5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h
+3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz
+Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIECDCCAvCgAwIBAgIQax82MhidLW/byhlIb9QUCzANBgkqhkiG9w0BAQUFADA6
+MQswCQYDVQQGEwJERTERMA8GA1UECgwIREFURVYgZUcxGDAWBgNVBAMMD0NBIERB
+VEVWIFNURCAwMTAeFw0wOTAxMDkxMTQyMzBaFw0xNzAxMDkxMzQyMzBaMDoxCzAJ
+BgNVBAYTAkRFMREwDwYDVQQKDAhEQVRFViBlRzEYMBYGA1UEAwwPQ0EgREFURVYg
+U1REIDAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAl+PO7MQg+jCS
+iq77i49BvT2cZSCF/b9N+0gxdI18mdEf+jO8tlTXqCTvzkbHYA0ZqjZpi7jfqDJB
+0zgHnUwMQSlL96Z1KJtwA7j7i5xwyx1WPmv8ZbGQgs8eFanABXNcu71oGmTJom22
+vdHmLpL5Ep1MDIfW3FO+hwZwnXOrFosucprEftBPCrbvFiyyeni462B8sj6lNOju
+pGDNumEldvUTxVtCuSLSILYtF85YzfOw4+/TpNZHq8dpX2W4wlDCZGDJwAm3hq/b
+jNxLVzXss8Z2zzclJpcWiIVvvqB5r3uLY8antPtx/X3uM/awVOmsi3lwhUA8yvNO
+kJ7ysd/5hQIDAQABo4IBCDCCAQQwDgYDVR0PAQH/BAQDAgEGMHEGA1UdIwRqMGiA
+FOtbsgT+nPL4klE7LO9TsbPK1c0JoT6kPDA6MQswCQYDVQQGEwJERTERMA8GA1UE
+CgwIREFURVYgZUcxGDAWBgNVBAMMD0NBIERBVEVWIFNURCAwMYIQax82MhidLW/b
+yhlIb9QUCzAdBgNVHQ4EFgQU61uyBP6c8viSUTss71Oxs8rVzQkwEgYDVR0TAQH/
+BAgwBgEB/wIBADBMBgNVHSAERTBDMEEGBgQAj3oBAjA3MDUGCCsGAQUFBwIBFilo
+dHRwOi8vd3d3LmRhdGV2LmRlL3plcnRpZmlrYXQtcG9saWN5LXN0ZDANBgkqhkiG
+9w0BAQUFAAOCAQEAiBoUboBQtpF1YEWOU9Gzec2IG3NA6GOH8xzjQi5bfBItyphh
+s+EYnNobVEjZS4+jaFA9IYe7iXeZKcIijYrUZWpdJzKLGlB2E4eSyUwkmaWRkwIW
+6gDzpq/heATjdQvgbXZOrhpq/mcina3L7rLnSsH8W1aGwyVdHlRO1/tomNNm4Kq3
+C9VibyEkjbr1nlK+rNXutFTKRdUPJZRtC4hUOJsDJRcr5Bejg9HRPe7fraHd75kd
+pyCJWrf0XK/6OA4Jo5PsUJ5mC1aZVB2atioKlN2/+o5XEhgfsP2zb0gwKXDppgrS
+q6OBrhGaNfShQy8NXU2gQom+JgDjkDm/uZQwSw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIECDCCAvCgAwIBAgIQfyr4OOrTG/At4yD261CGBjANBgkqhkiG9w0BAQUFADA6
+MQswCQYDVQQGEwJERTERMA8GA1UECgwIREFURVYgZUcxGDAWBgNVBAMMD0NBIERB
+VEVWIElOVCAwMTAeFw0wOTAxMDkxMTQyMzBaFw0xNzAxMDkxMzQyMzBaMDoxCzAJ
+BgNVBAYTAkRFMREwDwYDVQQKDAhEQVRFViBlRzEYMBYGA1UEAwwPQ0EgREFURVYg
+SU5UIDAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwKP9oel0/goA
+7Boz3AseU9uK7/3tz4k8dCCpkhDYYgjHyNIBVGvyQtCa96CzcTxedeJnP1I6x4pT
+DYS8NfsU+y8ksNJl+/ipMZB0aKi0u7hD5XOZtrcaWmknbgG0wFnavClTqr6TqAUR
+UNerBrKKhkFf5JBzG0aPqxhlKl9t1dLyrQz62IvnMkWcuaxIp990zRUncIxS5GsE
+6vnFX8MNLJrE4JyUq4PvRAjHhkQfFKlCnXT7ZJZo/LetycUuVhE8Dhnc7LJlTa05
+vvocFeKpup7ox0PSEHURF7OPdW/D19LtbS8SNABvhrjn1zHV0S/SFtb0urq1opBF
+cDq1FW0y1QIDAQABo4IBCDCCAQQwDgYDVR0PAQH/BAQDAgEGMHEGA1UdIwRqMGiA
+FEbi4nRgTIGcL47gVRH7ou0y7b2HoT6kPDA6MQswCQYDVQQGEwJERTERMA8GA1UE
+CgwIREFURVYgZUcxGDAWBgNVBAMMD0NBIERBVEVWIElOVCAwMYIQfyr4OOrTG/At
+4yD261CGBjAdBgNVHQ4EFgQURuLidGBMgZwvjuBVEfui7TLtvYcwEgYDVR0TAQH/
+BAgwBgEB/wIBADBMBgNVHSAERTBDMEEGBgQAj3oBAjA3MDUGCCsGAQUFBwIBFilo
+dHRwOi8vd3d3LmRhdGV2LmRlL3plcnRpZmlrYXQtcG9saWN5LWludDANBgkqhkiG
+9w0BAQUFAAOCAQEAKlb1TDPpS/crzO0ms/p5WMAfsktwrHpk294ShcGXViBnCh4D
+/y1HYA8zuYV9IvB1eq6ygljXGLrf97migSPdKzY2o4gEUDTP1mLdB49hEckMveJA
+U1GryQfKmXciBiiy+1Bf85ujxOdd2K/ObZrn3DrNFnyd+yVGjjuIW8XokPcrKcNe
+YWZnT+LdhurQqjW9M3yqiA4NPrKN80cj4dsj/hy5TYGADv5h61NnEUXu4Lr0rwrl
+c/C/90+Sc7hE8S+Z6Sx3cSoY2+qOLQXxNr1xrZEmgXIXLTtCskR9ejUf9sdn6Ymz
+kblSsY0VrhVt46yTW9vpUH59+ETB1LIw+9jy1Q==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEBDCCAuygAwIBAgIQaMn00fBrCYjolp9Pz75cszANBgkqhkiG9w0BAQUFADA5
+MQswCQYDVQQGEwJERTERMA8GA1UECgwIREFURVYgZUcxFzAVBgNVBAMMDkNBIERB
+VEVWIEJUIDAxMB4XDTA5MDEwOTExNDIzMFoXDTE3MDEwOTEzNDIzMFowOTELMAkG
+A1UEBhMCREUxETAPBgNVBAoMCERBVEVWIGVHMRcwFQYDVQQDDA5DQSBEQVRFViBC
+VCAwMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL7yKPH5uXLkXa9o
+mnyBie0jr1YVpyQ6rmAvGEa7XQz3iFf6fzMPn5VmT9AXbFDthozKLixvnkVITTY0
+FC3bUNzNt5py1CifIeBMn0ZHfSLXR5Xz+oiieP58fapogjDW1Nure9iBnD7TKXOE
+TCN9O2MVS2GrD9QQCw9IDhrzKRcY7Ow5beqDnOvMS+NEIhtcxg0K4XX3DYofFLLo
+EDvZzPcuZqmOwH2pwJgvcNiE3q17Jvcf597vnorecLAWqguTHwMfqO68Zab5cPbX
+YFRnc4drrKQDVg3BNjSik7Y4jqcOQQwj6ZmgnfTlQ2gd2L+i5AUV0oWX6SCIx+W8
+ZjqGlTECAwEAAaOCAQYwggECMA4GA1UdDwEB/wQEAwIBBjBwBgNVHSMEaTBngBQk
+Qe7MzhWld6j0weGAyvRPP+RWGKE9pDswOTELMAkGA1UEBhMCREUxETAPBgNVBAoM
+CERBVEVWIGVHMRcwFQYDVQQDDA5DQSBEQVRFViBCVCAwMYIQaMn00fBrCYjolp9P
+z75cszAdBgNVHQ4EFgQUJEHuzM4VpXeo9MHhgMr0Tz/kVhgwEgYDVR0TAQH/BAgw
+BgEB/wIBADBLBgNVHSAERDBCMEAGBgQAj3oBAjA2MDQGCCsGAQUFBwIBFihodHRw
+Oi8vd3d3LmRhdGV2LmRlL3plcnRpZmlrYXQtcG9saWN5LWJ0MA0GCSqGSIb3DQEB
+BQUAA4IBAQCzx5/ZIeMm3kIczve4eACcwF7j23KDMNIu0QV5Gi+bFI99bKSqxQ8T
+clUs8zB9ObG0W2jMyjAI6aCgUXH5s039my3J9G2McKCCZN2mpoJ8sKy8PlfXXo6y
+bLUBTovXBLOkLv6xA0XW8XVdR6EnMNBBNMnxM4V/zBAvmNkdtv0L9FWfTgtgjt0u
+G3i+7UWpHlXIYpzH3r7aH3XxheSAiJGKus6fgXD8LN4DIyDkaBU2HM/gLDhHTyKa
+U0bLmZwlsv7bdEIKXcFyS3VDwNTwbcoD3sSj6pBf4tZx0cISNKHk08C494kE5zcw
+ttw7jiHw4s6D0+xIYKf/civ+gURHVgWU
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIIODCCBiCgAwIBAgIQDp8XmaWxPZzL7Abro/AOaTANBgkqhkiG9w0BAQsFADCB
+pzELMAkGA1UEBhMCQ0gxOzA5BgNVBAoTMlRoZSBGZWRlcmFsIEF1dGhvcml0aWVz
+IG9mIHRoZSBTd2lzcyBDb25mZWRlcmF0aW9uMREwDwYDVQQLEwhTZXJ2aWNlczEi
+MCAGA1UECxMZQ2VydGlmaWNhdGlvbiBBdXRob3JpdGllczEkMCIGA1UEAxMbU3dp
+c3MgR292ZXJubWVudCBSb290IENBIElJMB4XDTExMDIxNjA5MDAwMFoXDTM1MDIx
+NjA4NTk1OVowgacxCzAJBgNVBAYTAkNIMTswOQYDVQQKEzJUaGUgRmVkZXJhbCBB
+dXRob3JpdGllcyBvZiB0aGUgU3dpc3MgQ29uZmVkZXJhdGlvbjERMA8GA1UECxMI
+U2VydmljZXMxIjAgBgNVBAsTGUNlcnRpZmljYXRpb24gQXV0aG9yaXRpZXMxJDAi
+BgNVBAMTG1N3aXNzIEdvdmVybm1lbnQgUm9vdCBDQSBJSTCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBAKksEu2/wCLphugcN4KDm2gFbxbjiKgBD8txnn9H
+kEvMJXfI8NdpLpFoVyGysgchM+5MpDclmEy0RjJO1vlri1GK7yw38pjV9dS0t+cA
+yu/BE16Uq267nL36a4+r+B42Vmk4ZjrQ9DMNADkCqMUcCyG3XCAMYdCtrs6OXtk6
+6d7/R3x4Vw4ccfRgHN3bmhgpr9mAo5+FhGMzke+9dO7dA3rI+uCE5tm9Tn76bk92
+0V0+qOiHRZB5862u9cJdEU0p94gTydWTcwGr3e39r3f7aU7vj1Icz/UsWmzs/oKb
+23w5q3UjfjiQT5SOLWJYnvfncvyUW3JWxZ2jrqu1tsDXdlAAPD9HiJJaYNS/Mhum
+lEANdnnpPM7ksx3HjPXohjG52CtQSoASidcsUIDmZy+2k5ytrAVSIlMgmQ69l8bh
+2nOpHYnyxFnmh+ZWKw6VAhqHxnn+mWrpdOzwEvkUKCCVljovXVe1b/+TvLYoaiyk
+KHhGYa9BJKTz+gSO8YoZopFz4nePtKf5nP9uUey9H5YT6GORXodob+vYfC4QT1AY
+kMe3dO8zwIHfM+MakytVBCx80iu3Ywz+rXu9tjqXuT0DI3RzA6YsWQBs1dXo7K9C
+zNN/cItgYOeyoLaKUkz+CpbLzzqwWAjuHELJhndCbj+0rJAAWEIcQMRuuEXIvDM2
+370nAgMBAAGjggJcMIICWDAPBgNVHRMBAf8EBTADAQH/MIGdBgNVHSAEgZUwgZIw
+gY8GCGCFdAERAxUBMIGCMEQGCCsGAQUFBwIBFjhodHRwOi8vd3d3LnBraS5hZG1p
+bi5jaC9jcHMvQ1BTXzJfMTZfNzU2XzFfMTdfM18yMV8xLnBkZjA6BggrBgEFBQcC
+AjAuGixUaGlzIGlzIHRoZSBTd2lzcyBHb3Zlcm5tZW50IFJvb3QgQ0EgSUkgQ1BT
+LjCBjwYDVR0fBIGHMIGEMIGBoH+gfYZ7bGRhcDovL2FkbWluZGlyLmFkbWluLmNo
+OjM4OS9jbj1Td2lzcyUyMEdvdmVybm1lbnQlMjBSb290JTIwQ0ElMjBJSSxvdT1D
+ZXJ0aWZpY2F0aW9uJTIwQXV0aG9yaXRpZXMsb3U9U2VydmljZXMsbz1BZG1pbixj
+PUNIMB0GA1UdDgQWBBTlhG+JaT12ABd/wau9rl/BfbrhYjAOBgNVHQ8BAf8EBAMC
+AQYwgeMGA1UdIwSB2zCB2IAU5YRviWk9dgAXf8Grva5fwX264WKhga2kgaowgacx
+CzAJBgNVBAYTAkNIMTswOQYDVQQKEzJUaGUgRmVkZXJhbCBBdXRob3JpdGllcyBv
+ZiB0aGUgU3dpc3MgQ29uZmVkZXJhdGlvbjERMA8GA1UECxMIU2VydmljZXMxIjAg
+BgNVBAsTGUNlcnRpZmljYXRpb24gQXV0aG9yaXRpZXMxJDAiBgNVBAMTG1N3aXNz
+IEdvdmVybm1lbnQgUm9vdCBDQSBJSYIQDp8XmaWxPZzL7Abro/AOaTANBgkqhkiG
+9w0BAQsFAAOCAgEAgzdXdck4UL9BBpZwwtnH17BaAM2jQE/T0vmKh5GyictdpLxv
+Tz5U9so8s8RMi8c+9NnEYt3HVZ7R+dJE5x5Pz+juKxyoAfAzB/vhOxTTz1CRXtjq
+QsZ5WIWq+9zbcMqV+fQOYgJwaUQtaE/RcOooUma3cd4l6KGnb7ChJsfXyiBk3MBz
+PBCiFB70rcE+FJA5NmOIbyjgYKWR92Lkms/StXGeXTv2mSztkToInLSEhUnj4bqm
+tmiztrZPS1xTCldsoQeS9mKeqPqK1vNrpw+yK2a9r0JHCE/o13yfhg/6WoO+LW8A
+BLV2hxav3U86lrQ0V7fi/0H/3kIcZsWF68JyH7gcTu4X8mLvCgSsm6uh8u7uokAk
+HEfeQosYtKlXs088YjIcrWxErbzVHGM4Pckzpvu8KDdERuN6YvqASDXinhuIGUyz
+Qf3ud+BZgBphHjWkQXqzwY1E6cUhWems00TKdoU2FEYKHhY0psQ0d8OCOEghAv4S
+bNrX6rDs9s0szPObCmOA0/ULfQQthA3C2Uwrl/HVVPePswrivVg8mfKvORuQ+Tvn
+t0XnWmp9wZ8UbzBXmBmgB0Pr7tEIhtdJnBIKADsPp0GxSquQs9S9CeeID54kDiv7
+YT1VmdNY5LjHffQVTWUOGHlBybvpmsFZGEQ0YtXoOHvKhRiYhnnNfbpH25U=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIINDCCBhygAwIBAgIRAP11BI16YIaTaUyqADxl0z0wDQYJKoZIhvcNAQELBQAw
+gaYxCzAJBgNVBAYTAkNIMTswOQYDVQQKEzJUaGUgRmVkZXJhbCBBdXRob3JpdGll
+cyBvZiB0aGUgU3dpc3MgQ29uZmVkZXJhdGlvbjERMA8GA1UECxMIU2VydmljZXMx
+IjAgBgNVBAsTGUNlcnRpZmljYXRpb24gQXV0aG9yaXRpZXMxIzAhBgNVBAMTGlN3
+aXNzIEdvdmVybm1lbnQgUm9vdCBDQSBJMB4XDTExMDIxNTA5MDAwMFoXDTM1MDIx
+NTA4NTk1OVowgaYxCzAJBgNVBAYTAkNIMTswOQYDVQQKEzJUaGUgRmVkZXJhbCBB
+dXRob3JpdGllcyBvZiB0aGUgU3dpc3MgQ29uZmVkZXJhdGlvbjERMA8GA1UECxMI
+U2VydmljZXMxIjAgBgNVBAsTGUNlcnRpZmljYXRpb24gQXV0aG9yaXRpZXMxIzAh
+BgNVBAMTGlN3aXNzIEdvdmVybm1lbnQgUm9vdCBDQSBJMIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEAyA5y9AEvhnsLwmOwjWjtHz3euYObXKFdug82JxEE
+rQZUILceoObOvvCZaXIZNWRmMY0svY5CCp/GyqmQLNq8hTAD2TKWlvC+oCINJGzU
+xn9aTFEkLVRyCHwz6cwox2ZlI2lrlbTrvuOH52PX5PsHrRKS6+fkCkOyqd/HkLwm
+W5H5o7eHnJS5EI2IxVhcMrwW7A5XT/6nk3iP4MU5uweIYMFUZeuHvp8xl3E8+ovI
+g2xSluCswO/LaQiVW+Dgu68npMIX8VGfhHZh2CTi/mFtZDVJ6jnEIWK9zOIC/0hr
+OK9px7mSLYIRjb0LiYUq6re0ss1L69H6qvDgTAk8Td/2MR2GMKhBiFdwLCdR3s+L
+Tj8C8lClF+BnG3IMQTEfAaKWPjzbAradlOYCTvPwGYKyCCMT65HNUdOqRsJzmJg/
+usPumvz6za9yCjcTj/mgULPq+z8svPpjVTX00ry4cdKR6+nKylzsUWaonlkFIi+j
+GttP4EViIzxdVfswlSs0os+ntEvAM8k0UZ3TsyvfxeosLMffRB+2jbn+81zNNy+w
+bJxKCL3o9db6cOVpMjdcXwvLP+SIAszKs3gvfb9IsyGwH4h5m1qKcdghhCkPSgQx
+Kr0NIUTOdJ0m00kd+Iao5RJ3xcBzDFCDapBrocr40JXZNYbHEaM7FMfLhlhWDfuD
+9wECAwEAAaOCAlkwggJVMA8GA1UdEwEB/wQFMAMBAf8wgZsGA1UdIASBkzCBkDCB
+jQYIYIV0AREDAQAwgYAwQwYIKwYBBQUHAgEWN2h0dHA6Ly93d3cucGtpLmFkbWlu
+LmNoL2Nwcy9DUFNfMl8xNl83NTZfMV8xN18zXzFfMC5wZGYwOQYIKwYBBQUHAgIw
+LRorVGhpcyBpcyB0aGUgU3dpc3MgR292ZXJubWVudCBSb290IENBIEkgQ1BTLjCB
+jgYDVR0fBIGGMIGDMIGAoH6gfIZ6bGRhcDovL2FkbWluZGlyLmFkbWluLmNoOjM4
+OS9jbj1Td2lzcyUyMEdvdmVybm1lbnQlMjBSb290JTIwQ0ElMjBJLG91PUNlcnRp
+ZmljYXRpb24lMjBBdXRob3JpdGllcyxvdT1TZXJ2aWNlcyxvPUFkbWluLGM9Q0gw
+HQYDVR0OBBYEFLUbg7s7T7LS++UDjtRhXdEajrCiMA4GA1UdDwEB/wQEAwIBBjCB
+4wYDVR0jBIHbMIHYgBS1G4O7O0+y0vvlA47UYV3RGo6woqGBrKSBqTCBpjELMAkG
+A1UEBhMCQ0gxOzA5BgNVBAoTMlRoZSBGZWRlcmFsIEF1dGhvcml0aWVzIG9mIHRo
+ZSBTd2lzcyBDb25mZWRlcmF0aW9uMREwDwYDVQQLEwhTZXJ2aWNlczEiMCAGA1UE
+CxMZQ2VydGlmaWNhdGlvbiBBdXRob3JpdGllczEjMCEGA1UEAxMaU3dpc3MgR292
+ZXJubWVudCBSb290IENBIEmCEQD9dQSNemCGk2lMqgA8ZdM9MA0GCSqGSIb3DQEB
+CwUAA4ICAQAl2t94sCbcn5nrM5zJRbpcY1KNbgNzqnRIxQ0L0hcMLAvSxiWD1FTN
+B4FUL2d2Jafp13+WR3ekHZtF//HY9p5HDnSME8TyvtYHKBg8mHXB2+uSiCbmBmSO
++dL94pk1gdHYdRe1c+rd6BgilRYZClkqItyGWkNPJWg2qdiTAI9excNhhvDSFAmV
+UcR+2FLusI2KiHGl1yin9NwGWCVexFUYCJV0fLgB507Y1vZ8IENIDaPg3lTEqF8A
+SUPTRTuCZW7ui6MBIlaa8c4p5QzEa+3nTvixVYGtcf+E+whX5kfKrYf4Rvj68DWE
+7bTYiJcid6SPFsg8Z9HhbgSse482zd6lCKwqjfWnHZ/Hw5EhQqOGgbkq2LHpOB1U
+CJg5ChHKMg4zzfRM6qhKBukYPkHGz6D24CtrII6nIALrMEGBsOjkrqQYiSvfFPAS
+KW14+k1E+7I05a/zjjX3w84sCxi00HmPE78Di2a4tWHUrA79eD0JrbXSLE9WQZmI
+RAx+Z+Nkn/paKlh3UWmxzSyapzQQBXT6bkVjy4tSrUeRohLIoiYExdAiHgOzspI3
+VFf9iYN1A20tO7PxpKIQfJyTjaNQhDmLlVlB9gJ2Boq8DpDn2TrrrSZeV1PRb8h1
+4KuRe2uhf/kbUKjc/k0G4RWKpBDrHgbPVEgVlii2Ix8a43ylj/o3Vw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGATCCA+mgAwIBAgIRAI9hcRW6eVgXjH0ROqzW264wDQYJKoZIhvcNAQELBQAw
+RTEfMB0GA1UEAxMWQ29tU2lnbiBHbG9iYWwgUm9vdCBDQTEVMBMGA1UEChMMQ29t
+U2lnbiBMdGQuMQswCQYDVQQGEwJJTDAeFw0xMTA3MTgxMDI0NTRaFw0zNjA3MTYx
+MDI0NTVaMEUxHzAdBgNVBAMTFkNvbVNpZ24gR2xvYmFsIFJvb3QgQ0ExFTATBgNV
+BAoTDENvbVNpZ24gTHRkLjELMAkGA1UEBhMCSUwwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQCyKClzKh3rm6n1nvigmV/VU1D4hSwYW2ro3VqpzpPo0Ph3
+3LguqjXd5juDwN4mpxTpD99d7Xu5X6KGTlMVtfN+bTbA4t3x7DU0Zqn0BE5XuOgs
+3GLH41Vmr5wox1bShVpM+IsjcN4E/hMnDtt/Bkb5s33xCG+ohz5dlq0gA9qfr/g4
+O9lkHZXTCeYrmVzd/il4x79CqNvGkdL3um+OKYl8rg1dPtD8UsytMaDgBAopKR+W
+igc16QJzCbvcinlETlrzP/Ny76BWPnAQgaYBULax/Q5thVU+N3sEOKp6uviTdD+X
+O6i96gARU4H0xxPFI75PK/YdHrHjfjQevXl4J37FJfPMSHAbgPBhHC+qn/014DOx
+46fEGXcdw2BFeIIIwbj2GH70VyJWmuk/xLMCHHpJ/nIF8w25BQtkPpkwESL6esaU
+b1CyB4Vgjyf16/0nRiCAKAyC/DY/Yh+rDWtXK8c6QkXD2XamrVJo43DVNFqGZzbf
+5bsUXqiVDOz71AxqqK+p4ek9374xPNMJ2rB5MLPAPycwI0bUuLHhLy6nAIFHLhut
+TNI+6Y/soYpi5JSaEjcY7pxI8WIkUAzr2r+6UoT0vAdyOt7nt1y8844a7szo/aKf
+woziHl2O1w6ZXUC30K+ptXVaOiW79pBDcbLZ9ZdbONhS7Ea3iH4HJNwktrBJLQID
+AQABo4HrMIHoMA8GA1UdEwEB/wQFMAMBAf8wgYQGA1UdHwR9MHswPKA6oDiGNmh0
+dHA6Ly9mZWRpci5jb21zaWduLmNvLmlsL2NybC9jb21zaWduZ2xvYmFscm9vdGNh
+LmNybDA7oDmgN4Y1aHR0cDovL2NybDEuY29tc2lnbi5jby5pbC9jcmwvY29tc2ln
+bmdsb2JhbHJvb3RjYS5jcmwwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBQCRZPY
+DUhirGm6rgZbPvuqJpFQsTAfBgNVHSMEGDAWgBQCRZPYDUhirGm6rgZbPvuqJpFQ
+sTANBgkqhkiG9w0BAQsFAAOCAgEAk1V5V9701xsfy4mfX+tP9Ln5e9h3N+QMwUfj
+kr+k3e8iXOqADjTpUHeBkEee5tJq09ZLp/43F5tZ2eHdYq2ZEX7iWHCnOQet6Yw9
+SU1TahsrGDA6JJD9sdPFnNZooGsU1520e0zNB0dNWwxrWAmu4RsBxvEpWCJbvzQL
+dOfyX85RWwli81OiVMBc5XvJ1mxsIIqli45oRynKtsWP7E+b0ISJ1n+XFLdQo/Nm
+WA/5sDfT0F5YPzWdZymudMbXitimxC+n4oQE4mbQ4Zm718Iwg3pP9gMMcSc7Qc1J
+kJHPH9O7gVubkKHuSYj9T3Ym6c6egL1pb4pz/uT7cT26Fiopc/jdqbe2EAfoJZkv
+hlp/zdzOoXTWjiKNA5zmgWnZn943FuE9KMRyKtyi/ezJXCh8ypnqLIKxeFfZl69C
+BwJsPXUTuqj8Fic0s3aZmmr7C4jXycP+Q8V+akMEIoHAxcd960b4wVWKqOcI/kZS
+Q0cYqWOY1LNjznRt9lweWEfwDBL3FhrHOmD4++1N3FkkM4W+Q1b2WOL24clDMj+i
+2n9Iw0lc1llHMSMvA5D0vpsXZpOgcCVahfXczQKi9wQ3oZyonJeWx4/rXdMtagAB
+VBYGFuMEUEQtybI+eIbnp5peO2WAAblQI4eTy/jMVowe5tfMEXovV3sz9ULgmGb3
+DscLP1I=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDkDCCAnigAwIBAgIQHKAtwVI7am2LXB+VSu2sMDANBgkqhkiG9w0BAQUFADBi
+MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu
+MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp
+dHkwHhcNMTEwMTAxMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV
+UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO
+ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz
+c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP
+OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl
+mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF
+BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4
+qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjQjBA
+MB0GA1UdDgQWBBQhMMn7ANdOmNqHqirQpy6xQDGnTDAOBgNVHQ8BAf8EBAMCAQYw
+DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAwomEoOiMZv3/EwUb
+wzqOmEmK+KoAXCb9cmqjfhIblK5U+CGPp5NP9xbvubmzMsAlITFmNywJsP4ysDfs
+PLjOjwiqCJAHXHXV4U4sywIk6aJe6fV4NSIGHPIfiLHhXMyWVPpvScyN8VYD7c8s
+nyfe5cqDRL5GQPlXLtJ/MS3Og9z+cGuE0KOf/5fQqNcC7LEs8O9zOD2ZrMRPAb/V
+aurGLjIpFwrL5mme0Uq19t+OGfiV6UWpDs1tQVkgnnPGbHEcnNRNMKhzCaAV86BF
+JsNb/bu52C3XH/UFMBn2rg+OYo/fyE+G2R1hFrPJ8Lv7x/WvASJH7NjazxzzU2a6
+UwkB+Q==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID0DCCArigAwIBAgIQIKTEf93f4cdTYwcTiHdgEjANBgkqhkiG9w0BAQUFADCB
+gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV
+BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xMTAxMDEwMDAw
+MDBaFw0zMDEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl
+YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P
+RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3
+UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI
+2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8
+Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp
++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+
+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O
+nKVIrLsm9wIDAQABo0IwQDAdBgNVHQ4EFgQUC1jli8ZMFTekQKkwqSG+RzZaVv8w
+DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
+ggEBAC/JxBwHO89hAgCx2SFRdXIDMLDEFh9sAIsQrK/xR9SuEDwMGvjUk2ysEDd8
+t6aDZK3N3w6HM503sMZ7OHKx8xoOo/lVem0DZgMXlUrxsXrfViEGQo+x06iF3u6X
+HWLrp+cxEmbDD6ZLLkGC9/3JG6gbr+48zuOcrigHoSybJMIPIyaDMouGDx8rEkYl
+Fo92kANr3ryqImhrjKGsKxE5pttwwn1y6TPn/CbxdFqR5p2ErPioBhlG5qfpqjQi
+pKGfeq23sqSaM4hxAjwu1nqyH6LKwN0vEJT9s4yEIHlG1QXUEOTS22RPuFvuG8Ug
+R1uUq27UlTMdphVx8fiUylQ5PsE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDZDCCAkygAwIBAgICC7gwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCTFUx
+FjAUBgNVBAoTDUx1eFRydXN0IHMuYS4xHTAbBgNVBAMTFEx1eFRydXN0IEdsb2Jh
+bCBSb290MB4XDTExMDMxNzA5NTEzN1oXDTIxMDMxNzA5NTEzN1owRDELMAkGA1UE
+BhMCTFUxFjAUBgNVBAoTDUx1eFRydXN0IHMuYS4xHTAbBgNVBAMTFEx1eFRydXN0
+IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsn+n
+QPAiygz267Hxyw6VV0B1r6A/Ps7sqjJX5hmxZ0OYWmt8s7j6eJyqpoSyYBuAQc5j
+zR8XCJmk9e8+EsdMsFeaXHhAePxFjdqRZ9w6Ubltc+a3OY52OrQfBfVpVfmTz3iI
+Sr6qm9d7R1tGBEyCFqY19vx039a0r9jitScRdFmiwmYsaArhmIiIPIoFdRTjuK7z
+CISbasE/MRivJ6VLm6T9eTHemD0OYcqHmMH4ijCc+j4z1aXEAwfh95Z0GAAnOCfR
+K6qq4UFFi2/xJcLcopeVx0IUM115hCNq52XAV6DYXaljAeew5Ivo+MVjuOVsdJA9
+x3f8K7p56aTGEnin/wIDAQABo2AwXjAMBgNVHRMEBTADAQH/MA4GA1UdDwEB/wQE
+AwIBBjAfBgNVHSMEGDAWgBQXFYWJCS8kh28/HRvk8pZ5g0gTzjAdBgNVHQ4EFgQU
+FxWFiQkvJIdvPx0b5PKWeYNIE84wDQYJKoZIhvcNAQELBQADggEBAFrwHNDUUM9B
+fua4nX3DcNBeNv9ujnov3kgR1TQuPLdFwlQlp+HBHjeDtpSutkVIA+qVvuucarQ3
+XB8u02uCgUNbCj8RVWOs+nwIAjegPDkEM/6XMshS5dklTbDG7mgfcKpzzlcD3H0K
+DTPy0lrfCmw7zBFRlxqkIaKFNQLXgCLShLL4wKpov9XrqsMLq6F8K/f1O4fhVFfs
+BSTveUJO84ton+Ruy4KZycwq3FPCH3CDqyEPVrRI/98HIrOM+R2mBN8tAza53W/+
+MYhm/2xtRDSvCHc+JtJy9LtHVpM8mGPhM7uZI5K1g3noHZ9nrWLWidb2/CfeMifL
+hNp3hSGhEiE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIJSTCCBzGgAwIBAgIGBQtBXoJ7MA0GCSqGSIb3DQEBBQUAMIHiMRYwFAYDVQQD
+Ew1BQzEgUkFJWiBNVElOMRIwEAYDVQQFEwlTMjgxOTAwMUUxNTAzBgNVBAsTLFBS
+RVNUQURPUiBERSBTRVJWSUNJT1MgREUgQ0VSVElGSUNBQ0lPTiBNVElOMTEwLwYD
+VQQLEyhTVUJESVJFQ0NJT04gR0VORVJBTCBERSBQUk9DRVNPIERFIERBVE9TMSww
+KgYDVQQKEyNNSU5JU1RFUklPIERFIFRSQUJBSk8gRSBJTk1JR1JBQ0lPTjEPMA0G
+A1UEBxMGTUFEUklEMQswCQYDVQQGEwJFUzAeFw0wOTExMDUxNjE3NDVaFw0xOTEx
+MDMxNjE3NDVaMIHiMRYwFAYDVQQDEw1BQzEgUkFJWiBNVElOMRIwEAYDVQQFEwlT
+MjgxOTAwMUUxNTAzBgNVBAsTLFBSRVNUQURPUiBERSBTRVJWSUNJT1MgREUgQ0VS
+VElGSUNBQ0lPTiBNVElOMTEwLwYDVQQLEyhTVUJESVJFQ0NJT04gR0VORVJBTCBE
+RSBQUk9DRVNPIERFIERBVE9TMSwwKgYDVQQKEyNNSU5JU1RFUklPIERFIFRSQUJB
+Sk8gRSBJTk1JR1JBQ0lPTjEPMA0GA1UEBxMGTUFEUklEMQswCQYDVQQGEwJFUzCC
+AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANzNzbG/3iX1/xwzc5k8G6Ft
+9aDEfZs4Zo0J3wNsVzW0E0H+41/mIgRYGLlOaTMEP5XH2U7/MzSnMkAyk1f+ga8l
+Q1wd/XtXC2IIZ2ditOPlWCWA5qqGYkDnTxBhKUkmq018oatbYTGBBmpklE0n+Ese
+0dVD4texbfb2/7RwVfYImbd0AeDznrV85ASICFBZeB8alNvvyMmJ0ze48z2G0RnL
+g1oQBwhPmXQCB/AyUcj75tA8JnZ9cn6sdjfBinUgXEDchD/QSXxNZ6457+TOgOHK
+neYtqy7mEpXa+fvf4+KMPYf7RW5Eq/Z4kicUoV1rT3B7V3Pv+V2oD3Wf7xFgGYSw
+ZEDu2KmG+qXXRfQRb/GGyDRbiEjOut3Nm92I4wE26Kxq6BILsOB7kB6FC0mJAfb/
+gt9YZSKDSNYH0Bxm/GYoOsTD5fiZZSdSWPNr8W8CRIR10KTjaFNhcu/2L6mzrPX0
+9tBc3GlMzHnSpBvIcwY0dLTxasopKMc0hFsj2LoAjMwJwcdvXQSrt08md6k1zyDW
+s/8xadA0+yXsaJYKot2DH8o8j3Q2JVTv9Rh7wiQx0fuCBK4Egtb1Ailx4ZJxdI7b
+qnEdxDvGYiZshjwjVesp0R+ryh5j57NztKe4Kjr2H/uHZYj885/+v+vVHbaoA+ll
+gxmM4BjtF9gcDT2cilh/AgMBAAGjggMBMIIC/TA3BggrBgEFBQcBAQQrMCkwJwYI
+KwYBBQUHMAGGG2h0dHA6Ly9jYS5tdGluLmVzL210aW4vb2NzcDAOBgNVHQ8BAf8E
+BAMCAQYwGwYDVR0RBBQwEoEQYWRtaW5fY2FAbXRpbi5lczAbBgNVHRIEFDASgRBh
+ZG1pbl9jYUBtdGluLmVzMA8GA1UdEwEB/wQFMAMBAf8wcgYDVR0fBGswaTAyoDCg
+LoYsaHR0cDovL2NhLm10aW4uZXMvbXRpbi9jcmwvTVRJTkF1dG9yaWRhZFJhaXow
+M6AxoC+GLWh0dHA6Ly9jYTIubXRpbi5lcy9tdGluL2NybC9NVElOQXV0b3JpZGFk
+UmFpejCBuQYDVR0gBIGxMIGuMIGrBgsrBgEEAYHZBQIEATCBmzAwBggrBgEFBQcC
+ARYkaHR0cDovL2NhLm10aW4uZXMvbXRpbi9EUEN5UG9saXRpY2FzMGcGCCsGAQUF
+BwICMFsaWUNlcnRpZmljYWRvIHJh7XouIENvbnN1bHRlIGxhcyBjb25kaWNpb25l
+cyBkZSB1c28gZW4gaHR0cDovL2NhLm10aW4uZXMvbXRpbi9EUEN5UG9saXRpY2Fz
+MB0GA1UdDgQWBBQzQxizxEsdyx/58E7830rkFWDIgzCCARYGA1UdIwSCAQ0wggEJ
+gBQzQxizxEsdyx/58E7830rkFWDIg6GB6KSB5TCB4jEWMBQGA1UEAxMNQUMxIFJB
+SVogTVRJTjESMBAGA1UEBRMJUzI4MTkwMDFFMTUwMwYDVQQLEyxQUkVTVEFET1Ig
+REUgU0VSVklDSU9TIERFIENFUlRJRklDQUNJT04gTVRJTjExMC8GA1UECxMoU1VC
+RElSRUNDSU9OIEdFTkVSQUwgREUgUFJPQ0VTTyBERSBEQVRPUzEsMCoGA1UEChMj
+TUlOSVNURVJJTyBERSBUUkFCQUpPIEUgSU5NSUdSQUNJT04xDzANBgNVBAcTBk1B
+RFJJRDELMAkGA1UEBhMCRVOCBgULQV6CezANBgkqhkiG9w0BAQUFAAOCAgEAmeOq
+DpHTkqnq/0Rn06AtIGfzEA8aN3ddUkbmarj3iPOCwyr0YQ0sny+GLWHpYFm9t0+v
+kwkc+TN3QJyhfGXcXpCVqfS+gvT8gh0exT3gXK7eLdVjdqvx7CSnIPge6M9xggPd
+jnZiKrUpiBMkrVz0oEq46hOKVo1qL2g5coZYxKSrdXxE5xqEDI0R3Bm5HDbu8/9R
+m7NDyCV+5w5Io+RPBi0VHqCmR5BXO/gvLdsjuusjk7C4UhtgHNQZsG14j0udpwso
+Z0rdeEi9sT6Y1LsV/rNfbR11yB7PD65KGl2HLAZ0bAqFUyReesmgfHGbkl1vSH+2
+WHGyTKYaCSM0UHEVa0fb+74abcKMlC8HZyAiZ2O3q8YZnJYNYuoIpBpw76m5707F
+QLzih1fzA8oomRrAVWB1e2O+ZD+WTkuP/S2mdMDfSTrsVX5m07r975OxY/JbP+12
+odnTDP4ubwqmU0vv0fNHrbke7EwfvtCDU8ObFUX/LgfR2mqSReZsV1skLlFpyTDP
+1/ukATVazafrFG+0t2AiCMVxyJPiviVf9Qz6WFE9e8gvN/mTHCoJ4Gf9lolCyus2
+sNYbplAPWp12/6RPxuwNxOHQ51g+1nnAd00M1bPkmE3dRi5SsOIPDUI2pRAkUii+
+YjVCOcl6lh/u5ktZPyRzi78iS2by2w818TedoCQ=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF7TCCA9WgAwIBAgIQP4vItfyfspZDtWnWbELhRDANBgkqhkiG9w0BAQsFADCB
+iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
+ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMp
+TWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEw
+MzIyMjIwNTI4WhcNMzYwMzIyMjIxMzA0WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
+BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
+c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm
+aWNhdGUgQXV0aG9yaXR5IDIwMTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCygEGqNThNE3IyaCJNuLLx/9VSvGzH9dJKjDbu0cJcfoyKrq8TKG/Ac+M6
+ztAlqFo6be+ouFmrEyNozQwph9FvgFyPRH9dkAFSWKxRxV8qh9zc2AodwQO5e7BW
+6KPeZGHCnvjzfLnsDbVU/ky2ZU+I8JxImQxCCwl8MVkXeQZ4KI2JOkwDJb5xalwL
+54RgpJki49KvhKSn+9GY7Qyp3pSJ4Q6g3MDOmT3qCFK7VnnkH4S6Hri0xElcTzFL
+h93dBWcmmYDgcRGjuKVB4qRTufcyKYMME782XgSzS0NHL2vikR7TmE/dQgfI6B0S
+/Jmpaz6SfsjWaTr8ZL22CZ3K/QwLopt3YEsDlKQwaRLWQi3BQUzK3Kr9j1uDRprZ
+/LHR47PJf0h6zSTwQY9cdNCssBAgBkm3xy0hyFfj0IbzA2j70M5xwYmZSmQBbP3s
+MJHPQTySx+W6hh1hhMdfgzlirrSSL0fzC/hV66AfWdC7dJse0Hbm8ukG1xDo+mTe
+acY1logC8Ea4PyeZb8txiSk190gWAjWP1Xl8TQLPX+uKg09FcYj5qQ1OcunCnAfP
+SRtOBA5jUYxe2ADBVSy2xuDCZU7JNDn1nLPEfuhhbhNfFcRf2X7tHc7uROzLLoax
+7Dj2cO2rXBPB2Q8Nx4CyVe0096yb5MPa50c8prWPMd/FS6/r8QIDAQABo1EwTzAL
+BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUci06AjGQQ7kU
+BU7h6qfHMdEjiTQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQELBQADggIB
+AH9yzw+3xRXbm8BJyiZb/p4T5tPw0tuXX/JLP02zrhmu7deXoKzvqTqjwkGw5biR
+nhOBJAPmCf0/V0A5ISRW0RAvS0CpNoZLtFNXmvvxfomPEf4YbFGq6O0JlbXlccmh
+6Yd1phV/yX43VF50k8XDZ8wNT2uoFwxtCJJ+i92Bqi1wIcM9BhS7vyRep4TXPw8h
+Ir1LAAbblxzYXtTFC1yHblCk6MM4pPvLLMWSZpuFXst6bJN8gClYW1e1QGm6CHmm
+ZGIVnYeWRbVmIyADixxzoNOieTPgUFmG2y/lAiXqcyqfABTINseSO+lOAOzYVgm5
+M0kS0lQLAausR7aRKX1MtHWAUgHoyoL2n8ysnI8X6i8msKtyrAv+nlEex0NVZ09R
+s1fWtuzuUrc66U7h14GIvE+OdbtLqPA1qibUZ2dJsnBMO5PcHd94kIZysjik0dyS
+TclY6ysSXNQ7roxrsIPlAT/4CTL2kzU0Iq/dNw13CYArzUgA8YyZGUcFAenRv9FO
+0OYoQzeZpApKCNmacXPSqs0xE2N2oTdvkjgefRI8ZjLny23h/FKJ3crWZgWalmG+
+oijHHKOnNlA8OqTfSm7mhzvO6/DggTedEzxSjr25HTTGHdUKaj2YKXCMiSrRq4IQ
+SB/c9O+lxbtVGjhjhE63bK2VVOxlIhBJF7jAHscPrFRH
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAgugAwIBAgICJ44wDQYJKoZIhvcNAQELBQAwOjELMAkGA1UEBhMCSU4x
+EjAQBgNVBAoTCUluZGlhIFBLSTEXMBUGA1UEAxMOQ0NBIEluZGlhIDIwMTEwHhcN
+MTEwMzExMDY0ODUyWhcNMTYwMzExMDY0ODUyWjA6MQswCQYDVQQGEwJJTjESMBAG
+A1UEChMJSW5kaWEgUEtJMRcwFQYDVQQDEw5DQ0EgSW5kaWEgMjAxMTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAIcKHg65oKggmBq4ehX2R/G/0sYn5BJq
+lgRndc2MxuP03crVxBw17k3p5CLUlzjXrGNpSMB8eWK/xyJJW0bB8RgUThgdLKVa
+kriFFa8XVhOOnxYOIpaBhHkjQuxP3q/2v4lPAF7m1wjSlZSaEywEEYPvkY8IVax6
+VkSbxfTUF+vkd02U4UFYEemiqgmGLSYhIPXAzMMVzEwJu93c9VIDeWCPPHk6JTQj
+h0h18kFwTRowCIZ1zlgZqNcVfiPy50m+//5XUnhC8yZ33Xr3YuXLXZYzlJO7xBoW
+rwhX65zl9yN0jekdC7GKlHOZEZHFaKDxig2BrbRRaG5JhgAGUk4pQ+cCAwEAAaMz
+MDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQITQeoY/LbHN8wCwYDVR0PBAQD
+AgEGMA0GCSqGSIb3DQEBCwUAA4IBAQBuFNog8khrZP8qdM1WtcU5D35hHzVZGx0o
+bSN0nXi/q62JALlwhfXoFD7k7J+WZFzSsSIgowic6AxLaCiOVQW/PuBO2tic0G4g
+7P56O8I2R5fYKwizrsLR5gg/Sug6P1b14OU/8mm2eRLg8Dm3GOzS6YQOGDgWikk7
+b1fVOTu/E/DAp83yPR5skad3Y7yr2VY4D0q5GcArjPuXH8an7IbO043j0ft10fH3
+pmPEz+ixpJJFaPLojLGtfi0g+7ilVO3KDY8yHWimMW6wyJ7V+r8Gm28pfXoDSb8r
+e1mTFMXqy/FMKYIOKe6KVHw8zVWCJXIOcU4leE3TTllAys7zmdGi
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE
+AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG
+EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM
+FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC
+REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp
+Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM
+VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+
+SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ
+4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L
+cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi
+eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV
+HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG
+A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3
+DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j
+vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP
+DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc
+maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D
+lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv
+KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHEjCCBPqgAwIBAgIQCb1WBSoTFvRoT3QOqX0cSDANBgkqhkiG9w0BAQsFADB8
+MQswCQYDVQQGEwJFUzFBMD8GA1UEChM4QWdlbmNpYSBOb3RhcmlhbCBkZSBDZXJ0
+aWZpY2FjaW9uIFMuTC5VLiAtIENJRiBCODMzOTU5ODgxKjAoBgNVBAMTIUFOQ0VS
+VCBDZXJ0aWZpY2Fkb3MgTm90YXJpYWxlcyBWMjAeFw0xMDA1MjUxNjU2MTRaFw0z
+MDA1MjUxNjU2MTRaMHwxCzAJBgNVBAYTAkVTMUEwPwYDVQQKEzhBZ2VuY2lhIE5v
+dGFyaWFsIGRlIENlcnRpZmljYWNpb24gUy5MLlUuIC0gQ0lGIEI4MzM5NTk4ODEq
+MCgGA1UEAxMhQU5DRVJUIENlcnRpZmljYWRvcyBOb3RhcmlhbGVzIFYyMIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsua5xh1qKi1Jxfz81GRA0OAULveg
+wv+S80GmtD/avhkUkZR20xXMXn94UHrb2sVFqsscI3lzkKi7ZwFzjs5A+Rqpqofk
+k5IPXGhcXvAGYCtY3DxtPMd6MGsFqpKGcyrS8hqIxNvlWmaOdclCP5uIKEAe9alc
+HvrIQaEwqwuc7haiwS2lhfrtoAzof5ZKe72PmqIYdtKv3bc9EKtSEIiuHeu4MnSW
+9LeqJ/elBw3jlFdqVCB3zR28eS3knLTeUYj+VtY9i6HP+lIejAVzd9YFz2MAUYdh
+41C+mZfh/B4ReWtOas+chQoclirAIDYUxQkXYjv0rerV1/3QOSp409Ciz8hzMAlH
+xU4Z/bgw1A+AmIiGwUxBeiPFQ/1eErg+D7G3gWIMfm/je5rCwkcRIR/PntEwzoPB
+EE1Ad9e1wksyQEL6m7Csz+sh2BnrZMVr3VUtgIdEfEw8qw3YEr80goyxqsS4a+gO
+RnfSiwYdQvusvcnnM7Mib37VLgPFXwUWhnzt457RFncaRtjJ0IzkXFwhBZHxZOSs
+xTeutb1nE64p5bNCxHAJo11M6zcg4/D1czM7wvyOUYU2KsuB2w6JI9ni4Wi6LER3
+PhxAuvBnjhiH8D3X6T9HWzVCzacEzkhyKQUatNGi5w15ipZtZ1ItOyPm+YKc1rN5
+XhTeZUgz/B1C6C0CAwEAAaOCAY4wggGKMA8GA1UdEwEB/wQFMAMBAf8wggElBgNV
+HSAEggEcMIIBGDCCARQGCSsGAQQBgZNoATCCAQUwJQYIKwYBBQUHAgEWGWh0dHA6
+Ly93d3cuYW5jZXJ0LmNvbS9jcHMwgdsGCCsGAQUFBwICMIHOMA0WBkFOQ0VSVDAD
+AgEBHoG8AEEAZwBlAG4AYwBpAGEAIABOAG8AdABhAHIAaQBhAGwAIABkAGUAIABD
+AGUAcgB0AGkAZgBpAGMAYQBjAGkAbwBuAC4AIABQAGEAcwBlAG8AIABkAGUAbACg
+AEcAZQBuAGUAcgBhAGwAIABNAGEAcgB0AGkAbgBlAHoAIABDAGEAbQBwAG8AcwAg
+ADQANgAgADYAYQAgAHAAbABhAG4AdABhACAAMgA4ADAAMQAwACAATQBhAGQAcgBp
+AGQwDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBT2Ejqre1jBjUNvdoHS8rjT7xfq
+CzAfBgNVHSMEGDAWgBT2Ejqre1jBjUNvdoHS8rjT7xfqCzANBgkqhkiG9w0BAQsF
+AAOCAgEAVDXTomXJ2TbFU9G0jXI0ibqnCJ/pNRC5uAwG+WSqlZYoqMijgNxWwL9y
+TVa/f10E1a0oW02988MPFbBx2laNQFVXpn1ioq0TaVGqlFC6vQAwUPXdpE4JepQx
+a9tzA73z2hoPjC+yyTe8VNULIzf15Fs3ZolPtMcFpGXcWTCmEyt+Fe3sEBeJUsmd
+36JM7fYPHqZJsA1RszGxUZnLtNEjeNJLqLQdFqag0D4HfmU/Jc5kThsuS02ChRpl
+2+7iA/BZJAWPme95gt/uKjdow2pQAVlfn2jcLFFgK13gUjw7cLgA0zeoPlsedgha
+1Lt2MK75yPKOpI8KdX0amOG/0DaULzzBUtNp6hpgN4yA201txppdjaBhUbs9DeYS
+oJ9vWVZ0MmcK/DcGwTrkK46EH9ohDEmIQ9Ol9YINdobDLMyQu7O4q8bLrsAXUZ7T
+gPck2hzszhKDzk42MDl1+HR2kIKePkBMDBS5Gh5IarAx6oh/gEFAU3s4S4eQYHpL
+zmdGaHV3jgBdILDkkzdtA99YOeiaxaTr7GEzCIUka08G6a2QpTZibOPdfQkfM7+3
+u/fJdQX3W6v6h1mvGmcQfoTcjHDWROkQwdibLtHGQGrq5loPEH1s+1WHuk21cQOe
+F4942lU9V14iCmqY8I0Izd2WQlobzbpvJ7h0J6g/5aDWc8deLyE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHBDCCBOygAwIBAgIQDziMcP6mlV3pXZyHr3kEmTANBgkqhkiG9w0BAQsFADB1
+MQswCQYDVQQGEwJFUzFBMD8GA1UEChM4QWdlbmNpYSBOb3RhcmlhbCBkZSBDZXJ0
+aWZpY2FjaW9uIFMuTC5VLiAtIENJRiBCODMzOTU5ODgxIzAhBgNVBAMTGkFOQ0VS
+VCBDZXJ0aWZpY2Fkb3MgQ0dOIFYyMB4XDTEwMDUyNTE2MzEyMloXDTMwMDUyNTE2
+MzEyM1owdTELMAkGA1UEBhMCRVMxQTA/BgNVBAoTOEFnZW5jaWEgTm90YXJpYWwg
+ZGUgQ2VydGlmaWNhY2lvbiBTLkwuVS4gLSBDSUYgQjgzMzk1OTg4MSMwIQYDVQQD
+ExpBTkNFUlQgQ2VydGlmaWNhZG9zIENHTiBWMjCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAJ1ScOknGIPK6sSZ2KbhLhSvbh4OZMqBN1UnHBd3WGcfjMn5
+wopiZSh0m+LRvlUHdnbufG1OY1seSiV14Aeh0NKCp84PM+u6FMBlskou5WW8ItKv
+Gg7Ky/NkZSssmaOXi4t1MP5m+sFPSzdQjD/z3pl6ToecIEZyl/5WG2ZOoIJTo1zY
+KEYMBRdvONZcnw4lIsGG41waVNuunWV9AJLfqCEhxVsQJnThsXNXZHx9FwMM6vcU
+lw/5xe5ddbDFxgoLtD5J4xnGm0ST/FoVZAqyg/+AXogJ0Mogo1v7283hGncjGHAa
+i+1EP9YaqDY44Z0vp3fEerPAcrJyzR4/EF4aiHSN8BLF969J3JWvK020kMr57u8M
+478WNyNT4yn69HRpaD1XbRRgimRpKGRN+jZH/bgSzsOGqlzcZjkHTzvj48Vors7g
+OVwggz8SCjizAMFcE5ciXjpLNZn4xB7e+YgRjoTJizLy0te/Igc/YHgudRyiuiMS
+0/BPUDnsyXcnx1oqjtO5tXQEmRUvLoZfjwbByuriqB9NfTOEkaSSw9CmSF1mGneE
+IFCc6gQLDCOWz7Gc/Lm6H5eo06sDZS99rlTHeeIcNt1t0gaYAf3O/D9Lw9Ku/4nY
+OTED2LFkdwPG+KON/Cp55xC9uW2RHD6dy7xVfyL+YYT42NSnIXo5XnIy60x1AgMB
+AAGjggGOMIIBijAPBgNVHRMBAf8EBTADAQH/MIIBJQYDVR0gBIIBHDCCARgwggEU
+BgkrBgEEAYGTaAQwggEFMCUGCCsGAQUFBwIBFhlodHRwOi8vd3d3LmFuY2VydC5j
+b20vY3BzMIHbBggrBgEFBQcCAjCBzjANFgZBTkNFUlQwAwIBAR6BvABBAGcAZQBu
+AGMAaQBhACAATgBvAHQAYQByAGkAYQBsACAAZABlACAAQwBlAHIAdABpAGYAaQBj
+AGEAYwBpAG8AbgAuACAAUABhAHMAZQBvACAAZABlAGwAoABHAGUAbgBlAHIAYQBs
+ACAATQBhAHIAdABpAG4AZQB6ACAAQwBhAG0AcABvAHMAIAA0ADYAIAA2AGEAIABw
+AGwAYQBuAHQAYQAgADIAOAAwADEAMAAgAE0AYQBkAHIAaQBkMA4GA1UdDwEB/wQE
+AwIBhjAdBgNVHQ4EFgQUBW7hoZruB6/O9bTTZT0EUOLQm0QwHwYDVR0jBBgwFoAU
+BW7hoZruB6/O9bTTZT0EUOLQm0QwDQYJKoZIhvcNAQELBQADggIBAH9UQBkkykwT
+9hP5XGKVMNW44JOAbNQVRtQnPpJSqtyBY4ZA29Ulr5+TbAr1TaH+VJZdh68Rkw+L
+8uPwH0qf/KnRyVB3X5gICC16i4EQzDsCVFjlxqf098ro9jcGfucR12yFY/eoow7i
+JWIEpPJiU5xHtKdku4Hl1l5WEb5FEWHCZun0DXSoq/lbv4KykaZQ+4d+b7vI6wWi
+uRDXG0IHVc+J5r/7ufBqOVdTcIy9S6Npvx+LplxNZYq5AAnoaL8JJwdNXtpSCYzl
+cZOKzIWO0jdeU9yCbQtWSoR5CvQQJUT1b10aZrXN1RBLh1pO1H/kcazuaJ+8+i5Y
+wcSef6RZheBSDvLHR3UVLSx2jA9FBTVg+Hs7dzJ/KIAJ2jG8cX3hrJHNYAp5IOxu
+O7eE4HLzqUrQL+Rb49Ia1Eq89Xb5fyoZSOvdDs+ZVkW4fdYJjg7Os4RoSYRUNUvk
+mRuv86gU81SYCoB+T7zyZi0m/zCNp/a925qP5eHfu7cyDvmSb2nj5HbTADbxLV7H
+E1/V2Wot6NEba3bLGG4OBRD1WvJJG1m0herKGXTMu1LiN4zCagIlwtJxpJLbjsnW
+qW7QhShtXG0IeAKweQxXbwtaAeOEhAL2z/KrY+sCarnLShjVOSI8VkqqlYjmMAAf
+jSEhyVfuubdEKYhPtiunFO6O7m++FtAT
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1
+MQswCQYDVQQGEwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1
+czEoMCYGA1UEAwwfRUUgQ2VydGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYG
+CSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIwMTAxMDMwMTAxMDMwWhgPMjAzMDEy
+MTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNl
+ZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRyZSBS
+b290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUy
+euuOF0+W2Ap7kaJjbMeMTC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvO
+bntl8jixwKIy72KyaOBhU8E2lf/slLo2rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIw
+WFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw93X2PaRka9ZP585ArQ/d
+MtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtNP2MbRMNE
+1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYD
+VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/
+zQas8fElyalL1BSZMEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYB
+BQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEF
+BQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+RjxY6hUFaTlrg4wCQiZrxTFGGV
+v9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqMlIpPnTX/dqQG
+E5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u
+uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIW
+iAYLtqZLICjU3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/v
+GVCJYMzpJJUPwssd8m92kMfMdcGWxZ0=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIJmDCCB4CgAwIBAgIBCjANBgkqhkiG9w0BAQwFADCCAR4xPjA8BgNVBAMTNUF1
+dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9s
+YW5vMQswCQYDVQQGEwJWRTEQMA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlz
+dHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0
+aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBlcmludGVuZGVuY2lh
+IGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUwIwYJ
+KoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NDEz
+NloXDTMwMTIyMzIzNTk1OVowggEeMT4wPAYDVQQDEzVBdXRvcmlkYWQgZGUgQ2Vy
+dGlmaWNhY2lvbiBSYWl6IGRlbCBFc3RhZG8gVmVuZXpvbGFubzELMAkGA1UEBhMC
+VkUxEDAOBgNVBAcTB0NhcmFjYXMxGTAXBgNVBAgTEERpc3RyaXRvIENhcGl0YWwx
+NjA0BgNVBAoTLVNpc3RlbWEgTmFjaW9uYWwgZGUgQ2VydGlmaWNhY2lvbiBFbGVj
+dHJvbmljYTFDMEEGA1UECxM6U3VwZXJpbnRlbmRlbmNpYSBkZSBTZXJ2aWNpb3Mg
+ZGUgQ2VydGlmaWNhY2lvbiBFbGVjdHJvbmljYTElMCMGCSqGSIb3DQEJARYWYWNy
+YWl6QHN1c2NlcnRlLmdvYi52ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBAME77xNS8ZlW47RsBeEaaRZhJoZ4rw785UAFCuPZOAVMqNS1wMYqzy95q6Gk
+UO81ER/ugiQX/KMcq/4HBn83fwdYWxPZfwBfK7BP2p/JsFgzYeFP0BXOLmvoJIzl
+Jb6FW+1MPwGBjuaZGFImWZsSmGUclb51mRYMZETh9/J5CLThR1exStxHQptwSzra
+zNFpkQY/zmj7+YZNA9yDoroVFv6sybYOZ7OxNDo7zkSLo45I7gMwtxqWZ8VkJZkC
+8+p0dX6mkhUT0QAV64Zc9HsZiH/oLhEkXjhrgZ28cF73MXIqLx1fyM4kPH1yOJi/
+R72nMwL7D+Sd6mZgI035TxuHXc2/uOwXfKrrTjaJDz8Jp6DdessOkxIgkKXRjP+F
+K3ze3n4NUIRGhGRtyvEjK95/2g02t6PeYiYVGur6ruS49n0RAaSS0/LJb6XzaAAe
+0mmO2evnEqxIKwy2mZRNPfAVW1l3wCnWiUwryBU6OsbFcFFrQm+00wOicXvOTHBM
+aiCVAVZTb9RSLyi+LJ1llzJZO3pq3IRiiBj38Nooo+2ZNbMEciSgmig7YXaUcmud
+SVQvLSL+Yw+SqawyezwZuASbp7d/0rutQ59d81zlbMt3J7yB567rT2IqIydQ8qBW
+k+fmXzghX+/FidYsh/aK+zZ7Wy68kKHuzEw1Vqkat5DGs+VzAgMBAAGjggLbMIIC
+1zASBgNVHRMBAf8ECDAGAQH/AgECMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52
+ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAzNi0wMB0GA1UdDgQWBBStuyIdxuDS
+Aaj9dlBSk+2YwU2u0zCCAVAGA1UdIwSCAUcwggFDgBStuyIdxuDSAaj9dlBSk+2Y
+wU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRpZmlj
+YWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAw
+DgYDVQQHEwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYD
+VQQKEy1TaXN0ZW1hIE5hY2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25p
+Y2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5kZW5jaWEgZGUgU2VydmljaW9zIGRlIENl
+cnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG9w0BCQEWFmFjcmFpekBz
+dXNjZXJ0ZS5nb2IudmWCAQowCwYDVR0PBAQDAgEGMDcGA1UdEQQwMC6CD3N1c2Nl
+cnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAzNi0wMFQGA1UdHwRN
+MEswJKAioCCGHmh0dHA6Ly93d3cuc3VzY2VydGUuZ29iLnZlL2xjcjAjoCGgH4Yd
+bGRhcDovL2FjcmFpei5zdXNjZXJ0ZS5nb2IudmUwNwYIKwYBBQUHAQEEKzApMCcG
+CCsGAQUFBzABhhtodHRwOi8vb2NzcC5zdXNjZXJ0ZS5nb2IudmUwQAYDVR0gBDkw
+NzA1BgVghl4BAjAsMCoGCCsGAQUFBwIBFh5odHRwOi8vd3d3LnN1c2NlcnRlLmdv
+Yi52ZS9kcGMwDQYJKoZIhvcNAQEMBQADggIBABxZEOVepFHBR7tlsgtV4i+poye8
+4TyKx2wDVqOpKaKbipXYH/e2EmAWvnr0/QOBT/2BgapPgXAeLu/AkhJ7uw+FiMT5
+HUG1uiQqwygmE8r5APvXw1z5aOkbwRgiyaJsZMP4OcNOId3Wwt7ltizJXDjw3l5q
+5Cf0uDPEy2GSM1OozPydzVP7KAvv7X+wj3QitjVXgKiuBa4pCjuypP0949TBkPY/
+zrzkRP7RwX4oL/0AJDIgiMRvGHuRDkiQvJZiYIFtFAAaUbq1XWmNYUccLKxORSCp
+SEWjh0mjeJDdNkJ/2HZv/W2DAcb5f5ggf5YuImCroifAsDUk0Mm/M5kiUw5uH2JM
+JvwkM8rBA8ypF2FjMyTMaEDvr6LihcOIMNNFG+5W6lYKDwpHmzBZ2EnRMJAMJyom
+CChcMh8n160LSeUXUWPP5g07YFEavUMJUOaRtWPmZJeqC5cTAQaGXKUflb5Qjguy
+0mR/26tM5kPG5IWNav6N/ruUVR6RUycI07pnPTqhycHFFLr5Q1zFjiGMgqL9KjIl
+1RaMFVbAmPwuso4ZpBZxw0vdcf5x7CId8MGMmIGHtL8CuMQwMUfCwLCvezNjCt2s
+RZvBzICH9NmYXpyG/poE/2ZK/HthVL5XYwUHxqcBdVnkbjk7APSqnfOfiL/P0SUr
+339z7RaGqZBlD3Ap
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIJmzCCB4OgAwIBAgIBATANBgkqhkiG9w0BAQUFADCCAR4xPjA8BgNVBAMTNUF1
+dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9s
+YW5vMQswCQYDVQQGEwJWRTEQMA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlz
+dHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0
+aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBlcmludGVuZGVuY2lh
+IGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUwIwYJ
+KoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTA3MDIxNjE1MzU1
+MVoXDTI3MDIxMTIzNTk1OVowggEeMT4wPAYDVQQDEzVBdXRvcmlkYWQgZGUgQ2Vy
+dGlmaWNhY2lvbiBSYWl6IGRlbCBFc3RhZG8gVmVuZXpvbGFubzELMAkGA1UEBhMC
+VkUxEDAOBgNVBAcTB0NhcmFjYXMxGTAXBgNVBAgTEERpc3RyaXRvIENhcGl0YWwx
+NjA0BgNVBAoTLVNpc3RlbWEgTmFjaW9uYWwgZGUgQ2VydGlmaWNhY2lvbiBFbGVj
+dHJvbmljYTFDMEEGA1UECxM6U3VwZXJpbnRlbmRlbmNpYSBkZSBTZXJ2aWNpb3Mg
+ZGUgQ2VydGlmaWNhY2lvbiBFbGVjdHJvbmljYTElMCMGCSqGSIb3DQEJARYWYWNy
+YWl6QHN1c2NlcnRlLmdvYi52ZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBALcok9KOeQsz+FEa+MXGdAJVJN63wozmjcrg6uCuKguU9VhnC1UzxQjFsUze
+rnpGVwX2QYVnA0NJxyzm9fWMSkimcynnpO85uHeFyk8M1DT7WBR8REn50eK9MqVo
+8tNXAS80lUxxGdm7dbKY4iL9TL8megLnfNBNSUUaLeq11d1NL47W/uW9+hAzWlu6
+aPt3cc/Fpd01XMlGL/K0w9NB5Tv9KQWDerAH6QWIKjMkmxmeQ5USojV55hztS1gP
+snlcPWk+5oPC9H/MkZxTPn8JK9ATXcOpFMAwNn9jgJL7BMljYzV/cZFHS03aurrz
+fnb+hI3leMTpCzlnbFAR/eUSN2JIyu/blsHu3S5aXQiDVxNb+q7NCMqACeza38Zd
+6ONTyaD8gvAV6JR9rY6wB3SqKWr5Nef0wMn9/EJoGhfTli5SIjYmfjYKWj5gzrDU
++vM3gHnlFix6hiskajdswgLEoK+PG7onW2ar6CQpay/U68FcDsn2jIDHhxAIaZIS
+K6FoecIYvZX6P8SlemDBMxuMaepXR9dFHM9hpyCaqzXbume4bscS8paLWQwMduil
+oQjOEP0Ocl7Fnuk4w2Kvek+aL69s0ykp6yPoGs0y03S83FmLfwtIt4rT5LfUYQv9
+3dDBluLOt++Elw3A3HbajirVPI4lzsLFlirwUXqm/Wf7Gy6PAgMBAAGjggLeMIIC
+2jASBgNVHRMBAf8ECDAGAQH/AgECMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52
+ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAzNi0wMB0GA1UdDgQWBBRmDZwMrrrR
+SkMD7hObbfHS1HLVmjCCAVAGA1UdIwSCAUcwggFDgBRmDZwMrrrRSkMD7hObbfHS
+1HLVmqGCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRpZmlj
+YWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAw
+DgYDVQQHEwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYD
+VQQKEy1TaXN0ZW1hIE5hY2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25p
+Y2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5kZW5jaWEgZGUgU2VydmljaW9zIGRlIENl
+cnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG9w0BCQEWFmFjcmFpekBz
+dXNjZXJ0ZS5nb2IudmWCAQEwDgYDVR0PAQH/BAQDAgEGMDcGA1UdEQQwMC6CD3N1
+c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAzNi0wMFQGA1Ud
+HwRNMEswJKAioCCGHmh0dHA6Ly93d3cuc3VzY2VydGUuZ29iLnZlL2xjcjAjoCGg
+H4YdbGRhcDovL2FjcmFpei5zdXNjZXJ0ZS5nb2IudmUwNwYIKwYBBQUHAQEEKzAp
+MCcGCCsGAQUFBzABhhtodHRwOi8vb2NzcC5zdXNjZXJ0ZS5nb2IudmUwQAYDVR0g
+BDkwNzA1BgVghl4BAjAsMCoGCCsGAQUFBwIBFh5odHRwOi8vd3d3LnN1c2NlcnRl
+LmdvYi52ZS9kcGMwDQYJKoZIhvcNAQEFBQADggIBAIIZ7DHkEaEoHIGrJR44YAjG
+9wyGXUMOpagwfBUyBmrhUc2sARNuBhmQJkhYGUUnLwDuDZFx7Y3FwjcZoEYzls1n
+KJM689/pTskFl4gk6xZnRVl8imf2j8P1jWBVzQ+B2AFuuIE0VVHxkya577LkieqR
+5AcTbV+93DRdvy/tsgpNaEUdKQmIgZTb+HbzEUxJHNLJSyqctDuTAZi66gQGG/im
+kSu4raQHHdvcK8XmUoMwwzdhG/vKv6sAfvKTS+lAlZA73lZx8n/0A9wGz8fpEd0A
+dhhUDH3SAxyETKkrtNp2dsv0E2jbEvC6piAUoYvaJcGhZMMxq4dmAxzzwGFhilxR
+xDwv4RYJjxV9xHlRmHzViwVI1/NB7Ob8d5bIDc7w417eSIuel//xAIC8ufVzPsoM
+/12n3mheMLinbec52N0/Wi/gZKbVANl0e/1vWbPd6okO/ou7QE/PGk4aHwq8rA+U
+72NM6WATAicV+rZkR0/qlDVkgfWeIg/Spl5/kqrzAHHwT3YQCNEFZGnPy6sVqPbX
+DQnG50JaARYKLm8z3akalf8gjY5UIJ3PHb39JIqpIKRwU84Q/1RIsqJo9HELd3zM
+rtcHFBfTfa7dx3DPYo30r4mE7LNT9gZ5f9+Ct8eOAvbQ3WoubQGG5r55+c7FZAU2
+EHgFy96xE/FAndEXR872
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMC
+Q04xMjAwBgNVBAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24g
+Q2VudGVyMUcwRQYDVQQDDD5DaGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0
+aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMgUm9vdDAeFw0xMDA4MzEwNzExMjVa
+Fw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAGA1UECgwpQ2hpbmEg
+SW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMMPkNo
+aW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRp
+ZmljYXRlcyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z
+7r07eKpkQ0H1UN+U8i6yjUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//
+DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV98YPjUesWgbdYavi7NifFy2cyjw1l1Vx
+zUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2HklY0bBoQCxfVWhyXWIQ8
+hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23KzhmBsUs
+4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54u
+gQEC7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oY
+NJKiyoOCWTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4E
+FgQUfHJLOcfA22KlT5uqGDSSosqDglkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3
+j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd50XPFtQO3WKwMVC/GVhMPMdoG
+52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM7+czV0I664zB
+echNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws
+ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrI
+zo9uoV1/A3U05K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATy
+wy39FCqQmbkHzJ8=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl
+eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT
+JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx
+MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
+Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg
+VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo
+I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng
+o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G
+A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD
+VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB
+zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW
+RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB
+iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
+cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
+BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw
+MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
+BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU
+aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B
+3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY
+tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/
+Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2
+VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT
+79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6
+c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT
+Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l
+c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee
+UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE
+Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd
+BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G
+A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF
+Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO
+VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3
+ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs
+8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR
+iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze
+Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ
+XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/
+qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB
+VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB
+L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG
+jjxDah2nGN59PRbxYvnKkKj9
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB
+hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
+A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV
+BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5
+MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
+EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
+Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR
+6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X
+pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC
+9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV
+/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf
+Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z
++pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w
+qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah
+SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC
+u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf
+Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq
+crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E
+FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB
+/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl
+wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM
+4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV
+2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna
+FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ
+CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK
+boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke
+jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL
+S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb
+QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl
+0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB
+NVOFBkpdn627G190
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgIBATANBgkqhkiG9w0BAQsFADBcMQswCQYDVQQGEwJVUzEZ
+MBcGA1UECgwQVmVyaXpvbiBCdXNpbmVzczERMA8GA1UECwwIT21uaVJvb3QxHzAd
+BgNVBAMMFlZlcml6b24gR2xvYmFsIFJvb3QgQ0EwHhcNMDkwNzMwMTQyNzA0WhcN
+MzQwNzMwMTQyNzA0WjBcMQswCQYDVQQGEwJVUzEZMBcGA1UECgwQVmVyaXpvbiBC
+dXNpbmVzczERMA8GA1UECwwIT21uaVJvb3QxHzAdBgNVBAMMFlZlcml6b24gR2xv
+YmFsIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCKAAxw
+Hb/rNIbDmUU1Hn9D96tvJC3NGcIQu7DKKVupIKurcizE4gI5bYK4xRHq+PuznmL4
+Mx6wH8nj9jfbBMg7Y0824oWkJR3HaR8EvWhFE5YHH5RQ9T7FJ1SewElXRI4HY9Sm
+ru0imcxNlmkEE252iZ90FpT5HVS9ornSgwEiDE1EgKr+NYknJaeGicbVGpLjj8WV
+oBRymuhWxQJVHJf5IC7Q9TwTGVr24fkLA4Jpp4y31m+cVj6d6CoJYG1L5vuLmRT3
+NE9lWYCNuVfIojUh2IhxVl3uglctJpAYn5qcnI/v1MVjp1R9R5GHfRoSqBsYb6lv
+sSe65AR0zjcef2bFAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
+BAQDAgEGMB0GA1UdDgQWBBRMOBG4mABbWitwPqp45NVnZ2enfjANBgkqhkiG9w0B
+AQsFAAOCAQEAAV+gsQYB9HnXZRhgPs95oLrCI08j34eWX4EOOBUuXMgCaCkg/Ivu
+pYoYgWRcmDV+OTCCpIKKULW6w+ha1qie4sMX29vE67AKIA3pnuP/YFRH8Tud1Cg8
+oq6j+6qLgiIqNYeQuBxZR5DVnS76SeNlqDbrx+QcaNyzMWyrTs4kgBXIEFkQEXJN
+epyYnMT8YeCzsp1OoMbCWasY1qJVRewpqiU31k5KPQtAweST5PzNkQv45qvMs3bE
+Yr8Z7Ya2ecMpVFS8mX1GV8+mz/RUKpoDZUcBoUIqyyVHbnxeAEuR2fkbEAZw+UIV
+pl+q10Ae/clInZeB6lxowqDniaFTTb/H4w==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFfjCCA2agAwIBAgIJAKqIsFoLsXabMA0GCSqGSIb3DQEBCwUAMEwxCzAJBgNV
+BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxJjAkBgNVBAMTHVN3aXNzU2ln
+biBTaWx2ZXIgUm9vdCBDQSAtIEczMB4XDTA5MDgwNDEzMTkxNFoXDTM3MDgwNDEz
+MTkxNFowTDELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEmMCQG
+A1UEAxMdU3dpc3NTaWduIFNpbHZlciBSb290IENBIC0gRzMwggIiMA0GCSqGSIb3
+DQEBAQUAA4ICDwAwggIKAoICAQC+h5sF5nF8Um9t7Dep6bPczF9/01DqIZsE8D2/
+vo7JpRQWMhDPmfzscK1INmckDBcy1inlSjmxN+umeAxsbxnKTvdR2hro+iE4bJWc
+L9aLzDsCm78mmxFFtrg0Wh2mVEhSyJ14cc5ISsyneIPcaKtmHncH0zYYCNfUbWD4
+8HnTMzYJkmO3BJr1p5baRa90GvyC46hbDjo/UleYfrycjMHAslrfxH7+DKZUdoN+
+ut3nKvRKNk+HZS6lujmNWWEp89OOJHCMU5sRpUcHsnUFXA2E2UTZzckmRFduAn2V
+AdSrJIbuPXD7V/qwKRTQnfLFl8sJyvHyPefYS5bpiC+eR1GKVGWYSNIS5FR3DAfm
+vluc8d0Dfo2E/L7JYtX8yTroibVfwgVSYfCcPuwuTYxykY7IQ8GiKF71gCTc4i+H
+O1MA5cvwsnyNeRmgiM14+MWKWnflBqzdSt7mcG6+r771sasOCLDboD+Uxb4Subx7
+J3m1MildrsUgI5IDe1Q5sIkiVG0S48N46jpA/aSTrOktiDzbpkdmTN/YF+0W3hrW
+10Fmvx2A8aTgZBEpXgwnBWLr5cQEYtHEnwxqVdZYOJxmD537q1SAmZzsSdaCn9pF
+1j9TBgO3/R/shn104KS06DK2qgcj+O8kQZ5jMHj0VN2O8Fo4jhJ/eMdvAlYhM864
+uK1pVQIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd
+BgNVHQ4EFgQUoYxFkwoSYwunV18ySn3hIee3PmYwHwYDVR0jBBgwFoAUoYxFkwoS
+YwunV18ySn3hIee3PmYwDQYJKoZIhvcNAQELBQADggIBAIeuYW1IOCrGHNxKLoR4
+ScAjKkW4NU3RBfq5BTPEZL3brVQWKrA+DVoo2qYagHMMxEFvr7g0tnfUW44dC4tG
+kES1s+5JGInBSzSzhzV0op5FZ+1FcWa2uaElc9fCrIj70h2na9rAWubYWWQ0l2Ug
+MTMDT86tCZ6u6cI+GHW0MyUSuwXsULpxQOK93ohGBSGEi6MrHuswMIm/EfVcRPiR
+i0tZRQswDcoMT29jvgT+we3gh/7IzVa/5dyOetTWKU6A26ubP45lByL3RM2WHy3H
+9Qm2mHD/ONxQFRGEO3+p8NgkVMgXjCsTSdaZf0XRD46/aXI3Uwf05q79Wz55uQbN
+uIF4tE2g0DW65K7/00m8Ne1jxrP846thWgW2C+T/qSq+31ROwktcaNqjMqLJTVcY
+UzRZPGaZ1zwCeKdMcdC/2/HEPOcB5gTyRPZIJjAzybEBGesC8cwh+joCMBedyF+A
+P90lrAKb4xfevcqSFNJSgVPm6vwwZzKpYvaTFxUHMV4PG2n19Km3fC2z7YREMkco
+BzuGaUWpxzaWkHJ02BKmcyPRTrm2ejrEKaFQBhG52fQmbmIIEiAW8AFXF9QFNmeX
+61H5/zMkDAUPVr/vPRxSjoreaQ9aH/DVAzFEs5LG6nWorrvHYAOImP/HBIRSkIbh
+tJOpUC/o69I2rDBgp9ADE7UK
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFgTCCA2mgAwIBAgIIIj+pFyDegZQwDQYJKoZIhvcNAQELBQAwTjELMAkGA1UE
+BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEoMCYGA1UEAxMfU3dpc3NTaWdu
+IFBsYXRpbnVtIFJvb3QgQ0EgLSBHMzAeFw0wOTA4MDQxMzM0MDRaFw0zNzA4MDQx
+MzM0MDRaME4xCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxKDAm
+BgNVBAMTH1N3aXNzU2lnbiBQbGF0aW51bSBSb290IENBIC0gRzMwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQCUoO8TG59EIBvNxaoiu9nyUj56Wlh35o2h
+K8ncpPPksxOUAGKbHPJDUEOBfq8wNkmsGIkMGEW4PsdUbePYmllriholqba1Dbd9
+I/BffagHqfc+hi7IAU3c5jbtHeU3B2kSS+OD0QQcJPAfcHHnGe1zSG6VKxW2VuYC
+31bpm/rqpu7gwsO64MzGyHvXbzqVmzqPvlss0qmgOD7WiOGxYhOO3KswZ82oaqZj
+K4Kwy8c9Tu1y9n2rMk5lAusPmXT4HBoojA5FAJMsFJ9txxue9orce3jjtJRHHU0F
+bYR6kFSynot1woDfhzk/n/tIVAeNoCn1+WBfWnLou5ugQuAIADSjFTwT49YaawKy
+lCGjnUG8KmtOMzumlDj8PccrM7MuKwZ0rJsQb8VORfddoVYDLA1fer0e3h13kGva
+pS2KTOnfQfTnS+x9lUKfTKkJD0OIPz2T5yv0ekjaaMTdEoAxGl0kVCamJCGzTK3a
+Fwg2AlfGnIZwyXXJnnxh2HjmuegUafkcECgSXUt1ULo80GdwVVVWS/s9HNjbeU2X
+37ie2xcs1TUHuFCp9473Vv96Z0NPINnKZtY4YEvulDHWDaJIm/80aZTGNfWWiO+q
+ZsyBputMU/8ydKe2nZhXtLomqfEzM2J+OrADEVf/3G8RI60+xgrQzFS3LcKTHeXC
+pozH2O9T9wIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQUVio/kFj0F1oUstcIG4VbVGpUGigwHwYDVR0jBBgwFoAUVio/
+kFj0F1oUstcIG4VbVGpUGigwDQYJKoZIhvcNAQELBQADggIBAGztiudDqHknm7jP
+hz5kOBiMEUKShjfgWMMb7gQu94TsgxBoDH94LZzCl442ThbYDuprSK1Pnl0NzA2p
+PhiFfsxomTk11tifhsEy+01lsyIUS8iFZtoX/3GRrJxWV95xLFZCv/jNDvCi0//S
+IhX70HgKfuGwWs6ON9upnueVz2PyLA3S+m/zyNX7ALf3NWcQ03tS7BAy+L/dXsmm
+gqTxsL8dLt0l5L1N8DWpkQFH+BAClFvrPusNutUdYyylLqvn4x6j7kuqX7FmAbSC
+WvlGS8fx+N8svv113ZY4mjc6bqXmMhVus5DAOYp0pZWgvg0uiXnNKVaOw15XUcQF
+bwRVj4HpTL1ZRssqvE3JHfLGTwXkyAQN925P2sM6nNLC9enGJHoUPhxCMKgCRTGp
+/FCp3NyGOA9bkz9/CE5qDSc6EHlWwxW4PgaG9tlwZ691eoviWMzGdU8yVcVsFAko
+O/KV5GreLCgHraB9Byjd1Fqj6aZ8E4yZC1J429nR3z5aQ3Z/RmBTws3ndkd8Vc20
+OWQQW5VLNV1EgyTV4C4kDMGAbmkAgAZ3CmaCEAxRbzeJV9vzTOW4ue4jZpdgt1Ld
+2Zb7uoo7oE3OXvBETJDMIU8bOphrjjGD+YMIUssZwTVr7qEVW4g/bazyNJJTpjAq
+E9fmhqhd2ULSx52peovL3+6iMcLl
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFejCCA2KgAwIBAgIJAN7E8kTzHab8MA0GCSqGSIb3DQEBCwUAMEoxCzAJBgNV
+BAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxJDAiBgNVBAMTG1N3aXNzU2ln
+biBHb2xkIFJvb3QgQ0EgLSBHMzAeFw0wOTA4MDQxMzMxNDdaFw0zNzA4MDQxMzMx
+NDdaMEoxCzAJBgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxJDAiBgNV
+BAMTG1N3aXNzU2lnbiBHb2xkIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBAMPon8hlWp1nG8FFl7S0h0NbYWCAnvJ/XvlnRN1E+qu1
+q3f/KhlMzm/Ej0Gf4OLNcuDR1FJhQQkKvwpw++CDaWEpytsimlul5t0XlbBvhI46
+PmRaQfsbWPz9Kz6ypOasyYK8zvaV+Jd37Sb2WK6eJ+IPg+zFNljIe8/Vh6GphxoT
+Z2EBbaZpnOKQ8StoZfPosHz8gj3erdgKAAlEeROc8P5udXvCvLNZAQt8xdUt8L//
+bVfSSYHrtLNQrFv5CxUVjGn/ozkB7fzc3CeXjnuL1Wqm1uAdX80Bkeb1Ipi6LgkY
+OG8TqIHS+yE35y20YueBkLDGeVm3Z3X+vo87+jbsr63ST3Q2AeVXqyMEzEpel89+
+xu+MzJUjaY3LOMcZ9taKABQeND1v2gwLw7qX/BFLUmE+vzNnUxC/eBsJwke6Hq9Y
+9XWBf71W8etW19lpDAfpNzGwEhwy71bZvnorfL3TPbxqM006PFAQhyfHegpnU9t/
+gJvoniP6+Qg6i6GONFpIM19k05eGBxl9iJTOKnzFat+vvKmfzTqmurtU+X+P388O
+WsStmryzOndzg0yTPJBotXxQlRHIgl6UcdBBGPvJxmXszom2ziKzEVs/4J0+Gxho
+DaoDoWdZv2udvPjyZS+aQTpF2F7QNmxvOx5jtI6YTBPbIQ6fe+3qoKpxw+ujoNIl
+AgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
+DgQWBBRclwZGNKvfMMV8xQ1VcWYwtWCPnjAfBgNVHSMEGDAWgBRclwZGNKvfMMV8
+xQ1VcWYwtWCPnjANBgkqhkiG9w0BAQsFAAOCAgEAd0tN3uqFSqssJ9ZFx/FfIMFb
+YO0Hy6Iz3DbPx5TxBsfV2s/NrYQ+/xJIf0HopWZXMMQd5KcaLy1Cwe9Gc7LV9Vr9
+Dnpr0sgxow1IlldlY1UYwPzkisyYhlurDIonN/ojaFlcJtehwcK5Tiz/KV7mlAu+
+zXJPleiP9ve4Pl7Oz54RyawDKUiKqbamNLmsQP/EtnM3scd/qVHbSypHX0AkB4gG
+tySz+3/3sIsz+r8jdaNc/qplGsK+8X2BdwOBsY3XlQ16PEKYt4+pfVDh31IGmqBS
+VHiDB2FSCTdeipynxlHRXGPRhNzC29L6Wxg2fWa81CiXL3WWHIQHrIuOUxG+JCGq
+Z/LBrYic07B4Z3j101gDIApdIPG152XMDiDj1d/mLxkrhWjBBCbPj+0FU6HdBw7r
+QSbHtKksW+NpPWbAYhvAqobAN8MxBIZwOb5rXyFAQaB/5dkPOEtwX0n4hbgrLqof
+k0FD+PuydDwfS1dbt9RRoZJKzr4Qou7YFCJ7uUG9jemIqdGPAxpg/z+HiaCZJyJm
+sD5onnKIUTidEz5FbQXlRrVz7UOGsRQKHrzaDb8eJFxmjw6+of3G62m8Q3nXA3b5
+3IeZuJjEzX9tEPkQvixC/pwpTYNrCr21jsRIiv0hB6aAfR+b6au9gmFECnEnX22b
+kJ6u/zYks2gD1pWMa3M=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD
+VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0
+ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G
+CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y
+OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx
+FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp
+Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o
+dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP
+kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc
+cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U
+fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7
+N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC
+xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1
++rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM
+Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG
+SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h
+mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk
+ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775
+tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c
+2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t
+HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDYTCCAkmgAwIBAgIQG9QO1DTR2hWmADAVAk2kbDANBgkqhkiG9w0BAQUFADA2
+MQswCQYDVQQGEwJTRTERMA8GA1UECgwIQ2FyZWxpbmsxFDASBgNVBAMMC1NJVEhT
+IENBIHYzMB4XDTA1MTEyODEwMjc1MFoXDTE1MTEyODA2MDIzOFowNjELMAkGA1UE
+BhMCU0UxETAPBgNVBAoMCENhcmVsaW5rMRQwEgYDVQQDDAtTSVRIUyBDQSB2MzCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMXZW9HUK39AZ+6hW13R2mq5
+GTHy8CZJAWX8QVTxlpHsKu4ERCQeQJznF1A/6hx87rg3OfzH06+bbl3fPr4F/OrK
+2flFVuGVnLHQWo/+yCqm12ps4G1d7Fx2/uGZR5qpe6fq5m9UAidNUU4oPawGOoGC
+phy9S6TtUhLciirrJ/TBIkoQhFp1tYAiVmXrzIDypeFkvnzeD70nB0wpW6qx77R7
+/4c06KOTQss9YLt308IvXhT4c2+kf6CcAdXVqbsMV4/MwDuReJ6SOXkyTER/xwt9
+3vrMftrM3g3UZrZipjO/bPnV3UdScJTLZeBFtw3Xr5VI10GjOyBQDTwUVZPM6g0C
+AwEAAaNrMGkwEgYDVR0TAQH/BAgwBgEB/wIBADARBglghkgBhvhCAQEEBAMCAgQw
+FAYDVR0gBA0wCzAJBgcqhXBKAQEDMAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUfC45
+IzJE6A9OZvINKP5AvsK24qAwDQYJKoZIhvcNAQEFBQADggEBAAhTWogpDfVU2Kux
+g7knaVqqXytYSdS532/rxwbr/Yeav8oS33qeASIlY1KFb6cvDpd0YIzgSIBz3UKN
+Ie0Pcn90Bm5QVjsth+yBWIs2x8oA+6QEti84WI538QbELSwnLRiCC4pfIpQUFWM4
+xqWxuuCsvj4mP5G7HIP8DsrJN7431/B784zYvJAL9AC/VLxqSljnylsMGVNCB5VX
+NbhPllOaqJjdTn1VtJzjusA2ubfcApj49uUwvix3svPJ4gKj5vdEfNZqf9B4vjlz
++AvCH1IADk17xgruYssJ1Q8KMIeCk7zKEaQfCfr6N1DsO+I8JKCAKMz7pt3vN5qp
+Md3f6lE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjET
+MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAk
+BgNVBAMMHUNlcnRpbm9taXMgLSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4
+Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNl
+cnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYwJAYDVQQDDB1DZXJ0
+aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
+ADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jY
+F1AMnmHawE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N
+8y4oH3DfVS9O7cdxbwlyLu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWe
+rP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K
+/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92NjMD2AR5vpTESOH2VwnHu
+7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9qc1pkIuVC
+28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6
+lSTClrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1E
+nn1So2+WLhl+HPNbxxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB
+0iSVL1N6aaLwD4ZFjliCK0wi1F6g530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql09
+5gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna4NH4+ej9Uji29YnfAgMBAAGj
+WzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQN
+jLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ
+KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9s
+ov3/4gbIOZ/xWqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZM
+OH8oMDX/nyNTt7buFHAAQCvaR6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q
+619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40nJ+U8/aGH88bc62UeYdocMMzpXDn
+2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1BCxMjidPJC+iKunqj
+o3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjvJL1v
+nxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG
+5ERQL1TEqkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWq
+pdEdnV1j6CTmNhTih60bWfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZb
+dsLLO7XSAPCjDuGtbkD326C00EauFddEwk01+dIL8hf2rGbVJLJP0RyZwG71fet0
+BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/vgt2Fl43N+bYdJeimUV5
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGnTCCBYWgAwIBAgIDATRLMA0GCSqGSIb3DQEBBQUAMIHZMQswCQYDVQQGEwJF
+UzESMBAGA1UECAwJQmFyY2Vsb25hMUcwRQYDVQQHDD5CYXJjZWxvbmEgKHNlZSBj
+dXJyZW50IGFkZHJlc3MgYXQgaHR0cHM6Ly93d3cuYW5mLmVzL2FkZHJlc3MvKTEo
+MCYGA1UECgwfQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjacOzbjEXMBUGA1UE
+CwwOQU5GIENsYXNlIDEgQ0ExEjAQBgNVBAUTCUc2MzI4NzUxMDEWMBQGA1UEAwwN
+QU5GIFNlcnZlciBDQTAeFw0wOTExMzAyMzAwMDBaFw0yMTExMzAyMzAwMDBaMIHZ
+MQswCQYDVQQGEwJFUzESMBAGA1UECAwJQmFyY2Vsb25hMUcwRQYDVQQHDD5CYXJj
+ZWxvbmEgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgaHR0cHM6Ly93d3cuYW5mLmVz
+L2FkZHJlc3MvKTEoMCYGA1UECgwfQU5GIEF1dG9yaWRhZCBkZSBDZXJ0aWZpY2Fj
+acOzbjEXMBUGA1UECwwOQU5GIENsYXNlIDEgQ0ExEjAQBgNVBAUTCUc2MzI4NzUx
+MDEWMBQGA1UEAwwNQU5GIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAL/qSKeaiDlrLEhABwSTfPe4LX6lN+Jh1iH8kDfLaT5eizffW287
+2LbDiECQ9J0MXBBSsbPlX5EQ5v2ogBRf04u9XL0PI5IJN+Ny0maUC1x0lC9e8k7Y
+A8azzlalHNl7/U8HTNS32l8pTXXyH1XPMiMcRgknHUXs8Yw0id57FqdDXoor6ZRD
+Htc+k21viT287rHIt//JfeNfDW93ePUqLo3Ei5iXMLFGWgtjcNR4x4azf/8nQqqf
+im5toZTK7IcCHNZUS/28iZumYzhmjBaJiZfDUOj2QgGnd30QGZID6F1FyBXFhxsN
+kfLGOZx788AKmfjug29+QncRjsMfHHIvPRsCAwEAAaOCAmowggJmMB0GA1UdDgQW
+BBS+O/a0MbdzJEg5xVcTlHWqn4E/LDCCAQkGA1UdIwSCAQAwgf2AFL479rQxt3Mk
+SDnFVxOUdaqfgT8soYHfpIHcMIHZMQswCQYDVQQGEwJFUzESMBAGA1UECAwJQmFy
+Y2Vsb25hMUcwRQYDVQQHDD5CYXJjZWxvbmEgKHNlZSBjdXJyZW50IGFkZHJlc3Mg
+YXQgaHR0cHM6Ly93d3cuYW5mLmVzL2FkZHJlc3MvKTEoMCYGA1UECgwfQU5GIEF1
+dG9yaWRhZCBkZSBDZXJ0aWZpY2FjacOzbjEXMBUGA1UECwwOQU5GIENsYXNlIDEg
+Q0ExEjAQBgNVBAUTCUc2MzI4NzUxMDEWMBQGA1UEAwwNQU5GIFNlcnZlciBDQYID
+ATRLMAwGA1UdEwQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMDEGCisGAQQBgY8cKgYE
+IxshaHR0cHM6Ly93d3cuYW5mLmVzL0FDL0FDVEFTLzc4OTIzMBgGCisGAQQBgY8c
+EwEEChsIODAxLTM0MDAwOAYIKwYBBQUHAQEELDAqMCgGCCsGAQUFBzABhhxodHRw
+Oi8vd3d3LmFuZi5lcy9BQy9SQy9vY3NwMGMGA1UdHwRcMFowK6ApoCeGJWh0dHBz
+Oi8vd3d3LmFuZi5lcy9BQy9BTkZTZXJ2ZXJDQS5jcmwwK6ApoCeGJWh0dHBzOi8v
+Y3JsLmFuZi5lcy9BQy9BTkZTZXJ2ZXJDQS5jcmwwFgYDVR0SBA8wDYELaW5mb0Bh
+bmYuZXMwFgYDVR0RBA8wDYELaW5mb0BhbmYuZXMwDQYJKoZIhvcNAQEFBQADggEB
+ALXGx7xG+kJcE8GUdTNWvy+nB3PsN+NDdOr5Zk9ejX/w5nnDTfXZOKXMykP0U4CG
+v7zQEV2QxMJAR+vFh5PBtnhemq6H9WIQWUxMbQa+mRMVs7P6HHJ+4CIhAVg1OGii
+5Pjh8PA2UJHgtHfcY4QzkmC4yxby0mM7TFw1OuesAlPFHIEBd8ccER9UMO9UjyX6
+iSeUNKMPFE9v6XPZGGLn7gjoyYN7yDObfESafBqQtdJxid899BxPTlHgyWu2qgse
+2TAP02PV7XD0wYPtBkWaqOq0iTf9WjdH75F5pzX/8Nww7Q0UZ9t8WuCPbTP+PJ4V
+M8PDLQ5dqnwNjjGWTYv/BdU=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw
+NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv
+b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD
+VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2
+MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F
+VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1
+7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X
+Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+
+/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs
+81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm
+dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe
+Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu
+sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4
+pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs
+slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ
+arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD
+VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG
+9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl
+dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx
+0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj
+TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed
+Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7
+Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI
+OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7
+vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW
+t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn
+HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx
+SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFnDCCBISgAwIBAgIBZDANBgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJDWjEs
+MCoGA1UECgwjxIxlc2vDoSBwb8WhdGEsIHMucC4gW0nEjCA0NzExNDk4M10xHjAc
+BgNVBAMTFVBvc3RTaWdudW0gUm9vdCBRQ0EgMjAeFw0xMDAxMTkwODA0MzFaFw0y
+NTAxMTkwODA0MzFaMFsxCzAJBgNVBAYTAkNaMSwwKgYDVQQKDCPEjGVza8OhIHBv
+xaF0YSwgcy5wLiBbScSMIDQ3MTE0OTgzXTEeMBwGA1UEAxMVUG9zdFNpZ251bSBS
+b290IFFDQSAyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoFz8yBxf
+2gf1uN0GGXknvGHwurpp4Lw3ZPWZB6nEBDGjSGIXK0Or6Xa3ZT+tVDTeUUjT133G
+7Vs51D6z/ShWy+9T7a1f6XInakewyFj8PT0EdZ4tAybNYdEUO/dShg2WvUyfZfXH
+0jmmZm6qUDy0VfKQfiyWchQRi/Ax6zXaU2+X3hXBfvRMr5l6zgxYVATEyxCfOLM9
+a5U6lhpyCDf2Gg6dPc5Cy6QwYGGpYER1fzLGsN9stdutkwlP13DHU1Sp6W5ywtfL
+owYaV1bqOOdARbAoJ7q8LO6EBjyIVr03mFusPaMCOzcEn3zL5XafknM36Vqtdmqz
+iWR+3URAUgqE0wIDAQABo4ICaTCCAmUwgaUGA1UdHwSBnTCBmjAxoC+gLYYraHR0
+cDovL3d3dy5wb3N0c2lnbnVtLmN6L2NybC9wc3Jvb3RxY2EyLmNybDAyoDCgLoYs
+aHR0cDovL3d3dzIucG9zdHNpZ251bS5jei9jcmwvcHNyb290cWNhMi5jcmwwMaAv
+oC2GK2h0dHA6Ly9wb3N0c2lnbnVtLnR0Yy5jei9jcmwvcHNyb290cWNhMi5jcmww
+gfEGA1UdIASB6TCB5jCB4wYEVR0gADCB2jCB1wYIKwYBBQUHAgIwgcoagcdUZW50
+byBrdmFsaWZpa292YW55IHN5c3RlbW92eSBjZXJ0aWZpa2F0IGJ5bCB2eWRhbiBw
+b2RsZSB6YWtvbmEgMjI3LzIwMDBTYi4gYSBuYXZhem55Y2ggcHJlZHBpc3UvVGhp
+cyBxdWFsaWZpZWQgc3lzdGVtIGNlcnRpZmljYXRlIHdhcyBpc3N1ZWQgYWNjb3Jk
+aW5nIHRvIExhdyBObyAyMjcvMjAwMENvbGwuIGFuZCByZWxhdGVkIHJlZ3VsYXRp
+b25zMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQW
+BBQVKYzFRWmruLPD6v5LuDHY3PDndjCBgwYDVR0jBHwweoAUFSmMxUVpq7izw+r+
+S7gx2Nzw53ahX6RdMFsxCzAJBgNVBAYTAkNaMSwwKgYDVQQKDCPEjGVza8OhIHBv
+xaF0YSwgcy5wLiBbScSMIDQ3MTE0OTgzXTEeMBwGA1UEAxMVUG9zdFNpZ251bSBS
+b290IFFDQSAyggFkMA0GCSqGSIb3DQEBCwUAA4IBAQBeKtoLQKFqWJEgLNxPbQNN
+5OTjbpOTEEkq2jFI0tUhtRx//6zwuqJCzfO/KqggUrHBca+GV/qXcNzNAlytyM71
+fMv/VwgL9gBHTN/IFIw100JbciI23yFQTdF/UoEfK/m+IFfirxSRi8LRERdXHTEb
+vwxMXIzZVXloWvX64UwWtf4Tvw5bAoPj0O1Z2ly4aMTAT2a+y+z184UhuZ/oGyMw
+eIakmFM7M7RrNki507jiSLTzuaFMCpyWOX7ULIhzY6xKdm5iQLjTvExn2JTvVChF
+Y+jUu/G0zAdLyeU4vaXdQm1A8AEiJPTd0Z9LAxL6Sq2iraLNN36+NyEK/ts3mPLL
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID5TCCAs2gAwIBAgISESG8J2xVR69YTu/UztYpsqKFMA0GCSqGSIb3DQEBCwUA
+MEwxCzAJBgNVBAYTAkZSMRIwEAYDVQQKEwlLRVlORUNUSVMxDTALBgNVBAsTBFJP
+T1QxGjAYBgNVBAMTEUtFWU5FQ1RJUyBST09UIENBMB4XDTA5MDUyNjAwMDAwMFoX
+DTIwMDUyNjAwMDAwMFowTDELMAkGA1UEBhMCRlIxEjAQBgNVBAoTCUtFWU5FQ1RJ
+UzENMAsGA1UECxMEUk9PVDEaMBgGA1UEAxMRS0VZTkVDVElTIFJPT1QgQ0EwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDG/bMXhaGtJhuVaTUhPaSI+t7b
+YDZAF2nCFGP7uNnCdBU3LpzQIM1pjYQyooVMFLSb8iWzVCqDPy2+D/M7ZNH/oFDv
+d087TuE/C2SFmrpYftLDYtNkJaLUspc8d11jKjOS/M2CDZtUlYf1teuMzVvRyjAv
+yYhGtc0NEbQYj+7RoT5dFegoz9/DkJtszNEMRXezOuuKkB3pr2RqiXupPUN0+uRn
+IqH73E3E9WLJyiW0yYBgM6nde6ACv5YlCl7JXyl7tBeBi22BGdDZg1wFj0FpGmlD
+gJ+or+DpjJGLJyuiJmDND/KkowKDjhiBwheKQxX5bfMdEKRanERhIyF62PvRAgMB
+AAGjgcAwgb0wEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8EBAMCAQYwVwYD
+VR0fBFAwTjBMoEqgSIZGaHR0cDovL3RydXN0Y2VudGVyLWNybC5jZXJ0aWZpY2F0
+Mi5jb20vS2V5bmVjdGlzL0tFWU5FQ1RJU19ST09UX0NBLmNybDAdBgNVHQ4EFgQU
+77cjl9CokX+mz6YhwDSfzHdB4dAwHwYDVR0jBBgwFoAU77cjl9CokX+mz6YhwDSf
+zHdB4dAwDQYJKoZIhvcNAQELBQADggEBABoxaZlCwuVAhaKfksNj1I8hOagZIf56
+/MNNQPMr6EusW0xZk8bcfguvfF+VhWu9x2+6wb74xjpnS5PGBWk+JC3wG5HGPj/s
+QhiTbAMkim75IGcrfG2rNMkqIjMN132P7tI2ZELINZpuGWHLjWfwaKfQJAXmwxe6
+Ra58Q7WAeANNIHMF/EMQnTVpQnWUJYIrpjuQGN7Bqa/zLZW/lafPGJfhWeKirxoW
+YQ33E3FTkzf9PK8AHWyLFK9Gloy2UnzMLU7N4elLCu6a/nqY5ym6G9ocutxrzQQO
+JkCp63M8/lCoESdVvduOS+9PGO0V/72GmGbumiVxNGxQ8bJRy2adTSk=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIDFuNgMA0GCSqGSIb3DQEBCwUAMIGrMQswCQYDVQQGEwJD
+WjE5MDcGA1UEAwwwSS5DQSAtIFN0YW5kYXJkIENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5LCAwOS8yMDA5MS0wKwYDVQQKDCRQcnZuw60gY2VydGlmaWthxI1uw60gYXV0
+b3JpdGEsIGEucy4xMjAwBgNVBAsMKUkuQ0EgLSBQcm92aWRlciBvZiBDZXJ0aWZp
+Y2F0aW9uIFNlcnZpY2VzMB4XDTA5MDkwMTAwMDAwMFoXDTE5MDkwMTAwMDAwMFow
+gasxCzAJBgNVBAYTAkNaMTkwNwYDVQQDDDBJLkNBIC0gU3RhbmRhcmQgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHksIDA5LzIwMDkxLTArBgNVBAoMJFBydm7DrSBjZXJ0
+aWZpa2HEjW7DrSBhdXRvcml0YSwgYS5zLjEyMDAGA1UECwwpSS5DQSAtIFByb3Zp
+ZGVyIG9mIENlcnRpZmljYXRpb24gU2VydmljZXMwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQCoCFYSP/uUg6lgdr1Fg36WNDzPSU7Wz/wg4eGxAhRtrcp+
+UHIpqf2cdyY4ZPdDQT8UggSiQZAC55n3g2J4RIXonQVw1P54oXQ0x6w7hQLd7lFb
+RjtTM9Zn7OwULuPE5bN0gwDMxpbmHIPa3BhQafrdQ9GOQP0WpLeMZYfgvqyXH7Bx
+6wBlVxbObIevl4jwXfeHTToRCqLCRBTAFvJP9duVQq8psymgg1Fu/jxRV5MwJSa6
+O2qGyPYL0XE/nLc6yM5nCYz6QBt6bN7IHKDGXLthGIg/LlkdVvx6RZym2TjZxWDM
+uUFVt8q8Te60p8T2oA68icUBlbFc30/wzMLNQrtfAgMBAAGjVTBTMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMBEGA1UdIAQKMAgwBgYEVR0gADAdBgNV
+HQ4EFgQUwUw4lNWAhkjZIpAs0+4ZENtnR4cwDQYJKoZIhvcNAQELBQADggEBAKPL
+0X10+zV4B5Lo7mjp5FJe8NhjkZSfaPu+W7qp4WN3q1B2xulWR1RQmbQli+jBGXI2
+Wgm+59b6wrYyPUfDUE6ZbpM2xYpRd2PgSTOrPB+K6TvZhrUox8J1cVtmao1YDvN1
+kLWtLIEYzZzYw81P8ftpIJfASM8TRRK1HPY+g+JOXt1ZxmtK4EjO2SqdZTq9L/Dw
+TLwJess3AKQ/Owwj3eP7xkKitLbm0nKFTN+z3hanfh3n1M+tq7NQ5HCM37BwkMmG
+nu58hItkHGvhaBV+yaV04E73WurdEjGrkUCFcQvOKSj5bjgUXB3+7BG/TUN+nl84
+v9fqnpMv0B10tQUJ0yI=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFHjCCBAagAwIBAgIEAKA3oDANBgkqhkiG9w0BAQsFADCBtzELMAkGA1UEBhMC
+Q1oxOjA4BgNVBAMMMUkuQ0EgLSBRdWFsaWZpZWQgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHksIDA5LzIwMDkxLTArBgNVBAoMJFBydm7DrSBjZXJ0aWZpa2HEjW7DrSBh
+dXRvcml0YSwgYS5zLjE9MDsGA1UECww0SS5DQSAtIEFjY3JlZGl0ZWQgUHJvdmlk
+ZXIgb2YgQ2VydGlmaWNhdGlvbiBTZXJ2aWNlczAeFw0wOTA5MDEwMDAwMDBaFw0x
+OTA5MDEwMDAwMDBaMIG3MQswCQYDVQQGEwJDWjE6MDgGA1UEAwwxSS5DQSAtIFF1
+YWxpZmllZCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSwgMDkvMjAwOTEtMCsGA1UE
+CgwkUHJ2bsOtIGNlcnRpZmlrYcSNbsOtIGF1dG9yaXRhLCBhLnMuMT0wOwYDVQQL
+DDRJLkNBIC0gQWNjcmVkaXRlZCBQcm92aWRlciBvZiBDZXJ0aWZpY2F0aW9uIFNl
+cnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtTaEy0KC8M9l
+4lSaWHMs4+sVV1LwzyJYiIQNeCrv1HHm/YpGIdY/Z640ceankjQvIX7m23BK4OSC
+6KO8kZYA3zopOz6GFCOKV2PvLukbc+c2imF6kLHEv6qNA8WxhPbR3xKwlHDwB2yh
+Wzo7V3QVgDRG83sugqQntKYC3LnlTGbJpNP+Az72gpO9AHUn/IBhFk4ksc8lYS2L
+9GCy9CsmdKSBP78p9w8Lx7vDLqkDgt1/zBrcUWmSSb7AE/BPEeMryQV1IdI6nlGn
+BhWkXOYf6GSdayJw86btuxC7viDKNrbp44HjQRaSxnp6O3eto1x4DfiYdw/YbJFe
+7EjkxSQBywIDAQABo4IBLjCCASowDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E
+BAMCAQYwgecGA1UdIASB3zCB3DCB2QYEVR0gADCB0DCBzQYIKwYBBQUHAgIwgcAa
+gb1UZW50byBjZXJ0aWZpa2F0IGplIHZ5ZGFuIGpha28ga3ZhbGlmaWtvdmFueSBz
+eXN0ZW1vdnkgY2VydGlmaWthdCBwb2RsZSB6YWtvbmEgYy4gMjI3LzIwMDAgU2Iu
+IHYgcGxhdG5lbSB6bmVuaS9UaGlzIGlzIHF1YWxpZmllZCBzeXN0ZW0gY2VydGlm
+aWNhdGUgYWNjb3JkaW5nIHRvIEN6ZWNoIEFjdCBOby4gMjI3LzIwMDAgQ29sbC4w
+HQYDVR0OBBYEFHnL0CPpOmdwkXRP01Hi4CD94Sj7MA0GCSqGSIb3DQEBCwUAA4IB
+AQB9laU214hYaBHPZftbDS/2dIGLWdmdSbj1OZbJ8LIPBMxYjPoEMqzAR74tw96T
+i6aWRa5WdOWaS6I/qibEKFZhJAVXX5mkx2ewGFLJ+0Go+eTxnjLOnhVF2V2s+57b
+m8c8j6/bS6Ij6DspcHEYpfjjh64hE2r0aSpZDjGzKFM6YpqsCJN8qYe2X1qmGMLQ
+wvNdjG+nPzCJOOuUEypIWt555ZDLXqS5F7ZjBjlfyDZjEfS2Es9Idok8alf563Mi
+9/o+Ba46wMYOkk3P1IlU0RqCajdbliioACKDztAqubONU1guZVzV8tuMASVzbJeL
+/GAB7ECTwe1RuKrLYtglMKI9
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGijCCBHKgAwIBAgIQA6OkV7Xw84ZKEWPomP8WnDANBgkqhkiG9w0BAQUFADCB
+mDELMAkGA1UEBhMCTFQxLTArBgNVBAoTJFZJIFJlZ2lzdHJ1IENlbnRyYXMgLSBJ
+LmsuIDEyNDExMDI0NjEuMCwGA1UECxMlUmVnaXN0cnUgQ2VudHJvIFNlcnRpZmlr
+YXZpbW8gQ2VudHJhczEqMCgGA1UEAxMhVkkgUmVnaXN0cnUgQ2VudHJhcyBSQ1ND
+IChSb290Q0EpMB4XDTA4MDcyMTExNDc0NloXDTI0MDcyMTExNDc0NlowgZgxCzAJ
+BgNVBAYTAkxUMS0wKwYDVQQKEyRWSSBSZWdpc3RydSBDZW50cmFzIC0gSS5rLiAx
+MjQxMTAyNDYxLjAsBgNVBAsTJVJlZ2lzdHJ1IENlbnRybyBTZXJ0aWZpa2F2aW1v
+IENlbnRyYXMxKjAoBgNVBAMTIVZJIFJlZ2lzdHJ1IENlbnRyYXMgUkNTQyAoUm9v
+dENBKTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMiZ8iLHs4cVLqfL
+TUarZ5fPD3N3A/dkfHZIMiD0o9hZnRSpH6AekQ4NrfX+Z5KREyAhTQpVbnH6rBfL
+AP0OUAIz26nYvWEa/eAQV7FVeWAZtFR5nvuAMOLIQslSAgjYrC/DcUFUAvWBihLj
+aQKlh6FwfQW+pWK/BbAIlkdvf5OKreCs00LeveaPFOVzKKADm0H65T73OXQuZPSf
+S8D1eJlUa+UVIPzpMnJAq2V1vDxGNNL4EGHHDHjHfMARUdEFNvv4nP8tuOVxLUnw
+V0izk46c+zrJS20x11LVVumELpHUAh2ygAWBxYDKKcE0Z7mvBDBD9q9CR978AS7o
+Qpy+sgsU5DTc3a1ThHrYA1bRwgzUlyn4TPK1HN+dg65fWiVLorAo5b9aC9CcqJxw
+Km0OLuEnv60LbxHT+EYt9JdES8qwyOY2byK6juRSlRbsRGrUUB6YKPlopLrenjDt
+oslSock1ikDhjZub/fFGi6THT3BgUY3ykqnOuowvSVISZ9D1qwQlQHQD4titoXRY
+Ybe1DvN/JSwRY6/xEsP0pHOaZKzupgaP8rycrCipXBXTM63QNsghcGu8Kh/Vq7gB
+WHb8OxFN+/IcSCQR/U2PGSmua+htXrKhDXjO0mODdLTNKUy/m3CITxINRee+D2XE
+1jgk5EoVi9Fq6rs2oaGQpVPIpdZlAgMBAAGjgc0wgcowDgYDVR0PAQH/BAQDAgEG
+MC8GCCsGAQUFBwEDBCMwITAIBgYEAI5GAQEwCwYGBACORgEDAgEKMAgGBgQAjkYB
+BDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS8cz4vnJEMu4/Nd5k+zIXkzFho
+ETAQBgkrBgEEAYI3FQEEAwIBADBFBgNVHSAEPjA8MDoGCysGAQQBgfE3AQEBMCsw
+KQYIKwYBBQUHAgEWHWh0dHA6Ly93d3cucmNzYy5sdC9yZXBvc2l0b3J5MA0GCSqG
+SIb3DQEBBQUAA4ICAQAZeCxRE1+8mU5cpwH83rb+qR2GMRF7epmKs4iSpWDSBGM5
+vK+O2PErRXIyKTwt4tnYPXT6RzWH3BAANkE97ap+sszEGukxtPWR0YRK5/Xcz0Zn
+ApmvuHf6fu0hb5YjFHE/0Fi+qttDLDegHQZpNPBPj3Xus9IBu+wc6Y+pie/41BtB
+Apm+8F+6jizCIXDeUYHY97y4wzODw5fKCXPE6XfIcvRcrQ8Niurt0goBzutXnRXw
+KRXvWZyvrJKCcAyY2CKdL5g1qdGKibzVnVXCLp4HJUb2kk1Q+j2J8t+Tv5OU0Nmv
+V6PzZuaO8eigGxgGk1osiQ02xPogs9wo9WrujzGbWTjYTmqgIyHkhqvl+2Cj0c1a
+LEJJpg5VJCU1/dI6r2tYppFGX2nLvX4mm94IvR7snqb4nHWkQDaVSyJPxrZ9clG8
+48Jozc3li77Awk+bbmXOFrcIiMeH3v8yjMvrQkGs+9fPAUP4b8DWC/D3kunLRV1k
+sffKPLuJCJbJ2g7hcSoP7KRCLeNqD0dHsFOm1oVQlzDXjC5fRiLQrM48XpwecoP9
+DKf4FzK7Yd7jTy8YjoK1hxt0BTBKv2oeSDxUKLFdnZJfmxDjLiKKr902ZH8TdkeD
+NZUalI/1xFNtOb3Vi/XKzxhDBQGTpDbeMNIU87BktcrOlfe6dOyKcz5S015TAA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
+HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs
+ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5
+MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD
+VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy
+ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy
+dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p
+OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2
+8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K
+Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe
+hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk
+6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw
+DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q
+AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI
+bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB
+ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z
+qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd
+iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn
+0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN
+sSi6
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT
+EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp
+ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz
+NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH
+EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE
+AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD
+E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH
+/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy
+DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh
+GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR
+tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA
+AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE
+FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX
+WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu
+9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr
+gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo
+2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO
+LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI
+4uJEvlz36hz1
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
+HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs
+ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw
+MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6
+b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj
+aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp
+Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg
+nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1
+HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N
+Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN
+dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0
+HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
+BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G
+CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU
+sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3
+4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg
+8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K
+pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1
+mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G
+A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp
+Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4
+MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG
+A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8
+RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT
+gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm
+KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd
+QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ
+XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw
+DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o
+LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU
+RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp
+jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK
+6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX
+mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs
+Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH
+WD9f
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC
+VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ
+cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ
+BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt
+VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D
+0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9
+ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G
+A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G
+A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs
+aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I
+flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE
+BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz
+dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG
+A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U
+cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf
+qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ
+JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ
++jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS
+s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5
+HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7
+70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG
+V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S
+qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S
+5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia
+C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX
+OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE
+FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
+BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2
+KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg
+Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B
+8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ
+MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc
+0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ
+u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF
+u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH
+YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8
+GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO
+RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e
+KeC2uAloGRwYQw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE
+BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
+dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL
+MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
+cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y
+YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua
+kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL
+QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp
+6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG
+yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i
+QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
+KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO
+tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu
+QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ
+Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u
+olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48
+x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE
+BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz
+dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL
+MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp
+cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP
+Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr
+ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL
+MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1
+yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr
+VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/
+nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ
+KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG
+XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj
+vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt
+Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g
+N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC
+nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
+RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
+bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
+IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3
+MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
+LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
+YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
+A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
+K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe
+sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX
+MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT
+XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/
+HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
+4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
+HQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADub
+j1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo
+U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf
+zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b
+u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+
+bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er
+fF6adulZkMV8gzURZVE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE
+BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h
+cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEy
+MzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg
+Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9
+thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM
+cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG
+L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i
+NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h
+X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b
+m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy
+Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja
+EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T
+KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF
+6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh
+OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD
+VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD
+VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp
+cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBv
+ACAAZABlACAAbABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBl
+AGwAbwBuAGEAIAAwADgAMAAxADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF
+661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx51tkljYyGOylMnfX40S2wBEqgLk9
+am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qkR71kMrv2JYSiJ0L1
+ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaPT481
+PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS
+3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k
+SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF
+3dvd6qJ2gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVM
+ZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0g
+StRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/icz
+Q0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQB
+jLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl
+MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe
+U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX
+DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy
+dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj
+YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV
+OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr
+zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM
+VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ
+hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO
+ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw
+awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs
+OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
+DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF
+coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc
+okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8
+t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy
+1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/
+SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEgDCCA2igAwIBAgIBATANBgkqhkiG9w0BAQUFADCBlzELMAkGA1UEBhMCQlIx
+EzARBgNVBAoTCklDUC1CcmFzaWwxPTA7BgNVBAsTNEluc3RpdHV0byBOYWNpb25h
+bCBkZSBUZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxNDAyBgNVBAMTK0F1
+dG9yaWRhZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVpcmEgdjEwHhcNMDgw
+NzI5MTkxNzEwWhcNMjEwNzI5MTkxNzEwWjCBlzELMAkGA1UEBhMCQlIxEzARBgNV
+BAoTCklDUC1CcmFzaWwxPTA7BgNVBAsTNEluc3RpdHV0byBOYWNpb25hbCBkZSBU
+ZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxNDAyBgNVBAMTK0F1dG9yaWRh
+ZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVpcmEgdjEwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQDOHOi+kzTOybHkVO4J9uykCIWgP8aKxnAwp4CM
+7T4BVAeMGSM7n7vHtIsgseL3QRYtXodmurAH3W/RPzzayFkznRWwn5LIVlRYijon
+ojQem3i1t83lm+nALhKecHgH+o7yTMD45XJ8HqmpYANXJkfbg3bDzsgSu9H/766z
+Yn2aoOS8bn0BLjRg3IfgX38FcFwwFSzCdaM/UANmI2Ys53R3eNtmF9/5Hw2CaI91
+h/fpMXpTT89YYrtAojTPwHCEUJcV2iBL6ftMQq0raI6j2a0FYv4IdMTowcyFE86t
+KDBQ3d7AgcFJsF4uJjjpYwQzd7WAds0qf/I8rF2TQjn0onNFAgMBAAGjgdQwgdEw
+TgYDVR0gBEcwRTBDBgVgTAEBADA6MDgGCCsGAQUFBwIBFixodHRwOi8vYWNyYWl6
+LmljcGJyYXNpbC5nb3YuYnIvRFBDYWNyYWl6LnBkZjA/BgNVHR8EODA2MDSgMqAw
+hi5odHRwOi8vYWNyYWl6LmljcGJyYXNpbC5nb3YuYnIvTENSYWNyYWl6djEuY3Js
+MB0GA1UdDgQWBBRCsixcdAEHvpv/VTM77im7XZG/BjAPBgNVHRMBAf8EBTADAQH/
+MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAWWyKdukZcVeD/qf0
+eg+egdDPBxwMI+kkDVHLM+gqCcN6/w6jgIZgwXCX4MAKVd2kZUyPp0ewV7fzq8TD
+GeOY7A2wG1GRydkJ1ulqs+cMsLKSh/uOTRXsEhQZeAxi6hQ5GArFVdtThdx7KPoV
+caPKdCWCD2cnNNeuUhMC+8XvmoAlpVKeOQ7tOvR4B1/VKHoKSvXQw2f3jFgXbwoA
+oyYQtGAiOkpIpdrgqYTeQ9ufQ6c/KARHki/352R1IdJPgc6qPmQO4w6tVZp+lJs0
+wdCuaU4eo9mzh1facMJafYfN+b833u1WNfe3Ig5Pkrg/CN+cnphe8m+5+pss+M1F
+2HKyIA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDlDCCAnygAwIBAgIBATANBgkqhkiG9w0BAQUFADBqMQswCQYDVQQGEwJJVDEP
+MA0GA1UEBwwGTWlsYW5vMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1ODUy
+MDk2NzElMCMGA1UEAwwcQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBDQSBHMTAeFw0w
+OTA2MjMxNDA2MDBaFw0yMjA2MjUxNDA2MDBaMGoxCzAJBgNVBAYTAklUMQ8wDQYD
+VQQHDAZNaWxhbm8xIzAhBgNVBAoMGkFjdGFsaXMgUy5wLkEuLzAzMzU4NTIwOTY3
+MSUwIwYDVQQDDBxBY3RhbGlzIEF1dGhlbnRpY2F0aW9uIENBIEcxMIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwxyGND8nUkJguitg0CErydfpQHU6bFgP
+IzvPhj7UZKtu2urIKtiVRd/JHNIlkp4QmFqLcWnAlen2a2jc97bEDf5u9XA7waSo
+TyCiJwuf8RJ1fM+uf17LeAJYKNcvqtugrnQ9fqv26XKhKs/WkGDf4KA1ysDbBMQH
+VvxmdYyOehOhPAZrGuZ/OZyI5IRvouJ/a5/sAarSxMuy7Jo9uBcYrB9gmTPm6wXd
+zPJpZ7AOvigkQ8stuUeEGfnq5PH1aPSfx3tQUa+i/G93iDG/ktt/nMW1rKEImOdq
+M/7RuwDhtwUIr/OmVog2PeOKSuINnYCGZp/UwqNQuhwS14eKMUq4FQIDAQABo0Uw
+QzAOBgNVHQ8BAf8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU
+AbvWm1a0fubFWN0smPTKcvZfM4YwDQYJKoZIhvcNAQEFBQADggEBAKEg1suiNG08
+buFV0krQ2bqyN1GIdyfuAkiTRUHidVHyGZQJoPO4fboDgCOgJe8BGbXZGnot40KK
+sYYxD5bsZoTyziMSRpZrMV4Guq+jUqpCIKjRrqqb38QXnlNwAbSpGtpoyGMPtlpz
+U9FpEQYTUudrqAUxt7D8h0bFdYiB8V94AuefrZy7VO1fmWo31etVsyrAQ2BR3LRx
+kiajD8x6PdzAQokXKQhnVGTF+ahEvIRxWJY9Z1d/u6yQs3Eivz66rGYmRRCz8B86
+OmilUDXKtBeRBgEs9w2wcLJbVnW5d5nA2ZWFAi1zZgfJT5kR7lsrqONoIwWo8wQP
+BrsfCY7GWx0=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDyzCCArOgAwIBAgIDA+aUMA0GCSqGSIb3DQEBBQUAMIGLMQswCQYDVQQGEwJB
+VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
+bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRgwFgYDVQQLDA9BLVRydXN0LVF1
+YWwtMDMxGDAWBgNVBAMMD0EtVHJ1c3QtUXVhbC0wMzAeFw0wODA0MjQyMjAwMDBa
+Fw0xODA0MjQyMjAwMDBaMIGLMQswCQYDVQQGEwJBVDFIMEYGA1UECgw/QS1UcnVz
+dCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy
+a2VociBHbWJIMRgwFgYDVQQLDA9BLVRydXN0LVF1YWwtMDMxGDAWBgNVBAMMD0Et
+VHJ1c3QtUXVhbC0wMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALOe
+JIgc0s9AA0hqqqWgK72W9XwKn5+rUJDbQc5WgHkqwP2TU3qcW/NZYSSIY6PVGO6b
+hHSEnOyMPdrBhnpvNi4m6349yT6t565LdHcoKyQg/youwpVkEPZ+e8O32hF9nqvt
+L4wZohydjMwzcHUJB/5e+0CkJYwv/bVRZzqoK0yf1midYJukxWOw7nDNKD9KdOpZ
++XXFAAZuH7BjwSqqE138y9JlGzkxIlrCeSJdGfFLwr7OHIgBdPEmQXcyOcaMUGjP
+U4VDig+gj+6OC5KjAEC+wKJZXiyhRLj+HyLTDLrQ6O8p5HI3Sov4FuwiMgcqIyzz
+o9fNyqmnT3K/vBGOqBsCAwEAAaM2MDQwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4E
+CgQIRgbfN/LCNxAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBx
+CNQmRL6A4mtCtSpQ/V3ojGDznLaSgXI4sm+pPoHywzQkU6FRUsilidO83NsSudup
+sFjvwAhmMmLj4fOjWKN3bu7kobtXEWh3Mwj0zVm46l0bCcaszI0Lus3f1pq+q3YA
+rX0WS2Rc35g+a21eLHw5FVlCNyA8n8Pcf/VTNrfix6QijHq+cb1Ns2jIuKmJ/3Ew
+i8+RbfKFLqVKIn5y3tSuse0M7/xFfS3cJK3teQflrU+y6VJ0SbiMUvq9EuQZw/xR
+jRbja2huOZrfKTmlu7GhF8EX43Vq/H2xcjzfwerloxzUnVkbGnQfaSqDVCQY0+7l
+4INXvhvi0B+tbDW+jbpf
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIG/zCCBOegAwIBAgICcRkwDQYJKoZIhvcNAQEFBQAwWjELMAkGA1UEBhMCRlIx
+EzARBgNVBAoTCkNlcnRldXJvcGUxFzAVBgNVBAsTDjAwMDIgNDM0MjAyMTgwMR0w
+GwYDVQQDExRDZXJ0ZXVyb3BlIFJvb3QgQ0EgMjAeFw0wNzAzMjcyMjAwMDBaFw0z
+NzAzMjcyMzAwMDBaMFoxCzAJBgNVBAYTAkZSMRMwEQYDVQQKEwpDZXJ0ZXVyb3Bl
+MRcwFQYDVQQLEw4wMDAyIDQzNDIwMjE4MDEdMBsGA1UEAxMUQ2VydGV1cm9wZSBS
+b290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDD/Fa1KwaL
+7Z5Gz8MAeRyAOaLKyhsQbSH5xx8KrPOteYKXnsaxaIhScTjEqkxHb3f95x/3lPZy
+V59EPGtf0NnOIijNcCMBFCJQEA4ae0sb9IZXj+ovaUC6RXoCQFpfNduguZ4/8D91
+zTpFkRNVw0gp87fXFPIDhqPJsFd7PdkqrF7h35U6hcYFTDGi2i2xAI6vUVeewYtF
+TSkHi6Dl5d8xDH8GbGFPa+IjMsHljCsN2JYGcLMmJ8rPs6gjAMASJIG/rEQ9F5iD
+iM4JkDcuooAZSdmgCBeGmWrdHkCf0gLns5hWR3YXqk6h19vqpLrVUmdpcy6gJ1Rz
+rIvQu/BhWCaoankYwQznfFbMz83XBoYiB15zuNDmDCU1YroExPEALM6dSJ1btPbR
+YphDd1ercv4zgBAqMRvbGVApkqyB4AhpX+ZOPl6tXEh5nsVdsJeRF54W3wf6auGr
+vCV8OADh1th6nPzc1yIAUmeol7tsDWeZlxC4eThnaGGIKW6Uv1IHiDbC8i/GRmoh
+HvGa6Luf7bYms4anMEqbMGO85OhCVkQnPFqhDn3OqsMbXmjscz8/s/vEhSwEFfus
+CjhmMxmVA0vKtAR9534PDZhWPthXX7eZvnoUrcWn25QOBZ4lq7Kr+QmVeKoHi2wF
+HO5agGHo3742+7PjI9w9jHVm76PkVdCa7wIDAQABo4IBzTCCAckwDwYDVR0TAQH/
+BAUwAwEB/zARBgNVHQ4ECgQIS8lOuWexmDUwUwYDVR0gBEwwSjBIBgcqgXoBaQQB
+MD0wOwYIKwYBBQUHAgEWL2h0dHA6Ly93d3cuY2VydGV1cm9wZS5mci9yZWZlcmVu
+Y2UvcGMtcm9vdDIucGRmMAsGA1UdDwQEAwIBBjCCAT8GA1UdHwSCATYwggEyMDKg
+MKAuhixodHRwOi8vd3d3LmNlcnRldXJvcGUuZnIvcmVmZXJlbmNlL3Jvb3QyLmNy
+bDB9oHugeYZ3bGRhcDovL2xjcjEuY2VydGV1cm9wZS5mci9jbj1DZXJ0ZXVyb3Bl
+JTIwUm9vdCUyMENBJTIwMixvdT0wMDAyJTIwNDM0MjAyMTgwLG89Q2VydGV1cm9w
+ZSxjPUZSP2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3QwfaB7oHmGd2xkYXA6Ly9s
+Y3IyLmNlcnRldXJvcGUuZnIvY249Q2VydGV1cm9wZSUyMFJvb3QlMjBDQSUyMDIs
+b3U9MDAwMiUyMDQzNDIwMjE4MCxvPUNlcnRldXJvcGUsYz1GUj9jZXJ0aWZpY2F0
+ZVJldm9jYXRpb25MaXN0MA0GCSqGSIb3DQEBBQUAA4ICAQAbRJZgJFo+a6rezdPY
+W1LAS/pRJePuzbyMPtO1Hfb8QIOsfuXXBkMtbCdz/r/apIIiUW7+jAymEVJgaAZe
+M0z6SPhbSCHWDJu+OLnhwEwToVPvIjlu7kZQZQsaHwV+d9nOJc30r8Z8nYyXbGod
+9mTtlOHOXe9AHZbLcdVKrXlYOUVNq28HuzN8rj6l6cco2mignlcnZu99l+5pqELr
+c6pLsVnGjTecqcBGUG+MSVPV5S3hok3L51u/pbs8rFLOGZNkwxCaeUKrqPuEg8JG
+X7sozA5pT3xfuzxn5g2WHoRMXiAVWzlD5YsrgiSJo6D3EGXTyYnapMFFfYlZkOtB
+no7QxAlgX5ctIW0EphGBMEyTwlhguGvWeqDlsRGfYrgwcUand2RmOkJZH1VjR9cd
+oDSOgXJiSNmXrqHxvkDioDF/awDZxwLQaQIO8c4eLaSd78yBO2Oe91Qbzr7ECleb
+zbFr4qfgqx4eg9jAUhyqOlFGktCf2yHfaagLFU1e5In8W1NIeWutYZ8e5bixMrLb
+fehHatii4GX1zlYXoBKQuvBLLQEaqWnSp+fHrDSbbaKQwYYmSrIvvftvaGtVu8Vj
+OMF3YGMtrQycPKqYskOj1EbcDdw2HzIuaLp8ZSFBl5aQZxTWpC/9IT9//CJ7KjVY
+9Ubxkw7Z7eA6Jn9uLo+YuE/UmQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
+MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
+IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
+MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
+FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
+bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
+dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
+H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
+uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
+mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
+a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
+E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
+WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
+VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
+Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
+cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
+IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
+AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
+YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
+6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
+Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
+c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
+mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50
+cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs
+IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz
+dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy
+NTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu
+dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt
+dGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0
+aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj
+YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T
+RU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN
+cCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW
+wcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1
+U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0
+jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN
+BgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/
+jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ
+Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v
+1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R
+nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH
+VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFbjCCA1agAwIBAgIPQupbClERJnzYJ3S3339xMA0GCSqGSIb3DQEBBQUAMDMx
+CzAJBgNVBAYTAlBUMQ0wCwYDVQQKDARTQ0VFMRUwEwYDVQQDDAxFQ1JhaXpFc3Rh
+ZG8wHhcNMDYwNjIzMTM0MTI3WhcNMzAwNjIzMTM0MTI3WjAzMQswCQYDVQQGEwJQ
+VDENMAsGA1UECgwEU0NFRTEVMBMGA1UEAwwMRUNSYWl6RXN0YWRvMIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2++iQ27Iqf1u19+sopKEochZoAyaU/7v
+rswZDXKKpMIzI+/nBnLqbUs6QVIPyUgOLee6ZO6iOkxjXGYpi9+piMW96PH3jkv8
+ATxEEjkqcKLA28Wi31/HS8ao3D1hfEpYwUQyk95wmaEjJlY/o+HqXzBG2Hj1MKOW
+CYmwPfGGkwW2EmoYjfClZDsrh2RePReOC27mmMyXODggjHBaaSu9ZY3NN1lcbNFy
+dFkGTsi3Add3v/BIhqizGl1B1DcXERBfSm6NdcUDQH0hrgDw2/yfbDpmpN/3yt+A
+ZlrZ2H8UoiYZ9K4LIeDKPgXdFth+WdqhsGnDnTQT+mVJOYfudi+NvTwnGQNOrQ4L
+KyzGLnETNSlX6XDcG1HqzZfxlY2yhvomBi+AGpXxmDvu9uWGpc4bAeX06TPKD1VE
+X2iKLMdbZijdlkuDnV4dfhjV/rJg+5pRaMOWjB9oS1BSCzbmMSfk1ykMG9obL+EE
+U7jUeUmwO4FeCIgid+IpwK5yqqu0clK9bLv1unjZnLggbzCNSp0y+fQB5mJ5mEJA
+BXpvHCo/tfvfzRhAjuUQxDlbVvE8VwWr0jlNP/iLI8druUCx4v7/sxwKaR+bjA+0
+H+AK3kj9jV+PmfUBdgU2XY7cM45RbhHiQf3Mt40qXz6S5fKx4KQj4qK3xo0YmylK
+0UZ/9GQgGN0CAwEAAaN/MH0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFHF/Nd71d3FtHRKc4ZCkuvCpg4+AMDsGA1UdIAQ0MDIwMAYE
+VR0gADAoMCYGCCsGAQUFBwIBFhpodHRwOi8vd3d3LmVjZWUuZ292LnB0L2RwYzAN
+BgkqhkiG9w0BAQUFAAOCAgEAjK2ccqW1Z3ZnOIfpOoz+nVk1vpDxAwCgWNiY0b/8
+/PNQ3LRl1dq68IwufA3mCZFfTaP2XXicWF1qcJSjr9svAMkDQGvfUQMWGYwrvJk2
+9sCtkhgTjKftHdLfA5AF7LCTmJv3TVoT+Oeb9zZ23nwm+BE4T0lOs3MfXydb4Z4y
+HvbAmBvZICxclo2GyQtF15Ktir3qV6KjVrYgPOyyxzl+sID+vVErKrTDcmnD+Ucu
+bv+ch+3cdcsQiOC0zi4OUx0L6G4eQkzQvjl4dckU3ieRc6rsaoDw8BeWYk++BMvi
+p+VdD5NFy1lIJhPe3bH1CtoWsagdj35YG7fVCd6Ia86EPqi+UmLK0qGhx8s8FuB2
+VjA/5g9rBnf+ZJ1aanN87t4h6ZpJlze2hH+ikT5F+9daBsWHNdy6SEyGAQhHNrY4
+UJURmXPRN0kK+kJPLxBU00GQ+sjcuxHcDcx9fJvcDpFxhk248hWaKzgXEaHynqhs
+nOPOruLmS4vyigY7B3cCEe6D6p1mhsrwYqnVV4OkFfFFFP4adX+lD9xSdFl1Cvj7
+VUGpXI0xRN3NlE4z0RtBqtvXoTzwxUhtRUE1tXmD5vlN8VY4179AIvsggOMcwllG
+B2MCYQA7m1C7Q8Ow6QqauHb0R2FVZHBPN9mcEaMTsuHdQEK7mNegBovmaFdLDjho
+f7o=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHHzCCBgegAwIBAgIESPx+9TANBgkqhkiG9w0BAQUFADCBrjESMBAGCgmSJomT
+8ixkARkWAnJzMRUwEwYKCZImiZPyLGQBGRYFcG9zdGExEjAQBgoJkiaJk/IsZAEZ
+FgJjYTEWMBQGA1UEAxMNQ29uZmlndXJhdGlvbjERMA8GA1UEAxMIU2VydmljZXMx
+HDAaBgNVBAMTE1B1YmxpYyBLZXkgU2VydmljZXMxDDAKBgNVBAMTA0FJQTEWMBQG
+A1UEAxMNUG9zdGEgQ0EgUm9vdDAeFw0wODEwMjAxMjIyMDhaFw0yODEwMjAxMjUy
+MDhaMIGuMRIwEAYKCZImiZPyLGQBGRYCcnMxFTATBgoJkiaJk/IsZAEZFgVwb3N0
+YTESMBAGCgmSJomT8ixkARkWAmNhMRYwFAYDVQQDEw1Db25maWd1cmF0aW9uMREw
+DwYDVQQDEwhTZXJ2aWNlczEcMBoGA1UEAxMTUHVibGljIEtleSBTZXJ2aWNlczEM
+MAoGA1UEAxMDQUlBMRYwFAYDVQQDEw1Qb3N0YSBDQSBSb290MIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqPK9iL7Ar0S+m0qiYxzWVqsdKbIcqhUeRdGs
+naBh1TX55FqDNmND3jhXFfzwlGL0B4BXg1eosxW8+00jeF/a9seBFr6r3+fcg1Nz
+K7bdY4iNRfMN3X2/6IiwZsFDXTfSbaGcmkbDsz/QwqCKlC6DpjzDYL0szB6LY4J2
+QSjkFWtcDGE5VThByshm6Me4l1IQJnC3B7cJHqYTXq6ZWiZvZD3sxNOluVx2ZK1j
+fYiD4kvMDd7UxtMIQvVbF/Vx4ZEtA5+eHNyLcqToR2QQh2Qwc9jytPFXJpNXy7bH
+DYiLHc8FMF0E1nY36CAyV78PnDPGCIz2tMKpBrBbMKEeLRK6PwIDAQABo4IDQTCC
+Az0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgboGA1UdIASBsjCB
+rzCBrAYLKwYBBAH6OAoKAQEwgZwwMAYIKwYBBQUHAgEWJGh0dHA6Ly93d3cuY2Eu
+cG9zdGEucnMvZG9rdW1lbnRhY2lqYTBoBggrBgEFBQcCAjBcGlpPdm8gamUgZWxl
+a3Ryb25za2kgc2VydGlmaWthdCBST09UIENBIHNlcnZlcmEgU2VydGlmaWthY2lv
+bm9nIHRlbGEgUG9zdGU6ICJQb3N0YSBDQSBSb290Ii4wEQYJYIZIAYb4QgEBBAQD
+AgAHMIIBvAYDVR0fBIIBszCCAa8wgcmggcaggcOkgcAwgb0xEjAQBgoJkiaJk/Is
+ZAEZFgJyczEVMBMGCgmSJomT8ixkARkWBXBvc3RhMRIwEAYKCZImiZPyLGQBGRYC
+Y2ExFjAUBgNVBAMTDUNvbmZpZ3VyYXRpb24xETAPBgNVBAMTCFNlcnZpY2VzMRww
+GgYDVQQDExNQdWJsaWMgS2V5IFNlcnZpY2VzMQwwCgYDVQQDEwNBSUExFjAUBgNV
+BAMTDVBvc3RhIENBIFJvb3QxDTALBgNVBAMTBENSTDEwgeCggd2ggdqGgaNsZGFw
+Oi8vbGRhcC5jYS5wb3N0YS5ycy9jbj1Qb3N0YSUyMENBJTIwUm9vdCxjbj1BSUEs
+Y249UHVibGljJTIwS2V5JTIwU2VydmljZXMsY249U2VydmljZXMsY249Q29uZmln
+dXJhdGlvbixkYz1jYSxkYz1wb3N0YSxkYz1ycz9jZXJ0aWZpY2F0ZVJldm9jYXRp
+b25MaXN0JTNCYmluYXJ5hjJodHRwOi8vc2VydGlmaWthdGkuY2EucG9zdGEucnMv
+Y3JsL1Bvc3RhQ0FSb290LmNybDArBgNVHRAEJDAigA8yMDA4MTAyMDEyMjIwOFqB
+DzIwMjgxMDIwMTI1MjA4WjAfBgNVHSMEGDAWgBTyy43iNe8QQ8Tae8r664kDoSKv
+uDAdBgNVHQ4EFgQU8suN4jXvEEPE2nvK+uuJA6Eir7gwHQYJKoZIhvZ9B0EABBAw
+DhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4IBAQBwRqHI5BcFZg+d4kMx
+SB2SkBnEhQGFFm74ks57rlIWxJeNCih91cts49XlDjJPyGgtNAg9c6iTQikzRgxE
+Z/HQmpxpAeWR8Q3JaTwzS04Zk2MzBSkhodj/PlSrnvahegLX3P+lPlR4+dPByhKV
++YmeFOLyoUSyy+ktdTXMllW7OAuIJtrWrO/TUqILSzpT2ksiU8zKKiSaYqrEMpp+
+3MzBsmzNj9m0wM/1AsCMK4RbG0C8ENBQ4WHWZlaaBJGl49W9oC4igbHZONrkqIdf
+PEYElt7Jmju/rXhsHUlJtGm5cA8Fkla2/a+u+CAtRyPPthzNxJuATvm/McBUvrsx
+f/M+
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFhDCCA2ygAwIBAgIQAIG73WskH9q0vo8b2ghVxDANBgkqhkiG9w0BAQUFADA7
+MQswCQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xGTAXBgNVBAsMEEFDIFJB
+SVogRk5NVC1SQ00wHhcNMDgxMDI5MTU1OTU1WhcNMzAwMTAxMDAwMDAwWjA7MQsw
+CQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xGTAXBgNVBAsMEEFDIFJBSVog
+Rk5NVC1SQ00wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6cYB6TIZu
+f8gTbcDGfRwAl48sDCO7EJpAqRq3h4j4m1Zq++Z7jouSjqclXVkR2zYut1EXH6kI
+HwQXJFiqN0oY3+U51Ff918EskQGR4iLUA8BY/HdH7I8+dEO6rDSNTTh2Z46wyG8w
+M1hxXLT1a27UAVC4E35sSqNJ0SAZ7rzAKRhlp97+790KkCHnGmeSQhCYX08wvD4c
+RbQQ12hAFMBA+ud3F3rmC49lWzzZmlLbtb2eRs8965EFAsCWsnZMTRCWO5L6nH8P
+md++IzVFHgJc/rWom5kl2l7zIsM59eQqLtPGH8RsqsUcagEFSi/SxcGoNCZdZqXS
+AiH5GLcG9U6Zb6irTFHoz1AYxXfIOQksSZIymai7Fxd5sFrF5qPEWWVHNYNeqeg1
+C5m75M0gxptKBjm1aPwiuu5VjCtO6vOx4/y2mZrVQvpxTQjPhx5qcX3507TppXGB
+e8JOR5al9naFoyiP6YBugVOlbV+4SPnC+TamLkn/uJbCjAezm4hY/OsbHN4tcOKX
+kjChieO8Vagn1kvtkK2L+mMlWS2oNd3KlzO85c3HndHs714OSpAGJmOtudk1LQe6
+dmUsrFePffQHlNeBApZdowdJ1XrQV/kb51NGdaqweULLaHEI6WC9OWnO9K/DVkDH
+rVKiCeRvhkeKH+soJ12DIK8EyWxWmotG9QIDAQABo4GDMIGAMA8GA1UdEwEB/wQF
+MAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBT3fcX9xOiaG3dkp/UdoMy/
+h2CabTA+BgNVHSAENzA1MDMGBFUdIAAwKzApBggrBgEFBQcCARYdaHR0cDovL3d3
+dy5jZXJ0LmZubXQuZXMvZHBjcy8wDQYJKoZIhvcNAQEFBQADggIBAHa5Jte8YHw7
+w8eEUZJZebaNv1PgvIigtdlM6a31Zk7voGDIC7iR7TOOgvGGlf7G0xqJq0872TMf
+0AvHsfVPpEu7AwwjXGyw3qxy+mneABDN8dbPNlK+f/wmQfPy/DDiMcbbED6pdLpP
+7O0gmcmw4qKjqUKZM8t/96oC6SSWKvjkzl1BoAYJVVra3xpP6zn8X+CpqUTXGOqV
+sUR72uo4CXQeZyg/4Is5LFP6DOA59ysaDjEB1GZ5iHSdSEiOtJNh5r8pCe++Bqka
+bAhwBAq/bgl2pGRDzh9XnZeebPh0FxxRA/pgU9RWRpbQUJ/GnTPzQ7Go16LJsMmD
+sX3H3KyBdteJ7UMm1v+iXKItoCRHqkaaaTEJwf0QebCF7HAg5j1BVKJKYi/W3kzD
+nI+9y6ZVlBzdvUHPKGWN0E3Xh9FM00NzIezXLhdnMoe20Bt0qmnH5GyH130Zmuw9
+RPGqgllyzUXb2mZC4ThsNl9U3SZWV6LZPqQK8u/8GYAf27qqgLzYUc1UatV/2G+1
+3Bb7QOJVVJDD3Ycz0f8epWKLNkSsqL/A1sSUd7O9xHUkaen/OZSr/FFnJOpAHuuJ
+LRMGfa4HocMM9dRask63IR0XxeW58h/jhgFdCwZ5XcnKPxZ+gR5NfvCaPCXFznR5
+nkrh8en1JUb2xN7kRGRzHcY5PnrmhXsY
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJTDEW
+MBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwg
+Q2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYwOTE3MTk0NjM2WjB9
+MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi
+U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3Rh
+cnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZk
+pMyONvg45iPwbm2xPN1yo4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rf
+OQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/C
+Ji/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYT
+Kqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNi
+HzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMM
+Av+Z6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w
++2OqqGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3
+Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOzEmDyei+B
+26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT37uMdBNSSwID
+AQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMCAa4wHQYDVR0OBBYE
+FE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFswLKAqoCiGJmh0dHA6Ly9j
+ZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMCugKaAnhiVodHRwOi8vY3Js
+LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3JsMIIBXQYDVR0gBIIBVDCCAVAwggFM
+BgsrBgEEAYG1NwEBATCCATswLwYIKwYBBQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0
+Y29tLm9yZy9wb2xpY3kucGRmMDUGCCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFy
+dGNvbS5vcmcvaW50ZXJtZWRpYXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3Rh
+cnQgQ29tbWVyY2lhbCAoU3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlh
+YmlsaXR5LCByZWFkIHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2Yg
+dGhlIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFp
+bGFibGUgYXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJ
+YIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT
+TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEAFmyZ
+9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArexmvclmAk8
+jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPleWKYK34wGmkUW
+FjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8rENNZEXO3SipXPJz
+ewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNmezwD7dOaHZrzZVD1oNB1
+ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3fsNrarnDy0RLrHiQi+fHLB5L
+EUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZtWgo+2EuvoSoOMCZEoalHmdkrQYu
+L6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+Pwq
+yvqCUqDvr0tVk+vBtfAii6w0TiYiBKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuC
+O3NJo2pXh5Tl1njFmUNj403gdy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6V
+um0ABj6y6koQOdjQK/W/7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkySh
+NOsF/5oirpt9P/FlUQqmMGqz9IgcgA38corog14=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES
+MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU
+V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz
+WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO
+LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE
+AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH
+K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX
+RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z
+rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx
+3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq
+hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC
+MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls
+XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D
+lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn
+aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ
+YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFezCCA2OgAwIBAgIBATANBgkqhkiG9w0BAQsFADBfMQswCQYDVQQGEwJUVzES
+MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU
+V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDc0NzEz
+WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO
+LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQDLAQxkgbtQSJnzHNkgsIukhxL3rk/OXnPLqIYV4hz5mWMG2hzWCrz+lLreYIFo
+nLLyS3cB2rcbxvn1YJAgePwxSj41d8AaHoxZVXhVcEGSCZsCSsNvrAuY6bJSfZp/
+v10fA4dC/cMc6mMwZdG1jpxpWmvuM42vuvpjJFCJLckFHmzrjl6OAUihgMM4RStO
+H/QiwvguSnZ+6s6c0RiHV/a2+u3MkFWOgMo1udpkZRbM6WRRWT77is6AsKWSRWP9
+m5YAvFxeho7FSd8UqMmRm3j3HIwmhmia+YHDgXs9M9sQXj0EadZm4K453Ini5ib7
+UX97qAlrhyY4zdmNLZ49yrHzK5v9Ru2B28+FIb7ARcnlid12l7+0gUQpO7eYFzTy
+uKqasHtBVSbBPLQkl5atG482cbcr87aDAjD6sgoTvEu2D/mjnWNuIlDTKNxfNgc8
+KaxFaOoiQF0/CccKMo/KtOXo19fKi2T/b2Ul7A10qLUcGibmKLJyzs36xCRKNxLi
+2LcJzqwuJz3CFOvqMIw3ynMZhYmzu/s4Qx15paWLGSSgphJSGv7RV8GdEnudldZs
+e0odwa4VAk0sY6B1Jz/+8gAgMkrlsawuE+BIpvROkVQM2XRYPhF17fqcwqq7SH/L
+9l9cJrAJh3rE/Zx+rzNnQlcWU/7xPUNAUoq2NXFP/AE85QIDAQABo0IwQDAOBgNV
+HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyERa/n/9qZuG
+Nb7ipfYZ+16/b1kwDQYJKoZIhvcNAQELBQADggIBABKL3dUInShvCPGJVm1AB6v7
+4QioBKS+132FrlpYtmdMAWnNrIs2jlz9OzYB+dWheyh6TISTzcQLGfASBIlNj+2g
+mSWFuyyVmWww7W0Eb+Yr+4kQu0yTDL6T1dYJhJMAcM/OxXga7VVU3y8OWVj4NYWu
+T/gh0pLeIbqZ0ZfxYJ6sREOnYK+J4lHSOYkQlBXPBNIhgu/K7WkVTxmrvJNqmQHg
+AtEcOp0xyvX7xPZNmrsgjD9vcTJ/J0tEf4FR6ZMbYg6kh1893VRAuSSXYleVjscQ
+kaeYxVhCUKmWHOVKtray3E6R8oDSkehQCNMWQIkPaBOuw1xXFxMX7TMdsuqR9qou
+cURAibLgZr2xvRc9TT0PVzklZQRqKoPbOLXOv+QA100oN5CoqabksVXwys/jDGov
+R5a31OTvyDcDPH/rgZKKKmmYHQE7SIota6/lz7K03dZneoABCwRXJbZlQg9J4SPK
+QKrCLPyFr2UYqgcx2y2u68Nx5mjfN5f5mj/xJV7w31fp/BLgOQaHdN1jk2uBxPPg
+2wkU2L+/QG9xgSZo96WFF0BSA75ckxTlQVIVd7w1oUdzKgyXXIzeMTxjjPCbX1RP
+0uJbbDwcw+c0ZnOmQaMgMkR7zeq8aZf9Q3AxvDKComWYo0Avakb0AFAuVeDbek7g
+bcho4VTolYMYvvrNjx1m
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW
+ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln
+biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp
+U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG
+A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp
+U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg
+SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln
+biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm
+GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve
+fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw
+AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ
+aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj
+aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW
+kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC
+4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga
+FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp
+IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi
+BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw
+MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh
+d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig
+YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v
+dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/
+BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6
+papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K
+DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3
+KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox
+XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL
+MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj
+KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2
+MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV
+BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw
+NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV
+BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
+MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL
+So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal
+tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO
+BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG
+CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT
+qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz
+rD6ogRLQy7rQkgu2npaqBA+K
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB
+vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
+ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp
+U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W
+ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
+Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX
+MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0
+IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y
+IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh
+bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF
+9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH
+H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H
+LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN
+/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT
+rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud
+EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw
+WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs
+exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud
+DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4
+sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+
+seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz
+4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+
+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR
+lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3
+7M2CYfE45k+XmCpajQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB
+rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw
+MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV
+BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa
+Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl
+LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u
+MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl
+ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm
+gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8
+YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf
+b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9
+9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S
+zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk
+OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV
+HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA
+2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW
+oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu
+t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c
+KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM
+m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu
+MdRAGmI0Nj81Aa6sY6A=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB
+mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT
+MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
+eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ
+BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg
+MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0
+BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz
++uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm
+hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn
+5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W
+JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL
+DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC
+huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
+HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB
+AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB
+zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN
+kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD
+AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH
+SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G
+spki4cErx5z481+oghLrGREt
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF4DCCA8igAwIBAgIQLu/b+9iJPY9JHJNy/kXf7TANBgkqhkiG9w0BAQUFADBQ
+MQswCQYDVQQGEwJMVjEoMCYGA1UECxMfU2VydGlmaWthY2lqYXMgcGFrYWxwb2p1
+bXUgZGFsYTEXMBUGA1UEAxMORS1NRSBTU0kgKFJDQSkwHhcNMDkwNTE5MDg0NTU2
+WhcNMjcwNTE5MDg0ODE1WjBQMQswCQYDVQQGEwJMVjEoMCYGA1UECxMfU2VydGlm
+aWthY2lqYXMgcGFrYWxwb2p1bXUgZGFsYTEXMBUGA1UEAxMORS1NRSBTU0kgKFJD
+QSkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDEBGsAw7DgLjvoUwUF
+CL7IhCdV1h2KEuIXIlps/7PdtpnDysHq+dgltd86nZ0/UsXp8qy/iXSKVK5Oz27y
+Xq7avRIHmZXPZKv+mZFkWYzJvkRqMZuY6rrq0SEOKAs5m+PWiqb3Aro/PdlZ9HmZ
+3tMkm4twGyqE1uUJDyYmJFiPJV7zxZ10iaU2xeVSsuvohpNHbqcph6R+3LSjyzJW
+90WA2lzHL6Cn1+/1/LWozYSVYvipKyM7bdO3ksjqwbwUTehrnBZ60+wH+wclEE8U
+h3uSNs5WgmVLEyYG2KOjpt/Cevt7NQWiEz0+drwcV4MDUcc03lr1PL02JZwWD03O
+6A0ay11DohRvunxg1AKFdsVrKrhFsVx3RxGtoCWpZpGMURdtYVUKGT+bAv/E9dbS
+s+klU+EEPY8i0KJl5a6ntOAdkWrChpL3Ol0Tp3pMQt9as0qIRCzvR7qpr9bPYnOK
+BiIWLMLsHwao00dQWTIS5bmdYjWeyl4KtJ0jiMLTTywsyZPofrgJ7KbZ3WPhyahq
+aNyEUaxaEuc7prUHCrGqTrO0olffN2wWTquZMnrwnCMli8qaqIzgOCG0zvdsYcji
+DBJZBoEmNloPNXPUFkX93pXe1ktcn3PZvhm957/kVWrIa0T3x7gziHkZDQZk6K8L
+oXUMUmW6CiOVcfdj/H7ljI/M0QIDAQABo4G1MIGyMA4GA1UdDwEB/wQEAwIBBjAY
+BggrBgEFBQcBAwQMMAowCAYGBACORgEBMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+BBYEFDsmA7rP41lGQlCtFJy/Azvv1j4xMBAGCSsGAQQBgjcVAQQDAgEAMEQGA1Ud
+IAQ9MDswOQYLKwYBBAGB+j0BAQEwKjAoBggrBgEFBQcCARYcaHR0cDovL3d3dy5l
+bWUubHYvcmVwb3NpdG9yeTANBgkqhkiG9w0BAQUFAAOCAgEAheamlOTZRl+dv5O7
++Wt2ZCiuvzxFKoqTeWzTS4iGIGsiJjg9HBOq62GXbC4+V5xsQ6LebUDEMfJtukYW
+sy3Gu6bc5S+x2MHVkR4Rf/tfodwdYfhtm2Hw4j8rcdUNy97fZT+gb5WbesvbNTcp
+XV6duVSxrGAS5WPZza9SGwWWE3zaJHUBrdSepcvBEkVPV68jvym86o6tePiHI+hI
+y0Covl0z1uzGBkPCZyro44UuYJ5ELytPMbEHnZUh1SqSr4CR08cpvc3xFQyfAe74
+LTukB3BJeSTtvKHTllGCn8LIvN4jmsdQK5q2eFKqzpX2YDuimfkmZvRHLEElvEH6
+1ot/vV+CfNNFhbRM2OyzF+9EOvUoZe/1nnHMId7o1lEcEPtA/EnlXIQXr6oZXqLt
+Th6i+8pHHBxkPhSRojkZNIh/kcs7nRlw6ij7/FAPzL09XgIDa3k1REF27rYtdITh
+gnHTJbDTw5lEqz/iDKXuvab8pBEA7py9N9HWYsQwFC0QCpeKiPUlPJa+RkAaisCF
+dsSgSeBJpecZtQnzzE3tFl6a1NPIadDYijeFa07kqgeSXNRxcYFI03j1VmD+zALU
+AJMfTJJAl75yU3kuJlK+pqN0sZTZFGM6blvRPJInUpAyWpLSD05bCwY6YuXWJwwB
+9iUCuIsQKUKp92nK3OsKkksoMYY=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UE
+AwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00x
+CzAJBgNVBAYTAkVTMB4XDTA4MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEW
+MBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZF
+RElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHkWLn7
+09gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7
+XBZXehuDYAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5P
+Grjm6gSSrj0RuVFCPYewMYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAK
+t0SdE3QrwqXrIhWYENiLxQSfHY9g5QYbm8+5eaA9oiM/Qj9r+hwDezCNzmzAv+Yb
+X79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbkHQl/Sog4P75n/TSW9R28
+MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTTxKJxqvQU
+fecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI
+2Sf23EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyH
+K9caUPgn6C9D4zq92Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEae
+ZAwUswdbxcJzbPEHXEUkFDWug/FqTYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAP
+BgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz4SsrSbbXc6GqlPUB53NlTKxQ
+MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU9QHnc2VMrFAw
+RAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv
+bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWIm
+fQwng4/F9tqgaHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3
+gvoFNTPhNahXwOf9jU8/kzJPeGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKe
+I6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1PwkzQSulgUV1qzOMPPKC8W64iLgpq0i
+5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1ThCojz2GuHURwCRi
+ipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oIKiMn
+MCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZ
+o5NjEFIqnxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6
+zqylfDJKZ0DcMDQj3dcEI2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacN
+GHk0vFQYXlPKNFHtRQrmjseCNj6nOGOpMCwXEGCSn1WHElkQwg9naRHMTh5+Spqt
+r0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3otkYNbn5XOmeUwssfnHdK
+Z05phkOTOPu220+DkdRgfks+KzgHVZhepA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFlDCCBHygAwIBAgIBATANBgkqhkiG9w0BAQUFADCCATExFzAVBgNVBAcTDkFs
+dmFybyBPYnJlZ29uMRkwFwYDVQQIExBEaXN0cml0byBGZWRlcmFsMQswCQYDVQQG
+EwJNWDEOMAwGA1UEERMFMDEwMzAxHTAbBgNVBAkTFEluc3VyZ2VudGVzIFN1ciAx
+OTQwMUIwQAYDVQQDEzlBdXRvcmlkYWQgQ2VydGlmaWNhZG9yYSBSYWl6IGRlIGxh
+IFNlY3JldGFyaWEgZGUgRWNvbm9taWExNDAyBgNVBAsTK0RpcmVjY2lvbiBHZW5l
+cmFsIGRlIE5vcm1hdGl2aWRhZCBNZXJjYW50aWwxHzAdBgNVBAoTFlNlY3JldGFy
+aWEgZGUgRWNvbm9taWExJDAiBgkqhkiG9w0BCQEWFWFjcnNlQGVjb25vbWlhLmdv
+Yi5teDAeFw0wNTA1MDgwMDAwMDBaFw0yNTA1MDgwMDAwMDBaMIIBMTEXMBUGA1UE
+BxMOQWx2YXJvIE9icmVnb24xGTAXBgNVBAgTEERpc3RyaXRvIEZlZGVyYWwxCzAJ
+BgNVBAYTAk1YMQ4wDAYDVQQREwUwMTAzMDEdMBsGA1UECRMUSW5zdXJnZW50ZXMg
+U3VyIDE5NDAxQjBABgNVBAMTOUF1dG9yaWRhZCBDZXJ0aWZpY2Fkb3JhIFJhaXog
+ZGUgbGEgU2VjcmV0YXJpYSBkZSBFY29ub21pYTE0MDIGA1UECxMrRGlyZWNjaW9u
+IEdlbmVyYWwgZGUgTm9ybWF0aXZpZGFkIE1lcmNhbnRpbDEfMB0GA1UEChMWU2Vj
+cmV0YXJpYSBkZSBFY29ub21pYTEkMCIGCSqGSIb3DQEJARYVYWNyc2VAZWNvbm9t
+aWEuZ29iLm14MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwWSg9OdS
+cLLqkxP0NTof6jocxRuLWOGW1gJBXo6FQP9BZkBT/Ji10TIyl2dAgJ3uID8OVPtC
+B/t3GpnYhvQcKogl8+lEo07+B76xyO88jYfgHspJEDso7yRRofyIF0rnHMhUZ2Po
+ajHmQ2z2QBGGxFbuvckdpkY8HkbCgo0uqejudgpD4HJNjPTFBvosAQAzYM44cDRr
+FxrremRhp5OkZWrXI8d2epRRC+yeqM87olAyHEK9Y+GHy7mFSA7A1Vi29s5L8gfP
+4wTVH8LWo26ju7a3bsTxoh8WvLYtsO/0Wpspjbzh/AdbHgkzgnjMQG1xs2MTL9NM
+Nqw5T8bBsLb1hQIDAQABo4GyMIGvMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9h
+Yy5lY29ub21pYS5nb2IubXgvbGFzdC5jcmwwRwYDVR0gBEAwPjA8Bghgg2RlCoI8
+ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vYWMuZWNvbm9taWEuZ29iLm14L2Nwcy5o
+dG1sMA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMBEGCWCGSAGG+EIBAQQE
+AwIABzANBgkqhkiG9w0BAQUFAAOCAQEATCp4UwSWc2CrNazAxOPnyHClKS+HGOWo
+gt4H1Qj0z549nvxKLBZ8n6KdZRDMwRubamfasrMd/81kejhjrUj983Lh+p+7V92/
+zMJU2JU8ZtdrBrqvqeBtCO+ktpA9DG4gF6eWp3xoSpyYxAdvwQJikTibneOKeVOd
+nyR2JfatKFYGqu8HrLr2bOQlMX2IgDp4Rvh54TjgE+dhKUfzyxQA09ri3e1z30vy
+Y+Qm2HXQTUMUkBaURwH/oVlL5HabWQPe1hf2e9dc+Onjb8hO4EcmseKcfEox5WQR
+4LBf2pE2SB/6CYplaPUOwp/vuGrPd/4S7TbaETatGWrC1I5S12jvMQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGGjCCBAKgAwIBAgIQAMoieQgjKvD1griF02Pd8TANBgkqhkiG9w0BAQUFADB/
+MQswCQYDVQQGEwJVWTErMCkGA1UECgwiQURNSU5JU1RSQUNJT04gTkFDSU9OQUwg
+REUgQ09SUkVPUzEfMB0GA1UECwwWU0VSVklDSU9TIEVMRUNUUk9OSUNPUzEiMCAG
+A1UEAwwZQ29ycmVvIFVydWd1YXlvIC0gUm9vdCBDQTAeFw0wODA3MTQxNjUyMTVa
+Fw0zMDEyMzEwMjU5NTlaMH8xCzAJBgNVBAYTAlVZMSswKQYDVQQKDCJBRE1JTklT
+VFJBQ0lPTiBOQUNJT05BTCBERSBDT1JSRU9TMR8wHQYDVQQLDBZTRVJWSUNJT1Mg
+RUxFQ1RST05JQ09TMSIwIAYDVQQDDBlDb3JyZW8gVXJ1Z3VheW8gLSBSb290IENB
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsT3SpyVwl4N4DtcyyWYO
+eCPkKhvsw+9ThYO7ys9+6lOZbSdVyNE4IUBuSU3DPfYJKwYZQ6mYyQFO9KqAMAdV
+8/W3fZm3c4XVHGVWbA0ymwgONGEqQAmEN8Nm7Q1MnAx4QDrs7avMpITydTGVQKiq
+u5O1d5hs8sjgIVoj5EKnk8ioHTjOpBpAQL88k5CbX9aUwSJbRtfFABXVj8b33guv
+bosFj1uAlQ6jvZPMkPJ940h+ss0HPRvtFJB08900H3zkA1nxLc3go6A7IS5crqwI
+BlAVMTXuX/kfDTSlgG5ick/jIbo4QF1f22gqXDTGCDv2fC6ojcS3pq3Zm78ZQQ5I
+OQlmbg00AcW7BxEjpNr+YJYoR9yPZ5sTr315DnjNwIwvuyEs/HQWHt7AMp36eDqG
+uj7JeAoA0eTgyRLiW9zru4CaMjWr8DDDDkiEL40ICvYsjE0ygEVVCNvNDai/CHq4
+52hdmpSJlbz8mo64fzrYbNX0GKxp4qTBC7Mfo4Kf84o8hUA4CfrCBT7hnIn6wwVs
+CI9dUfR/u8TzbAG9PU/EGYs52crM6XmIBFWrbbjaFkVlORUFGPsLLHMB7ZRS5X0M
+ATsJoE3xPQiBZjQ2F0TwZ/Nb8gW2IZhY2fShN9lv5u9WxPu/VmICrDAwtgLW0hb8
+TuqHQ5poXYijkUYoK785FRUCAwEAAaOBkTCBjjAPBgNVHRMBAf8EBTADAQH/MA4G
+A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfbtp64hh4UDPRyNkAIaiZmvchJUwTAYD
+VR0gBEUwQzBBBgRVHSAAMDkwNwYIKwYBBQUHAgEWK2h0dHA6Ly93d3cuY29ycmVv
+LmNvbS51eS9jb3JyZW9jZXJ0L2Nwcy5wZGYwDQYJKoZIhvcNAQEFBQADggIBAFbf
+E4m+YrcOgSFzpNQ3yu23L5V014n4S0eB7mftuCnfIaD8VGdnyFcsW6EKdXghIcqg
+qN9rnNk2Ao24AcFvjntsyaSyxUapykwCgfqje509SObKQGbSRJ124FW5ppyn0UPY
+9aC0nfj35aamQvMCMllGcisU7F5l1VGBeM6qL42WiXlq+w/IW8+0rpC2X+N8Ymy3
+pv+QgbWYkXMSMK/H6IECaHMpu1h1PbfWQ9WuTfJCufDf2jEAE9rhs7YGi1v9yZi4
+ohPRuo/BihqeD/+CvgSC5SuTPh61ogwbxhqwc4l2g7yOO7sXbRTDi759FSa1qZwX
+elB6LevpmZSumBC97ipdXdaONFusHodga5jHh4/TnLJoBUkH+akxZpz+v6dZ6Czw
+NtTyqBmCwJ6nOfmxmDSjH/rNyRkteN63/WLwk6P+AFvWCuTzfnyXKOEF7AU0RRP/
+KRNhiidP27jSkiEntYh3Z6h+zyQ8hwgEM3OPC7aG+M/vsqYkHguRkQBQFjIS2Akl
+2mNO3dst1+cEa+NjH6n+qQFjxMpMFGiDvAWsWRb7bqEHb7tLvm2YSHYle0oRllQI
+rKnzN6uDw9HNgZjA5UA1uJ+R52/mSyAWilN7rDrRmDVU0NS/rn6aSx7pdaMlsDvn
+Zb9PlfQdvcS6yU2BUcI/WtkS9CEb1pXqPZD+qZPi
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr
+MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG
+A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0
+MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp
+Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD
+QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz
+i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8
+h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV
+MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9
+UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni
+8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC
+h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD
+VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB
+AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm
+KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ
+X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr
+QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5
+pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN
+QSdJQO7e5iNEOdyhIta6A/I=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD
+VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
+IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
+MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJz
+IG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDcz
+MTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBj
+dXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIw
+EAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEp
+MCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G
+CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW9
+28sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJq
+VKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072Q
+DuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR
+5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfL
+ZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05a
+Sd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esHnFIbAURRPHsl18Tl
+UlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2wsWsSaR6s
++12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5
+Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj
+ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAx
+hduub+84Mxh2EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNV
+HQ4EFgQU+SSsD7K1+HnA+mCIG8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1
++HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpN
+YWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t
+L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVy
+ZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAt
+IDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV
+HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20w
+DQYJKoZIhvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwW
+PJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF
+5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1
+glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaH
+FoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2
+pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MD
+xvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QG
+tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq
+jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De
+fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg
+OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ
+d0jQ
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD
+VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0
+IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3
+MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD
+aGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMxNDBaFw0zODA3MzEx
+MjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3Vy
+cmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAG
+A1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAl
+BgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI
+hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xed
+KYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7
+G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2
+zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4
+ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyG
+HoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2
+Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3V
+yJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al/3K1dh3e
+beksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r
+6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh
+wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsog
+zCtLkykPAgMBAAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQW
+BBS5CcqcHtvTbDprru1U8VuTBjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDpr
+ru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJp
+ZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJmaXJtYS5jb20vYWRk
+cmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJmaXJt
+YSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiC
+CQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow
+KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI
+hvcNAQEFBQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZ
+UohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXoz
+X1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/x
+fxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVz
+a2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yyd
+Yhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMd
+SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O
+AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso
+M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge
+v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z
+09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM
+MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D
+ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU
+cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3
+WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg
+Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw
+IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH
+UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM
+TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU
+BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM
+kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x
+AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV
+HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y
+sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL
+I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8
+J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY
+VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI
+03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJD
+TjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2
+MDcwOTE0WhcNMjcwNDE2MDcwOTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMF
+Q05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzDo+/hn7E7SIX1mlwh
+IhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tizVHa6
+dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZO
+V/kbZKKTVrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrC
+GHn2emU1z5DrvTOTn1OrczvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gN
+v7Sg2Ca+I19zN38m5pIEo3/PIKe38zrKy5nLAgMBAAGjczBxMBEGCWCGSAGG+EIB
+AQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscCwQ7vptU7ETAPBgNVHRMB
+Af8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991SlgrHAsEO
+76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnK
+OOK5Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvH
+ugDnuL8BV8F3RTIMO/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7Hgvi
+yJA/qIYM/PmLXoXLT1tLYhFHxUV8BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fL
+buXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2G8kS1sHNzYDzAgE8yGnLRUhj
+2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5mmxE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDoTCCAomgAwIBAgIQKTZHquOKrIZKI1byyrdhrzANBgkqhkiG9w0BAQUFADBO
+MQswCQYDVQQGEwJ1czEYMBYGA1UEChMPVS5TLiBHb3Zlcm5tZW50MQ0wCwYDVQQL
+EwRGQkNBMRYwFAYDVQQDEw1Db21tb24gUG9saWN5MB4XDTA3MTAxNTE1NTgwMFoX
+DTI3MTAxNTE2MDgwMFowTjELMAkGA1UEBhMCdXMxGDAWBgNVBAoTD1UuUy4gR292
+ZXJubWVudDENMAsGA1UECxMERkJDQTEWMBQGA1UEAxMNQ29tbW9uIFBvbGljeTCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJeNvTMn5K1b+3i9L0dHbsd4
+6ZOcpN7JHP0vGzk4rEcXwH53KQA7Ax9oD81Npe53uCxiazH2+nIJfTApBnznfKM9
+hBiKHa4skqgf6F5PjY7rPxr4nApnnbBnTfAu0DDew5SwoM8uCjR/VAnTNr2kSVdS
+c+md/uRIeUYbW40y5KVIZPMiDZKdCBW/YDyD90ciJSKtKXG3d+8XyaK2lF7IMJCk
+FEhcVlcLQUwF1CpMP64Sm1kRdXAHImktLNMxzJJ+zM2kfpRHqpwJCPZLr1LoakCR
+xVW9QLHIbVeGlRfmH3O+Ry4+i0wXubklHKVSFzYIWcBCvgortFZRPBtVyYyQd+sC
+AwEAAaN7MHkwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+BBYEFC9Yl9ipBZilVh/72at17wI8NjTHMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJ
+KwYBBAGCNxUCBBYEFHa3YJbdFFYprHWF03BjwbxHhhyLMA0GCSqGSIb3DQEBBQUA
+A4IBAQBgrvNIFkBypgiIybxHLCRLXaCRc+1leJDwZ5B6pb8KrbYq+Zln34PFdx80
+CTj5fp5B4Ehg/uKqXYeI6oj9XEWyyWrafaStsU+/HA2fHprA1RRzOCuKeEBuMPdi
+4c2Z/FFpZ2wR3bgQo2jeJqVW/TZsN5hs++58PGxrcD/3SDcJjwtCga1GRrgLgwb0
+Gzigf0/NC++DiYeXHIowZ9z9VKEDfgHLhUyxCynDvux84T8PCVI8L6eaSP436REG
+WOE2QYrEtr+O3c5Ks7wawM36GpnScZv6z7zyxFSjiDV2zBssRm8MtNHDYXaSdBHq
+S4CNHIkRi+xb/xfJSPzn4AYR4oRe
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO
+TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh
+dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oX
+DTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl
+ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv
+b3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ5291
+qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8Sp
+uOUfiUtnvWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPU
+Z5uW6M7XxgpT0GtJlvOjCwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvE
+pMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiile7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp
+5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCROME4HYYEhLoaJXhena/M
+UGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpICT0ugpTN
+GmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy
+5V6548r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv
+6q012iDTiIJh8BIitrzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEK
+eN5KzlW/HdXZt1bv8Hb/C3m1r737qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6
+B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMBAAGjgZcwgZQwDwYDVR0TAQH/
+BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcCARYxaHR0cDov
+L3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqG
+SIb3DQEBCwUAA4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLyS
+CZa59sCrI2AGeYwRTlHSeYAz+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen
+5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwjf/ST7ZwaUb7dRUG/kSS0H4zpX897
+IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaNkqbG9AclVMwWVxJK
+gnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfkCpYL
++63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxL
+vJxxcypFURmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkm
+bEgeqmiSBeGCc1qb3AdbCG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvk
+N1trSt8sV4pAWja63XVECDdCcAz+3F4hoKOKwJCcaNpQ5kUQR3i2TtJlycM33+FC
+Y7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoVIPVVYpbtbZNQvOSqeK3Z
+ywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm66+KAQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG
+EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3
+MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl
+cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR
+dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB
+pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM
+b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm
+aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz
+IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT
+lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz
+AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5
+VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG
+ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2
+BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG
+AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M
+U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh
+bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C
++C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC
+bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F
+uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2
+XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGITCCBAmgAwIBAgIGSUEt7AAQMA0GCSqGSIb3DQEBCwUAMIGtMQswCQYDVQQG
+EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3
+MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl
+cnZpY2VzKTE7MDkGA1UEAwwyTmV0TG9jayBQbGF0aW5hIChDbGFzcyBQbGF0aW51
+bSkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUxMjQ0WhcNMjgxMjA2MTUx
+MjQ0WjCBrTELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQK
+DAxOZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAo
+Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcykxOzA5BgNVBAMMMk5ldExvY2sgUGxhdGlu
+YSAoQ2xhc3MgUGxhdGludW0pIEbFkXRhbsO6c8OtdHbDoW55MIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAzfLuxBp663QpTLa95NYKF2xl4mY9xNG8DLZa
+1itwXy3MIdFZEOSxE732zCKV1mxGTpEys+v1rMsEAU923VM+eJ/5Xry1ghNGyhDj
+HS1pK5QyEHMhq6k4xeNuE2TVY6ntCWbsim+JjRGG0PW/MpYLdXD1KFhCXqxptPX8
+kTkuopFA0TxUQYcjZFBIeWhLaJNLcuuAabNKHJC+skGjpc0XwNEaaX8CGEq1Yocm
+Vy1sqCwhOfWXXpuapvjnTHnEeztW3Hr4tFjOdgquIlXrj8eEZHu9a8qVT9i+MRO/
+jaEKK9V5t/V2rdpRXIFHYqiq/89T4DRxzw0lU6meY0evhZH4zxkR5U75z+3jNQUB
+IgPPmnzqHVFay/1zPTkLMevEO8qFKhEUAKAbgaIJiEjzfKJkoexntFiH8BTqqb6l
+IkFN7L2kDug9h/cvqs41hk8wV5KNNq541v0Y/NclHs96/Bn9oD9yFzYIQT+XNpUM
+iZVxRfqE1tQgYLNFCvK3lT0L5aTDuBLykWzpbWCD9kURBbrmR4PZkeJu4btGa0gb
+vMb7z37eLLuQhO62JznnjaIxD9+BtyxsAOKx2CoXXBseR4lLF1EUQEBPxDkYMsKA
+YDblekdn9qgFVMFdlqAftohSDAK+jVV+FEvDogHunIpBXflflpEJjrTktcUE39Y2
+rVm0stcCAwDzkaNFMEMwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFOahE4P+l0vy2P8xoad0M4nOXn+kMA0GCSqGSIb3DQEBCwUA
+A4ICAQBphELA414TYZcgSfH0FoWln6QRCCXEY4aP8Euvsyn1B1caYscbRW6vXRa3
+wdBkgzuX9UO2RZDxZiqDJCr/iOl6C/nCW3qvY/cJeIZIWTRem2oQTvFulYk2SmjQ
+b5vgfk+3NQ/jebEFryd8qokKQ976DO/ZVy8occ1pa1JCyYowRVmhzPpZSo/31t1E
+pbMuWxEY4rK15xFTOP6CTNNzvmWSGjqo0tKqvNS+bTZS/2vU0rUbN/MXQvEup9WQ
+bHSddPX6XyIb09x1qLX/8hrRvCsAXDzFuIYIVEminCP776aNcPRCUk0bIACB+KC4
+9HQjnL70uQ7sHmrYZUoVdfF3W27YseYPtJa4HfqGyJJui+l936IO1fHxfK5K42a/
+Xfxb70iynmnHfZCgVbaUcIG5Cr2JdVPshKkDpd9RmQjQdAwC1nNyBnuLu12qTvxn
+Z9iOEAMZLTc61HepOhydwHl7bCl3Mk1KizCIwuc2zmijmpiG+YkVnr+qUX3xUEZU
+DwIuXJ/j3lczFf4YkmGo0ikFXWVEHpvj7/vcBd8Vq6bYC6Rzskw64J7Us2rlOg4K
+8E7PeIEfvqmYb7FHUX1CMzazpqkCUgV0fips1KqSVrA+OyNYsY01pxOPZx5xFaaz
+tQOGuCBmwEhvuazUSgNVsjffBN0iDFOGKkoqocE4PjzlPN91lw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT
+AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD
+QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP
+MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do
+0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ
+UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d
+RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ
+OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv
+JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C
+AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O
+BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ
+LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY
+MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ
+44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I
+Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw
+i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN
+9u6wWk5JRFRYX0KD
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGZjCCBE6gAwIBAgIPB35Sk3vgFeNX8GmMy+wMMA0GCSqGSIb3DQEBBQUAMHsx
+CzAJBgNVBAYTAkNPMUcwRQYDVQQKDD5Tb2NpZWRhZCBDYW1lcmFsIGRlIENlcnRp
+ZmljYWNpw7NuIERpZ2l0YWwgLSBDZXJ0aWPDoW1hcmEgUy5BLjEjMCEGA1UEAwwa
+QUMgUmHDrXogQ2VydGljw6FtYXJhIFMuQS4wHhcNMDYxMTI3MjA0NjI5WhcNMzAw
+NDAyMjE0MjAyWjB7MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+U29jaWVkYWQgQ2Ft
+ZXJhbCBkZSBDZXJ0aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJhIFMu
+QS4xIzAhBgNVBAMMGkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAq2uJo1PMSCMI+8PPUZYILrgIem08kBeG
+qentLhM0R7LQcNzJPNCNyu5LF6vQhbCnIwTLqKL85XXbQMpiiY9QngE9JlsYhBzL
+fDe3fezTf3MZsGqy2IiKLUV0qPezuMDU2s0iiXRNWhU5cxh0T7XrmafBHoi0wpOQ
+Y5fzp6cSsgkiBzPZkc0OnB8OIMfuuzONj8LSWKdf/WU34ojC2I+GdV75LaeHM/J4
+Ny+LvB2GNzmxlPLYvEqcgxhaBvzz1NS6jBUJJfD5to0EfhcSM2tXSExP2yYe68yQ
+54v5aHxwD6Mq0Do43zeX4lvegGHTgNiRg0JaTASJaBE8rF9ogEHMYELODVoqDA+b
+MMCm8Ibbq0nXl21Ii/kDwFJnmxL3wvIumGVC2daa49AZMQyth9VXAnow6IYm+48j
+ilSH5L887uvDdUhfHjlvgWJsxS3EF1QZtzeNnDeRyPYL1epjb4OsOMLzP96a++Ej
+YfDIJss2yKHzMI+ko6Kh3VOz3vCaMh+DkXkwwakfU5tTohVTP92dsxA7SH2JD/zt
+A/X7JWR1DhcZDY8AFmd5ekD8LVkH2ZD6mq093ICK5lw1omdMEWux+IBkAC1vImHF
+rEsm5VoQgpukg3s0956JkSCXjrdCx2bD0Omk1vUgjcTDlaxECp1bczwmPS9KvqfJ
+pxAe+59QafMCAwEAAaOB5jCB4zAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
+AwIBBjAdBgNVHQ4EFgQU0QnQ6dfOeXRU+Tows/RtLAMDG2gwgaAGA1UdIASBmDCB
+lTCBkgYEVR0gADCBiTArBggrBgEFBQcCARYfaHR0cDovL3d3dy5jZXJ0aWNhbWFy
+YS5jb20vZHBjLzBaBggrBgEFBQcCAjBOGkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW50
+7WFzIGRlIGVzdGUgY2VydGlmaWNhZG8gc2UgcHVlZGVuIGVuY29udHJhciBlbiBs
+YSBEUEMuMA0GCSqGSIb3DQEBBQUAA4ICAQBclLW4RZFNjmEfAygPU3zmpFmps4p6
+xbD/CHwso3EcIRNnoZUSQDWDg4902zNc8El2CoFS3UnUmjIz75uny3XlesuXEpBc
+unvFm9+7OSPI/5jOCk0iAUgHforA1SBClETvv3eiiWdIG0ADBaGJ7M9i4z0ldma/
+Jre7Ir5v/zlXdLp6yQGVwZVR6Kss+LGGIOk/yzVb0hfpKv6DExdA7ohiZVvVO2Dp
+ezy4ydV/NgIlqmjCMRW3MGXrfx1IebHPOeJCgBbT9ZMj/EyXyVo3bHwi2ErN0o42
+gzmRkBDI8ck1fj+404HGIGQatlDCIaR43NAvO2STdPCWkPHv+wlaNECW8DYSwaN0
+jJN+Qd53i+yG2dIPPy3RzECiiWZIHiCznCNZc6lEc7wkeZBWN7PGKX6jD/EpOe9+
+XCgycDWs2rjIdWb8m0w5R44bb5tNAlQiM+9hup4phO9OSzNHdpdqy35f/RWmnkJD
+W2ZaiogN9xa5P1FlK2Zqi9E4UqLWRhH6/JocdJ6PlwsCT2TG9WjTSy3/pDceiz+/
+RL5hRqGEPQgnTIEgd4kI6mdAXmwIUV80WoyWaM3X94nCHNMyAK9Sy9NgWyo6R35r
+MDOhYil/SrnhLecUIw4OGEfhefwVVdCx/CVxY3UzHCMrr1zZ7Ud3YA47Dx7SwNxk
+BYn8eNZcLCZDqQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDQzCCAiugAwIBAgIQX/h7KCtU3I1CoxW1aMmt/zANBgkqhkiG9w0BAQUFADA1
+MRYwFAYDVQQKEw1DaXNjbyBTeXN0ZW1zMRswGQYDVQQDExJDaXNjbyBSb290IENB
+IDIwNDgwHhcNMDQwNTE0MjAxNzEyWhcNMjkwNTE0MjAyNTQyWjA1MRYwFAYDVQQK
+Ew1DaXNjbyBTeXN0ZW1zMRswGQYDVQQDExJDaXNjbyBSb290IENBIDIwNDgwggEg
+MA0GCSqGSIb3DQEBAQUAA4IBDQAwggEIAoIBAQCwmrmrp68Kd6ficba0ZmKUeIhH
+xmJVhEAyv8CrLqUccda8bnuoqrpu0hWISEWdovyD0My5jOAmaHBKeN8hF570YQXJ
+FcjPFto1YYmUQ6iEqDGYeJu5Tm8sUxJszR2tKyS7McQr/4NEb7Y9JHcJ6r8qqB9q
+VvYgDxFUl4F1pyXOWWqCZe+36ufijXWLbvLdT6ZeYpzPEApk0E5tzivMW/VgpSdH
+jWn0f84bcN5wGyDWbs2mAag8EtKpP6BrXruOIIt6keO1aO6g58QBdKhTCytKmg9l
+Eg6CTY5j/e/rmxrbU6YTYK/CfdfHbBcl1HP7R2RQgYCUTOG/rksc35LtLgXfAgED
+o1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUJ/PI
+FR5umgIJFq0roIlgX9p7L6owEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEF
+BQADggEBAJ2dhISjQal8dwy3U8pORFBi71R803UXHOjgxkhLtv5MOhmBVrBW7hmW
+Yqpao2TB9k5UM8Z3/sUcuuVdJcr18JOagxEu5sv4dEX+5wW4q+ffy0vhN4TauYuX
+cB7w4ovXsNgOnbFp1iqRe6lJT37mjpXYgyc81WhJDtSd9i7rp77rMKSsH0T8lasz
+Bvt9YAretIpjsJyp8qS5UwGH0GikJ3+r/+n6yUA4iGe0OcaEb1fJU9u6ju7AQ7L4
+CYNu/2bPPu8Xs1gYJQk0XuPL1hS27PKSb3TkL4Eq1ZKR4OCXPDJoBYVL0fdX4lId
+kxpUnwVwwEpxYB5DC2Ae/qPOgRnhCzU=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzET
+MBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UE
+AxMIQ0EgRGlzaWcwHhcNMDYwMzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQsw
+CQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcg
+YS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgmGErE
+Nx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnX
+mjxUizkDPw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYD
+XcDtab86wYqg6I7ZuUUohwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhW
+S8+2rT+MitcE5eN4TPWGqvWP+j1scaMtymfraHtuM6kMgiioTGohQBUgDCZbg8Kp
+FhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8wgfwwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0PAQH/BAQD
+AgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cu
+ZGlzaWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5z
+ay9jYS9jcmwvY2FfZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2sv
+Y2EvY3JsL2NhX2Rpc2lnLmNybDAaBgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEw
+DQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59tWDYcPQuBDRIrRhCA/ec8J9B6
+yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3mkkp7M5+cTxq
+EEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/
+CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeB
+EicTXxChds6KezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFN
+PGO+I++MzVpQuGhU+QqZMxEA4Z7CRneC9VkGjCFMhwnN5ag=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFkjCCA3qgAwIBAgIBCDANBgkqhkiG9w0BAQUFADA6MQswCQYDVQQGEwJDTjER
+MA8GA1UEChMIVW5pVHJ1c3QxGDAWBgNVBAMTD1VDQSBHbG9iYWwgUm9vdDAeFw0w
+ODAxMDEwMDAwMDBaFw0zNzEyMzEwMDAwMDBaMDoxCzAJBgNVBAYTAkNOMREwDwYD
+VQQKEwhVbmlUcnVzdDEYMBYGA1UEAxMPVUNBIEdsb2JhbCBSb290MIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA2rPlBlA/9nP3xDK/RqUlYjOHsGj+p9+I
+A2N9Apb964fJ7uIIu527u+RBj8cwiQ9tJMAEbBSUgU2gDXRm8/CFr/hkGd656YGT
+0CiFmUdCSiw8OCdKzP/5bBnXtfPvm65bNAbXj6ITBpyKhELVs6OQaG2BkO5NhOxM
+cE4t3iQ5zhkAQ5N4+QiGHUPR9HK8BcBn+sBR0smFBySuOR56zUHSNqth6iur8CBV
+mTxtLRwuLnWW2HKX4AzKaXPudSsVCeCObbvaE/9GqOgADKwHLx25urnRoPeZnnRc
+GQVmMc8+KlL+b5/zub35wYH1N9ouTIElXfbZlJrTNYsgKDdfUet9Ysepk9H50DTL
+qScmLCiQkjtVY7cXDlRzq6987DqrcDOsIfsiJrOGrCOp139tywgg8q9A9f9ER3Hd
+J90TKKHqdjn5EKCgTUCkJ7JZFStsLSS3JGN490MYeg9NEePorIdCjedYcaSrbqLA
+l3y74xNLytu7awj5abQEctXDRrl36v+6++nwOgw19o8PrgaEFt2UVdTvyie3AzzF
+HCYq9TyopZWbhvGKiWf4xwxmse1Bv4KmAGg6IjTuHuvlb4l0T2qqaqhXZ1LUIGHB
+zlPL/SR/XybfoQhplqCe/klD4tPq2sTxiDEhbhzhzfN1DiBEFsx9c3Q1RSw7gdQg
+7LYJjD5IskkCAwEAAaOBojCBnzALBgNVHQ8EBAMCAQYwDAYDVR0TBAUwAwEB/zBj
+BgNVHSUEXDBaBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMDBggrBgEFBQcD
+BAYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEFBQcDBwYIKwYBBQUHAwgGCCsGAQUF
+BwMJMB0GA1UdDgQWBBTZw9P4gJJnzF3SOqLXcaK0xDiALTANBgkqhkiG9w0BAQUF
+AAOCAgEA0Ih5ygiq9ws0oE4Jwul+NUiJcIQjL1HDKy9e21NrW3UIKlS6Mg7VxnGF
+sZdJgPaE0PC6t3GUyHlrpsVE6EKirSUtVy/m1jEp+hmJVCl+t35HNmktbjK81HXa
+QnO4TuWDQHOyXd/URHOmYgvbqm4FjMh/Rk85hZCdvBtUKayl1/7lWFZXbSyZoUkh
+1WHGjGHhdSTBAd0tGzbDLxLMC9Z4i3WA6UG5iLHKPKkWxk4V43I29tSgQYWvimVw
+TbVEEFDs7d9t5tnGwBLxSzovc+k8qe4bqi81pZufTcU0hF8mFGmzI7GJchT46U1R
+IgP/SobEHOh7eQrbRyWBfvw0hKxZuFhD5D1DCVR0wtD92e9uWfdyYJl2b/Unp7uD
+pEqB7CmB9HdL4UISVdSGKhK28FWbAS7d9qjjGcPORy/AeGEYWsdl/J1GW1fcfA67
+loMQfFUYCQSu0feLKj6g5lDWMDbX54s4U+xJRODPpN/xU3uLWrb2EZBL1nXz/gLz
+Ka/wI3J9FO2pXd96gZ6bkiL8HvgBRUGXx2sBYb4zaPKgZYRmvOAqpGjTcezHCN6j
+w8k2SjTxF+KAryAhk5Qe5hXTVGLxtTgv48y5ZwSpuuXu+RBuyy5+E6+SFP7zJ3N7
+OPxzbbm5iPZujAv1/P8JDrMtXnt145Ik4ubhWD5LKAN1axibRww=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDhDCCAmygAwIBAgIBCTANBgkqhkiG9w0BAQUFADAzMQswCQYDVQQGEwJDTjER
+MA8GA1UEChMIVW5pVHJ1c3QxETAPBgNVBAMTCFVDQSBSb290MB4XDTA0MDEwMTAw
+MDAwMFoXDTI5MTIzMTAwMDAwMFowMzELMAkGA1UEBhMCQ04xETAPBgNVBAoTCFVu
+aVRydXN0MREwDwYDVQQDEwhVQ0EgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBALNdB8qGJn1r4vs4CQ7MgsJqGgCiFV/W6dQBt1YDAVmP9ThpJHbC
+XivF9iu/r/tB/Q9a/KvXg3BNMJjRnrJ2u5LWu+kQKGkoNkTo8SzXWHwk1n8COvCB
+a2FgP/Qz3m3l6ihST/ypHWN8C7rqrsRoRuTej8GnsrZYWm0dLNmMOreIy4XU9+gD
+Xv2yTVDo1h//rgI/i0+WITyb1yXJHT/7mLFZ5PCpO6+zzYUs4mBGzG+OoOvwNMXx
+QhhgrhLtRnUc5dipllq+3lrWeGeWW5N3UPJuG96WUUqm1ktDdSFmjXfsAoR2XEQQ
+th1hbOSjIH23jboPkXXHjd+8AmCoKai9PUMCAwEAAaOBojCBnzALBgNVHQ8EBAMC
+AQYwDAYDVR0TBAUwAwEB/zBjBgNVHSUEXDBaBggrBgEFBQcDAQYIKwYBBQUHAwIG
+CCsGAQUFBwMDBggrBgEFBQcDBAYIKwYBBQUHAwUGCCsGAQUFBwMGBggrBgEFBQcD
+BwYIKwYBBQUHAwgGCCsGAQUFBwMJMB0GA1UdDgQWBBTbHzXza0z/QjFkm827Wh4d
+SBC37jANBgkqhkiG9w0BAQUFAAOCAQEAOGy3iPGt+lg3dNHocN6cJ1nL5BXXoMNg
+14iABMUwTD3UGusGXllH5rxmy+AI/Og17GJ9ysDawXiv5UZv+4mCI4/211NmVaDe
+JRI7cTYWVRJ2+z34VFsxugAG+H1V5ad2g6pcSpemKijfvcZsCyOVjjN/Hl5AHxNU
+LJzltQ7dFyiuawHTUin1Ih+QOfTcYmjwPIZH7LgFRbu3DJaUxmfLI3HQjnQi1kHr
+A6i26r7EARK1s11AdgYg1GS4KUYGis4fk5oQ7vuqWrTcL9Ury/bXBYSYBZELhPc9
++tb5evosFeo2gkO3t7jj83EB7UNDogVFwygFBzXjAaU4HoDU18PZ3g==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL
+MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
+BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT
+IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw
+MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy
+ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N
+T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv
+biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR
+FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J
+cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW
+BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/
+BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm
+fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv
+GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEfjCCA2agAwIBAgIBADANBgkqhkiG9w0BAQUFADCBzzELMAkGA1UEBhMCVVMx
+EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
+HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOjA4BgNVBAsTMWh0dHA6Ly9j
+ZXJ0aWZpY2F0ZXMuc3RhcmZpZWxkdGVjaC5jb20vcmVwb3NpdG9yeS8xNjA0BgNV
+BAMTLVN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
+eTAeFw0wODA2MDIwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIHPMQswCQYDVQQGEwJV
+UzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTElMCMGA1UE
+ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjE6MDgGA1UECxMxaHR0cDov
+L2NlcnRpZmljYXRlcy5zdGFyZmllbGR0ZWNoLmNvbS9yZXBvc2l0b3J5LzE2MDQG
+A1UEAxMtU3RhcmZpZWxkIFNlcnZpY2VzIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9y
+aXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8sxWKk3mFjdal+pt
+NTjREJvbuNypBAmVMy4JxQB7GnhCj8j0BY7+0miDHk6ZzRfbRz5Q84nS59yY+wX4
+qtZj9FRNwXEDsB8bdrMaNDBz8SgyYIP9tJzXttIiN3wZqjveExBpblwG02+j8mZa
+dkJIr4DRVFk91LnU2+25qzmZ9O5iq+F4cnvYOI1AtszcEgBwQ4Vp2Bjjyldyn7Tf
+P/wiqEJS9XdbmfBWLSZwFjYSwieeV6Z80CPxedyjk1goOD2frTZD7jf7+PlDrchW
+8pQSXkLrc7gTDcum1Ya5qihqVAOhPw8p6wkA6D9eon8XPaEr+L7QdR2khOOrF2UG
+UgCvsQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd
+BgNVHQ4EFgQUtMZ/GkPMm3VdL8RL8ouYEOnxURAwHwYDVR0jBBgwFoAUtMZ/GkPM
+m3VdL8RL8ouYEOnxURAwDQYJKoZIhvcNAQEFBQADggEBAKyAu8QlBQtYpOR+KX6v
+vDvsLcBELvmR4NI7MieQLfaACVzCq2Uk2jgQRsRJ0v2aqyhId4jG6W/RR5HVNU8U
+CahbQAcdfHFWy4lC1L9hwCL3Lt+r83JDi0DolOuwJtrRE9Or0DYtLjqVs3cuFTkY
+DGm6qoDt8VNOM5toBOKgMC7X0V3UpmadhObnuzyJuzad/BepPVUrivubxEyE/9/S
+vmkbdLCo9uqwnLIpdIFMaDqaf3MlOfUT4GaRadRXS7furUXgLMOI076USYkf/3DV
+W205E7Ady5jmZ2MNY/b7w9dhcoOIP3B+U8meiVTWT399cbmu8WCLd2Ds+L/6aqOc
+ASI=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEOTCCAyGgAwIBAgIEAJ0qYDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJD
+WjEqMCgGA1UEAwwhSS5DQSAtIFF1YWxpZmllZCByb290IGNlcnRpZmljYXRlMS0w
+KwYDVQQKDCRQcnZuw60gY2VydGlmaWthxI1uw60gYXV0b3JpdGEsIGEucy4wHhcN
+MDgwNDAxMDAwMDAwWhcNMTgwNDAxMDAwMDAwWjBoMQswCQYDVQQGEwJDWjEqMCgG
+A1UEAwwhSS5DQSAtIFF1YWxpZmllZCByb290IGNlcnRpZmljYXRlMS0wKwYDVQQK
+DCRQcnZuw60gY2VydGlmaWthxI1uw60gYXV0b3JpdGEsIGEucy4wggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrCIik8HTyn/jb1neNMBk+psXHisW93eYC
+ro49UHW4r302q/717QhntACKmMEDY4hR8hs2iXRaLcjEgsQ/uYj9bP06HRUFRJWA
+GqaGyyF1kIVcsHAAhzSo0R9J/Ww4bWqsuEWfvBTXZtQh4ycKjXXgWi8KS7TnfnOj
+Kr1w8ZGGCI+/kIQch6n1mSUllMHjbgfBSwdbVPw0y0Y3nMWhIM6mrIepgzw4T8BA
+8+n/m9c5duQTI3W1/6FCrlyGT8VOQ7aZC1JTIKizwkzTACwV0llsCp8htXMWeR6G
+Je4a+5OerWPxTOJ2MV437/zQqTbk+RHpevxQ50EjAzS4fboOz91TAgMBAAGjgeow
+gecwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwgaQGA1UdIASBnDCB
+mTCBlgYMKwYBBAGBuEgBBAABMIGFMIGCBggrBgEFBQcCAjB2GnRUZW50byBjZXJ0
+aWZpa2F0IGplIHZ5ZGFuIGpha28ga3ZhbGlmaWtvdmFueSBzeXN0ZW1vdnkgY2Vy
+dGlmaWthdCB2IHNvdWxhZHUgc2UgemFrb25lbSAyMjcvMjAwMCBTYi4gdiBwbGF0
+bmVtIHpuZW5pLjAdBgNVHQ4EFgQUaJ1+1sQlOfs7oDfWT9yM0XrwVlkwDQYJKoZI
+hvcNAQEFBQADggEBAHL1vAaN0iyW8oLbWHtH8EBk5S4b7/rg+tPxckgBRPKI9N6Y
+gVOE531OR+cxN1aus8Ewb8arSIP1mFNSaSoowUBl62XntDAL8KsOpRIlv/RQXb+j
+fuXRdPgKKK5CnLAUUsSgYF33RRdCukItm5L7bpSzcEcgCJ1T8LCtvamEWt0HKgzN
+K21hKN87kijsUYF/UXyOLn+d6bzBND2LrYGt8R50ZkM8QU24LjNPsToe2xLfNo5x
+/1djsdaPtD2GEmrPQjC0kxbqmeoCW/4I7rJPcL8zAOd6Sjih8kiRph7LI7I4nfAu
+SaLJiFZlZY46Z0WMjAviqrFLB/+xH7oUz3L6p3g=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIELjCCAxagAwIBAgIDE9YgMA0GCSqGSIb3DQEBBQUAMGMxCzAJBgNVBAYTAkNa
+MSkwJwYDVQQDEyBJLkNBIC0gU3RhbmRhcmQgcm9vdCBjZXJ0aWZpY2F0ZTEpMCcG
+A1UEChMgUHJ2bmkgY2VydGlmaWthY25pIGF1dG9yaXRhIGEucy4wHhcNMDgwNDAx
+MDAwMDAwWhcNMTgwNDAxMDAwMDAwWjBjMQswCQYDVQQGEwJDWjEpMCcGA1UEAxMg
+SS5DQSAtIFN0YW5kYXJkIHJvb3QgY2VydGlmaWNhdGUxKTAnBgNVBAoTIFBydm5p
+IGNlcnRpZmlrYWNuaSBhdXRvcml0YSBhLnMuMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEA0S0VxDlMaqHE5fMrtP2pFum4UY83kdmn05eQtnBph/WvWdJi
+QVjV85WNAhX6ZpzBIRTYH636Kmx0VqFi4fGwrbj+0qPgkaG1rlOtjaQND1lglyr8
+oy5zNSNzzKimoRRtv4nDhDjzZFnMMfPg+SdgCjxBBW9aUvCPblJu7F6Ib+BAjCFH
+VyLpOG7m+vMktK6vL3M/gNUyj4zZhBnYYM7baY0+rwKvrt6vUPXP5rNhGMTg3fBO
+SmYNenMgt+TUk4ZHYdhPyjqOq8I/xiIXo12dIMbFDiRpyKZ9ZgbNRuYz4UN0k/WD
+YtKwRSIBpHa961GTWGz6GqGfdYDa2ADi8YhNPwIDAQABo4HqMIHnMA8GA1UdEwEB
+/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTrN6S+uW9gF/vT/y1g
+4QQer8/G0zCBpAYDVR0gBIGcMIGZMIGWBgwrBgEEAYG4SAEBAAEwgYUwgYIGCCsG
+AQUFBwICMHYadFRlbnRvIGNlcnRpZmlrYXQgamUgdnlkYW4gamFrbyBrdmFsaWZp
+a292YW55IHN5c3RlbW92eSBjZXJ0aWZpa2F0IHYgc291bGFkdSBzZSB6YWtvbmVt
+IDIyNy8yMDAwIFNiLiB2IHBsYXRuZW0gem5lbmkuMA0GCSqGSIb3DQEBBQUAA4IB
+AQAXIliqLxhVAqFMNkk3S5tzuq5jNg6LK4RFN8z64Gf3oHNqZ2hWvGGoNJooumYs
+YZuLHPgEcIyG40HvlHkN3TSHBO61njFrOfR+WOXysARNqVclSeAL1eTsfQ4+OwHg
+jPxSkJPm8rCr9TF3zNHJQ4KrDy60+ZiuPuNE9KQDaVXaXI7bwbms5JjVdhVGoS5a
+DCJgoMLrcH9xA7Bo0zFkzerLS1WJgj5cZssaCJhHwt7ZLjhMBf0tjPrjIiW5kv3W
+si3KojSc30nv1YQBLJL/BUEKZ8ZCa57L2J+QvA0PEH3HZr3qcwfgGOpRgbRFQDwP
+oSI3FQGFqS58Dl9dzmqTvtm+
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1
+MQswCQYDVQQGEwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxp
+Z2kgQS5TLjE8MDoGA1UEAxMzZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZp
+a2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3MDEwNDExMzI0OFoXDTE3MDEwNDEx
+MzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0cm9uaWsgQmlsZ2kg
+R3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9uaWsg
+U2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdU
+MZTe1RK6UxYC6lhj71vY8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlT
+L/jDj/6z/P2douNffb7tC+Bg62nsM+3YjfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H
+5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAIJjjcJRFHLfO6IxClv7wC
+90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk9Ok0oSy1
+c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/
+BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoE
+VtstxNulMA0GCSqGSIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLP
+qk/CaOv/gKlR6D1id4k9CnU58W5dF4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S
+/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwqD2fK/A+JYZ1lpTzlvBNbCNvj
+/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4Vwpm+Vganf2X
+KWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq
+fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe
+MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0
+ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
+Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw
+IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL
+SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH
+SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh
+ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X
+DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1
+TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ
+fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA
+sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU
+WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS
+nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH
+dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip
+NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC
+AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF
+MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH
+ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB
+uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl
+PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP
+JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/
+gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2
+j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6
+5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB
+o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS
+/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z
+Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE
+W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D
+hNQ+IIX3Sj0rnP0qCglN6oH4EZw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV
+BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X
+DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ
+BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4
+QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny
+gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw
+zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q
+130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2
+JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw
+DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw
+ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT
+AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj
+AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG
+9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h
+bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc
+fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu
+HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w
+t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw
+WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID8jCCAtqgAwIBAgIEPkOTSjANBgkqhkiG9w0BAQUFADAwMQswCQYDVQQGEwJT
+STEOMAwGA1UEChMFUE9TVEExETAPBgNVBAsTCFBPU1RBckNBMB4XDTAzMDIwNzEw
+MzY1OFoXDTIzMDIwNzExMDY1OFowMDELMAkGA1UEBhMCU0kxDjAMBgNVBAoTBVBP
+U1RBMREwDwYDVQQLEwhQT1NUQXJDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBAJvsv347w/cvDqzCr0NIWOt5lQ0LsqTTiwgUir23iacS+EdjZLrFxajS
+I1IXegmjAt/ODqYK/9HLdMlLPu0jXP6uDC9NKS10PqBaFzay21WcTIpryZ9g+ceg
+W8vDSgg84U3rpPN0cbRXnoCjkgAs6IIjGcBLtRGCDnfyd3E1kqSB5foZLhN3cFPI
+Kxm5UoEo1A9u67gYYEmx+32/f5ktqeZbGS6MUa7P2KT3ctfxfgWWDDRuVUjsJoKq
+Qf4lXFKLln8V5GekILIJ3fCdqfVwgxxxRlIiSptSABPpk6l26WyDcLVkSgU5qM/W
+Y54wFePJopzT3WC3BjlFlgIlgJRTUwsCAwEAAaOCARIwggEOMBEGCWCGSAGG+EIB
+AQQEAwIABzBSBgNVHR8ESzBJMEegRaBDpEEwPzELMAkGA1UEBhMCU0kxDjAMBgNV
+BAoTBVBPU1RBMREwDwYDVQQLEwhQT1NUQXJDQTENMAsGA1UEAxMEQ1JMMTArBgNV
+HRAEJDAigA8yMDAzMDIwNzEwMzY1OFqBDzIwMjMwMjA3MTEwNjU4WjALBgNVHQ8E
+BAMCAQYwHwYDVR0jBBgwFoAUP73Njt++0WtlRD9g7OpCLjBwH2gwHQYDVR0OBBYE
+FD+9zY7fvtFrZUQ/YOzqQi4wcB9oMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EA
+BBAwDhsIVjYuMDo0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4IBAQA+36evUQiRScVx
+KqNBE2wL6YsaMI0RtwtNVqpAR9M5/nn4q2jslHsGETtDhmJzw60u1JMe86w3yx7D
+ZTu4tztuepOxkXFpRet4IquM7UraVLEvNJ5eGpPaSLoS2jROFoNBTSLzcd8eHtMC
+uNxUgdIXGfD1KRIzWIsDJWtbQLUcOxUTVh+zSS720oRs5JKbE5pLjoOCqBzWrGba
+ELdvehXkutocbgx8a9yP8/oWGXyImhzjJQFy2TeK1G9+hzi8U1VJghXKv5iosT6s
+TuDJSiQVbqLRiXLTxw267WUC36pMs5djbj4ixqrZPDwCgoj0l0OjWZ3h4vdISVuq
+lsLa6hkG
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEc
+MBoGA1UEChMTSmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRp
+b25DQTAeFw0wNzEyMTIxNTAwMDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYT
+AkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zlcm5tZW50MRYwFAYDVQQLEw1BcHBs
+aWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp23gdE6H
+j6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4fl+K
+f5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55
+IrmTwcrNwVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cw
+FO5cjFW6WY2H/CPek9AEjP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDiht
+QWEjdnjDuGWk81quzMKq2edY3rZ+nYVunyoKb58DKTCXKB28t89UKU5RMfkntigm
+/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRUWssmP3HMlEYNllPqa0jQ
+k/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNVBAYTAkpQ
+MRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOC
+seODvOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD
+ggEBADlqRHZ3ODrso2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJ
+hyzjVOGjprIIC8CFqMjSnHH2HZ9g/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+
+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYDio+nEhEMy/0/ecGc/WLuo89U
+DNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmWdupwX3kSa+Sj
+B1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL
+rosot4LKGAfmt1t06SAZf7IbiVQ=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIETTCCAzWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBtMQswCQYDVQQGEwJDSDEO
+MAwGA1UEChMFYWRtaW4xETAPBgNVBAsTCFNlcnZpY2VzMSIwIAYDVQQLExlDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0aWVzMRcwFQYDVQQDEw5BZG1pbkNBLUNELVQwMTAe
+Fw0wNjAxMjUxMzM2MTlaFw0xNjAxMjUxMjM2MTlaMG0xCzAJBgNVBAYTAkNIMQ4w
+DAYDVQQKEwVhZG1pbjERMA8GA1UECxMIU2VydmljZXMxIjAgBgNVBAsTGUNlcnRp
+ZmljYXRpb24gQXV0aG9yaXRpZXMxFzAVBgNVBAMTDkFkbWluQ0EtQ0QtVDAxMIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0jQlMZmpLDhV+GNR9TAoSNle
+JgQB4xAXJELQf5/ySMfoFA4MmjKqYXQkB6MGPuQKwR9XRRSPf61vqb8YPsdjRmgp
+byHBcUd5t0N8RX6wRZUnPMW+bCCo2VqAU4XFbnlc2gHKaam0wdTtbBTXEkv0ieIH
+fxCfFxXqSsSr60IkF/2/xbrAgV/QD5yHk6Ie8feAVWwi5UtaFqtu4LiFEh2QMyxs
+Oyz1OcvKzkM2g873tyiE7jzMgZP+Ww3tibk2F9+e6ZeiB37TLOmVtvgpmrws4fiI
+rFNXEYSWBVrUTbn81U47yWzOgf5fEHP07bRV5QOCzCm99qNimsbL6CG7nT78CQID
+AQABo4H3MIH0MBIGA1UdEwEB/wQIMAYBAf8CAQAwga4GA1UdIASBpjCBozCBoAYI
+YIV0AREDFQEwgZMwSAYIKwYBBQUHAgIwPBo6VGhpcyBpcyB0aGUgQWRtaW5DQS1D
+RC1UMDEgQ2VydGlmaWNhdGUgUHJhY3RpY2UgU3RhdGVtZW50LjBHBggrBgEFBQcC
+ARY7aHR0cDovL3d3dy5wa2kuYWRtaW4uY2gvcG9saWN5L0NQU18yXzE2Xzc1Nl8x
+XzE3XzNfMjFfMS5wZGYwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQqxGkKocZV
+xgNucM6GgbOkD6oZ2zANBgkqhkiG9w0BAQUFAAOCAQEAn356bbusjI5glGXRQ1DR
+v21qQf0S4s3GHyZm7cqdOkFleM70ArBT+kOP5Nm7rlSAFyVgEkmBdOg7s9tlXClU
+yeZFnp6UEYRUcijPN8D1VaNRK6PIUObpDBQT0C+kAfxG9z4v29T0SxT4sgAdC/xQ
+Fyv58Fp9bPn7owuKwKcyCH1XSyi/Bp4XFELlLOaigBZO/w+dPBz4FcJSdZjU+BaJ
+0E3nKAjHlShO5ouBSZnaJz3p+nkw2Wyo36s6GxCK0XbkSP45iniIG4FmwwZkonYF
+ypQntHbx2oL7tUQQY0PDo8bGBMcPy/G2j+dciqZRlsnfgMy10SCzQ9MUx92xUG2V
+eg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFVTCCBD2gAwIBAgIEO/OB0DANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQGEwJj
+aDEOMAwGA1UEChMFYWRtaW4xETAPBgNVBAsTCFNlcnZpY2VzMSIwIAYDVQQLExlD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0aWVzMRYwFAYDVQQDEw1BZG1pbi1Sb290LUNB
+MB4XDTAxMTExNTA4NTEwN1oXDTIxMTExMDA3NTEwN1owbDELMAkGA1UEBhMCY2gx
+DjAMBgNVBAoTBWFkbWluMREwDwYDVQQLEwhTZXJ2aWNlczEiMCAGA1UECxMZQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdGllczEWMBQGA1UEAxMNQWRtaW4tUm9vdC1DQTCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMvgr0QUIv5qF0nyXZ3PXAJi
+C4C5Wr+oVTN7oxIkXkxvO0GJToM9n7OVJjSmzBL0zJ2HXj0MDRcvhSY+KiZZc6Go
+vDvr5Ua481l7ILFeQAFtumeza+vvxeL5Nd0Maga2miiacLNAKXbAcUYRa0Ov5VZB
+++YcOYNNt/aisWbJqA2y8He+NsEgJzK5zNdayvYXQTZN+7tVgWOck16Da3+4FXdy
+fH1NCWtZlebtMKtERtkVAaVbiWW24CjZKAiVfggjsiLo3yVMPGj3budLx5D9hEEm
+vlyDOtcjebca+AcZglppWMX/iHIrx7740y0zd6cWEqiLIcZCrnpkr/KzwO135GkC
+AwEAAaOCAf0wggH5MA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIASBkTCBjjCBiwYI
+YIV0AREDAQAwfzArBggrBgEFBQcCAjAfGh1UaGlzIGlzIHRoZSBBZG1pbi1Sb290
+LUNBIENQUzBQBggrBgEFBQcCARZEaHR0cDovL3d3dy5pbmZvcm1hdGlrLmFkbWlu
+LmNoL1BLSS9saW5rcy9DUFNfMl8xNl83NTZfMV8xN18zXzFfMC5wZGYwfwYDVR0f
+BHgwdjB0oHKgcKRuMGwxFjAUBgNVBAMTDUFkbWluLVJvb3QtQ0ExIjAgBgNVBAsT
+GUNlcnRpZmljYXRpb24gQXV0aG9yaXRpZXMxETAPBgNVBAsTCFNlcnZpY2VzMQ4w
+DAYDVQQKEwVhZG1pbjELMAkGA1UEBhMCY2gwHQYDVR0OBBYEFIKf+iNzIPGXi7JM
+Tb5CxX9mzWToMIGZBgNVHSMEgZEwgY6AFIKf+iNzIPGXi7JMTb5CxX9mzWTooXCk
+bjBsMQswCQYDVQQGEwJjaDEOMAwGA1UEChMFYWRtaW4xETAPBgNVBAsTCFNlcnZp
+Y2VzMSIwIAYDVQQLExlDZXJ0aWZpY2F0aW9uIEF1dGhvcml0aWVzMRYwFAYDVQQD
+Ew1BZG1pbi1Sb290LUNBggQ784HQMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0B
+AQUFAAOCAQEAeE96XCYRpy6umkPKXDWCRn7INo96ZrWpMggcDORuofHIwdTkgOeM
+vWOxDN/yuT7CC3FAaUajbPRbDw0hRMcqKz0aC8CgwcyIyhw/rFK29mfNTG3EviP9
+QSsEbnelFnjpm1wjz4EaBiFjatwpUbI6+Zv3XbEt9QQXBn+c6DeFLe4xvC4B+MTr
+a440xTk59pSYux8OHhEvqIwHCkiijGqZhTS3KmGFeBopaR+dJVBRBMoXwzk4B3Hn
+0Zib1dEYFZa84vPJZyvxCbLOnPRDJgH6V2uQqbG+6DXVaf/wORVOvF/wzzv0viM/
+RWbEtJZdvo8N3sdtCULzifnxP/V0T9+4ZQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF8DCCA9igAwIBAgIPBuhGJy8fCo/RhFzjafbVMA0GCSqGSIb3DQEBBQUAMDgx
+CzAJBgNVBAYTAkVTMRQwEgYDVQQKDAtJWkVOUEUgUy5BLjETMBEGA1UEAwwKSXpl
+bnBlLmNvbTAeFw0wNzEyMTMxMzA4MjdaFw0zNzEyMTMwODI3MjVaMDgxCzAJBgNV
+BAYTAkVTMRQwEgYDVQQKDAtJWkVOUEUgUy5BLjETMBEGA1UEAwwKSXplbnBlLmNv
+bTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMnTesoPHqynhugWZWqx
+whtFMnGV2f4QW8yv56V5AY+Jw8ryVXH3d753lPNypCxE2J6SmxQ6oeckkAoKVo7F
+2CaU4dlI4S0+2gpy3aOZFdqBoof0e24md4lYrdbrDLJBenNubdt6eEHpCIgSfocu
+ZhFjbFT7PJ1ywLwu/8K33Q124zrX97RovqL144FuwUZvXY3gTcZUVYkaMzEKsVe5
+o4qYw+w7NMWVQWl+dcI8IMVhulFHoCCQk6GQS/NOfIVFVJrRBSZBsLVNHTO+xAPI
+JXzBcNs79AktVCdIrC/hxKw+yMuSTFM5NyPs0wH54AlETU1kwOENWocivK0bo/4m
+tRXzp/yEGensoYi0RGmEg/OJ0XQGqcwL1sLeJ4VQJsoXuMl6h1YsGgEebL4TrRCs
+tST1OJGh1kva8bvS3ke18byB9llrzxlT6Y0Vy0rLqW9E5RtBz+GGp8rQap+8TI0G
+M1qiheWQNaBiXBZO8OOi+gMatCxxs1gs3nsL2xoP694hHwZ3BgOwye+Z/MC5TwuG
+KP7Suerj2qXDR2kS4Nvw9hmL7Xtw1wLW7YcYKCwEJEx35EiKGsY7mtQPyvp10gFA
+Wo15v4vPS8+qFsGV5K1Mij4XkdSxYuWC5YAEpAN+jb/af6IPl08M0w3719Hlcn4c
+yHf/W5oPt64FRuXxqBbsR6QXAgMBAAGjgfYwgfMwgbAGA1UdEQSBqDCBpYEPaW5m
+b0BpemVucGUuY29tpIGRMIGOMUcwRQYDVQQKDD5JWkVOUEUgUy5BLiAtIENJRiBB
+MDEzMzcyNjAtUk1lcmMuVml0b3JpYS1HYXN0ZWl6IFQxMDU1IEY2MiBTODFDMEEG
+A1UECQw6QXZkYSBkZWwgTWVkaXRlcnJhbmVvIEV0b3JiaWRlYSAxNCAtIDAxMDEw
+IFZpdG9yaWEtR2FzdGVpejAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
+BjAdBgNVHQ4EFgQUHRxlDqjyJXu0kc/ksbHmvVV0bAUwDQYJKoZIhvcNAQEFBQAD
+ggIBAMeBRm8hGE+gBe/n1bqXUKJg7aWSFBpSm/nxiEqg3Hh10dUflU7F57dp5iL0
++CmoKom+z892j+Mxc50m0xwbRxYpB2iEitL7sRskPtKYGCwkjq/2e+pEFhsqxPqg
+l+nqbFik73WrAGLRne0TNtsiC7bw0fRue0aHwp28vb5CO7dz0JoqPLRbEhYArxk5
+ja2DUBzIgU+9Ag89njWW7u/kwgN8KRwCfr00J16vU9adF79XbOnQgxCvv11N75B7
+XSus7Op9ACYXzAJcY9cZGKfsK8eKPlgOiofmg59OsjQerFQJTx0CCzl+gQgVuaBp
+E8gyK+OtbBPWg50jLbJtooiGfqgNASYJQNntKE6MkyQP2/EeTXp6WuKlWPHcj1+Z
+ggwuz7LdmMySlD/5CbOlliVbN/UShUHiGUzGigjB3Bh6Dx4/glmimj4/+eAJn/3B
+kUtdyXvWton83x18hqrNA/ILUpLxYm9/h+qrdslsUMIZgq+qHfUgKGgu1fxkN0/P
+pUTEvnK0jHS0bKf68r10OEMr3q/53NjgnZ/cPcqlY0S/kqJPTIAcuxrDmkoEVU3K
+7iYLHL8CxWTTnn7S05EcS6L1HOUXHA0MUqORH5zwIe0ClG+poEnK6EOMxPQ02nwi
+o8ZmPrgbBYhdurz3vOXcFD2nhqi2WVIhA16L4wTtSyoeo09Q
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
+A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
+b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
+MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
+YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
+aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
+jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
+xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
+1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
+snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
+U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
+9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E
+BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B
+AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz
+yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE
+38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP
+AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad
+DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME
+HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRS
+MRgwFgYDVQQHDA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJp
+bGltc2VsIHZlIFRla25vbG9qaWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSw
+VEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ryb25payB2ZSBLcmlwdG9sb2ppIEFy
+YcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNVBAsMGkthbXUgU2Vy
+dGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUgS8O2
+ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAe
+Fw0wNzA4MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIx
+GDAWBgNVBAcMD0dlYnplIC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmls
+aW1zZWwgdmUgVGVrbm9sb2ppayBBcmHFn3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBU
+QUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZlIEtyaXB0b2xvamkgQXJh
+xZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2FtdSBTZXJ0
+aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7Zr
+IFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4h
+gb46ezzb8R1Sf1n68yJMlaCQvEhOEav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yK
+O7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1xnnRFDDtG1hba+818qEhTsXO
+fJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR6Oqeyjh1jmKw
+lZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL
+hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQID
+AQABo0IwQDAdBgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/
+BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmP
+NOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4N5EY3ATIZJkrGG2AA1nJrvhY0D7t
+wyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLTy9LQQfMmNkqblWwM
+7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYhLBOh
+gLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5n
+oN+J1q2MdqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUs
+yZyQ2uypQjyttgI=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDGjCCAgKgAwIBAgIDAbplMA0GCSqGSIb3DQEBBQUAMDUxCzAJBgNVBAYTAlNJ
+MQ8wDQYDVQQKEwZIYWxjb20xFTATBgNVBAMTDEhhbGNvbSBDQSBGTzAeFw0wNTA2
+MDUxMDMzMzFaFw0yMDA2MDUxMDMzMzFaMDUxCzAJBgNVBAYTAlNJMQ8wDQYDVQQK
+EwZIYWxjb20xFTATBgNVBAMTDEhhbGNvbSBDQSBGTzCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBALyjJgGW5Z2sGgICOXys3AZMN0quB0h16CccpDH9Cqcj
+XXw/DvrwjJFvVTSEA3TMAzV4zXHBRxu76iFuuAfeIZKqrLneN6If9JocG8juEIPW
+U0PI3enzkEY5cgpO/BIpSYFYJjpxEwx7U4/fZnI8F9ze4XlKn+lgPm015E1R0RzA
+GjBcBj9zQ8jNNvQewoeMT0if2nVXKkyvjVQ8RF+YPFDa0BgGfGBu0oT/Z4WQPV7G
+69h6o7VtDL51uKnaVnE2Wu7rSVM+4hl2fEKroZDx9y+4ukpBtCukLmE259baf/Wf
+jbhLW4Q1UMW9Baqqwgx0QWNXGY7/4UbmewUk/pndMb0CAwEAAaMzMDEwDwYDVR0T
+AQH/BAUwAwEB/zARBgNVHQ4ECgQISCAcYg1YUiUwCwYDVR0PBAQDAgEGMA0GCSqG
+SIb3DQEBBQUAA4IBAQBbdfXmMEZYivcP0U8LAVgEuWTkMA0+dtlrE60cbslM8Gzm
+QhH964PvUNi7VJ20kYpatYQPjEbNPIKopR4gnND1QQbKASuYsOopUB/idHtZgsoK
+5W5OrrA37T7MujLZPwtoLLLTPNw4xRHWGzPuuaJqRJMbUOphG3lXUVaeMtAzeLTP
+Ryr7983x523gumT7FZu+yrHyRwF/4Ey3pUGsHtkabJHh0KhKw154K3qAwE/NJV9Q
+J8a8WHWcHbWaXZVz84Rm081tHc3gWs4gOO+Sc3heAtaN+XTUt4nYjPt71Ytx1RkX
+JtgkSTxVvIKH2mO7OdeOkc80cFxzT9BQR1r75VpR
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICGTCCAYKgAwIBAgIDATTiMA0GCSqGSIb3DQEBBQUAMDcxCzAJBgNVBAYTAlNJ
+MQ8wDQYDVQQKEwZIYWxjb20xFzAVBgNVBAMTDkhhbGNvbSBDQSBQTyAyMB4XDTA0
+MDIwNzE4MzMzMVoXDTE5MDIwNzE4MzMzMVowNzELMAkGA1UEBhMCU0kxDzANBgNV
+BAoTBkhhbGNvbTEXMBUGA1UEAxMOSGFsY29tIENBIFBPIDIwgZ8wDQYJKoZIhvcN
+AQEBBQADgY0AMIGJAoGBAJQX8kk3MDIJCDy+9Te3dGwQO8sicQcGucbs2kjznydt
+ZI1V3nlHUPtoznkBvqcb9mGtfTELUyCtMfFbziP6/8wSAloAnPzNaxJS6KzUMztz
+JhBxkEC/A4jfvF8hDYzWipMf564VVMZM5JlhkuD3jXLH3GITM6M+SSn7hL9wOpEh
+AgMBAAGjMzAxMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECEivV2a/0sACMAsG
+A1UdDwQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQCQFld2uHnO/MTRNwCizf84BxFz
+EwVJ7d/Bxc7GQNj3ApYNt28RhDhm+3H3EAFnfF19JNr2ZDsIgEimTr1E4rAHMo98
+hjdGb8CDA5O19PMSfKPoy+I6I3j6aG/+WMoMp1dRLWKQ+eSo3PXK3w6HUW43dSYO
+1354igOilRm2XpEBVg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDtzCCAp+gAwIBAgIEPsOGjjANBgkqhkiG9w0BAQUFADAdMQswCQYDVQQGEwJT
+STEOMAwGA1UEChMFQUNOTEIwHhcNMDMwNTE1MTE1MjQ1WhcNMjMwNTE1MTIyMjQ1
+WjAdMQswCQYDVQQGEwJTSTEOMAwGA1UEChMFQUNOTEIwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQC/dnU9DHxAOmZfTYz73Twu/n2UZO1K1ElIoe6RcbJ5
+yI4rH6rwMrQosqPCdU+k6aYa9qJmYSMnYSxuF5AL+t4ecVICKQSZeazAsMBmmJgR
+N2QQz5y8O0IcKVxVkPZ6Ik5Wrzdov3Q6bDzGmMxgIb/iCCfk2Su844SV19QkYPx+
+LS+dIeudkca7pNHryRKto+jItX9VS+uZAlTEgRwMrjnkanoF2E5woPoDd7Ou2LgU
+kvtBdxM1areiyohLrS1RvHaabLtAveckTCKm5v1OCHudCxDWEtKmxqFkMvQBc5aB
+4kiwwShjPTvnZ6xuxRT1FxOinB8rV/AVJ3Vd3bE01pMRAgMBAAGjgf4wgfswEQYJ
+YIZIAYb4QgEBBAQDAgAHMD8GA1UdHwQ4MDYwNKAyoDCkLjAsMQswCQYDVQQGEwJT
+STEOMAwGA1UEChMFQUNOTEIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMjAw
+MzA1MTUxMTUyNDVagQ8yMDIzMDUxNTEyMjI0NVowCwYDVR0PBAQDAgEGMB8GA1Ud
+IwQYMBaAFMy7u4bWb/i+tEcid7O2rdcBWZZNMB0GA1UdDgQWBBTMu7uG1m/4vrRH
+Ineztq3XAVmWTTAMBgNVHRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6
+NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEAEWfLy5prICHdb2mD1T8NupMVl05w
+diZc6J4k5zf+PFD01PkqLwwToV0EvNCw6cIDF4UFYT3Ap6p2TMO4OoOphs8D+XcO
+K7I9dhtl0WpxYHHbu7h6jvL5IYP4V0yox91lxu7vb7O2mbu0w9CrX7Kgft10ISzD
+WuuNocrY8MgX7Xa6hGNuW7m1ym3X/DQ5gC+6T9+N2PwYxDyKNS93gpatIJIYsuc2
+9K4ydLhH0dgP2CzLasIAdfks+EIOy/5zk6mP4ceuITfzyrkMtOeJfnEcVjQgw/E0
+uVVL01NS8QctKz5bGUCfEO3TKTPFrw8QVofaO8ix7TjZGftL8FAtpM3UWA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEGTCCAwGgAwIBAgIEOzz5yTANBgkqhkiG9w0BAQUFADA9MQswCQYDVQQGEwJz
+aTEbMBkGA1UEChMSc3RhdGUtaW5zdGl0dXRpb25zMREwDwYDVQQLEwhzaWdlbi1j
+YTAeFw0wMTA2MjkyMTI3NDZaFw0yMTA2MjkyMTU3NDZaMD0xCzAJBgNVBAYTAnNp
+MRswGQYDVQQKExJzdGF0ZS1pbnN0aXR1dGlvbnMxETAPBgNVBAsTCHNpZ2VuLWNh
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsOVlssCsZJbyiBuz7Z7k
+AsZPK4jOLopRgHWvEFvyyzhmm6IObTRHlqWSEa/2NUeidyIMzhaIYqrTSW4YvC5E
+2L7GnsIaGaxBjvwwBwLyxmrUWyMA70E02KRzY98ikjOEAaWN84Nc+rjUejXf7Pht
+D+BM7a2cOn2G1qUIlL59ehEf/oU/VFqIY4ecpbGnTs23RHOvz4pJax/jzddJTVor
+F+ZcdrO7crlvJ9KbiRWI3xBfdiEBascVMQrRnFj4KBYFbdlO2aHXByDLSyaJTZKy
+p7qW6ONYjyKcAZZaxPcxTQtJteF4YeJUGAa7nlQ0fgw+6+61gB/dFoQdaDhmZ3P4
+kQIDAQABo4IBHzCCARswEQYJYIZIAYb4QgEBBAQDAgAHMF8GA1UdHwRYMFYwVKBS
+oFCkTjBMMQswCQYDVQQGEwJzaTEbMBkGA1UEChMSc3RhdGUtaW5zdGl0dXRpb25z
+MREwDwYDVQQLEwhzaWdlbi1jYTENMAsGA1UEAxMEQ1JMMTArBgNVHRAEJDAigA8y
+MDAxMDYyOTIxMjc0NlqBDzIwMjEwNjI5MjE1NzQ2WjALBgNVHQ8EBAMCAQYwHwYD
+VR0jBBgwFoAUcXuKBh8xBVWrYBJ3RyAeA4gY7IkwHQYDVR0OBBYEFHF7igYfMQVV
+q2ASd0cgHgOIGOyJMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUu
+MDo0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4IBAQAAumM08xgY7q5+jZLHNfXCE9TW
+AKohMhbW0Fv6KbCN+hd3kvmltvb5hz8GDyDuYj0096kvx6k70CeITKzdyanlWliF
+1xI1Pdywglty9Ltzt/v+OCGYBICyiGIPHqw6Fqnmswr2FRBFA6OX4s2sENz5AB6/
+c2xD7HciFgYvloOJe7C4U0RBCNyAHwXbGQl2h741nU4hS7STwWg6nV82/qGuMCxL
+3ngkOljWFkPvnZk4iyqY/jDRwurWryXVpXYLue9AOS72698yXh19h7VEzAI50iaV
+cthvhUOojw6jRs7Xzui5Vqn4iRcSH0NJBnoy5z++b3m+1jPXTDwo/BLxdnYY
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEGTCCAwGgAwIBAgIEOlxwGjANBgkqhkiG9w0BAQUFADA9MQswCQYDVQQGEwJz
+aTEbMBkGA1UEChMSc3RhdGUtaW5zdGl0dXRpb25zMREwDwYDVQQLEwhzaWdvdi1j
+YTAeFw0wMTAxMTAxMzUyNTJaFw0yMTAxMTAxNDIyNTJaMD0xCzAJBgNVBAYTAnNp
+MRswGQYDVQQKExJzdGF0ZS1pbnN0aXR1dGlvbnMxETAPBgNVBAsTCHNpZ292LWNh
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1Qsmzwd2ixtlEszoYPSQ
+k0PIDtKStoZSoC658FPIcG7eTtgYa7GuUDeuzAjSizWGF/3RENdJCmGDdq/+AQaz
+2JldVkvUc/+mxEsqnnfX4Yg801WnLGducmeRE4JBrvCpiIyU7LC+4SvpyRmBrPJk
+8nk5FN+Fjg+/gbAR+vsm6gSf24qUTaS5p8Nqg7ZMBiIsktg2v06QQGmi20EWeQUl
+ind0OINak/FCZDjwwaW8+Kn7YBb59eTCUzxQQp6XCxAjLGq3wDXF1U7rOhzyFHEf
+XvqWo5yiym/IBtUiy1vplLCb17F//aWmxeacFPyxcVNeeiS07NJWB9G0lB5QtP0H
+rQIDAQABo4IBHzCCARswEQYJYIZIAYb4QgEBBAQDAgAHMF8GA1UdHwRYMFYwVKBS
+oFCkTjBMMQswCQYDVQQGEwJzaTEbMBkGA1UEChMSc3RhdGUtaW5zdGl0dXRpb25z
+MREwDwYDVQQLEwhzaWdvdi1jYTENMAsGA1UEAxMEQ1JMMTArBgNVHRAEJDAigA8y
+MDAxMDExMDEzNTI1MlqBDzIwMjEwMTEwMTQyMjUyWjALBgNVHQ8EBAMCAQYwHwYD
+VR0jBBgwFoAUHvjUU2uzgwbpBAZXAvmlv8ZYPHIwHQYDVR0OBBYEFB741FNrs4MG
+6QQGVwL5pb/GWDxyMAwGA1UdEwQFMAMBAf8wHQYJKoZIhvZ9B0EABBAwDhsIVjUu
+MDo0LjADAgSQMA0GCSqGSIb3DQEBBQUAA4IBAQCDwrYsqA2iEE9g7IcirrdWfFDu
+GZQ5iN+JfUpfefaIlV/jr6XGvHfdtoJQ2hZD9wxzo+Zl4bxrtUIK1WDlx/WXbpKe
+6dk2a4scE2spVUJcgJ0mrKYIoQUL/9qjqgQMc+2aGZm7ZatE/NPLxRIPsAIgbEtM
+W6DDMicXjEPJnZBV7vJP3fmQsw5UgYNM3KQka775hHwq0p4o9KoK11tUETA4AOQS
+SwSsYomUa/vKpW3nQcUc0+cqflU91FHUE43vfYdSkRTfm6/ivsLj9xKiJnOnWqFW
+bfnu38MgmxGw658H9uh7VccaTW2QcEblYVXsnkkwRDtFsqWb+ZU4vsn0SQ38
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDfTCCAmWgAwIBAgIBADANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJKUDEl
+MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEqMCgGA1UECxMh
+U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBFViBSb290Q0ExMB4XDTA3MDYwNjAyMTIz
+MloXDTM3MDYwNjAyMTIzMlowYDELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09N
+IFRydXN0IFN5c3RlbXMgQ08uLExURC4xKjAoBgNVBAsTIVNlY3VyaXR5IENvbW11
+bmljYXRpb24gRVYgUm9vdENBMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBALx/7FebJOD+nLpCeamIivqA4PUHKUPqjgo0No0c+qe1OXj/l3X3L+SqawSE
+RMqm4miO/VVQYg+kcQ7OBzgtQoVQrTyWb4vVog7P3kmJPdZkLjjlHmy1V4qe70gO
+zXppFodEtZDkBp2uoQSXWHnvIEqCa4wiv+wfD+mEce3xDuS4GBPMVjZd0ZoeUWs5
+bmB2iDQL87PRsJ3KYeJkHcFGB7hj3R4zZbOOCVVSPbW9/wfrrWFVGCypaZhKqkDF
+MxRldAD5kd6vA0jFQFTcD4SQaCDFkpbcLuUCRarAX1T4bepJz11sS6/vmsJWXMY1
+VkJqMF/Cq/biPT+zyRGPMUzXn0kCAwEAAaNCMEAwHQYDVR0OBBYEFDVK9U2vP9eC
+OKyrcWUXdYydVZPmMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0G
+CSqGSIb3DQEBBQUAA4IBAQCoh+ns+EBnXcPBZsdAS5f8hxOQWsTvoMpfi7ent/HW
+tWS3irO4G8za+6xmiEHO6Pzk2x6Ipu0nUBsCMCRGef4Eh3CXQHPRwMFXGZpppSeZ
+q51ihPZRwSzJIxXYKLerJRO1RuGGAv8mjMSIkh1W/hln8lXkgKNrnKt34VFxDSDb
+EJrbvXZ5B3eZKK2aXtqxT0QsNY6llsf9g/BYxnnWmHyojf6GPgcWkuF75x3sM3Z+
+Qi5KhfmRiWiEA4Glm5q+4zfFVKtWOxgtQaQM+ELbmaDgcm+7XeEWT1MKZPlO9L9O
+VL14bIjqv5wTJMJwaaJ/D8g8rQjJsJhAoyrniIPtd490
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIElTCCA32gAwIBAgIDAw6VMA0GCSqGSIb3DQEBBQUAMEsxCzAJBgNVBAYTAkRF
+MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJTAjBgNVBAMMHEQtVFJVU1QgUm9vdCBD
+bGFzcyAyIENBIDIwMDcwHhcNMDcwNTE2MDUyMDQ3WhcNMjIwNTE2MDUyMDQ3WjBL
+MQswCQYDVQQGEwJERTEVMBMGA1UECgwMRC1UcnVzdCBHbWJIMSUwIwYDVQQDDBxE
+LVRSVVNUIFJvb3QgQ2xhc3MgMiBDQSAyMDA3MIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAs83khBVJ+OTWzoSzmq32MHWQDYTr7tqzenUq4juk6jAs6z13
+jYGEaEqmpGjckHNhNGUHHSOlDOa/090zXdoy7aYNU6Z0alwZWaZMtS95AV6ef0r6
+usknftT/zQBZIOsGzLNEz9aF6e07DGzB6oxc4LmpAvATACeTnFD+zRNPbRtqqt0P
+/0YlGdzhXlCsGn8Oy9ruIPzD9JxKeDVu7jHHRRZyhdKCINtSRXw8v1lX+Yd0Vphb
+HVCOzC+zsz+L7uw3SQGI79ghDJPT9m6JT7oXy0SBt3unI7t0CtPY6jdFJ//c8J5D
+47p7ihuafemGoP4v0db2h1eq8imUh3MV+mpOrQIDAQABo4IBgDCCAXwwDwYDVR0T
+AQH/BAUwAwEB/zAdBgNVHQ4EFgQUkTCr9vPGRLfr3Si8DxSfUl1ifwIwOQYIKwYB
+BQUHAQEELTArMCkGCCsGAQUFBzABhh1odHRwOi8vdXNlcnMub2NzcC5kLXRydXN0
+Lm5ldDAzBgNVHREELDAqgRBpbmZvQGQtdHJ1c3QubmV0hhZodHRwOi8vd3d3LmQt
+dHJ1c3QubmV0MA4GA1UdDwEB/wQEAwIBBjCByQYDVR0fBIHBMIG+MIG7oIG4oIG1
+hnZsZGFwOi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290
+JTIwQ2xhc3MlMjAyJTIwQ0ElMjAyMDA3LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9j
+ZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0hjtodHRwOi8vd3d3LmQtdHJ1c3QubmV0
+L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfMl9jYV8yMDA3LmNybDANBgkqhkiG9w0B
+AQUFAAOCAQEAW4vyQ+MFLmQf1ZKpUWtk/A5GzAeZ4rf8kykg3PwvYOSsfSUy7RDh
+D2/b8rxO7kHJs9QHSHoKr6S2/1Ew7cvSnOt/UO5L4mKnNMIg9vP29TbAy5EQ6+0u
+jfQHGiEMNXf0fC2NSaXXC0Ro1dLi5Qx4OBPKsUxSqirl1a9cBTmdLa2+I1bVL1Xz
+3p2rgjagTbdZkUfu3oOl6jteJwWAC20sUPQBN9Wjdxfs/t2E9MX4UJLQS8Yuo4tA
+5MM3o3e9zixV4qzfXWQAur6najEG/JlrUBUlnal2mqdNKpoCY+tw5/4RJtAYxaYf
+CkOT8hjZ9Tl5uAddjB/mP/PFyyFmMXt7zw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIElTCCA32gAwIBAgIDAw6WMA0GCSqGSIb3DQEBBQUAMEsxCzAJBgNVBAYTAkRF
+MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJTAjBgNVBAMMHEQtVFJVU1QgUm9vdCBD
+bGFzcyAzIENBIDIwMDcwHhcNMDcwNTE2MDUyMDQ3WhcNMjIwNTE2MDUyMDQ3WjBL
+MQswCQYDVQQGEwJERTEVMBMGA1UECgwMRC1UcnVzdCBHbWJIMSUwIwYDVQQDDBxE
+LVRSVVNUIFJvb3QgQ2xhc3MgMyBDQSAyMDA3MIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAuo3NNVMy7qa9SJCa8uroWA9HZqjMbgkS5KHLW9+TuPbpOTn4
+xtjpzxqGvKauD4yvCEXj8o4rwlxZK/qMNrNwHchQPKVWvuqu6Uf250kPr3+UJtQC
+Gge4ujlVzp+7Ijkp2DXFmQMh2Kc4Y/HkNN9Hrp838WygmcIisG1y3CLJMTnoVteg
+jzohW4aaTyj5HHb3zE8/+U53iyqciqp5QYrVHNk5b5jJXkWXHQmUGdlQUYVyc7+s
+S510NHGHIRYPfu7SSX7KSdP5kipHSE8PXVqhy9Uo7PCSxXJDRuuzA6bzVyVKCmGE
+CibW76a42BSNeLnTtyXRTuNaFqrsnwfuIxB9tQIDAQABo4IBgDCCAXwwDwYDVR0T
+AQH/BAUwAwEB/zAdBgNVHQ4EFgQUgi82I0l4IELXsFJYoNZ0VBV4v6owOQYIKwYB
+BQUHAQEELTArMCkGCCsGAQUFBzABhh1odHRwOi8vdXNlcnMub2NzcC5kLXRydXN0
+Lm5ldDAzBgNVHREELDAqgRBpbmZvQGQtdHJ1c3QubmV0hhZodHRwOi8vd3d3LmQt
+dHJ1c3QubmV0MA4GA1UdDwEB/wQEAwIBBjCByQYDVR0fBIHBMIG+MIG7oIG4oIG1
+hnZsZGFwOi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290
+JTIwQ2xhc3MlMjAzJTIwQ0ElMjAyMDA3LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9j
+ZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0hjtodHRwOi8vd3d3LmQtdHJ1c3QubmV0
+L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yMDA3LmNybDANBgkqhkiG9w0B
+AQUFAAOCAQEAVQ5oCo3c2aiGYAJpeY196ZDC2R0dtQ67c5JkYxRGTNBqu6N1XYYZ
+OGGGHbiKIjSjtDUVs6lgTFQXn7HeWzLifmveTyLwLR0iBJ62Sk+rLFad493ssSZO
+KtdVwj69gte+VbtFyClbhjydP2hEREQ2DWi/rgGiGbVMl//yljxnskLeD+Ggl07K
+5zRlrpWCYWcmcy3de+eVSw4hqpKuTPzGs6nlmYMyOfBgwkxRqMFHFDWJpU02D58b
+AnFBjUJKJPivbp0NcIaNqmITHgOLJPnDVJNJhRt1dmJ/Iv9JvXZzDD+YrSqy+ufF
+33T1/2kxVQo6wBliNcRJuSsZHfRwme7Y3A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGKjCCBBKgAwIBAgIQZgej0p0pVhgO4V5ZmLGEVTANBgkqhkiG9w0BAQUFADB0
+MQswCQYDVQQGEwJMVDErMCkGA1UEChMiU2thaXRtZW5pbmlvIHNlcnRpZmlrYXZp
+bW8gY2VudHJhczEgMB4GA1UECxMXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAU
+BgNVBAMTDVNTQyBSb290IENBIEEwHhcNMDYxMjI3MTIxODUyWhcNMjYxMjI4MTIw
+NTA0WjB0MQswCQYDVQQGEwJMVDErMCkGA1UEChMiU2thaXRtZW5pbmlvIHNlcnRp
+ZmlrYXZpbW8gY2VudHJhczEgMB4GA1UECxMXQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkxFjAUBgNVBAMTDVNTQyBSb290IENBIEEwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQC66k++hMAZJIohqUyZffcM1aVRkqhl44mjC2bnQvh50g+DI3u3
+psEk1jXW2OUBynCxFtZHbr4QbH7pUG529+Xkgw941aBz9Y3RmR+URCOWxu5yWvna
+XTyRr2zol+iGXfeei/rErGZP5HI/O92eTjXSEx99u0RL9FOs1hTXQDm6wD/8hSDT
+xADQ59hHmQR5h4ZAsqxeyXUgwwkUrwSOpqKtKleIZaHMKL42yR8lD8NrIoQ5d046
+A8Bq2z66tome5NcumrdDAT/52qyprOR3M4ftCzndx8GtDVmDMNE2BFi0ZE7m/wjo
+QrGAq/iY//MphhYRJE4Joc8wf7xesApqoXFr9ZoSayVtdwKiRl75aS/7OxiVX45c
+l5RgXh1xqEG0Xc9aemfj1Eo1HzfgdhYDO/RRnJgUKUmIDELQLW2pp0AmOnkAMDvA
+u0SYrSTO0ZbciXiB9lpbQrx04YfTZchH5jayzMFvwMfcgCVSPDGQ3cnIUKh6u3bg
+7xOUzgR+arZOd/mD0G/4OtAKQ8q6ELb/PB2UYJSEbfWlyX1MCn4vj2/93S17Sunv
+NNu7fv8Mbzf6+cPMyS/R6Sw9KqxsJjvQCV7EgCeL3WHw55VRQ8QN5jHQeNbBxsJm
+AdHjzMfTHhUFNtuUmuxSw5HHL7H0A/cHrNNLkatWPNCu/V9tLdMAEc+TvQIDAQAB
+o4G3MIG0MA8GA1UdEwEB/wQFMAMBAf8wPQYDVR0gBDYwNDAyBgsrBgEEAYGvZQEC
+ADAjMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNzYy5sdC9jcHMwMwYDVR0fBCww
+KjAooCagJIYiaHR0cDovL2NybC5zc2MubHQvcm9vdC1hL2NhY3JsLmNybDAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMy/3qeQd2JqHXhpLgo4m3dRUwPwMA0GCSqG
+SIb3DQEBBQUAA4ICAQA+r8ioxzNP8G6aQ+HysFdS4ZyeBl9C1vH9yotRP+HHZWlP
+dBlQis8Yk0mNoBywOz2OSJPZ6AV+xAmxD1KKa5dv1448gADQQXOtPcNEB3Fqj2J+
+BdhTYHKxAekAYqoN2NhJwrR9DVuzlyk2mbmn0UuYa0S8shKOdmR1TA3Nwi6zWPx6
+T1WzWX9d4C8wM8+IG2npTYqQnpC5MTrzogW8/vndUI0OlBmdfo2qFX4PUpMl5IEO
+li0cAxwwgxGWQqmYpJ1fyalcO0lowoRtmdr2/qLy3DdejXrlpVfKI0uTXZIqVYSz
+lrMemJRJfGw83J4dtqvDrAnFnd4311TEnK0/sNZpAeUQhn25gYNunGZOlQWSkDGH
+JrLakXS9hORxaOR2AOB2czRHhpVluluQom0FKXhg64b5Ek3oCFakzIyiVkrOgPQU
+YSLlqx06QTuE14J4BS+sHSNoq3J5hc1G5nqngloo0BU9HduMmFDO+69YO9OproA7
+FgB2J9Vw6QmNNpQJf+PvYBBRysZVcGarUW/zUU8SVq7719kN4PqrEN5qgayFdy2s
+emN7RuE32ldurWX8IQSZhQHPIzoyxe1am9WhggR3EUWOpER9wsvLpw/oErrybrqP
+MzAb3Sn48EKjbkKlbvpWpalQg9EFZhaLLfvmktHmbAvVWiltK89519naT/Botg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGKzCCBBOgAwIBAgIRAL6SgxjzVYp4o2dZHGkkCT8wDQYJKoZIhvcNAQEFBQAw
+dDELMAkGA1UEBhMCTFQxKzApBgNVBAoTIlNrYWl0bWVuaW5pbyBzZXJ0aWZpa2F2
+aW1vIGNlbnRyYXMxIDAeBgNVBAsTF0NlcnRpZmljYXRpb24gQXV0aG9yaXR5MRYw
+FAYDVQQDEw1TU0MgUm9vdCBDQSBCMB4XDTA2MTIyNzEyMjI1MFoXDTI2MTIyNTEy
+MDgyNlowdDELMAkGA1UEBhMCTFQxKzApBgNVBAoTIlNrYWl0bWVuaW5pbyBzZXJ0
+aWZpa2F2aW1vIGNlbnRyYXMxIDAeBgNVBAsTF0NlcnRpZmljYXRpb24gQXV0aG9y
+aXR5MRYwFAYDVQQDEw1TU0MgUm9vdCBDQSBCMIICIjANBgkqhkiG9w0BAQEFAAOC
+Ag8AMIICCgKCAgEAwfNV9UdRTlUXZY2wskEooUrRn0v2c/8+0slNWT/kt8efBl3Y
+PKOIhOBzXf0F6seO16QEauufvUP9FJJGuMW6qu1g7OzKkI0KcqlBm9SdvLBsohEf
+ZMvnHdRFZw4Ja+V47PE/BFTzmpnHWdHSeaekGrB8Sfwch1ReeAbV3R3MhaBCeNXQ
+sIrq6PGhnlbv08F9h6zn2mhPGdZv4JOtSVxzFMFGap33WEDZV1hObDf0ciME+NtK
+sN7xQZYSQKEVi2e4XnhWy3/kvsBJaJG4RwiTgcG1GzEG04B70UWhzww9YfOS+PGw
+FQ74LjBbAKNJ923+7ty/iM/wfVc+r8DRiut80m0xVfqEjXNq2nCAxPTCz5COMJrh
+xjVyAQjmP+ZmAKPy+JIdvFLsj/bc9wrvvBCH+YQYjF4fA7j/NS8BauXwW2J847N/
+M6qU105RgbXoV3iPIpapDIlUPrbu2XNfZPRE4fFqGP9SlsQcv4mXpMOnyn4Ybhbc
+E4y71bUlCYav9i9FlCowwRSUNfZdyiWVnLFYibi1YIXJxr4UGaM++VaFq8ps1pl5
+okoUb8M62OdmUQrpHP7MaeY0bPSB232iEfhMxIcFFj3rl3Q/buycubYnjCTfLbOv
+3RNhdo//8kzgCBkwMiQyXDaAF+6Gyd8vUeJWroOS8LO92Ic6LJ7E3GmZ+csCAwEA
+AaOBtzCBtDAPBgNVHRMBAf8EBTADAQH/MD0GA1UdIAQ2MDQwMgYLKwYBBAGBr2UB
+AgAwIzAhBggrBgEFBQcCARYVaHR0cDovL3d3dy5zc2MubHQvY3BzMDMGA1UdHwQs
+MCowKKAmoCSGImh0dHA6Ly9jcmwuc3NjLmx0L3Jvb3QtYi9jYWNybC5jcmwwDgYD
+VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBScA/Co0phyaK7y7eBP4oUOsiVOzzANBgkq
+hkiG9w0BAQUFAAOCAgEArFy8L/yuASSmED6sqOGnJ5mNyojBHT2R9qJ+pfGYQf+q
+YfgJvs0aJWF0tMOvQloJD5EBvkiV9Mp3XguDzoSdz0D9gCy942Y1Crix+mDa5dhU
+tUuXuqIawyBpjbRGc1yqv717/xowNFhA+StgC3lE+feilgtrUnvwK0s70ouga5M9
+yVdjimvMUBOPd6hRvhpMLUxdDJBbjvPvUCBtgeZRSavE59ddCCtR/D1GEufRpXbF
+UyQFyarTjljF84p0kjLt8C/dq63p0jWPdCPjmQDiizDkw0Ku8Lvp4ggbSnAtffjS
+mieRQnB1egh+vi8cfzc9qIvcRnL16G82aPpujSCd1PUHcb+9J0K5cyjW7Em0BYVP
+aEj2q5TfDqNGFGDCMSA76y5b3tWhLG3lUvqBX5eIyWO9AezjzWsKNcLJOOMO81gb
+fdqQbbf1yFhWna4B35GdrVWCAwwRdASRhsd8k4zzJ/vFJFdui9kbmJ2IMfCvd7gN
+tMzP9gpvEpvsCStTiexE4KFpi6h0hnQYUuDSv6ChZSG5CIN686T1+F43JUeZpl3X
+Ilrbk2cX2xDjjNESkUeKlaVHoQP4Sy4hxZBisH8no9sVfzh/bH9OBcUDtC3fRV91
+LB3xX6a19hc5Qen4ZcIeWBHKfI7itbqSD2e3j+uZ1DH7cntamF+SlMcE6jD2uxo=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGKjCCBBKgAwIBAgIQNLkSn6zHklVCXN5X/+PABTANBgkqhkiG9w0BAQUFADB0
+MQswCQYDVQQGEwJMVDErMCkGA1UEChMiU2thaXRtZW5pbmlvIHNlcnRpZmlrYXZp
+bW8gY2VudHJhczEgMB4GA1UECxMXQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxFjAU
+BgNVBAMTDVNTQyBSb290IENBIEMwHhcNMDYxMjI3MTIyNjMwWhcNMjYxMjIyMTIx
+MTMwWjB0MQswCQYDVQQGEwJMVDErMCkGA1UEChMiU2thaXRtZW5pbmlvIHNlcnRp
+ZmlrYXZpbW8gY2VudHJhczEgMB4GA1UECxMXQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkxFjAUBgNVBAMTDVNTQyBSb290IENBIEMwggIiMA0GCSqGSIb3DQEBAQUAA4IC
+DwAwggIKAoICAQChRSL6jMypbwSz9GgyFmkRT3nfQ71RYHAamN14eJaYYvdwS4Go
+4B0EifSP627p8P+B2C59rxcg8SLv8D9FR0C0y7K4ID8+SmhQ/5oG15fFt4oWLnHS
+R3NdGGUv7zkz6LZVryatAoDpY9chcAc+zL5ficD4zh0lbsP8f1Y5YdGOwiZ653gC
+ClndVSOw+DWn4qvzqy/XtYsKKnJUK215vPLZ6UP5z/GOZhL3l1kq2deU3PiUs0Wj
+rxYts4DKPc7opscKlHT8N5rpPww3FiBDyUdwu4yF/JiJKcuHGX4ZUxCJgHWuE/G/
+pF0wBSl8qPe2XgcwFYiuTRWgys3X/6ujBlcPp+OJaRzWGtHUJ9+Wxjhcr3f+FatE
+QX3TmLuoIBivi23UWsLYlo1I9QcxfmH0YZtSgUCOSicEsgfTAhCU8/vdsXtwuLTI
+gfUAB6aNiAVNxI+WztS2wMFmjCqsaErJRtwN5i6oeSh9d0NwFn4cGjqmeU8TQImx
+MrsJRhENdLwn5djtLfpQKdwlypcQ56miYS46iaZEYb5PXpIJ7dwupu9Tu2El2Cel
+FEYphSYA2Pn5BdV7FjFCQwUXkZxKYEAkbbVtenn7nJpjw5hp5XdiIypRiQ9ssv3D
+ytj0GkOU0H0L4Vg+Gsh0hJv3rIKuUUWS0gZZ4bPB3qUfkyJ52M3EeWAjlQIDAQAB
+o4G3MIG0MA8GA1UdEwEB/wQFMAMBAf8wPQYDVR0gBDYwNDAyBgsrBgEEAYGvZQEC
+ADAjMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNzYy5sdC9jcHMwMwYDVR0fBCww
+KjAooCagJIYiaHR0cDovL2NybC5zc2MubHQvcm9vdC1jL2NhY3JsLmNybDAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFIgHc/bxvFIaWh09kWLtXaydC+W3MA0GCSqG
+SIb3DQEBBQUAA4ICAQAfkHFQmNXZNNKWhBjCrEYCIBzLObG3rwWk11jzkVF9joEn
+nOiSseccnzqLEFJzTMLHQh3Q694qyiJRfYx0ehr8vKTzc8hmI8QuQxBH4IppV+4v
+8gBSsDCSqtbUFcVXy2B69A6N/h4JY3SP4P6+UNkBOVa6UEz240Wau1J23n6d+43C
+VDE+x7E8Pt/jT/3dmyRpfO3ocbZCBscfxV/7IHXbwf3pbKIqkNSG/c0N/+AFilhh
+PZ/EmS/t23zEDZiYVZx0ohde26oR5DcMJP8gZ9El25qJoGWIMZEEcV8glFgzNh0y
+3m/XZwipoDv926RQJZYeqV+JF6WXmVGVadvE8Y/0bzArWfOsdYczfQbd4cFr1sTJ
+XnBEemrHnHc7Fv7+db6fLNHAA+4ReXXsqVsceoW1KFAgqRod5nuMMxj/we3IdmUf
+HfBMO6fb6s1W2JRXP+BIqX+MM0u99AxlFICC9DV32AQQcM4PbMFZy5mtge7ePUjQ
+eogvQJPXnLp5hBiAdd/QWt9Rdz5YiWl1RzHkahZwVATsvVx5U2PS4l69TSXaEbYP
+quksrvXRqY0CVsv8sCTqjLpw/zLQt8YEKmPVykaR1ZlyCQdeKAOrEhwls2w6WWW0
+dG0tLRlyb/3nmBGHHnMjvzXxm7bD2cw7UHxy6M9ewJjMLgP9Hy/KdFyxHNHsaQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEvDCCA6SgAwIBAgIQAJCLMk/BkBrOtMM4Cc3P5DANBgkqhkiG9w0BAQUFADB5
+MQswCQYDVQQGEwJFUzE2MDQGA1UEChMtQ29uc2VqbyBHZW5lcmFsIGRlIGxhIEFi
+b2dhY2lhIE5JRjpRLTI4NjMwMDZJMTIwMAYDVQQDEylBdXRvcmlkYWQgZGUgQ2Vy
+dGlmaWNhY2lvbiBkZSBsYSBBYm9nYWNpYTAeFw0wNTA2MTMyMjAwMDBaFw0zMDA2
+MTMyMjAwMDBaMHkxCzAJBgNVBAYTAkVTMTYwNAYDVQQKEy1Db25zZWpvIEdlbmVy
+YWwgZGUgbGEgQWJvZ2FjaWEgTklGOlEtMjg2MzAwNkkxMjAwBgNVBAMTKUF1dG9y
+aWRhZCBkZSBDZXJ0aWZpY2FjaW9uIGRlIGxhIEFib2dhY2lhMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtLJX7oXwI+gN+7KAhPEQZ6uy+UnfXN5b5I8p
+GVPJ1egcUGthAoyH8I88wUWSC6yZocYahdY9rX4mph24PbKzPorFCjLTS5HvSXV+
+Vvf+oAhiRivO6vJRn2DeMsjtGqfPdVzrPcC9mkilhpTOWFAU6mrhmvSMZZXhYBUl
+lRL2uniLssDt5myXJFod5HRDyjjENZRYjvWKsGg8KCxElgm/CVtyCudnPJC5VDh0
+VLttLWpDyLzvCawfI+hSVl41F18ru17NZVKlFHw7sqrp3Se1NyM7Bg0se4262m9m
+F4anttceB10ebBmXyOUjc3jRrvkeuqGuSSLtZXEff/dadESNQwIDAQABo4IBPjCC
+ATowNwYDVR0RBDAwLoERYWNAYWNhYm9nYWNpYS5vcmeGGWh0dHA6Ly93d3cuYWNh
+Ym9nYWNpYS5vcmcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwEQYJ
+YIZIAYb4QgEBBAQDAgAHMB0GA1UdDgQWBBT8iEyObQShIJDT+Byas2cEX3mAxjCB
+qwYDVR0gBIGjMIGgMIGdBgsrBgEEAYGBFQoBATCBjTApBggrBgEFBQcCARYdaHR0
+cDovL3d3dy5hY2Fib2dhY2lhLm9yZy9kb2MwYAYIKwYBBQUHAgIwVBpSQ29uc3Vs
+dGUgbGEgZGVjbGFyYWNpb24gZGUgcHJhY3RpY2FzIGRlIGNlcnRpZmljYWNpb24g
+ZW4gaHR0cDovL3d3dy5hY2Fib2dhY2lhLm9yZzANBgkqhkiG9w0BAQUFAAOCAQEA
+mKf6ObVzESZ/vIk/tGslMzEKhjhryR4VlxTg0kwthfQ8dJuNKBH7zA4muYCDFtH5
+Rpi2RgeOZoVtcMC6TIDzpPDVN1Qrr2aEcnP5SC8JzuGFAcqP4IfeoJfQlLQNtU0O
+ZyzIYMQylMBBgQeNur+p6AxAmkJ4BV2B62Ic5E8UCj0LPh/p9M197kW7vN5d85iX
+JnvGEyn4K38a1Or6sm4gntoX6qGSvTfpDru7kdUl9mBdhSFQW/9UXfVLO7TDKRFY
+AvYl5OGCgruijeeRJF5AkZ5HB4wzV9RiMVF2dYVDbwmrEaUlKbnY/1+l9z/rZTsd
+74blFiLVHsoyaX1+BdcwJw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJF
+UzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJ
+R1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcN
+MDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3WjBoMQswCQYDVQQGEwJFUzEfMB0G
+A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScw
+JQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+
+WmmmO3I2F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKj
+SgbwJ/BXufjpTjJ3Cj9BZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGl
+u6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQD0EbtFpKd71ng+CT516nDOeB0/RSrFOy
+A8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXteJajCq+TA81yc477OMUxk
+Hl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMBAAGjggM7
+MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBr
+aS5ndmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIIC
+IwYKKwYBBAG/VQIBADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8A
+cgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIA
+YQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIAYQBsAGkAdABhAHQAIABWAGEA
+bABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQByAGEAYwBpAPMA
+bgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA
+aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMA
+aQBvAG4AYQBtAGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQA
+ZQAgAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEA
+YwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBuAHQAcgBhACAAZQBuACAAbABhACAA
+ZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAAOgAvAC8AdwB3AHcA
+LgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0dHA6
+Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+y
+eAT8MIGVBgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQsw
+CQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0G
+A1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVu
+Y2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRhTvW1yEICKrNcda3Fbcrn
+lD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdzCkj+IHLt
+b8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg
+9J63NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XF
+ducTZnV+ZfsBn5OHiJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmC
+IoaZM3Fa6hlXPZHNqcCjbgcTpsnt+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwKgAwIBAgIDAYagMA0GCSqGSIb3DQEBBQUAMIGjMQswCQYDVQQGEwJG
+STEQMA4GA1UECBMHRmlubGFuZDEhMB8GA1UEChMYVmFlc3RvcmVraXN0ZXJpa2Vz
+a3VzIENBMSkwJwYDVQQLEyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBTZXJ2aWNl
+czEZMBcGA1UECxMQVmFybWVubmVwYWx2ZWx1dDEZMBcGA1UEAxMQVlJLIEdvdi4g
+Um9vdCBDQTAeFw0wMjEyMTgxMzUzMDBaFw0yMzEyMTgxMzUxMDhaMIGjMQswCQYD
+VQQGEwJGSTEQMA4GA1UECBMHRmlubGFuZDEhMB8GA1UEChMYVmFlc3RvcmVraXN0
+ZXJpa2Vza3VzIENBMSkwJwYDVQQLEyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBT
+ZXJ2aWNlczEZMBcGA1UECxMQVmFybWVubmVwYWx2ZWx1dDEZMBcGA1UEAxMQVlJL
+IEdvdi4gUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALCF
+FdrIAzfQo0Y3bBseljDCWoUSZyPyu5/nioFgJ/gTqTy894aqqvTzJSm0/nWuHoGG
+igWyHWWyOOi0zCia+xc28ZPVec7Bg4shT8MNrUHfeJ1I4x9CRPw8bSEga60ihCRC
+jxdNwlAfZM0tOSJWiP2yY51U2kJpwMhP1xjiPshphJQ9LIDGfM6911Mf64i5psu7
+hVfvV3ZdDIvTXhJBnyHAOfQmbQj6OLOhd7HuFtjQaNq0mKWgZUZKa41+qk1guPjI
+DfxxPu45h4G02fhukO4/DmHXHSto5i7hQkQmeCxY8n0Wf2HASSQqiYe2XS8pGfim
+545SnkFLWg6quMJmQlMCAwEAAaNVMFMwDwYDVR0TAQH/BAUwAwEB/zARBglghkgB
+hvhCAQEEBAMCAAcwDgYDVR0PAQH/BAQDAgHGMB0GA1UdDgQWBBTb6eGb0tEkC/yr
+46Bn6q6cS3f0sDANBgkqhkiG9w0BAQUFAAOCAQEArX1ID1QRnljurw2bEi8hpM2b
+uoRH5sklVSPj3xhYKizbXvfNVPVRJHtiZ+GxH0mvNNDrsczZog1Sf0JLiGCXzyVy
+t08pLWKfT6HAVVdWDsRol5EfnGTCKTIB6dTI2riBmCguGMcs/OubUpbf9MiQGS0j
+8/G7cdqehSO9Gu8u5Hp5t8OdhkktY7ktdM9lDzJmid87Ie4pbzlj2RXBbvbfgD5Q
+eBmK3QOjFKU3p7UsfLYRh+cF8ry23tT/l4EohP7+bEaFEEGfTXWMB9SZZ291im/k
+UJL2mdUQuMSpe/cXjUu/15WfCdxEDx4yw8DP03kN5Mc7h/CQNIghYkmSBAQfvA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHqTCCBZGgAwIBAgIQYwaGp8U3ZaVDkKhqWMzUMjANBgkqhkiG9w0BAQUFADCB
+jzELMAkGA1UEBhMCTFYxNTAzBgNVBAoTLFZBUyBMYXR2aWphcyBQYXN0cyAtIFZp
+ZW4ucmVnLk5yLjQwMDAzMDUyNzkwMSMwIQYDVQQLExpTZXJ0aWZpa2FjaWphcyBw
+YWthbHBvanVtaTEkMCIGA1UEAxMbVkFTIExhdHZpamFzIFBhc3RzIFNTSShSQ0Ep
+MB4XDTA2MDkxMzA5MjIxMFoXDTI0MDkxMzA5Mjc1N1owgY8xCzAJBgNVBAYTAkxW
+MTUwMwYDVQQKEyxWQVMgTGF0dmlqYXMgUGFzdHMgLSBWaWVuLnJlZy5Oci40MDAw
+MzA1Mjc5MDEjMCEGA1UECxMaU2VydGlmaWthY2lqYXMgcGFrYWxwb2p1bWkxJDAi
+BgNVBAMTG1ZBUyBMYXR2aWphcyBQYXN0cyBTU0koUkNBKTCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBAJu4+f1hVS9PpKUUtS6OuSSPrPuxVD9A/0/F5YZo
+e1OT+zWCNahQLpRSoNuDPnXaFXCsCc/ugkmtNkm5tHGLtAChQgbKCApjl7YI/O60
+3Jh4GYLJ+H9kPqrJ/rGN67Bk9bzzxD46kOpOjj8bGbxqg8ORPGxV+wpSwOjhXXeF
+M8VJ3+xqv79sN/6OSaIVGM6LjmseOKMwb4iBfnJWRBrEejkP9sSPltSy6wBOXN67
+5zu35iQFk2tN5pFEv+6YG8eFGxFBeyI2p74+6Ho33BjekJ2PzbLXmj/iF39bDOHv
+P2Y9biTksM7DDIhslNo4JXxSOeNzFLMARWOaDEJAXgTG93JkzsluM7Pk020klTeT
+fvIAXRmLH/NDc6ifRdIGqey0Qrv67gzHTz9RH9Gv0KwYf4eBIv6p3QeWbXz4TtlN
+OlBp1UF+xdp02I5z5X6D4cMZgbe9v0COvi6aogyqTgIuuyrhCF0xA8msJ7Cv3NXI
+FH1AnVWJIfmQzNTJYEFzq+jN2DpVOQqCmf6b9fU8HJHLwPpGVK4h/CqsXHveepdx
+/WxrzUiapNuBfBg3L5B9YZS9F8lctlQWd8oJSqrpvE+UdQFaVryS0o+515feVnQB
+9xZxSbH1GEaZQe5i4bMsZXVpKXJDA/ibH/o49J7sQBCOrJfVsDO+nxjcLfdBeFRK
+YkTnAgMBAAGjggH9MIIB+TAOBgNVHQ8BAf8EBAMCAQYwGAYIKwYBBQUHAQMEDDAK
+MAgGBgQAjkYBATAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTMw/Vm/3OsOFqW
+GyGJuIFMH8teJTAQBgkrBgEEAYI3FQEEAwIBADCCAYkGA1UdIASCAYAwggF8MIIB
+eAYLKwYBBAGBxFkBAQIwggFnMIIBOAYIKwYBBQUHAgIwggEqHoIBJgBTAGkAcwAg
+AGkAcgAgAHMAZQByAHQAaQBmAGkAawBhAHQAcwAsACAAawBvACAAaQB6AGQAZQB2
+AGkAcwAgAFYAQQBTACAATABhAHQAdgBpAGoAYQBzACAAUABhAHMAdABzACwAIABu
+AG8AZAByAG8AcwBpAG4AbwB0ACAAYQB0AGIAaQBsAHMAdABpAGIAdQAgAEUAbABl
+AGsAdAByAG8AbgBpAHMAawBvACAAZABvAGsAdQBtAGUAbgB0AHUAIABsAGkAawB1
+AG0AYQBtACAAdQBuACAARQBpAHIAbwBwAGEAcwAgAFAAYQByAGwAYQBtAGUAbgB0
+AGEAIABkAGkAcgBlAGsAdABpAHYAYQBpACAAMQA5ADkAOQAvADkAMwAvAEUASzAp
+BggrBgEFBQcCARYdaHR0cDovL3d3dy5lLW1lLmx2L3JlcG9zaXRvcnkwDQYJKoZI
+hvcNAQEFBQADggIBAB8oSjWQIWNoCi94r6MegiaXoz8nGdJLo0J6BhNlW8EEy+t9
+fO+U8vGJ9bffUgIhadLqljTloM+XuJxVDhCFoxReLAX4tTp28/l6uN62DCdp8suU
+kQsdudWOb5kvzfIZVjk6SFbwAf+Cdbay/dHU9fJjV0xNoX7MELoEae/0FPyzlx9F
+7m9KKH/Rxie8x6Opa3vtghNvq94P+3HrXBEaqSzQMJ/8NjdW75XpurcTtq6fAmGt
+nuxrBG82nw+Z98LJyEwouSjUIdeeVNXAzvSO5FWUe48kxjj8q3qkVnc9qEXvZJKk
+0Ep+u3OL9A1Sc7g6SF5DgNOpcHdi/8coHHMeQ+YnJFtJueY2pI79xS0veqV5EnrX
+IbIlbcgPosNhS+VI4le6n/KKId3bZPDaGd/OwJuAOcJ3d2MVU3KE+qSPBzeGIX1Q
++j1qN9uRDjez/c4Lynth0Jx0nH04aG3pex3W8Sq07ztgUncF5gLCX4xbvPB9t3PH
+kWuyKrNjozTVq60lcUf/Gj56to2VdsPups0DCWzuRWeYz5lIdsHOinSaaFIBNCLI
+7eIUC4S9bhCMsXKbvugI11fVf+q0AT1O5OLoZ+eMfunnQhHvlUbIkda+JxeAGTSY
+58bfHvwhX56GPbx+8Jy9cp70R4JbcWfz+txUTKhc2FnH0AcOEzMnvPRp8Gsh
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFKjCCBBKgAwIBAgIPRHTsyGxyHljduCx+9PyVMA0GCSqGSIb3DQEBBQUAMHwx
+CzAJBgNVBAYTAkVTMUswSQYDVQQKE0JBZ2VuY2lhIE5vdGFyaWFsIGRlIENlcnRp
+ZmljYWNpb24gUy5MLiBVbmlwZXJzb25hbCAtIENJRiBCODMzOTU5ODgxIDAeBgNV
+BAMTF0FOQ0VSVCBDZXJ0aWZpY2Fkb3MgQ0dOMB4XDTA0MDIxMTE3MjcxMloXDTI0
+MDIxMTE3MjcxMlowfDELMAkGA1UEBhMCRVMxSzBJBgNVBAoTQkFnZW5jaWEgTm90
+YXJpYWwgZGUgQ2VydGlmaWNhY2lvbiBTLkwuIFVuaXBlcnNvbmFsIC0gQ0lGIEI4
+MzM5NTk4ODEgMB4GA1UEAxMXQU5DRVJUIENlcnRpZmljYWRvcyBDR04wggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCQdT8/DKzK1HzESKcYuzq7obvVe9+L
+GeSCRPtl7LYSYT5pIhliNSS21RAGqUVqJCr1J4x4PMi58wVsxQID0k6AZOyGq3iU
+IgIAtWib1OVVX+DIgDDnC79r1wSOTnmYcEwcJrmzqOrwEaK5ilMCJnUSieH7iE5Z
+egDRgtgWruW2vJUlYEB3JRue743k/fBPMzElv+56ClTwkDhnEnulYNoMAYmadocu
+9RtDe+XnJkr7FWKrRRt71QqlTWxNq58oSIThg3W4GHBVU9vQ3ymQrznGF5XBlMVe
+2WVfXf9uFpWYIZ9eTfDNMTkhAxcNkR+hVZlB7FXJuz2ZXJvFf9EcXupTAgMBAAGj
+ggGnMIIBozAPBgNVHRMBAf8EBTADAQH/MIIBIAYDVR0gBIIBFzCCARMwggEPBgkr
+BgEEAYGTaAQwggEAMCUGCCsGAQUFBwIBFhlodHRwOi8vd3d3LmFuY2VydC5jb20v
+Y3BzMIHWBggrBgEFBQcCAjCByTANFgZBTkNFUlQwAwIBARqBt0FnZW5jaWEgTm90
+YXJpYWwgZGUgQ2VydGlmaWNhY2lvbi4gTGEgZGVjbGFyYWNpb24gZGUgcHJhY3Rp
+Y2FzIGRlIGNlcnRpZmlhY2lvbiBxdWUgcmlnZSBlbCBmdW5jaW9uYW1pZW50byBk
+ZSBsYSBwcmVzZW50ZSBhdXRvcmlkYWQgc2UgZW5jdWVudHJhIGRpc3BvbmlibGUg
+ZW4gaHR0cDovL3d3dy5hbmNlcnQuY29tL2NwczAOBgNVHQ8BAf8EBAMCAYYwHAYD
+VR0RBBUwE4ERYW5jZXJ0QGFuY2VydC5jb20wHwYDVR0jBBgwFoAU7FefyHYib8w6
+rlvwLaFiWNGNAswwHQYDVR0OBBYEFOxXn8h2Im/MOq5b8C2hYljRjQLMMA0GCSqG
+SIb3DQEBBQUAA4IBAQCLPd/cNix/J5z8tVhTcQoSXRBkUXG1Slb0XkRnHu8dsvGk
+UTxnbCxllnqhEqOvCwg3DpnWbiiHC2KrTnhOcoGb3xFPiWDIUaYbBglxc3w3txw4
+N5r5h+Hvoe5/18DqORT6fG8L+YbK5sV3aaCfjSmjd27FzNr23QZ602lmPmA74zLf
+rvAbniqdzITfGhBH7aVWlkI3tS1yDUESk7oyiETIrgnEvYDt/WAPcrK2ZPZjIDJw
+d4cuMy6fNchfqJJWt/8kOixd8iYFaBnyUWfP31IJ6YIEemuCp3/l0ql0axgmyLrU
+1R6lSzsmwZ0i4fsSvdViRtXXXdLdw/xhDTAFTwWL
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFPDCCBCSgAwIBAgIRAPTPierdpMY+ka1IDi0iNoQwDQYJKoZIhvcNAQEFBQAw
+gYMxCzAJBgNVBAYTAkVTMUswSQYDVQQKE0JBZ2VuY2lhIE5vdGFyaWFsIGRlIENl
+cnRpZmljYWNpb24gUy5MLiBVbmlwZXJzb25hbCAtIENJRiBCODMzOTU5ODgxJzAl
+BgNVBAMTHkFOQ0VSVCBDZXJ0aWZpY2Fkb3MgTm90YXJpYWxlczAeFw0wNDAyMTEx
+NTU4MzBaFw0yNDAyMTExNTU4MjZaMIGDMQswCQYDVQQGEwJFUzFLMEkGA1UEChNC
+QWdlbmNpYSBOb3RhcmlhbCBkZSBDZXJ0aWZpY2FjaW9uIFMuTC4gVW5pcGVyc29u
+YWwgLSBDSUYgQjgzMzk1OTg4MScwJQYDVQQDEx5BTkNFUlQgQ2VydGlmaWNhZG9z
+IE5vdGFyaWFsZXMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDwkQ/Q
+Zy0psmNNHzV59mVrufPztViTJ2RPp9VbggVym38drgjSjNDRyWCwmRk11hnGADlp
+fSLvdCKDtH7qEIs+Mxzh3WQ2KfNSSm5Bw75RDB9juL+NqT8xMTu78TZEPCdlFHl1
+5hCkPFgby1NiEvWHWkaieaNg4xao3oSm+uXMxBAy9kLaR00YPeZ6DysOY/9nfUPV
+dBaQNLQPziZzIcFK2mTkT+Mjtdn2q7dKf5bhy0f9BkPRlDRpCv496GaqJgzVYzkG
+cJOtfLPkR8E7R45plwyRoEwHj8mATK5wk2iPocMiwvF1myh9kpJVOqhZGewSMRzv
+nRfcuUAJW/QtEyZzAgMBAAGjggGnMIIBozAcBgNVHREEFTATgRFhbmNlcnRAYW5j
+ZXJ0LmNvbTAfBgNVHSMEGDAWgBSE9/pyXohkZh0ojLB3vQxqn0xNYjAPBgNVHRMB
+Af8EBTADAQH/MIIBIAYDVR0gBIIBFzCCARMwggEPBgkrBgEEAYGTaAEwggEAMCUG
+CCsGAQUFBwIBFhlodHRwOi8vd3d3LmFuY2VydC5jb20vY3BzMIHWBggrBgEFBQcC
+AjCByTANFgZBTkNFUlQwAwIBARqBt0FnZW5jaWEgTm90YXJpYWwgZGUgQ2VydGlm
+aWNhY2lvbi4gTGEgZGVjbGFyYWNpb24gZGUgcHJhY3RpY2FzIGRlIGNlcnRpZmlh
+Y2lvbiBxdWUgcmlnZSBlbCBmdW5jaW9uYW1pZW50byBkZSBsYSBwcmVzZW50ZSBh
+dXRvcmlkYWQgc2UgZW5jdWVudHJhIGRpc3BvbmlibGUgZW4gaHR0cDovL3d3dy5h
+bmNlcnQuY29tL2NwczAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIT3+nJeiGRm
+HSiMsHe9DGqfTE1iMA0GCSqGSIb3DQEBBQUAA4IBAQAv+OXYM6XClG5ewPHuoUwK
+rYYPwDPdntLZm+7FK4UpdqylElOTHaoH7Ok5ZAto8HUk6dGGjJxTausVoQm3GQe5
+nY8CshtJcMJjdN0Lqv4HxjdWxoP+wE8czDiq/e5VmIlcwlOtIIe6FmRSYezBn7vU
+YtEqyF3wK/jaEs4jy7HMwdIKvfzAgE5VSfqJ2GSjSsrui9fl7ZL7YOLiKs8tKD6m
+/4CcZcwSnqUcdFmQpYd/ZxWAEMCh0agw7KECkYpa0yMXk1pHIXnqM3oPfzg1mspW
+uL9kuqewtVEdFp6OiX04OsuETQeY2OXhjAVqpTcM1nkpPvFCxLb36hmgYeACTr8S
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFTTCCBDWgAwIBAgIQP7Ll8tF8ixhkVmKpOYF/pzANBgkqhkiG9w0BAQUFADCB
+jDELMAkGA1UEBhMCRVMxSzBJBgNVBAoTQkFnZW5jaWEgTm90YXJpYWwgZGUgQ2Vy
+dGlmaWNhY2lvbiBTLkwuIFVuaXBlcnNvbmFsIC0gQ0lGIEI4MzM5NTk4ODEwMC4G
+A1UEAxMnQU5DRVJUIENvcnBvcmFjaW9uZXMgZGUgRGVyZWNobyBQdWJsaWNvMB4X
+DTA0MDIxMTE3MjI0NVoXDTI0MDIxMTE3MjI0NVowgYwxCzAJBgNVBAYTAkVTMUsw
+SQYDVQQKE0JBZ2VuY2lhIE5vdGFyaWFsIGRlIENlcnRpZmljYWNpb24gUy5MLiBV
+bmlwZXJzb25hbCAtIENJRiBCODMzOTU5ODgxMDAuBgNVBAMTJ0FOQ0VSVCBDb3Jw
+b3JhY2lvbmVzIGRlIERlcmVjaG8gUHVibGljbzCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAKIhlYfciuvWepCoaDX9F/x0OlQQkjWTQnUu2D7LqZShvmo3
+P1K6pHvahJkWeU4AaNQfE+lGOzxKnYM62CHvwvJAReEPYEUE7fyKGC75PeSkETIg
+jjq37pZAFRqZ6SGdcqzNH4muqtmhQLCoZ778eg5HsV68+DBqjjefBULsLMOmG4ur
+xFA9+uRz9SGwuFVfh+CiRzgvQF9PbKuUJFbjTI9+kOkngiibmLqa1rWbV29rFRz5
+u3ApfTz3E6jRcfGw/ohFcamldGXLw/n1Aw8Qw4YwAG7BwCaiiP4hxzI9u8Z7G7eb
+irP6sXxx2QGnQpCqL5iQhKrexq3sPFFKBR0BUZsCAwEAAaOCAacwggGjMA8GA1Ud
+EwEB/wQFMAMBAf8wggEgBgNVHSAEggEXMIIBEzCCAQ8GCSsGAQQBgZNoAzCCAQAw
+JQYIKwYBBQUHAgEWGWh0dHA6Ly93d3cuYW5jZXJ0LmNvbS9jcHMwgdYGCCsGAQUF
+BwICMIHJMA0WBkFOQ0VSVDADAgEBGoG3QWdlbmNpYSBOb3RhcmlhbCBkZSBDZXJ0
+aWZpY2FjaW9uLiBMYSBkZWNsYXJhY2lvbiBkZSBwcmFjdGljYXMgZGUgY2VydGlm
+aWFjaW9uIHF1ZSByaWdlIGVsIGZ1bmNpb25hbWllbnRvIGRlIGxhIHByZXNlbnRl
+IGF1dG9yaWRhZCBzZSBlbmN1ZW50cmEgZGlzcG9uaWJsZSBlbiBodHRwOi8vd3d3
+LmFuY2VydC5jb20vY3BzMA4GA1UdDwEB/wQEAwIBhjAcBgNVHREEFTATgRFhbmNl
+cnRAYW5jZXJ0LmNvbTAfBgNVHSMEGDAWgBSMTB43DLGf0qxECzq+As/0jS1mlTAd
+BgNVHQ4EFgQUjEweNwyxn9KsRAs6vgLP9I0tZpUwDQYJKoZIhvcNAQEFBQADggEB
+AEd0wJSR4qX7mFJEk2zEwB3gedtpZC1hrqR3kTW1t8qXqsCxhvUbaGuqWLJ8P+cD
+J/hBcbym0iCpgJWiR61tRnSthJvYb6n1uS9tm8DdmYftWbJ1gaWJhSrM0IWBTfOv
+d96MwSiaQqwFhww0nHGH/ewBFB++wy7w3/okpl0fPPGiC1GIAa4Sh6S1XXGy3+8N
+fCDjfxMLTabAd8w/1g9xx3FMLh76GQZlya1WbHeNRj+9MIMe4C5VuHgjdDxYCmM6
+TYF7bzVwrrYl2fYk/iPG2hqIr6gUk3PgwFuwMWka9ilfVrcaCsL5C+oCwTMRYmp8
+Q+jqGquQAIXgRQ99jrpQ1cY=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIH/jCCBeagAwIBAgIBADANBgkqhkiG9w0BAQUFADCB1DELMAkGA1UEBhMCQVQx
+DzANBgNVBAcTBlZpZW5uYTEQMA4GA1UECBMHQXVzdHJpYTE6MDgGA1UEChMxQVJH
+RSBEQVRFTiAtIEF1c3RyaWFuIFNvY2lldHkgZm9yIERhdGEgUHJvdGVjdGlvbjEq
+MCgGA1UECxMhR0xPQkFMVFJVU1QgQ2VydGlmaWNhdGlvbiBTZXJ2aWNlMRQwEgYD
+VQQDEwtHTE9CQUxUUlVTVDEkMCIGCSqGSIb3DQEJARYVaW5mb0BnbG9iYWx0cnVz
+dC5pbmZvMB4XDTA2MDgwNzE0MTIzNVoXDTM2MDkxODE0MTIzNVowgdQxCzAJBgNV
+BAYTAkFUMQ8wDQYDVQQHEwZWaWVubmExEDAOBgNVBAgTB0F1c3RyaWExOjA4BgNV
+BAoTMUFSR0UgREFURU4gLSBBdXN0cmlhbiBTb2NpZXR5IGZvciBEYXRhIFByb3Rl
+Y3Rpb24xKjAoBgNVBAsTIUdMT0JBTFRSVVNUIENlcnRpZmljYXRpb24gU2Vydmlj
+ZTEUMBIGA1UEAxMLR0xPQkFMVFJVU1QxJDAiBgkqhkiG9w0BCQEWFWluZm9AZ2xv
+YmFsdHJ1c3QuaW5mbzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANIS
+R+xfmOgNhhVJxN3snvFszVG2+5VPi8SQPVMzsdMTxUjipb/19AOED5x4cfaSl/Fb
+WXUYPycLUS9caMeh6wDz9pU9acN+wqzECjZyelum0PcBeyjHKscyYO5ZuNcLJ92z
+RQUre2Snc1zokwKXaOz8hNue1NWBR8acwKyXyxnqh6UKo7h1JOdQJw2rFvlWXbGB
+ARZ98+nhJPMIIbm6rF2ex0h5f2rK3zl3BG0bbjrNf85cSKwSPFnyas+ASOH2AGd4
+IOD9tWR7F5ez5SfdRWubYZkGvvLnnqRtiztrDIHutG+hvhoSQUuerQ75RrRa0QMA
+lBbAwPOs+3y8lsAp2PkzFomjDh2V2QPUIQzdVghJZciNqyEfVLuZvPFEW3sAGP0q
+GVjSBcnZKTYl/nfua1lUTwgUopkJRVetB94i/IccoO+ged0KfcB/NegMZk3jtWoW
+WXFb85CwUl6RAseoucIEb55PtAAt7AjsrkBu8CknIjm2zaCGELoLNex7Wg22ecP6
+x63B++vtK4QN6t7565pZM2zBKxKMuD7FNiM4GtZ3k5DWd3VqWBkXoRWObnYOo3Ph
+XJVJ28EPlBTF1WIbmas41Wdu0qkZ4Vo6h2pIP5GW48bFJ2tXdDGY9j5xce1+3rBN
+LPPuj9t7aNcQRCmt7KtQWVKabGpyFE0WFFH3134fAgMBAAGjggHXMIIB0zAdBgNV
+HQ4EFgQUwAHV4HgfL3Q64+vAIVKmBO4my6QwggEBBgNVHSMEgfkwgfaAFMAB1eB4
+Hy90OuPrwCFSpgTuJsukoYHapIHXMIHUMQswCQYDVQQGEwJBVDEPMA0GA1UEBxMG
+Vmllbm5hMRAwDgYDVQQIEwdBdXN0cmlhMTowOAYDVQQKEzFBUkdFIERBVEVOIC0g
+QXVzdHJpYW4gU29jaWV0eSBmb3IgRGF0YSBQcm90ZWN0aW9uMSowKAYDVQQLEyFH
+TE9CQUxUUlVTVCBDZXJ0aWZpY2F0aW9uIFNlcnZpY2UxFDASBgNVBAMTC0dMT0JB
+TFRSVVNUMSQwIgYJKoZIhvcNAQkBFhVpbmZvQGdsb2JhbHRydXN0LmluZm+CAQAw
+DwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAcYwEQYDVR0gBAowCDAGBgRVHSAA
+MD0GA1UdEQQ2MDSBFWluZm9AZ2xvYmFsdHJ1c3QuaW5mb4YbaHR0cDovL3d3dy5n
+bG9iYWx0cnVzdC5pbmZvMD0GA1UdEgQ2MDSBFWluZm9AZ2xvYmFsdHJ1c3QuaW5m
+b4YbaHR0cDovL3d3dy5nbG9iYWx0cnVzdC5pbmZvMA0GCSqGSIb3DQEBBQUAA4IC
+AQAVO4iDXg7ePvA+XdwtoUr6KKXWB6UkSM6eeeh5mlwkjlhyFEGFx0XuPChpOEmu
+Io27jAVtrmW7h7l+djsoY2rWbzMwiH5VBbq5FQOYHWLSzsAPbhyaNO7krx9i0ey0
+ec/PaZKKWP3Bx3YLXM1SNEhr5Qt/yTIS35gKFtkzVhaP30M/170/xR7FrSGshyya
+5BwfhQOsi8e3M2JJwfiqK05dhz52Uq5ZfjHhfLpSi1iQ14BGCzQ23u8RyVwiRsI8
+p39iBG/fPkiO6gs+CKwYGlLW8fbUYi8DuZrWPFN/VSbGNSshdLCJkFTkAYhcnIUq
+mmVeS1fygBzsZzSaRtwCdv5yN3IJsfAjj1izAn3ueA65PXMSLVWfF2Ovrtiuc7bH
+UGqFwdt9+5RZcMbDB2xWxbAH/E59kx25J8CwldXnfAW89w8Ks/RuFVdJG7UUAKQw
+K1r0Vli/djSiPf4BJvDduG3wpOe8IPZRCPbjN4lXNvb3L/7NuGS96tem0P94737h
+HB5Ufg80GYEQc9LjeAYXttJR+zV4dtp3gzdBPi1GqH6G3lb0ypCetK2wHkUYPDSI
+Aofo8DaR6/LntdIEuS64XY0dmi4LFhnNdqSr+9Hio6LchH176lDq9bIEO4lSOrLD
+GU+5JrG8vCyy4YGms2G19EVgLyx1xcgtiEsmu3DuO38BLQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDzDCCArSgAwIBAgILBAAAAAABBVJkwZUwDQYJKoZIhvcNAQEFBQAwUzELMAkG
+A1UEBhMCQkUxHDAaBgNVBAoTE0NlcnRpcG9zdCBzLmEuL24udi4xJjAkBgNVBAMT
+HUNlcnRpcG9zdCBFLVRydXN0IFRPUCBSb290IENBMB4XDTA1MDcyNjEwMDAwMFoX
+DTI1MDcyNjEwMDAwMFowUzELMAkGA1UEBhMCQkUxHDAaBgNVBAoTE0NlcnRpcG9z
+dCBzLmEuL24udi4xJjAkBgNVBAMTHUNlcnRpcG9zdCBFLVRydXN0IFRPUCBSb290
+IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApdRLQNb78TUYO6Kw
+Q+TJVaHAB7sIvjoZtSPDHp2zCEr0Q0vpwRlgkN+E11jGOt0KLJUsvZd//qJ12gbj
+q5ts0bjPRIbBUmC33D47sPLpxFE8SrmDuU5hagObHFKAOlC0ILLb07LGVH/LYJvI
+JJ6vCcdlDSj22poiwjNu8vMl1KT5lvVvqjxr3EEw5eZvykgfMHgdeX2n0b+uxV5D
++cYvg3abNEqkKFgrqIiFRGor8lZCdpmQM6ru+SHP8j35d4TL3SmExNSKKqQ5XD75
+HCVoTfXnm12xGjReygJz+QjEDG1e3RIq5XvFNnhSnTLBxSilIKjlmA25b8+5gJ7l
+vrmb/QIDAQABo4GgMIGdMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/
+MB0GA1UdDgQWBBRL3r4FMS7zNcjYyqdWxZQNtFplxTBIBgNVHSAEQTA/MD0GCQOQ
+DgcBAAECADAwMC4GCCsGAQUFBwIBFiJodHRwOi8vd3d3LmUtdHJ1c3QuYmUvQ1BT
+L1FOY2VydHMgMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA
+iWPMos74VGp8WTR4qwG0li0qIW5ALV/QliKZgwUc5STN4vU1BL8AlgfssqQ6aisj
+PskPyhMduCSWCSbYPCqBzuGByMlzPvW7DwgekOCwkrnSOpdQ4AaO5IIwPGAgt6Tu
+q4kG4fwlu5HU+bdfaGOooGiGa6fskssi+lBbE1gnritDC7YXxjByBDNEJkpEBx9z
+oINBKeCSBrzVAer+vK9x6yAfCl0NoClezuRBUVWWwx+0MaWj81Pq/8KchnLPNkxW
+WgYyfl6rSqHOp+ufpIwquSSLuLXzBk2myn2Z+/ZV6q5Iee4mWdMfDFMV92JR+YQN
+lmxesQjmWQgrJikKwYNAcw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID3jCCAsagAwIBAgILBAAAAAABBVJkxCUwDQYJKoZIhvcNAQEFBQAwXDELMAkG
+A1UEBhMCQkUxHDAaBgNVBAoTE0NlcnRpcG9zdCBzLmEuL24udi4xLzAtBgNVBAMT
+JkNlcnRpcG9zdCBFLVRydXN0IFByaW1hcnkgUXVhbGlmaWVkIENBMB4XDTA1MDcy
+NjEwMDAwMFoXDTIwMDcyNjEwMDAwMFowXDELMAkGA1UEBhMCQkUxHDAaBgNVBAoT
+E0NlcnRpcG9zdCBzLmEuL24udi4xLzAtBgNVBAMTJkNlcnRpcG9zdCBFLVRydXN0
+IFByaW1hcnkgUXVhbGlmaWVkIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAriDSeNuaoHKcBFIlLG1S2NcniTOg4bLV+zB1ay1/HGeODucfEt8XeRi7
+tBtv+D11G55nN/Dx+g917YadAwShKHAtPLJroHNR4zWpdKUIPpSFJzYqqnJk/Hfu
+dpQccuu/Msd3A2olggkFr19gPH+sG7yS6Dx0Wc7xfFQtOK6W8KxvoTMMIVoBuiMg
+W6CGAtVT3EkfqDKzrztGO7bvnzmzOAvneor2KPmnb1ApyHlYi0nSpdiFflbxaRV4
+RBE116VUPqtmJdLb4xjxLivicSMJN2RDQnQylnfel6LploacJUQJ1AGdUX4ztwlE
+5YCXDWRbdxiXpUupnhCdh/pWp88KfQIDAQABo4GgMIGdMA4GA1UdDwEB/wQEAwIB
+BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTwePkHdxC73B6hrnn7MBDbxjT4
+FzBIBgNVHSAEQTA/MD0GCQOQDgcBAAECADAwMC4GCCsGAQUFBwIBFiJodHRwOi8v
+d3d3LmUtdHJ1c3QuYmUvQ1BTL1FOY2VydHMgMBEGCWCGSAGG+EIBAQQEAwIABzAN
+BgkqhkiG9w0BAQUFAAOCAQEAbOHYX3RY6XBJ1soNLFjaymS2UU/DBmQB6YpzHZ7P
+Rni/O4WG4j1KGJQqgXdvgvhv9O4i/J0YIXJguxiAgpX7+feVJIFmwbXDtdK2dos7
+gVy4oQ4rARSLgAlA7vhgTBnkF80nAbNjEgWkCMm0v55QTrXeD5IzZnXQPecjfOol
+cXz+Pi42eaHlKVAjNQWVeLufeWTcV0gnLOJcM83Cu35od6cvo0kXcuEAhGt9eq85
+CyzV2FdkMmyECmp2OtOszZ2x5zfc7AwvxVdg34j1Q7EBZCa0J4IQsqNQ75fmf7+R
+h7PbkKkq4no0bHNJ9OiNLmuK3aGKf2PQv1ger8w/klAt0Q==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID4DCCAsigAwIBAgILBAAAAAABBVJkx2EwDQYJKoZIhvcNAQEFBQAwXTELMAkG
+A1UEBhMCQkUxHDAaBgNVBAoTE0NlcnRpcG9zdCBzLmEuL24udi4xMDAuBgNVBAMT
+J0NlcnRpcG9zdCBFLVRydXN0IFByaW1hcnkgTm9ybWFsaXNlZCBDQTAeFw0wNTA3
+MjYxMDAwMDBaFw0yMDA3MjYxMDAwMDBaMF0xCzAJBgNVBAYTAkJFMRwwGgYDVQQK
+ExNDZXJ0aXBvc3Qgcy5hLi9uLnYuMTAwLgYDVQQDEydDZXJ0aXBvc3QgRS1UcnVz
+dCBQcmltYXJ5IE5vcm1hbGlzZWQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQDVs6pShHoXkyIPuAQYysnygiqsFQunUHG2TCVr9/8Bqldad05eExQN
+VfIe8YXNhdeCHAzaCSu9/bye/m2JTaICJOZR6jd/MUZae5p2sy6gXV/k+JkKB77u
+kiYSyXvnXWzQg0cOwIyn0XlXwAsZnJueQ8VOkSXOiCttedl5itZmTiLDGkVO78iw
+YiZOJlRQnwxvs2vMfJ9/3g8NtY/Da9Thwvu7VlCqjD2PAIs8/EgXatJa83VtZYG9
+Rl2fomJTrs7zqeSRK1omw3lm0aZTZjUcBnGx7pkOxPtYEqwiRi3iIpLb4Ty/u/6G
+55M0c894adPL3vkMsmjayYoKYFTE81ZjAgMBAAGjgaAwgZ0wDgYDVR0PAQH/BAQD
+AgEGMA8GA1UdEwEB/wQFMAMBAf8wSAYDVR0gBEEwPzA9BgkDkA4HAQABAgAwMDAu
+BggrBgEFBQcCARYiaHR0cDovL3d3dy5lLXRydXN0LmJlL0NQUy9RTmNlcnRzIDAd
+BgNVHQ4EFgQUEfILltIzOIFXWBP9QKQRb06Z+mcwEQYJYIZIAYb4QgEBBAQDAgAH
+MA0GCSqGSIb3DQEBBQUAA4IBAQA1a0/enfMDth3IvI3nXmqeqentoiuX6q/R4UbT
+Akl9xFKF67r20785Yhidk0m9eAO/014V3e8nHOG7RQEigQBNOuCFyloyA8wgj6/v
+wduo+vPc17KxDwOBCSngcXyL+n/LNm4b6BTO8EsmoTIpT8y09YdIDBP8x52vq9ST
+9SpNf0iCWD4X/8OAKqs/V1W4OSxmEGQmbYxr1t2ggxpaVhGWRr2ucCjWOFdbkdU/
+Temss8MkSpZlXDTQHtS/CKWXXfdG23bwzT51YwArr62uht5fpplUDYUjpfy67RtS
++kkYd4VbqnKbJwg1RTcn25fJ+os9yNCd3lrvXaMWtph5ynzL
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG
+A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh
+bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE
+ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS
+b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5
+7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS
+J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y
+HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP
+t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz
+FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY
+XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/
+MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw
+hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js
+MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA
+A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj
+Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx
+XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o
+omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc
+A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW
+WL1WMRJOEcgh4LMRkWXbtKaIOM5V
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
+A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
+Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
+MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
+A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
+v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
+eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
+tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
+C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
+zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
+mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
+V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
+bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
+3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
+J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
+291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
+ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
+AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
+TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYT
+AkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQ
+TS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG
+9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMB4XDTAyMTIxMzE0MjkyM1oXDTIw
+MTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAM
+BgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEO
+MAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2
+LmZyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaI
+s9z4iPf930Pfeo2aSVz2TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2
+xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCWSo7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4
+u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYyHF2fYPepraX/z9E0+X1b
+F8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNdfrGoRpAx
+Vs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGd
+PDPQtQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNV
+HSAEDjAMMAoGCCqBegF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAx
+NjAfBgNVHSMEGDAWgBSjBS8YYFDCiQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUF
+AAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RKq89toB9RlPhJy3Q2FLwV3duJ
+L92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3QMZsyK10XZZOY
+YLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
+Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2a
+NjSaTFR+FwNIlQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R
+0982gaEbeC9xs/FZTEYYKKuF0mBWWg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt
+MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg
+Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i
+YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x
+CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG
+b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh
+bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3
+HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx
+WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX
+1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk
+u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P
+99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r
+M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw
+AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB
+BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh
+cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5
+gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO
+ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf
+aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic
+Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCB
+ijELMAkGA1UEBhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHly
+aWdodCAoYykgMjAwNTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl
+ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQSBDQTAeFw0w
+NTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYDVQQGEwJDSDEQMA4G
+A1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIwIAYD
+VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBX
+SVNlS2V5IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAy0+zAJs9Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxR
+VVuuk+g3/ytr6dTqvirdqFEr12bDYVxgAsj1znJ7O7jyTmUIms2kahnBAbtzptf2
+w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbDd50kc3vkDIzh2TbhmYsF
+mQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ/yxViJGg
+4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t9
+4B3RLoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYw
+DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQw
+EAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOx
+SPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vImMMkQyh2I+3QZH4VFvbBsUfk2
+ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4+vg1YFkCExh8
+vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa
+hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZi
+Fj4A4xylNoEYokxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ
+/L7fCg0=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UE
+BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dpc3NTaWdu
+IFBsYXRpbnVtIENBIC0gRzIwHhcNMDYxMDI1MDgzNjAwWhcNMzYxMDI1MDgzNjAw
+WjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFHMSMwIQYDVQQD
+ExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZcZB/HL37PZ/pEQtZ2Y5Wu669y
+IIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeTIsBQnIJ71NUERFzLtMKfkr4k2Htn
+IuJpX+UFeNSH2XFwMyVTtIc7KZAoNppVRDBopIOXfw0enHb/FZ1glwCNioUD7IC+
+6ixuEFGSzH7VozPY1kneWCqv9hbrS3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5ob
+jM89o03Oy3z2u5yg+gnOI2Ky6Q0f4nIoj5+saCB9bzuohTEJfwvH6GXp43gOCWcw
+izSC+13gzJ2BbWLuCB4ELE6b7P6pT1/9aXjvCR+htL/68++QHkwFix7qepF6w9fl
++zC8bBsQWJj3Gl/QKTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34TaNhxKFrY
+zt3oEBSa/m0jh26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaP
+pZjydomyExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtF
+KwH3HBqi7Ri6Cr2D+m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuW
+ae5ogObnmLo2t/5u7Su9IPhlGdpVCX4l3P5hYnL5fhgC72O00Puv5TtjjGePAgMB
+AAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
+BBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCvzAeHFUdvOMW0
+ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4wLAYIKwYBBQUHAgEW
+IGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20vMA0GCSqGSIb3DQEBBQUA
+A4ICAQAIhab1Fgz8RBrBY+D5VUYI/HAcQiiWjrfFwUF1TglxeeVtlspLpYhg0DB0
+uMoI3LQwnkAHFmtllXcBrqS3NQuB2nEVqXQXOHtYyvkv+8Bldo1bAbl93oI9ZLi+
+FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vlpqD4U99REJNi54Av4tHgvI42Rncz7Lj7
+jposiU0xEQ8mngS7twSNC/K5/FqdOxa3L8iYq/6KUFkuozv8KV2LwUvJ4ooTHbG/
+u0IdUt1O2BReEMYxB+9xJ/cbOQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl9x8D
+YSjFyMsSoEJL+WuICI20MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1
+puEa+S1BaYEUtLS17Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXa
+icYwu+uPyyIIoK6q8QNsOktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbG
+DI8Zf0NebvRbFS/bYV3mZy8/CJT5YLSYMdp08YSTcU1f+2BY0fvEwW2JorsgH51x
+kcsymxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAciIfNAChs0B0QTwoRqjt8Z
+Wr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEezCCA2OgAwIBAgIQNxkY5lNUfBq1uMtZWts1tzANBgkqhkiG9w0BAQUFADCB
+rjELMAkGA1UEBhMCREUxIDAeBgNVBAgTF0JhZGVuLVd1ZXJ0dGVtYmVyZyAoQlcp
+MRIwEAYDVQQHEwlTdHV0dGdhcnQxKTAnBgNVBAoTIERldXRzY2hlciBTcGFya2Fz
+c2VuIFZlcmxhZyBHbWJIMT4wPAYDVQQDEzVTLVRSVVNUIEF1dGhlbnRpY2F0aW9u
+IGFuZCBFbmNyeXB0aW9uIFJvb3QgQ0EgMjAwNTpQTjAeFw0wNTA2MjIwMDAwMDBa
+Fw0zMDA2MjEyMzU5NTlaMIGuMQswCQYDVQQGEwJERTEgMB4GA1UECBMXQmFkZW4t
+V3VlcnR0ZW1iZXJnIChCVykxEjAQBgNVBAcTCVN0dXR0Z2FydDEpMCcGA1UEChMg
+RGV1dHNjaGVyIFNwYXJrYXNzZW4gVmVybGFnIEdtYkgxPjA8BgNVBAMTNVMtVFJV
+U1QgQXV0aGVudGljYXRpb24gYW5kIEVuY3J5cHRpb24gUm9vdCBDQSAyMDA1OlBO
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2bVKwdMz6tNGs9HiTNL1
+toPQb9UY6ZOvJ44TzbUlNlA0EmQpoVXhOmCTnijJ4/Ob4QSwI7+Vio5bG0F/WsPo
+TUzVJBY+h0jUJ67m91MduwwA7z5hca2/OnpYH5Q9XIHV1W/fuJvS9eXLg3KSwlOy
+ggLrra1fFi2SU3bxibYs9cEv4KdKb6AwajLrmnQDaHgTncovmwsdvs91DSaXm8f1
+XgqfeN+zvOyauu9VjxuapgdjKRdZYgkqeQd3peDRF2npW932kKvimAoA0SVtnteF
+hy+S8dF2g08LOlk3KC8zpxdQ1iALCvQm+Z845y2kuJuJja2tyWp9iRe79n+Ag3rm
+7QIDAQABo4GSMIGPMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEG
+MCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFTVFJvbmxpbmUxLTIwNDgtNTAdBgNV
+HQ4EFgQUD8oeXHngovMpttKFswtKtWXsa1IwHwYDVR0jBBgwFoAUD8oeXHngovMp
+ttKFswtKtWXsa1IwDQYJKoZIhvcNAQEFBQADggEBAK8B8O0ZPCjoTVy7pWMciDMD
+pwCHpB8gq9Yc4wYfl35UvbfRssnV2oDsF9eK9XvCAPbpEW+EoFolMeKJ+aQAPzFo
+LtU96G7m1R08P7K9n3frndOMusDXtk3sU5wPBG7qNWdX4wple5A64U8+wwCSersF
+iXOMy6ZNwPv2AtawB6MDwidAnwzkhYItr5pCHdDHjfhA7p0GVxzZotiAFP7hYy0y
+h9WUUpY6RsZxlj33mA6ykaqP2vROJAA5VeitF7nTNCtKqUDMFypVZUF0Qn71wK/I
+k63yGFs9iQzbRzkk+OBM8h+wPQrKBU6JIRrjKpms/H+h8Q8bHz2eBIPdltkdOpQ=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEqjCCA5KgAwIBAgIOSkcAAQAC5aBd1j8AUb8wDQYJKoZIhvcNAQEFBQAwdjEL
+MAkGA1UEBhMCREUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxIjAgBgNV
+BAsTGVRDIFRydXN0Q2VudGVyIENsYXNzIDMgQ0ExJTAjBgNVBAMTHFRDIFRydXN0
+Q2VudGVyIENsYXNzIDMgQ0EgSUkwHhcNMDYwMTEyMTQ0MTU3WhcNMjUxMjMxMjI1
+OTU5WjB2MQswCQYDVQQGEwJERTEcMBoGA1UEChMTVEMgVHJ1c3RDZW50ZXIgR21i
+SDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTElMCMGA1UEAxMc
+VEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQSBJSTCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBALTgu1G7OVyLBMVMeRwjhjEQY0NVJz/GRcekPewJDRoeIMJW
+Ht4bNwcwIi9v8Qbxq63WyKthoy9DxLCyLfzDlml7forkzMA5EpBCYMnMNWju2l+Q
+Vl/NHE1bWEnrDgFPZPosPIlY2C8u4rBo6SI7dYnWRBpl8huXJh0obazovVkdKyT2
+1oQDZogkAHhg8fir/gKya/si+zXmFtGt9i4S5Po1auUZuV3bOx4a+9P/FRQI2Alq
+ukWdFHlgfa9Aigdzs5OW03Q0jTo3Kd5c7PXuLjHCINy+8U9/I1LZW+Jk2ZyqBwi1
+Rb3R0DHBq1SfqdLDYmAD8bs5SpJKPQq5ncWg/jcCAwEAAaOCATQwggEwMA8GA1Ud
+EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTUovyfs8PYA9NX
+XAek0CSnwPIA1DCB7QYDVR0fBIHlMIHiMIHfoIHcoIHZhjVodHRwOi8vd3d3LnRy
+dXN0Y2VudGVyLmRlL2NybC92Mi90Y19jbGFzc18zX2NhX0lJLmNybIaBn2xkYXA6
+Ly93d3cudHJ1c3RjZW50ZXIuZGUvQ049VEMlMjBUcnVzdENlbnRlciUyMENsYXNz
+JTIwMyUyMENBJTIwSUksTz1UQyUyMFRydXN0Q2VudGVyJTIwR21iSCxPVT1yb290
+Y2VydHMsREM9dHJ1c3RjZW50ZXIsREM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u
+TGlzdD9iYXNlPzANBgkqhkiG9w0BAQUFAAOCAQEANmDkcPcGIEPZIxpC8vijsrlN
+irTzwppVMXzEO2eatN9NDoqTSheLG43KieHPOh6sHfGcMrSOWXaiQYUlN6AT0PV8
+TtXqluJucsG7Kv5sbviRmEb8yRtXW+rIGjs/sFGYPAfaLFkB2otE6OF0/ado3VS6
+g0bsyEa1+K+XwDsJHI/OcpY9M1ZwvJbL2NV9IJqDnxrcOfHFcqMRA/07QlIp2+gB
+95tejNaNhk4Z+rwcvsUhpYeeeC422wlxo3I0+GzjBgnyXlal092Y+tTmBvTwtiBj
+S+opvaqCZh77gaqnN60TGOaSw4HBM7uIHqHn4rS9MWwOUT1v+5ZWgOI2F9Hc5A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK
+MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
+GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx
+MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg
+Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG
+SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ
+iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa
+/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ
+jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI
+HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7
+sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w
+gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF
+MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw
+KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG
+AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L
+URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO
+H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm
+I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY
+iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc
+f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI
+MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x
+FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz
+MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv
+cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz
+Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO
+0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao
+wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj
+7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS
+8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT
+BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB
+/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg
+JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC
+NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3
+6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/
+3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm
+D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS
+CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR
+3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUFADBk
+MQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsTHERpZ2l0
+YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNzY29tIFJvb3Qg
+Q0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4MTgyMjA2MjBaMGQxCzAJBgNVBAYT
+AmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMcRGlnaXRhbCBDZXJ0aWZp
+Y2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Njb20gUm9vdCBDQSAxMIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA0LmwqAzZuz8h+BvVM5OAFmUgdbI9
+m2BtRsiMMW8Xw/qabFbtPMWRV8PNq5ZJkCoZSx6jbVfd8StiKHVFXqrWW/oLJdih
+FvkcxC7mlSpnzNApbjyFNDhhSbEAn9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/
+TilftKaNXXsLmREDA/7n29uj/x2lzZAeAR81sH8A25Bvxn570e56eqeqDFdvpG3F
+EzuwpdntMhy0XmeLVNxzh+XTF3xmUHJd1BpYwdnP2IkCb6dJtDZd0KTeByy2dbco
+kdaXvij1mB7qWybJvbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn7uHbHaBu
+HYwadzVcFh4rUx80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNF
+vJbNcA78yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo
+19AOeCMgkckkKmUpWyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjC
+L3UcPX7ape8eYIVpQtPM+GP+HkM5haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoIlmJW
+bjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNYMUJDLXT5xp6mig/p/r+D5kNX
+JLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0hBBYw
+FDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYBAf8CAQcwHwYDVR0j
+BBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0OBBYEFAMlL95vggE6XCzc
+K6FptWfUjNP9MA0GCSqGSIb3DQEBBQUAA4ICAQA1EMvspgQNDQ/NwNurqPKIlwzf
+ky9NfEBWMXrrpA9gzXrzvsMnjgM+pN0S734edAY8PzHyHHuRMSG08NBsl9Tpl7Ik
+Vh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzneAXQMbFamIp1TpBcahQq4FJHgmDmHtqB
+sfsUC1rxn9KVuj7QG9YVHaO+htXbD8BJZLsuUBlL0iT43R4HVtA4oJVwIHaM190e
+3p9xxCPvgxNcoyQVTSlAPGrEqdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtlvrsR
+ls/bxig5OgjOR1tTWsWZ/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ip
+mXeascClOS5cfGniLLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HH
+b6D0jqTsNFFbjCYDcKF31QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksf
+rK/7DZBaZmBwXarNeNQk7shBoJMBkpxqnvy5JMWzFYJ+vq6VK+uxwNrjAWALXmms
+hFZhvnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCyx/yP2FS1k2Kdzs9Z+z0Y
+zirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMWNY6E0F/6
+MBr1mmz0DlP5OlvRHA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHqDCCBpCgAwIBAgIRAMy4579OKRr9otxmpRwsDxEwDQYJKoZIhvcNAQEFBQAw
+cjELMAkGA1UEBhMCSFUxETAPBgNVBAcTCEJ1ZGFwZXN0MRYwFAYDVQQKEw1NaWNy
+b3NlYyBMdGQuMRQwEgYDVQQLEwtlLVN6aWdubyBDQTEiMCAGA1UEAxMZTWljcm9z
+ZWMgZS1Temlnbm8gUm9vdCBDQTAeFw0wNTA0MDYxMjI4NDRaFw0xNzA0MDYxMjI4
+NDRaMHIxCzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEWMBQGA1UEChMN
+TWljcm9zZWMgTHRkLjEUMBIGA1UECxMLZS1Temlnbm8gQ0ExIjAgBgNVBAMTGU1p
+Y3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQDtyADVgXvNOABHzNuEwSFpLHSQDCHZU4ftPkNEU6+r+ICbPHiN1I2u
+uO/TEdyB5s87lozWbxXGd36hL+BfkrYn13aaHUM86tnsL+4582pnS4uCzyL4ZVX+
+LMsvfUh6PXX5qqAnu3jCBspRwn5mS6/NoqdNAoI/gqyFxuEPkEeZlApxcpMqyabA
+vjxWTHOSJ/FrtfX9/DAFYJLG65Z+AZHCabEeHXtTRbjcQR/Ji3HWVBTji1R4P770
+Yjtb9aPs1ZJ04nQw7wHb4dSrmZsqa/i9phyGI0Jf7Enemotb9HI6QMVJPqW+jqpx
+62z69Rrkav17fVVA71hu5tnVvCSrwe+3AgMBAAGjggQ3MIIEMzBnBggrBgEFBQcB
+AQRbMFkwKAYIKwYBBQUHMAGGHGh0dHBzOi8vcmNhLmUtc3ppZ25vLmh1L29jc3Aw
+LQYIKwYBBQUHMAKGIWh0dHA6Ly93d3cuZS1zemlnbm8uaHUvUm9vdENBLmNydDAP
+BgNVHRMBAf8EBTADAQH/MIIBcwYDVR0gBIIBajCCAWYwggFiBgwrBgEEAYGoGAIB
+AQEwggFQMCgGCCsGAQUFBwIBFhxodHRwOi8vd3d3LmUtc3ppZ25vLmh1L1NaU1ov
+MIIBIgYIKwYBBQUHAgIwggEUHoIBEABBACAAdABhAG4A+gBzAO0AdAB2AOEAbgB5
+ACAA6QByAHQAZQBsAG0AZQB6AOkAcwDpAGgAZQB6ACAA6QBzACAAZQBsAGYAbwBn
+AGEAZADhAHMA4QBoAG8AegAgAGEAIABTAHoAbwBsAGcA4QBsAHQAYQB0APMAIABT
+AHoAbwBsAGcA4QBsAHQAYQB0AOEAcwBpACAAUwB6AGEAYgDhAGwAeQB6AGEAdABh
+ACAAcwB6AGUAcgBpAG4AdAAgAGsAZQBsAGwAIABlAGwAagDhAHIAbgBpADoAIABo
+AHQAdABwADoALwAvAHcAdwB3AC4AZQAtAHMAegBpAGcAbgBvAC4AaAB1AC8AUwBa
+AFMAWgAvMIHIBgNVHR8EgcAwgb0wgbqggbeggbSGIWh0dHA6Ly93d3cuZS1zemln
+bm8uaHUvUm9vdENBLmNybIaBjmxkYXA6Ly9sZGFwLmUtc3ppZ25vLmh1L0NOPU1p
+Y3Jvc2VjJTIwZS1Temlnbm8lMjBSb290JTIwQ0EsT1U9ZS1Temlnbm8lMjBDQSxP
+PU1pY3Jvc2VjJTIwTHRkLixMPUJ1ZGFwZXN0LEM9SFU/Y2VydGlmaWNhdGVSZXZv
+Y2F0aW9uTGlzdDtiaW5hcnkwDgYDVR0PAQH/BAQDAgEGMIGWBgNVHREEgY4wgYuB
+EGluZm9AZS1zemlnbm8uaHWkdzB1MSMwIQYDVQQDDBpNaWNyb3NlYyBlLVN6aWdu
+w7MgUm9vdCBDQTEWMBQGA1UECwwNZS1TemlnbsOzIEhTWjEWMBQGA1UEChMNTWlj
+cm9zZWMgS2Z0LjERMA8GA1UEBxMIQnVkYXBlc3QxCzAJBgNVBAYTAkhVMIGsBgNV
+HSMEgaQwgaGAFMegSXUWYYTbMUuE0vE3QJDvTtz3oXakdDByMQswCQYDVQQGEwJI
+VTERMA8GA1UEBxMIQnVkYXBlc3QxFjAUBgNVBAoTDU1pY3Jvc2VjIEx0ZC4xFDAS
+BgNVBAsTC2UtU3ppZ25vIENBMSIwIAYDVQQDExlNaWNyb3NlYyBlLVN6aWdubyBS
+b290IENBghEAzLjnv04pGv2i3GalHCwPETAdBgNVHQ4EFgQUx6BJdRZhhNsxS4TS
+8TdAkO9O3PcwDQYJKoZIhvcNAQEFBQADggEBANMTnGZjWS7KXHAM/IO8VbH0jgds
+ZifOwTsgqRy7RlRw7lrMoHfqaEQn6/Ip3Xep1fvj1KcExJW4C+FEaGAHQzAxQmHl
+7tnlJNUb3+FKG6qfx1/4ehHqE5MAyopYse7tDk2016g2JnzgOsHVV4Lxdbb9iV/a
+86g4nzUGCM4ilb7N1fy+W955a9x6qWVmvrElWl/tftOsRm1M9DKHtCAE4Gx4sHfR
+hUZLphK3dehKyVZs15KrnfVJONJPU+NVkBHbmJbGSfI+9J8b4PeI3CVimUTYc78/
+MPMMNz7UwiiAc7EBt51alhQBS6kRnSlqLtBdgcDPsiBDxwPgN05dCtxZICU=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC
+VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0
+Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW
+KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw
+NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw
+NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy
+ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV
+BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo
+Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4
+4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9
+KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI
+rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi
+94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB
+sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi
+gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo
+kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE
+vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
+A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t
+O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua
+AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP
+9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/
+eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m
+0vdXcDazv/wor3ElhVsT/h5/WrQ8
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
+b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
+EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
+cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
+MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
+JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
+mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
+VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
+AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
+AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
+BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
+pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
+dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
+fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
+NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
+H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
+b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
+CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
+nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
+43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
+T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
+gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
+BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
+TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
+DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
+hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
+06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
+PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
+YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
+CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
+ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
+MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
+LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
+RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
++9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
+PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
+xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
+Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
+hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
+EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
+MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
+FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
+nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
+eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
+hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
+Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
+vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
++OkuE6N36B9K
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
+GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
+b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV
+BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
+YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa
+GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg
+Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J
+WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB
+rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp
++ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1
+ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i
+Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz
+PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og
+/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH
+oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI
+yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud
+EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2
+A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL
+MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT
+ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f
+BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn
+g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl
+fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K
+WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha
+B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc
+hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR
+TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD
+mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z
+ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y
+4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza
+8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x
+GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv
+b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV
+BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W
+YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM
+V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB
+4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr
+H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd
+8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv
+vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT
+mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe
+btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc
+T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt
+WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ
+c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A
+4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD
+VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG
+CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0
+aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0
+aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu
+dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw
+czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G
+A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC
+TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg
+Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0
+7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem
+d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd
++LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B
+4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN
+t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x
+DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57
+k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s
+zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j
+Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT
+mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK
+4SVhM7JZG+Ju1zdXtg2pEto=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJKUDEO
+MAwGA1UEChMFTEdQS0kxGjAYBgNVBAsTEUFwcGxpY2F0aW9uIENBIEcyMB4XDTA2
+MDMzMTE1MDAwMFoXDTE2MDMzMTE0NTk1OVowOTELMAkGA1UEBhMCSlAxDjAMBgNV
+BAoTBUxHUEtJMRowGAYDVQQLExFBcHBsaWNhdGlvbiBDQSBHMjCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBALk1xhD422jbB8RATLAdHjbcw0H2z1UVbQh/
+XMZoVeXnV/GWUebhTXgPbkAVcDtl/hHf59PWWDU74Z8C/JRSRi6znmCbAp7JgtL2
+464JT4REtmKbAFFouDqt7GTRMkvplESDtA7OIYlrsDbAmMZLnMI+W2AqCTErLatM
+3rGg/VhWwoMdILzEhAmHe6iVl8YljoPgPpMN0cd9c6mo/BkAQC4iuHozQfV4/Vpx
+54LZSIhc7KiFhy1tgIlnGmm+EMBaju2IfT5vLDhrN85H2KIxMN5+U2Vsi4ZTQSBs
+vUilfq8AWlYSWIHR3IlZ+bXu+E2a2EQpi3mn9yKq6nxctBaIIA0CAwEAAaOBsjCB
+rzAdBgNVHQ4EFgQUf7hdjsQYa8Z9zC7prs405xdd4KEwDgYDVR0PAQH/BAQDAgEG
+MEwGA1UdHwRFMEMwQaA/oD2kOzA5MQswCQYDVQQGEwJKUDEOMAwGA1UEChMFTEdQ
+S0kxGjAYBgNVBAsTEUFwcGxpY2F0aW9uIENBIEcyMA8GA1UdEwEB/wQFMAMBAf8w
+HwYDVR0jBBgwFoAUf7hdjsQYa8Z9zC7prs405xdd4KEwDQYJKoZIhvcNAQEFBQAD
+ggEBADzYczZABkhKVBn1J0g5JaVuQue2zRvLOTS3m+xPKr535MqE/B3rmyJA1fT7
+aIdy/Eddag5SSuO1XUjGIpbmM21tq/bN18skWoyoRZ4+YYJ9lNUF8Bo1X3EvLlS1
+QQXvhg1S75yYG/EsTDrR84bTjD56L4ZFjoMyJlu/U8oOUVbcmsJaMBkNp57Vqpsg
+OWl4IfSXbdEOEUwu0xtasPmXeFwqj1Jl7kxCJcI3MA5tKzWUgwbor0U7BGanMLv5
+4CE7Y259RF06alPvERck/VSyWmxzViHJbC2XpEKzJ2EFIWNt6ii8TxpvQtyYq1XT
+HhvAkj+bweY7F1bixJhDJe62ywA=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFvzCCA6egAwIBAgIQANKFcP2up9ZfEYQVxjG1yzANBgkqhkiG9w0BAQUFADBd
+MQswCQYDVQQGEwJFUzEoMCYGA1UECgwfRElSRUNDSU9OIEdFTkVSQUwgREUgTEEg
+UE9MSUNJQTENMAsGA1UECwwERE5JRTEVMBMGA1UEAwwMQUMgUkFJWiBETklFMB4X
+DTA2MDIxNjEwMzcyNVoXDTM2MDIwODIyNTk1OVowXTELMAkGA1UEBhMCRVMxKDAm
+BgNVBAoMH0RJUkVDQ0lPTiBHRU5FUkFMIERFIExBIFBPTElDSUExDTALBgNVBAsM
+BEROSUUxFTATBgNVBAMMDEFDIFJBSVogRE5JRTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAIAArQzDoyAHo2P/9zSgze5qVAgXXbEBFafmuV+Kcf8Mwh3q
+N/Pek3/WBU2EstXXHAz0xJFwQA5ayJikgOgNM8AH87f1rKE4esBmVCT8UswwKvLD
+xKEsdr/BwL+C8ZvwaHoTQMiXvBwlBwgKt5bvzClU4OZlLeqyLrEJaRJOMNXY+LwA
+gC9Nkw/NLlcbM7ufME7Epct5p/viNBi2IJ4bn12nyTqtRWSzGM4REpxtHlVFKISc
+V2dN+cvii49YCdQ5/8g20jjiDGV/FQ59wQfdqSLfkQDEbHE0dNw56upPRGl/WNtY
+ClJxK+ypHVB0M/kpavr+mfTnzEVFbcpaJaIS487XOAU58BoJ9XZZzmJvejQNLNG8
+BBLsPVPI+tACy849IbXF4DkzZc85U8mbRvmdM/NZgAhBvm9LoPpKzqR2HIXir68U
+nWWs93+X5DNJpq++zis38S7BcwWcnGBMnTANl1SegWK75+Av9xQHFKl3kenckZWO
+04iQM0dvccMUafqmLQEeG+rTLuJ/C9zP5yLw8UGjAZLlgNO+qWKoVYgLNDTs3CEV
+qu/WIl6J9VGSEypvgBbZsQ3ZLvgQuML+UkUznB04fNwVaTRzv6AsuxF7lM34Ny1v
+Pe+DWsYem3RJj9nCjb4WdlDIWtElFvb2zIycWjCeZb7QmkiT1/poDXUxh/n3AgMB
+AAGjezB5MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQW
+BBSORfSfc8X/LxsF2wFHYBsDioG3ujA3BgNVHSAEMDAuMCwGBFUdIAAwJDAiBggr
+BgEFBQcCARYWaHR0cDovL3d3dy5kbmllLmVzL2RwYzANBgkqhkiG9w0BAQUFAAOC
+AgEAdeVzyVFRL4sZoIfp/642Nqb8QR/jHtdxYBnGb5oCML1ica1z/pEtTuQmQESp
+rngmIzFp3Jpzlh5JUQvg78G4Q+9xnO5Bt8VQHzKEniKG8fcfj9mtK07alyiXu5aa
+Gvix2XoE81SZEhmWFYBnOf8CX3r8VUJQWua5ov+4qGIeFM3ZP76jZUjFO9c3zg36
+KJDav/njUUclfUrTZ02HqmK8Xux6gER8958KvWVXlMryEWbWUn/kOnB1BM07l9Q2
+cvdRVr809dJB4bTaqEP+axJJErRdzyJClowIIyaMshBOXapT7gEvdeW5ohEzxNdq
+/fgOym6C2ee7WSNOtfkRHS9rI/V7ESDqQRKQMkbbMTupwVtzaDpGG4z+l7dWuWGZ
+zE7wg/o38d4cnRxxiwOTw8Rzgi6omB1kopqM91QITc/qgcv1WwmZY691jJb4eTXV
+3OtBgXk4hF5v8W9idtuRzlqFYDkdW+IqL0Ml28J6JNMVsKLxjKB9a0gJE/+iTGaK
+7HBSCVOMMMy41bok3DCZPqFet9+BrOw3vk6bJ1jefqGbVH8Gti/kMlD95xC7qM3a
+GBvUY2Y96lFxOfScPt9a9NrHTCbti7UhujR5AnNhENqYMahgy34Hp9C3BUOJW82F
+JtmwUa/3jFKqEqdY35KbZ/Kd8ub0aTH0Fufed1se3ZoFAa0=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB
+8zELMAkGA1UEBhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2Vy
+dGlmaWNhY2lvIChOSUYgUS0wODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1
+YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYDVQQLEyxWZWdldSBodHRwczovL3d3
+dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UECxMsSmVyYXJxdWlh
+IEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMTBkVD
+LUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQG
+EwJFUzE7MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8g
+KE5JRiBRLTA4MDExNzYtSSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBD
+ZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZlZ2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQu
+bmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJhcnF1aWEgRW50aXRhdHMg
+ZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUNDMIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R
+85iKw5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm
+4CgPukLjbo73FCeTae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaV
+HMf5NLWUhdWZXqBIoH7nF2W4onW4HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNd
+QlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0aE9jD2z3Il3rucO2n5nzbcc8t
+lGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw0JDnJwIDAQAB
+o4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E
+BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4
+opvpXY0wfwYDVR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBo
+dHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidW
+ZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAwDQYJKoZIhvcN
+AQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJlF7W2u++AVtd0x7Y
+/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNaAl6k
+SBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhy
+Rp/7SNVel+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOS
+Agu+TGbrIP65y7WZf+a2E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xl
+nJ2lYJU6Un/10asIbvPuW/mIPX64b24D5EI=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDzzCCAregAwIBAgIDFLT5MA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJB
+VDFIMEYGA1UECgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBp
+bSBlbGVrdHIuIERhdGVudmVya2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5R
+dWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5RdWFsLTAzMB4XDTE0MDcyMzEwMzgy
+OVoXDTI1MDcyMzA4MzgyOVowgY0xCzAJBgNVBAYTAkFUMUgwRgYDVQQKDD9BLVRy
+dXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0ZW52
+ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMM
+EEEtVHJ1c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQCtPWFuA/OQO8BBC4SAzewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUj
+lUC5B3ilJfYKvUWG6Nm9wASOhURh73+nyfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZ
+znF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPESU7l0+m0iKsMrmKS1GWH
+2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4iHQF63n1
+k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs
+2e3Vcuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYD
+VR0OBAoECERqlWdVeRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC
+AQEAEoykPeAA/6iKm6YnfxsSHFe+Dtian2yAH8L2TqMdcHeSB/7L1x73uuDeYku1
+hbKQAXnfXntf8R+VgjQBTww0aDb5164netYcFbK0g8uVWVCqOl8wf3JbAUxHS9br
+cFKks+CJKPr6qQ6H+sb1o9127c9IQSZYP3S/gMAaGw0cSTlsnosE0P5Ur5vHsapm
+FV3V+VOjYNs2GLSu4XQCYvSIpsfDJp8VsJ/BMYS9GqGvQ/9qGa0fwEbEMadb5mcJ
+tw/EKg4gJthMgxOfO5eVuCQ3PAEWOe5lrOrTdvTIlhphUuns5hoIdlyLuNqewK3s
+FJ6N46sU7LjJLqSKYEB8usoIiw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/
+MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
+DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow
+PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD
+Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O
+rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq
+OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b
+xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw
+7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD
+aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV
+HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG
+SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69
+ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr
+AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
+R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5
+JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo
+Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDczCCAlugAwIBAgIBBDANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJLUjEN
+MAsGA1UECgwES0lTQTEuMCwGA1UECwwlS29yZWEgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkgQ2VudHJhbDEWMBQGA1UEAwwNS0lTQSBSb290Q0EgMTAeFw0wNTA4MjQw
+ODA1NDZaFw0yNTA4MjQwODA1NDZaMGQxCzAJBgNVBAYTAktSMQ0wCwYDVQQKDARL
+SVNBMS4wLAYDVQQLDCVLb3JlYSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBDZW50
+cmFsMRYwFAYDVQQDDA1LSVNBIFJvb3RDQSAxMIIBIDANBgkqhkiG9w0BAQEFAAOC
+AQ0AMIIBCAKCAQEAvATk+hM58DSWIGtsaLv623f/J/es7C/n/fB/bW+MKs0lCVsk
+9KFo/CjsySXirO3eyDOE9bClCTqnsUdIxcxPjHmc+QZXfd3uOPbPFLKc6tPAXXdi
+8EcNuRpAU1xkcK8IWsD3z3X5bI1kKB4g/rcbGdNaZoNy4rCbvdMlFQ0yb2Q3lIVG
+yHK+d9VuHygvx2nt54OJM1jT3qC/QOhDUO7cTWu8peqmyGGO9cNkrwYV3CmLP3WM
+vHFE2/yttRcdbYmDz8Yzvb9Fov4Kn6MRXw+5H5wawkbMnChmn3AmPC7fqoD+jMUE
+CSVPzZNHPDfqAmeS/vwiJFys0izgXAEzisEZ2wIBA6MyMDAwHQYDVR0OBBYEFL+2
+J9gDWnZlTGEBQVYx5Yt7OtnMMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEF
+BQADggEBABOvUQveimpb5poKyLGQSk6hAp3MiNKrZr097LuxQpVqslxa/6FjZJap
+aBV/JV6K+KRzwYCKhQoOUugy50X4TmWAkZl0Q+VFnUkq8JSV3enhMNITbslOsXfl
+BM+tWh6UCVrXPAgcrnrpFDLBRa3SJkhyrKhB2vAhhzle3/xk/2F0KpzZm4tfwjeT
+2KM3LzuTa7IbB6d/CVDv0zq+IWuKkDsnSlFOa56ch534eJAx7REnxqhZvvwYC/uO
+fi5C4e3nCSG9uRPFVmf0JqZCQ5BEVLRxm3bkGhKsGigA35vB1fjbXKP4krG9tNT5
+UNkAAk/bg9ART6RCVmE6fhMy04Qfybo=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMCSFUx
+ETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96YXRiaXp0
+b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9rMUIwQAYDVQQD
+EzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVneXpvaSAoQ2xhc3MgUUEpIFRhbnVz
+aXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9AbmV0bG9jay5odTAeFw0w
+MzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJMQswCQYDVQQGEwJIVTERMA8G
+A1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExvY2sgSGFsb3phdGJpenRvbnNh
+Z2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZhbnlraWFkb2sxQjBABgNVBAMTOU5l
+dExvY2sgTWlub3NpdGV0dCBLb3pqZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZh
+bnlraWFkbzEeMBwGCSqGSIb3DQEJARYPaW5mb0BuZXRsb2NrLmh1MIIBIjANBgkq
+hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx1Ilstg91IRVCacbvWy5FPSKAtt2/Goq
+eKvld/Bu4IwjZ9ulZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e8ia6AFQe
+r7C8HORSjKAyr7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO5
+3Lhbm+1bOdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWd
+vLrqOU+L73Sa58XQ0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0l
+mT+1fMptsK6ZmfoIYOcZwvK9UdPM0wKswREMgM6r3JSda6M5UzrWhQIDAMV9o4IC
+wDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8EBAMCAQYwggJ1Bglg
+hkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2YW55IGEgTmV0
+TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBTemFiYWx5emF0YWJh
+biBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0LiBBIG1pbm9zaXRldHQg
+ZWxla3Ryb25pa3VzIGFsYWlyYXMgam9naGF0YXMgZXJ2ZW55ZXN1bGVzZW5laywg
+dmFsYW1pbnQgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6
+b2xnYWx0YXRhc2kgU3phYmFseXphdGJhbiwgYXogQWx0YWxhbm9zIFN6ZXJ6b2Rl
+c2kgRmVsdGV0ZWxla2JlbiBlbG9pcnQgZWxsZW5vcnplc2kgZWxqYXJhcyBtZWd0
+ZXRlbGUuIEEgZG9rdW1lbnR1bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczovL3d3
+dy5uZXRsb2NrLmh1L2RvY3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0Bu
+ZXRsb2NrLm5ldCBlLW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBh
+bmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRo
+ZSBOZXRMb2NrIFF1YWxpZmllZCBDUFMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3
+Lm5ldGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0IGluZm9AbmV0bG9jay5u
+ZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3DQEBBQUA
+A4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufAQTPGtpvQ
+MznNwNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68d4bDBsxafEp+
+NFAwLvt/MpqNPfMgW/hqyobzMUwsWYACff44yTB1HLdV47yfuqhthCgFdbOLDcCR
+VCHnpgu0mfVRQdzNo0ci2ccBgcTcR08m6h/t280NmPSjnLRzMkqWmf68f8glWPhY
+83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR5qq5aKrN9p2QdRLqOBrKROi3
+macqaJVmlaut74nLYKkGEsaUR+ko
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQGEwJO
+TDEeMBwGA1UEChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQDEx1TdGFh
+dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQTAeFw0wMjEyMTcwOTIzNDlaFw0xNTEy
+MTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4wHAYDVQQKExVTdGFhdCBkZXIgTmVk
+ZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRlcmxhbmRlbiBSb290IENB
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmNK1URF6gaYUmHFtvszn
+ExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rFDBKeNVU+LCeIQGv33N0iYfXCxw71
+9tV2U02PjLwYdjeFnejKScfST5gTCaI+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MO
+hXeiD+EwR+4A5zN9RGcaC1Hoi6CeUJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+U
+tFE5A3+y3qcym7RHjm+0Sq7lr7HcsBthvJly3uSJt3omXdozSVtSnA71iq3DuD3o
+BmrC1SoLbHuEvVYFy4ZlkuxEK7COudxwC0barbxjiDn622r+I/q85Ej0ZytqERAh
+SQIDAQABo4GRMIGOMAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRVHSAAMDww
+OgYIKwYBBQUHAgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMv
+cm9vdC1wb2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA
+7Jbg0zTBLL9s+DANBgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k
+/rvuFbQvBgwp8qiSpGEN/KtcCFtREytNwiphyPgJWPwtArI5fZlmgb9uXJVFIGzm
+eafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbwMVcoEoJz6TMvplW0C5GUR5z6
+u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3ynGQI0DvDKcWy
+7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBpIzlWYGeQiy52OfsR
+iJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYVwSR8MnwDHTuhWEUykw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB
+gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk
+MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY
+UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx
+NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3
+dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy
+dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6
+38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP
+KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q
+DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4
+qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa
+JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi
+PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P
+BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs
+jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0
+eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD
+ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR
+vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt
+qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa
+IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy
+i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ
+O+7ETPTsJ3xCwnR8gooJybQDJbw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY
+MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21t
+dW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5
+WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYD
+VQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3
+DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw8yl8
+9f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJ
+DKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9
+Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N
+QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJ
+xrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0G
+A1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0T
+AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG
+kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr
+Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5
+Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU
+JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot
+RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/
+MQswCQYDVQQGEwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmlj
+YXRpb24gQXV0aG9yaXR5MB4XDTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1ow
+PzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qNw8XR
+IePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1q
+gQdW8or5BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKy
+yhwOeYHWtXBiCAEuTk8O1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAts
+F/tnyMKtsc2AtJfcdgEWFelq16TheEfOhtX7MfP6Mb40qij7cEwdScevLJ1tZqa2
+jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wovJ5pGfaENda1UhhXcSTvx
+ls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7Q3hub/FC
+VGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHK
+YS1tB6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoH
+EgKXTiCQ8P8NHuJBO9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThN
+Xo+EHWbNxWCWtFJaBYmOlXqYwZE8lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1Ud
+DgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNVHRMEBTADAQH/MDkGBGcqBwAE
+MTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg209yewDL7MTqK
+UWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ
+TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyf
+qzvS/3WXy6TjZwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaK
+ZEk9GhiHkASfQlK3T8v+R0F2Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFE
+JPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlUD7gsL0u8qV1bYH+Mh6XgUmMqvtg7
+hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6QzDxARvBMB1uUO07+1
+EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+HbkZ6Mm
+nD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WX
+udpVBrkk7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44Vbnz
+ssQwmSNOXfJIoRIM3BKQCZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDe
+LMDDav7v3Aun+kbfYNucpllQdSNpc5Oy+fwC00fmcc4QAu4njIT/rEUNE1yDMuAl
+pYYsfPQS
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx
+FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg
+Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG
+A1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdr
+b25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1ApzQ
+jVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEn
+PzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjh
+ZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9
+nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/h
+q5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgED
+MA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsC
+mEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI3
+7piol7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clB
+oiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJs
+EhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpO
+fMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4JxHYB0yvbi
+AmvZWg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJFVTEn
+MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL
+ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEiMCAGA1UEAxMZQ2hhbWJlcnMg
+b2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAxNjEzNDNaFw0zNzA5MzAxNjEzNDRa
+MH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1lcmZpcm1hIFNBIENJRiBB
+ODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cuY2hhbWJlcnNpZ24ub3JnMSIw
+IAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJjZSBSb290MIIBIDANBgkqhkiG9w0B
+AQEFAAOCAQ0AMIIBCAKCAQEAtzZV5aVdGDDg2olUkfzIx1L4L1DZ77F1c2VHfRtb
+unXF/KGIJPov7coISjlUxFF6tdpg6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0d
+BmpAPrMMhe5cG3nCYsS4No41XQEMIwRHNaqbYE6gZj3LJgqcQKH0XZi/caulAGgq
+7YN6D6IUtdQis4CwPAxaUWktWBiP7Zme8a7ileb2R6jWDA+wWFjbw2Y3npuRVDM3
+0pQcakjJyfKl2qUMI/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFVd9oKDMyX
+roDclDZK9D7ONhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIG
+A1UdEwEB/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5j
+aGFtYmVyc2lnbi5vcmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p
+26EpW1eLTXYGduHRooowDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIA
+BzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hhbWJlcnNpZ24ub3JnMCcGA1Ud
+EgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYDVR0gBFEwTzBN
+BgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8vY3BzLmNoYW1iZXJz
+aWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJKoZIhvcNAQEFBQADggEB
+AAxBl8IahsAifJ/7kPMa0QOx7xP5IV8EnNrJpY0nbJaHkb5BkAFyk+cefV/2icZd
+p0AJPaxJRUXcLo0waLIJuvvDL8y6C98/d3tGfToSJI6WjzwFCm/SlCgdbQzALogi
+1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QUu/wNUPf6s+xCX6ndbcj0dc97wXImsQEc
+XCz9ek60AcUFV7nnPKoF2YjpB0ZBzu9Bga5Y34OirsrXdx/nADydb47kMgkdTXg0
+eDQ8lJsm7U9xxhl6vSAiSFr+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1erfu
+tGWaIZDgqtCYvDi1czyL+Nw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJFVTEn
+MCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQL
+ExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENo
+YW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYxNDE4WhcNMzcwOTMwMTYxNDE4WjB9
+MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgy
+NzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4G
+A1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJvb3QwggEgMA0GCSqGSIb3DQEBAQUA
+A4IBDQAwggEIAoIBAQCicKLQn0KuWxfH2H3PFIP8T8mhtxOviteePgQKkotgVvq0
+Mi+ITaFgCPS3CU6gSS9J1tPfnZdan5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/s
+QJ0lcqu1PzKY+7e3/HKE5TWH+VX6ox8Oby4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpV
+eAp3qdjqGTK3L/5cPxvusZjsyq16aUXjlg9V9ubtdepl6DJWk0aJqCWKZQbua795
+B9Dxt6/tLE2Su8CoX6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c8lCrEqWh
+z0hQpe/SyBoT+rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0T
+AQH/BAgwBgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1i
+ZXJzaWduLm9yZy9jaGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4w
+TcbOX60Qq+UDpfqpFDAOBgNVHQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgAH
+MCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBjaGFtYmVyc2lnbi5vcmcwKgYD
+VR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9yZzBbBgNVHSAE
+VDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly9jcHMuY2hh
+bWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3QuaHRtbDANBgkqhkiG9w0B
+AQUFAAOCAQEAPDtwkfkEVCeR4e3t/mh/YV3lQWVPMvEYBZRqHN4fcNs+ezICNLUM
+bKGKfKX0j//U2K0X1S0E0T9YgOKBWYi+wONGkyT+kL0mojAt6JcmVzWJdJYY9hXi
+ryQZVgICsroPFOrGimbBhkVVi76SvpykBMdJPJ7oKXqJ1/6v/2j1pReQvayZzKWG
+VwlnRtvWFsJG8eSpUPWP0ZIV018+xgBJOm5YstHRJw0lyDL4IBHNfTIzSJRUTN3c
+ecQwn+uOuFW114hcxWokPbLTBQNRxgfvzBRydD1ucs4YKIxKoHflCStFREest2d/
+AYoFWpO+ocH/+OcOZ6RHSXZddZAa9SaP8A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb
+MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow
+GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj
+YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL
+MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE
+BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM
+GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua
+BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe
+3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4
+YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR
+rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm
+ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU
+oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF
+MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
+QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t
+b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF
+AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q
+GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz
+Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2
+G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi
+l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3
+smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
+YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
+R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
+9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
+fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
+iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
+1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
+MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
+ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
+uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
+Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
+tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
+PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
+hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
+5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJVUzEW
+MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3QgR2xvYmFs
+IENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBEMQswCQYDVQQG
+EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
+R2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvPE1A
+PRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6CsgncbzYEbYwbLVjDHZ3CB5JIG/NTL8
+Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96xPqfCfWbB9X5SJBri1WeR0IIQ13hL
+TytCOb1kLUCgsBDTOEhGiKEMuzozKmKY+wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL
+5mkWRxHCJ1kDs6ZgwiFAVvqgx306E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7
+S4wMcoKK+xfNAGw6EzywhIdLFnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe
+2HSPqht/XvT+RSIhAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
+FHE4NvICMVNHK266ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUap
+EBVYIAUJMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6td
+EPx7srJerJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv
+/NgdRN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN
+A0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/qkZN0
+abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa4qjJqhIF
+I8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqFH4z1Ir+rzoPz
+4iIprn2DQKi6bA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW
+MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy
+c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE
+BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0
+IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV
+VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8
+cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT
+QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh
+F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v
+c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w
+mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd
+VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX
+teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ
+f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe
+Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+
+nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB
+/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY
+MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG
+9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc
+aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX
+IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn
+ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z
+uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN
+Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja
+QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW
+koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9
+ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt
+DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm
+bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW
+MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy
+c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD
+VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1
+c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC
+AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81
+WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG
+FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq
+XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL
+se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb
+KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd
+IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73
+y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt
+hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc
+QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4
+Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV
+HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV
+HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ
+KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z
+dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ
+L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr
+Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo
+ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY
+T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz
+GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m
+1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV
+OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH
+6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX
+QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC
+TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz
+MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw
+IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR
+dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp
+li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D
+rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ
+WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug
+F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU
+xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC
+Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv
+dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw
+ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl
+IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh
+c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy
+ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh
+Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI
+KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T
+KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq
+y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p
+dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD
+VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL
+MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk
+fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8
+7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R
+cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y
+mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW
+xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK
+SnQ2+Q==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYTAlBM
+MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
+QTAeFw0wMjA2MTExMDQ2MzlaFw0yNzA2MTExMDQ2MzlaMD4xCzAJBgNVBAYTAlBM
+MRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNlcnR1bSBD
+QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6xwS7TT3zNJc4YPk/E
+jG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYVM42sLQnFdvkrOYCJ5JdLkKWo
+ePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/OxLjBos8Q82KxujZlakE403Daaj4GI
+ULdtlkIJ89eVgw1BS7Bqa/j8D35in2fE7SZfECYPCE/wpFcozo+47UX2bu4lXapu
+Ob7kky/ZR6By6/qmW6/KUz/iDsaWVhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUg
+AKpoC6EahQGcxEZjgoi2IrHu/qpGWX7PNSzVttpd90gzFFS269lvzs2I1qsb2pY7
+HVkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA
+uI3O7+cUus/usESSbLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+GXYkHAQa
+TOs9qmdvLdTN/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTg
+xSvgGrZgFCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1q
+CjqTE5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x
+O/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYVIZQs
+6GAqm4VKQPNriiTsBhYscw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
+RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
+VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
+DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
+ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
+VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
+mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
+IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
+mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
+XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
+dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
+jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
+BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
+DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
+9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
+jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
+Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
+ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
+R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICvDCCAiUCEEoZ0jiMglkcpV1zXxVd3KMwDQYJKoZIhvcNAQEEBQAwgZ4xHzAd
+BgNVBAoTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxFzAVBgNVBAsTDlZlcmlTaWdu
+LCBJbmMuMSwwKgYDVQQLEyNWZXJpU2lnbiBUaW1lIFN0YW1waW5nIFNlcnZpY2Ug
+Um9vdDE0MDIGA1UECxMrTk8gTElBQklMSVRZIEFDQ0VQVEVELCAoYyk5NyBWZXJp
+U2lnbiwgSW5jLjAeFw05NzA1MTIwMDAwMDBaFw0wNDAxMDcyMzU5NTlaMIGeMR8w
+HQYDVQQKExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMRcwFQYDVQQLEw5WZXJpU2ln
+biwgSW5jLjEsMCoGA1UECxMjVmVyaVNpZ24gVGltZSBTdGFtcGluZyBTZXJ2aWNl
+IFJvb3QxNDAyBgNVBAsTK05PIExJQUJJTElUWSBBQ0NFUFRFRCwgKGMpOTcgVmVy
+aVNpZ24sIEluYy4wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANMuIPBofCwt
+LoEcsQaypwu3EQ1X2lPYdePJMyqy1PYJWzTz6ZD+CQzQ2xtauc3n9oixncCHJet9
+WBBzanjLcRX9xlj2KatYXpYE/S1iEViBHMpxlNUiWC/VzBQFhDa6lKq0TUrp7jsi
+rVaZfiGcbIbASkeXarSmNtX8CS3TtDmbAgMBAAEwDQYJKoZIhvcNAQEEBQADgYEA
+YVUOPnvHkhJ+ERCOIszUsxMrW+hE5At4nqR+86cHch7iWe/MhOOJlEzbTmHvs6T7
+Rj1QNAufcFb2jip/F87lY795aQdzLrCVKIr17aqp0l3NCsoQCY/Os68olsR5KYSS
+3P+6Z0JIppAQ5L9h+JxT5ZPRcz/4/Z1PhKxV0f0RY2M=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEEjCCAvqgAwIBAgIPAMEAizw8iBHRPvZj7N9AMA0GCSqGSIb3DQEBBAUAMHAx
+KzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBNaWNyb3NvZnQgQ29ycC4xHjAc
+BgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0
+IFJvb3QgQXV0aG9yaXR5MB4XDTk3MDExMDA3MDAwMFoXDTIwMTIzMTA3MDAwMFow
+cDErMCkGA1UECxMiQ29weXJpZ2h0IChjKSAxOTk3IE1pY3Jvc29mdCBDb3JwLjEe
+MBwGA1UECxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEwHwYDVQQDExhNaWNyb3Nv
+ZnQgUm9vdCBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQCpAr3BcOY78k4bKJ+XeF4w6qKpjSVf+P6VTKO3/p2iID58UaKboo9gMmvRQmR5
+7qx2yVTa8uuchhyPn4Rms8VremIj1h083g8BkuiWxL8tZpqaaCaZ0Dosvwy1WCbB
+RucKPjiWLKkoOajsSYNC44QPu5psVWGsgnyhYC13TOmZtGQ7mlAcMQgkFJ+p55Er
+GOY9mGMUYFgFZZ8dN1KH96fvlALGG9O/VUWziYC/OuxUlE6u/ad6bXROrxjMlgko
+IQBXkGBpN7tLEgc8Vv9b+6RmCgim0oFWV++2O14WgXcE2va+roCV/rDNf9anGnJc
+PMq88AijIjCzBoXJsyB3E4XfAgMBAAGjgagwgaUwgaIGA1UdAQSBmjCBl4AQW9Bw
+72lyniNRfhSyTY7/y6FyMHAxKzApBgNVBAsTIkNvcHlyaWdodCAoYykgMTk5NyBN
+aWNyb3NvZnQgQ29ycC4xHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEh
+MB8GA1UEAxMYTWljcm9zb2Z0IFJvb3QgQXV0aG9yaXR5gg8AwQCLPDyIEdE+9mPs
+30AwDQYJKoZIhvcNAQEEBQADggEBAJXoC8CN85cYNe24ASTYdxHzXGAyn54Lyz4F
+kYiPyTrmIfLwV5MstaBHyGLv/NfMOztaqTZUaf4kbT/JzKreBXzdMY09nxBwarv+
+Ek8YacD80EPjEVogT+pie6+qGcgrNyUtvmWhEoolD2Oj91Qc+SHJ1hXzUqxuQzIH
+/YIX+OVnbA1R9r3xUse958Qw/CAxCYgdlSkaTdUdAqXxgOADtFv0sd3IV+5lScdS
+VLa0AygS/5DW8AiPfriXxas3LOR65Kh343agANBqP8HSNorgQRKoNWobats14dQc
+BOSoRQTIWjM4bk0cDWK3CqKM09VUP0bNHFWmcNsSOoeTdZ+n0qA=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFmTCCA4GgAwIBAgIQea0WoUqgpa1Mc1j0BxMuZTANBgkqhkiG9w0BAQUFADBf
+MRMwEQYKCZImiZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0
+MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkw
+HhcNMDEwNTA5MjMxOTIyWhcNMjEwNTA5MjMyODEzWjBfMRMwEQYKCZImiZPyLGQB
+GRYDY29tMRkwFwYKCZImiZPyLGQBGRYJbWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNy
+b3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQDzXfqAZ9Rap6kMLJAg0DUIPHWEzbcHiZyJ2t7Ow2D6
+kWhanpRxKRh2fMLgyCV2lA5Y+gQ0Nubfr/eAuulYCyuT5Z0F43cikfc0ZDwikR1e
+4QmQvBT+/HVYGeF5tweSo66IWQjYnwfKA1j8aCltMtfSqMtL/OELSDJP5uu4rU/k
+XG8TlJnbldV126gat5SRtHdb9UgMj2p5fRRwBH1tr5D12nDYR7e/my9s5wW34RFg
+rHmRFHzF1qbk4X7Vw37lktI8ALU2gt554W3ztW74nzPJy1J9c5g224uha6KVl5uj
+3sJNJv8GlmclBsjnrOTuEjOVMZnINQhONMp5U9W1vmMyWUA2wKVOBE0921sHM+RY
+v+8/U2TYQlk1V/0PRXwkBE2e1jh0EZcikM5oRHSSb9VLb7CG48c2QqDQ/MHAWvmj
+YbkwR3GWChawkcBCle8Qfyhq4yofseTNAz93cQTHIPxJDx1FiKTXy36IrY4t7EXb
+xFEEySr87IaemhGXW97OU4jm4rf9rJXCKEDb7wSQ34EzOdmyRaUjhwalVYkxuwYt
+YA5BGH0fLrWXyxHrFdUkpZTvFRSJ/Utz+jJb/NEzAPlZYnAHMuouq0Ate8rdIWcb
+MJmPFqojqEHRsG4RmzbE3kB0nOFYZcFgHnpbOMiPuwQmfNQWQOW2a2yqhv0Av87B
+NQIDAQABo1EwTzALBgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQUDqyCYEBWJ5flJRP8KuEKU5VZ5KQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI
+hvcNAQEFBQADggIBAMURTQM6YN1dUhF3j7K7NsiyBb+0t6jYIJ1cEwO2HCL6BhM1
+tshj1JpHbyZX0lXxBLEmX9apUGigvNK4bszD6azfGc14rFl0rGY0NsQbPmw4TDMO
+MBINoyb+UVMA/69aToQNDx/kbQUuToVLjWwzb1TSZKu/UK99ejmgN+1jAw/8EwbO
+FjbUVDuVG1FiOuVNF9QFOZKaJ6hbqr3su77jIIlgcWxWs6UT0G0OI36VA+1oPfLY
+Y7hrTbboMLXhypRL96KqXZkwsj2nwlFsKCABJCcrSwC3nRFrcL6yEIK8DJto0I07
+JIeqmShynTNfWZC99d6TnjpiWjQ54ohVHbkGsMGJay3XacMZEjaE0Mmg2v8vaXiy
+5Xra69cMwPe9Yxe4ORM4ojZbe/KFVmodZGLBOOKqv1FmopT1EpxmIhBr8rcwki3y
+KfA9OxRDaKLxnCk3y844ICVtfGfzfiQSJAMIgUfspZ6X9RjXz7vV73aW7/3O21ad
+laBC+ZdY4dcxItNfWeY+biIA6kOEtiXb2fMIVmjAZGsdfOy2k6JiV24u2OdYj8Qx
+SSbd3ik1h/UwcXBbFDxpvYkSfesuo/7Yf56CWlIKK8FDK9kwiJ/IEPuJjeahhXUz
+fmye23MTZGJppS99ypZtn/gETTCSPW4hFCHJPeDD/YprnUr90aGdmUN3P7Da
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF7TCCA9WgAwIBAgIQKMw6Jb+6RKxEmptYa0M5qjANBgkqhkiG9w0BAQsFADCB
+iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
+ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMp
+TWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAw
+NjIzMjE1NzI0WhcNMzUwNjIzMjIwNDAxWjCBiDELMAkGA1UEBhMCVVMxEzARBgNV
+BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
+c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm
+aWNhdGUgQXV0aG9yaXR5IDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQC5CJ4o5OTsBk5QaLNBxXvrrraOr4G6IkQfZTRpTL5wQBfyFnvief2G7Q05
+9BuorZKQHss9do9a2bWREC48BY2KbSRU5x/tVq2DtFCcFaUXdIhZIPwIxYR202jU
+byh4zly481CQRP/jY1++oZoslhUE1gf+HoQh4EIxEcQoNpTPUKRinsnWq3EAslsM
+5pbUCiSW9f/G1bcb18u3IWKvEtyhXTfjGvsaRpjAm8DnYx8qCJMCfh5qjvKfGInk
+IoWisYRXQP/1DthvnO3iRTEBzRfpf7CBReOqIUAmoXKqp088AQV+7oNYsV4GY5li
+kXiCtw2TDCRqtBvbJ+xflQQ/k0ow9ZcYs6f5GaeTMx0ByNsiUlzXJclG+aL7h1lD
+vptisY0thkQaRqx4YX4wCfquicRBKiJmA5E5RZzHiwyoyg0v+1LqDPdjMyOd/rAf
+rWfWp1ADxgRwY7UssYZaQ7f7rvluKW4hIUEmBozJw+6wwoWTobmF2eYybEtMP9Zd
+o+W1nXfDnMBVt3QA47g4q4OXUOGaQiQdxsCjMNEaWshSNPdz8ccYHzOteuzLQWDz
+I5QgwkhFrFxRxi6AwuJ3Fb2Fh+02nZaR7gC1o3Dsn+ONgGiDdrqvXXBSIhbiZvu6
+s8XC9z4vd6bK3sGmxkhMwzdRI9Mn17hOcJbwoUR2r3jPmuFmEwIDAQABo1EwTzAL
+BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU1fZWy4/oolxi
+aNE9lJBb186aGMQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQELBQADggIB
+AKylloy/u66m9tdxh0MxVoj9HDJxWzW31PCR8q834hTx8wImBT4WFH8UurhP+4my
+sufUCcxtuVs7ZGVwZrfysVrfGgLz9VG4Z215879We+SEuSsem0CcJjT5RxiYadgc
+17bRv49hwmfEte9gQ44QGzZJ5CDKrafBsSdlCfjN9Vsq0IQz8+8f8vWcC1iTN6B1
+oN5y3mx1KmYi9YwGMFafQLkwqkB3FYLXi+zA07K9g8V3DB6urxlToE15cZ8PrzDO
+Z/nWLMwiQXoH8pdCGM5ZeRBV3m8Q5Ljag2ZAFgloI1uXLiaaArtXjMW4umliMoCJ
+nqH9wJJ8eyszGYQqY8UAaGL6n0eNmXpFOqfp7e5pQrXzgZtHVhB7/HA2hBhz6u/5
+l02eMyPdJgu6Krc/RNyDJ/+9YVkrEbfKT9vFiwwcMa4y+Pi5Qvd/3GGadrFaBOER
+PWZFtxhxvskkhdbz1LpBNF0SLSW5jaYTSG1LsAd9mZMJYYF0VyaKq2nj5NnHiMwk
+2OxSJFwevJEU4pbe6wrant1fs1vb1ILsxiBQhyVAOvvH7s3+M+Vuw4QJVQMlOcDp
+NV1lMaj2v6AJzSnHszYyLtyV84PBWs+LjfbqsyH4pO0eMQ62TBGrYAukEiMiF6M2
+ZIKRBBLgq28ey1AFYbRA/1mGcdHVM2l8qXOKONdkDPFp
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMCWkEx
+FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzAN
+BgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAd
+BgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcNOTcwMTAxMDAwMDAwWhcN
+MjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4g
+Q2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsG
+A1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1l
+c3RhbXBpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANYrWHhhRYZT
+6jR7UZztsOYuGA7+4F+oJ9O0yeB8WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQa
+Wt9MevPZQx08EHp5JduQ/vBR5zDWQQD9nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL
+8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzARMA8GA1UdEwEB/wQFMAMB
+Af8wDQYJKoZIhvcNAQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCouqoEiYbC
+9RAIDb/LogWK0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQ
+pgCed/r8zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZ
+CayJSdM=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAw
+PTELMAkGA1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFz
+cyAyIFByaW1hcnkgQ0EwHhcNOTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9
+MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2VydHBsdXMxGzAZBgNVBAMTEkNsYXNz
+IDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxQ
+ltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR5aiR
+VhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyL
+kcAbmXuZVg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCd
+EgETjdyAYveVqUSISnFOYFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yas
+H7WLO7dDWWuwJKZtkIvEcupdM5i3y95ee++U8Rs+yskhwcWYAqqi9lt3m/V+llU0
+HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRMECDAGAQH/AgEKMAsGA1Ud
+DwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJYIZIAYb4
+QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMu
+Y29tL0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/
+AN9WM2K191EBkOvDP9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8
+yfFC82x/xXp8HVGIutIKPidd3i1RTtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMR
+FcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+7UCmnYR0ObncHoUW2ikbhiMA
+ybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW//1IMwrh3KWB
+kJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7
+l7+ijrRU
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDkTCCAnmgAwIBAgIQWd+sfopmFRHliCTO76m8qTANBgkqhkiG9w0BAQUFADA9
+MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2VydHBsdXMxGzAZBgNVBAMTEkNsYXNz
+IDMgUHJpbWFyeSBDQTAeFw05OTA3MDcxNzA4MDBaFw0xOTA3MDYyMzU5NTlaMD0x
+CzAJBgNVBAYTAkZSMREwDwYDVQQKEwhDZXJ0cGx1czEbMBkGA1UEAxMSQ2xhc3Mg
+MyBQcmltYXJ5IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt5Qw
+btBM2X5eYOVvuybKUm9rbIWZpQvvABpvG01YtRgH+t17+MssUt38nLiNUum5sgt8
+9Y9bmUgJWN7NSJWGJYkFNCcwC1e2DHdjKctsqj65mVESDZhwdkdM+UmWIgj5a+qq
+ADajFaccHp+Mylp5eyHaiR9jfnmSUAkEKK3O420ESUqZsT9FCXhYIO+N/oDIBO0p
+LKBYjYQCJZc/oBPXe4sj45+4x7hCQDgbkkq9SpRVx1YVDYF3zJ+iN4krW4UNi3f4
+xIv7EMuUx+kaVhKXZhTEu9d9bQIbv3FiJhjpSYr6o97hhK2AykriIoxqCGGDsiLH
+CYg4Vl3RMavwCZ8TWQIDAQABo4GMMIGJMA8GA1UdEwQIMAYBAf8CAQowCwYDVR0P
+BAQDAgEGMB0GA1UdDgQWBBRqZDZ2UJxO9PdPFfUN7TMlYOzLIDARBglghkgBhvhC
+AQEEBAMCAQYwNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL3d3dy5jZXJ0cGx1cy5j
+b20vQ1JML2NsYXNzMy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAJqhPjiu4VLSRQ3R
+6YNjrYyA9JPDuMI6IpcnslGGPtLyl958u9eWQFPKUqqKbGPMunGK4vDwEIoXsE+P
+xu8OMTBaja0Ex6uMXxoIz5oXmUa+jmtKan8BR2klGPhOPEoEKwbyEAA9/z6l6A7P
+cDiGu8WODNbiS0tm83NfgLU78RIp6nO8aJ4cYPfzqkLYFsho3nMLP0DBd3dUHZRX
+KQGTW5jDawT6fCmNrEfw/lUVS69xI/XDzgFnkyaArPSCisQbQErcxjkKbmO2ZE16
+zpCqmb02/Vn8L/xFvt6OM1n6igsPMDZN41u11pZQ17/+hdzatIIrzBsIP/GaTrXh
+jwhhJBY=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDlTCCAn2gAwIBAgIRAL9c27byHG7ATet6Ajs26HkwDQYJKoZIhvcNAQEFBQAw
+PjELMAkGA1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRwwGgYDVQQDExNDbGFz
+cyAzUCBQcmltYXJ5IENBMB4XDTk5MDcwNzE3MTAwMFoXDTE5MDcwNjIzNTk1OVow
+PjELMAkGA1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRwwGgYDVQQDExNDbGFz
+cyAzUCBQcmltYXJ5IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
+qzf/62CbQXhp9UlYsN4fcWmmK+OuUMapvJPpIL7kxBOCVu/wQzIJypt1A498T+Hg
+T3aeC61kehQ6mp2/LxYLZRyp7py84xply0+F6pJWdWbWVUDv+8zWOD+rHO9CjRmJ
+9reVhsKnHen3KfEq2WV5/Cv1jsoad36e6Kz5Zr9F++gTnV+2c+V9e477EnRdHwZe
+hRumXhhEALq8027RUg4GrevutbTBu7zrOA9IIpHHb9K4cju6f8CNbLe8R3MhKoX/
+rNYoohnVl2o6uaxtRezmTcPbqF3FXYKYrEpaquYrCAwQdLxi9jpJBGbYURwmpth1
+n5y/rmBRPVy8ok97iWfNUwIDAQABo4GNMIGKMA8GA1UdEwQIMAYBAf8CAQowCwYD
+VR0PBAQDAgEGMB0GA1UdDgQWBBSG4eGBcb9qEvEK8gHkyPtAzmiAiTARBglghkgB
+hvhCAQEEBAMCAAEwOAYDVR0fBDEwLzAtoCugKYYnaHR0cDovL3d3dy5jZXJ0cGx1
+cy5jb20vQ1JML2NsYXNzM1AuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQAlquEiQMKk
+gDy3ol2ZjR96QjU4ZhcR372v/BURmBkz5gVChFSoS+uwnds32hZSQBF0aL/pybIQ
+hLcdRAB5Jxz1WAYXGDI1tjCXY8amORvI7kYXYsUu5wqjmoowY3OqFKVNCqhyk/BJ
+ERCQfBh9qCAFxMJ6NbocWgrgLnjIiLHPVwHsPeIGEzTAqNz6gIAF7gV2vZ0ryJ1Q
+b2vFQFCE/V0d5pCcENOkxrkoGt61+Apwqs7eUD0DgNvYiMVIBuQDc90WzjbW5Zvq
+d9qylrVlpwRdI673k7JeilFkX9rPjD1BW975o+kqfEcQH/YyPH5w6d+h1S4NsRpF
+tLwS7SgX6R4C
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDgzCCAmugAwIBAgIRAK8/ZGtWAoZmxthD+Ut9ls8wDQYJKoZIhvcNAQEFBQAw
+PzELMAkGA1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMR0wGwYDVQQDExRDbGFz
+cyAzVFMgUHJpbWFyeSBDQTAeFw05OTA3MDcxNzE0MDBaFw0xOTA3MDYyMzU5NTla
+MD8xCzAJBgNVBAYTAkZSMREwDwYDVQQKEwhDZXJ0cGx1czEdMBsGA1UEAxMUQ2xh
+c3MgM1RTIFByaW1hcnkgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQC9ZZojQwA8+SUBQ5hbRjQ3Zzf0W1eOo97NjC9BsxU95ZiL8sxcp8evNcezp0/H
+EClX6QOJg3IGdlLBcAI3QO3wzouxsYmsAqhb3dzVQ0UG3Ci26VEbau7ze0jFnRGu
+jaZyk8AlQpGoPkbiaEyBQLBC03q+e0fSR1AMpBKmyuQS0MB8OjwBqcoClt6CWsX7
+Gbo8nNgPdB+YGK6UUDIHUhARSkvsWFUs1J5LlHsF0nLfBvCNywie5O60RK2C8Rth
+avGz+BYxNkIkupC/tX5hbsJZDFR5tEyIKB7MG9+EiyPIvq8H8pGy2o3KjF98KDx8
+iWwGWb0+zsWC02rJrGhV7sWvAgMBAAGjejB4MA8GA1UdEwQIMAYBAf8CAQowCwYD
+VR0PBAQDAgEGMB0GA1UdDgQWBBSidg45eGuPui1xSgj3ontuAKJkJTA5BgNVHR8E
+MjAwMC6gLKAqhihodHRwOi8vd3d3LmNlcnRwbHVzLmNvbS9DUkwvY2xhc3MzVFMu
+Y3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC1n2icxJLwd3wTwhW8HNQObnQoofqG0ggb
+Jfzke9l90wJYZ28EblDue0oBAmO/QjbWvgz+IgyZPY7zrh2U1qrqpj3jQ55HuwnJ
+y+7OoSwPqnzffHOS5Uu5BMQ72yD+YPkMbngaPUjXJ0iYtZGspNwis+edX+zlQGIm
+j3oXxur7CtZDW5DbNhbtmC6eX6wUB4IqUL+mv2+mBzRytmFo7FGYGVN36Mi/9iF7
+vLDef3Q6+RU0OJr7iTPwEg2f6PGWbfYdSH4+Eu/6BmdZ3rOy1pcLO0BXQrLBe8Zt
+2CZSNCXShbahCgrdqpSqTnsgk92kgENWz7bE4FjpbJWPYm5YBq94
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEZjCCA06gAwIBAgIQRL4Mi1AAJLQR0zYt4LNfGzANBgkqhkiG9w0BAQUFADCB
+lTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
+Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
+dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAbBgNVBAMTFFVUTi1VU0VSRmlyc3Qt
+T2JqZWN0MB4XDTk5MDcwOTE4MzEyMFoXDTE5MDcwOTE4NDAzNlowgZUxCzAJBgNV
+BAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxHjAc
+BgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29yazEhMB8GA1UECxMYaHR0cDovL3d3
+dy51c2VydHJ1c3QuY29tMR0wGwYDVQQDExRVVE4tVVNFUkZpcnN0LU9iamVjdDCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM6qgT+jo2F4qjEAVZURnicP
+HxzfOpuCaDDASmEd8S8O+r5596Uj71VRloTN2+O5bj4x2AogZ8f02b+U60cEPgLO
+KqJdhwQJ9jCdGIqXsqoc/EHSoTbL+z2RuufZcDX65OeQw5ujm9M89RKZd7G3CeBo
+5hy485RjiGpq/gt2yb70IuRnuasaXnfBhQfdDWy/7gbHd2pBnqcP1/vulBe3/IW+
+pKvEHDHd17bR5PDv3xaPslKT16HUiaEHLr/hARJCHhrh2JU022R5KP+6LhHC5ehb
+kkj7RwvCbNqtMoNB86XlQXD9ZZBt+vpRxPm9lisZBCzTbafc8H9vg2XiaquHhnUC
+AwEAAaOBrzCBrDALBgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQU2u1kdBScFDyr3ZmpvVsoTYs8ydgwQgYDVR0fBDswOTA3oDWgM4YxaHR0cDov
+L2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmlyc3QtT2JqZWN0LmNybDApBgNV
+HSUEIjAgBggrBgEFBQcDAwYIKwYBBQUHAwgGCisGAQQBgjcKAwQwDQYJKoZIhvcN
+AQEFBQADggEBAAgfUrE3RHjb/c652pWWmKpVZIC1WkDdIaXFwfNfLEzIR1pp6ujw
+NTX00CXzyKakh0q9G7FzCL3Uw8q2NbtZhncxzaeAFK4T7/yxSPlrJSUtUbYsbUXB
+mMiKVl0+7kNOPmsnjtA6S4ULX9Ptaqd1y9Fahy85dRNacrACgZ++8A+EVCBibGnU
+4U3GDZlDAQ0Slox4nb9QorFEqmrPF3rPbw/U+CRVX/A0FklmPlBGyWNxODFiuGK5
+81OtbLUrohKqGU8J2l7nk8aOFAj+8DCAGKCGhU3IfdeLA/5u1fedFqySLKAj5ZyR
+Uh+U3xeUc8OzwcFxBSAAeL0TUh2oPs0AH8g=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYTAkhV
+MRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMe
+TmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0
+dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFzcyBB
+KSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0N1oXDTE5MDIxOTIzMTQ0
+N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhC
+dWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQu
+MRowGAYDVQQLExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBL
+b3pqZWd5em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvHSMD7tM9DceqQWC2ObhbHDqeLVu0ThEDaiD
+zl3S1tWBxdRL51uUcCbbO51qTGL3cfNk1mE7PetzozfZz+qMkjvN9wfcZnSX9EUi
+3fRc4L9t875lM+QVOr/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC/tmwqcm8
+WgD/qaiYdPv2LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LY
+Oph7tqyF/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2Esi
+NCubMvJIH5+hCoR64sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCC
+ApswDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZIAYb4
+QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZRUxFTSEgRXplbiB0
+YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pvbGdhbHRhdGFz
+aSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFwamFuIGtlc3p1bHQu
+IEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExvY2sgS2Z0LiB0ZXJtZWtm
+ZWxlbG9zc2VnLWJpenRvc2l0YXNhIHZlZGkuIEEgZGlnaXRhbGlzIGFsYWlyYXMg
+ZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVs
+amFyYXMgbWVndGV0ZWxlLiBBeiBlbGphcmFzIGxlaXJhc2EgbWVndGFsYWxoYXRv
+IGEgTmV0TG9jayBLZnQuIEludGVybmV0IGhvbmxhcGphbiBhIGh0dHBzOi8vd3d3
+Lm5ldGxvY2submV0L2RvY3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6
+ZXNAbmV0bG9jay5uZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1
+YW5jZSBhbmQgdGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3Qg
+dG8gdGhlIE5ldExvY2sgQ1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRs
+b2NrLm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBjcHNAbmV0bG9jay5uZXQuMA0G
+CSqGSIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5ayZrU3/b39/zcT0mwBQO
+xmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjPytoUMaFP
+0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJMSEN1rUQ
+QeJBCWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+uxdAu6tYPVuxk
+f1qbFFgBJ34TUMdrKuZoPL9coAob4Q566eKAw+np9v1sEZ7Q5SgnK1QyQhSCdeZK
+8CtmdWOMovsEPoMOmzbwGOQmIMOM8CgHrTwXZoi1/baI
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFmTCCA4GgAwIBAgIIcYwvOXxAdEAwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UE
+BhMCR1IxGzAZBgNVBAoMEkJZVEUgQ29tcHV0ZXIgUy5BLjEuMCwGA1UEAwwlQllU
+RSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IDAwMTAeFw0xNDA5MTAyMjAx
+NTRaFw0zOTA5MTAyMjAxNTRaMFoxCzAJBgNVBAYTAkdSMRswGQYDVQQKDBJCWVRF
+IENvbXB1dGVyIFMuQS4xLjAsBgNVBAMMJUJZVEUgUm9vdCBDZXJ0aWZpY2F0aW9u
+IEF1dGhvcml0eSAwMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDt
+Ei4Xc55v9POZ6J4IVwk0JBFAH4whfhuvOMPRx+YU5fobul5m9SVp9+3NboJwr7pC
+8LEZXCv8RYQYLHoXT2GFRhl8zsGNn1SedyVmD+D2+JLKKc4nVxUqbII4bSfmvk1z
+DnOv43E9vAlCD9UNoe19a673wfBszcKXoVj9NRWWF0yfv/XxOUtwt+dKbBw/wXBb
+z9aL6+9vMOhfyEZ3IWIWXsZURTn1dLpnJGilcVs+wfsJk+simfjS9XsCbI9Y4qvv
+3XQh5CRplEDWwQQYDthC8P3XigXAXxuK6y7ADQcGcwGFjh/BwIqhWKZRuViRQg9u
+4bwK6LsogxV15Q3+STApKULCwjb/pDx9Lvfa8qIvFrxhqJlYGKRJxmoHEusbfLTO
+5/shgCtwpsjOrVUeHx2E0P1UakxWY8jdfqD5OdvvfFr3jDWlbipW+v7jX5NUcg5o
+40krk001IpcUlWZPp3c6LiVM9gmLEhtxxXKnm7m86xygpclUg2HcV1WttebaeCt2
+p/742/6MM6SKo0ZcrbIKEg6K5FCe8LjLmVNMZCFrijgq4IiGANQXrGay574tOynl
++KeU24xY+NJLMJ/yxGJlUEdygM+kcEC2vUT+2b8oKy43x7NRDoIptbFvrX4sk8Cp
+f5H6xx818LuXyU9hKJCEQeh9IUDFyYY87ZqthZyiUwIDAQABo2MwYTAdBgNVHQ4E
+FgQUtE1mt9OzyJl8ATLQkTr31qgSMd4wDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSME
+GDAWgBS0TWa307PImXwBMtCROvfWqBIx3jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI
+hvcNAQELBQADggIBABwa6wauVb07PzYsYZ7qx1P8cKoyb+RCquu9hewbilrylZYp
+oQQGks4kV/9AI3hOyfgwTUJVRE43on1rjmj+Dv5/37CfY1Hz4cWllJ+KIyhI80GL
+0v547dnQCA9tfdWdlazV/hJmGuS+dVTz0U2cThPUnnA0bai6CjOIja0FN/5LeX99
+A0F5Ew2fPfc4nDVaRE8+PKLlgcV/X3ZPGztub5ptt+0PyzIfiLRFDJwR0vgEWhM3
+WZiBzkz05ZQoBMS1U8lUjXA/aAHbzBMK5CWjbJntELN6IKlJvAX0+Bto1rogHYJn
+ZuCwn1zKNdJFrtWIGdt6BpuMoDeHUSO+Rdpcs39rz8aoHDOKex2R+p687H07RRVP
+G6c7NbR581uCUOCcp+0WddtjgGKh2hgCaoDegqpETUQ4KKpu+hhjOWD3QylJWrok
+wL+zCpcdZ0laIrJnBJxYqfgMNFxAlrSHtUVhGeWO7wbekRXAuIrKlMkKdX1xO1iB
+M8j3B0FVmClDtcuaQ+ly+s/wizG85++5auNBnSE+DRWohb0bToeOR7IQ/jcYaoTl
+iRwUY+i5g6m1u+hjmnoZjMt09/gXCPGLGdi07B5uSXM/XCDdNSqWd+lGbxY7y6nv
+mwohEcjDpMkjRW0/YpWd0yjHnQ+z/jeNHUiyUOYluU4zYTbWFhzKMjcgdhws
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFojCCA4qgAwIBAgIGC4LclDN2MA0GCSqGSIb3DQEBCwUAMHAxCzAJBgNVBAYT
+AkNBMSswKQYDVQQKEyJDYXJpbGxvbiBJbmZvcm1hdGlvbiBTZWN1cml0eSBJbmMu
+MSIwIAYDVQQLExlDZXJ0aWZpY2F0aW9uIEF1dGhvcml0aWVzMRAwDgYDVQQDEwdD
+SVNSQ0ExMB4XDTEyMTAxNjE4MjgzM1oXDTMyMTAxNjE4MjgzM1owcDELMAkGA1UE
+BhMCQ0ExKzApBgNVBAoTIkNhcmlsbG9uIEluZm9ybWF0aW9uIFNlY3VyaXR5IElu
+Yy4xIjAgBgNVBAsTGUNlcnRpZmljYXRpb24gQXV0aG9yaXRpZXMxEDAOBgNVBAMT
+B0NJU1JDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDEdvFial/N
+Kc0ENn9uYX5z9J1m3yJamoNEgWb9ThGwPqzoiLJTOf/jur7U/9OF2L1br2hPM6y4
+FH0SW3qVa8c2/iuP9IhgiTqqWThMwV1VgaXf2B8xetOjTvBRy8Mxh64L3speG6F0
+OPCSd3E8yxN+oMEKmL3YuPhUNJhOZxaaV0smhl8bZnKqwfJogp1YQXxxIuLPATH+
+4uBWqWjgrTOvNTkunG4GTPMjdi9pJugFOWm39Uga99/ZOTcyVREnBIEfnTyLjINS
+d8GuLM0rKkrlLfEZabqHXoud4HHIdNLN7m44N2pdGQDSdt2i6247qh31NgZPX15s
+whDz3W+12nla/tVGRDRIr4YANHwkhN1FkPkWgqyokdTpRjNvfrpHH+Hvr+VQ1sb5
+p+1sl6orKU5dxfge9nTJqyT4DVPHaBW+/FyrPXIL0nAEtxbjaanxZ7rGAEx7gDQ1
+Ll7tH6Al96WCahB/v49Zb8NGpspCTkIjhQY5NYy18dfBI0JF/S8lcfjzB9MHaL7b
+mGwq9qVH97BlYK2ufOYRHSdUCGWw2ILAYWvpfo8i1nEda0EgZdhXmh98DlpU4JSw
+bXXvKDI1PFXDbWf4JL37QPNanTbZNUy74mvZsTYP5G8gGsVvesOROa+vzPP2vSCG
+utMkITwfNynmn/wav5jfPLogIRKpwjoqkwIDAQABo0IwQDAdBgNVHQ4EFgQU6pUV
+2lw5AOKa28S6LWf6ofd1NO0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AcYwDQYJKoZIhvcNAQELBQADggIBADXQ2Lie8gn48J+ybkiy1+qhmyiJOc3+Fmod
+6ZyCX1FHOvWe0byuH5/iXErI7O1GQvF8QwcV326X9u2G/J/FCF6CDqMuqAouvI4b
+MRIo9nkowSK20ZVpQOhZCSeikWR26tATjXD8ZcNvEZ8qSMqnYvWDFOUaFseRi7QJ
+xc574+QdbZei6csmHmu03D6Ddi9eTahoiVT9TtJGqED22Mp4zzYaPVlljJv1Kx9M
+gt94eE0mSkdprW8zHwMeIk7ZBlmeRvxQNV/GhRvkG/gAyeDTOqsmQ81H+lr4hQvH
+Mtq1DS0wKTp5sxTppQ9wJdGNCVCU7U2SnjA3QNtaeEmPDzkvvS7XqwiUySmK992M
+vYJ8MFti6DVGVjhdkfYOb4zulZ/9dJ3t7RCrzouPt61/TWlJ8McRVZuagvei+jPy
+RBH6FUtGqZtrl0LWtLcJERR5U6bnfy0nOgo0JETOVYx6gHVzAkvi+kaUfTMUDUJW
+uaDmL4VIkZ9EuqEoqbEfiXomClNchbl8hJiMKGCltnqNPaAAPdx/qkjpqC6sX96H
+LVykaxbqveiVtc54CfhxNuWQaNIHlrq8AIsOmG1NcFPAw8wbE5xImpk9EsAnjmGS
+TGhSb40DHIn104bA/3FJTyBr/dFvkST18UcjTVnf0L1JQv1AOD7i8QVcJegQ5FoC
+A+O7fCUq
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFkzCCA3ugAwIBAgIRANaWLsEKFZMSr49jvNREyVswDQYJKoZIhvcNAQELBQAw
+YzELMAkGA1UEBhMCVFcxIzAhBgNVBAoMGkNodW5naHdhIFRlbGVjb20gQ28uLCBM
+dGQuMS8wLQYDVQQDDCZlUEtJIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+LSBHMjAeFw0xNTExMTcwODIzNDJaFw0zNzEyMzExNTU5NTlaMGMxCzAJBgNVBAYT
+AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEvMC0GA1UE
+AwwmZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggIiMA0G
+CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCkWR+gL9++4Pvp3LWJ/lqXA8k6d6eO
+XK/y4xg59ardD0bSaA9XnKdjYNNYzjXCp/aIwk9/Gyjp0KcAxBdNbeIPxQ4mIyCr
+9zoookwKC8yOzuYAmlpADdRQGpvRDZyU+dvuXNDxigfNmitALEmkXWJfp2vf7lYI
+UPNCGGwxsF7lnHOSvA7SDH3FOFe8u1jbJhkC7eNDhIpOVmvbraEx2cwiZ5Z4/3ed
+zGTFMiBq704w1SQl/Yh5r3Ea/tVLGxWIvBhwqr2tOApmMEbliYXVdiSpqbPmWWAP
+tKlTwjqdRRrWruN3XsRiNjMvMMS/lfEtOKV16NFqky5Fh0tKot+/WCeaymIZql7U
+sYBJlt0r7F+Pm+Cdl4j1hAOjr7Olcy1BuuUHt29rcff3yVqvaZmzL8hPQutsa3Fn
+eN8KrE/XSoUARhrVzbif6pWdD3zRxgWF5gjeiBeB9tW1buqhHNdhquNZQomcWX6x
+fGQ03WEjKjm1EKv8hqlTGsXrauKATlmRwDiJ/rNd1vuR6dewfdl4CMz1K8wr4aHW
+lHPB/lH0jH0KtZqKufXa4Mmz2I+qgoONaVMt/QAEGEqg2lTheYyJ63/1gueguXdN
+rvm6AjuIdut8XbNaE9t8KRZrmdEd5Eghog1eAYjovvGYTT7HFlccX+EIbxxMWENW
+94BljHEOogRnTwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRy
+W7qqcjjuJZAktZQi+gmIyosK+zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEL
+BQADggIBAAaj8bZzVcZnZiHlnVvWlC5KImDyVAGQof21v8CVvxhfLPZrNQ78Mcjt
+RA6Sl9yv3VbPtR+6cpwwyJuxkcB2d9QPGpUa6U0UiKHPawKmautkRU1kjd7862zy
+UwmhhVEV0E+eYvoRuc7IJA5yZIh1NCMwKj+8PDnMzN0LNru9BoKPEgHFcQXRJKGZ
+bMrk96rtitenCq2v8OCAu6GyP1qHZHCGM3sNHtcAhoNDl3X1O8FI/bYOQ6gCbrg+
+f49O4l20fZ4wNC+o8esnh2gNWgpNAdvJFFiV8ppNFqpz2/QliBc4t69ZCQm0Hy0P
+q/W4J1XuRTAzuO0bjryIbK/4Wipr4KyxBSShCfyjD/OwLXuWuraUBxVFjincWA6p
+Bdg7OqB7zYrHZoKXz9Yz4Gf8pttALwXlxYt6KnrwsDabDBj2N+lBof2xKPlva73r
+H0xjcXtQ3Sny/+73x0Vf6DYK6GxbIsPowOcm3OOolYDluToT2wBLGv2uM0d+eJTj
+sV0rtVa1QoufgcX8k0wQtboKvH434/pUbfUExXCzqQTSUdeFzX1vQ49ZaOUxVhFx
++WQpCRP+0B+8iwA4stDKNFZ2EDlWc2bD0UnZvldPPxZ9ani3qIK4W86uhYoKQgwD
+0RfEGPfYV4jGgrgHuT79pOku3G+6kJLuZbBQNNMH2gGXD7znc4J7
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGbzCCBFegAwIBAgIQQxwoxnQP7SVXRJ/y/Q5eFDANBgkqhkiG9w0BAQsFADB7
+MQswCQYDVQQGEwJDTzFHMEUGA1UECgw+U29jaWVkYWQgQ2FtZXJhbCBkZSBDZXJ0
+aWZpY2FjacOzbiBEaWdpdGFsIC0gQ2VydGljw6FtYXJhIFMuQS4xIzAhBgNVBAMM
+GkFDIFJhw616IENlcnRpY8OhbWFyYSBTLkEuMB4XDTE2MDUyNDE4Mzk0NloXDTMx
+MDUyNDE4Mzk0NlowezELMAkGA1UEBhMCQ08xRzBFBgNVBAoMPlNvY2llZGFkIENh
+bWVyYWwgZGUgQ2VydGlmaWNhY2nDs24gRGlnaXRhbCAtIENlcnRpY8OhbWFyYSBT
+LkEuMSMwIQYDVQQDDBpBQyBSYcOteiBDZXJ0aWPDoW1hcmEgUy5BLjCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAKtriaNTzEgjCPvDz1GWCC64CHptPJAX
+hqnp7S4TNEey0HDcyTzQjcruSxer0IWwpyMEy6ii/OV120DKYomPUJ4BPSZbGIQc
+y3w3t33s039zGbBqstiIii1FdKj3s7jA1NrNIol0TVoVOXMYdE+165mnwR6ItMKT
+kGOX86enErIJIgcz2ZHNDpwfDiDH7rszjY/C0linX/1lN+KIwtiPhnVe+S2nhzPy
+eDcvi7wdhjc5sZTy2LxKnIMYWgb889TUuowVCSXw+baNBH4XEjNrV0hMT9smHuvM
+kOeL+Wh8cA+jKtA6ON83l+Jb3oBh04DYkYNCWkwEiWgRPKxfaIBBzGBCzg1aKgwP
+mzDApvCG26tJ15dtSIv5A8BSZ5sS98LyLphlQtnWmuPQGTEMrYfVVwJ6MOiGJvuP
+I4pUh+S/PO7rw3VIXx45b4FibMUtxBdUGbc3jZw3kcj2C9XqY2+DrDjC8z/emvvh
+I2HwyCbLNsih8zCPpKOiod1Ts97wmjIfg5F5MMGpH1ObU6IVUz/dnbMQO0h9iQ/8
+7QP1+yVkdQ4XGQ2PABZneXpA/C1ZB9mQ+pqtPdyAiuZcNaJnTBFrsfiAZAAtbyJh
+xaxLJuVaEIKbpIN7NPeeiZEgl463Qsdmw9DppNb1II3Ew5WsRAqdW3M8Jj0vSr6n
+yacQHvufUGnzAgMBAAGjge4wgeswHQYDVR0OBBYEFNEJ0OnXznl0VPk6MLP0bSwD
+AxtoMIGoBgNVHSAEgaAwgZ0wgZoGBFUdIAAwgZEwMwYIKwYBBQUHAgEWJ2h0dHBz
+Oi8vd2ViLmNlcnRpY2FtYXJhLmNvbS9tYXJjby1sZWdhbDBaBggrBgEFBQcCAjBO
+GkxMaW1pdGFjaW9uZXMgZGUgZ2FyYW507WFzIGRlIGVzdGUgY2VydGlmaWNhZG8g
+c2UgcHVlZGVuIGVuY29udHJhciBlbiBsYSBEUEMuMA8GA1UdEwEB/wQFMAMBAf8w
+DgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQBRG5A+g1oa6Gpwpa1w
+/hCCYTCtjMO1xtjTMRLJH3lTFeJDx+EO8T1IzmgLFXlt4XaHf3Bm7fUPgqS8ce+x
+K8yxuusqqWAfQ4C+knJCLp+h/xgIsV5d9WzOKNvAbJrNh16W6cjvNZe6ZKq3fkVA
+ibBDg0574bT0dglLzFY+IUmyxp9j293wtg8X9bpMcI3VJwDJQ1QPZqq6rrHZdu4D
+ke2YtxobopZQblV/zV4Y0Gcbv/T6ctm72vvemqpRLgW6ztpqbRhoJmiChTTtTXna
+mnYN9PHUw/uxKnTskFLjDV31SVhUJwAwl6AjAWyJvx0A8f38GayfOymow4HNknH4
+1+Wx2hs6F49T2qauAc6ynhrNCWLPddTXZ1Cin1n2hPPHJzGeqh4mS7oOiqzp9eNc
+HaEqNzm7NG4zltVxpUM+NjSH/5Kiq+kl4NlRd1Sqe0E0hljxquU+kt7INBCThD8m
+Rb1Sxjx29yEcruDhxaNT8gmffROeqfOyWYIUlE7fdqqD6SjaiohU+xRxqlA7viT9
+xD5E+Jhk82qPYnWwrEdl9psiOiHhtVdBVsUk1hmSd3CwrBf0LpUQThIwmahURWEv
+N2/6iVdGMvRb6ZvtCSkvla6U4oeqHmpx6W8bOe38fNQNpk4jIjb5Zc9C8ByxM500
+1YkkaeYXaKOZ73pcL/0gvXeZYA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC
+VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T
+U0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx
+NTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv
+dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv
+bSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49
+AgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA
+VIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku
+WnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP
+MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX
+5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ
+ytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg
+h5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF4zCCA8ugAwIBAgIIHWwR62/aOZ0wDQYJKoZIhvcNAQELBQAwfzELMAkGA1UE
+BhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK
+DA9TU0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTc1MDQ4WhcNNDEwMjEy
+MTc1MDQ4WjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcM
+B0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM
+LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJ
+KoZIhvcNAQEBBQADggIPADCCAgoCggIBAMY3fBNvzw/ZUM/m16poL1xR1L/NTKbV
+NzFAEDRBev3LlI1if7iQzc5pljrE/9nXY+bQhCWAEb/R7TDohAbhoJe4VZAdrfOk
+mhtOnBH39dnWj2AqPjf4deyAo1Wg9CdBwqo55FLfEPn1ZTk/jJ3MeyfPBhR3Tj1S
+54SBMWwSMqyEWhdqxMFcgDHC2kd7dg9C6OciFNONxFuPi2VYKSyPDo5J1NTYClrT
+JtMJjthDspRP0sAc3XRiEWm8VCLoOh7QVVZFj3BwjS/vwl29XlTdLnvpGIuKSdlP
+jRDzpVfha6sYS46uLvHyuvVdQfc52KPCXd6fWrEvRJM+P/EiOZRAbSfGzA14DAu9
+KlYmrSlXuHHkf+sTssh99Wtd8/IAMDP6W8sSanpBb28JTLdpDQ95IyMaZo1ZNmOW
+gHsYImseIhgt5KV1ChBZ+6N+JhBTxsgZLh4nGPswBT2RBHqucMbMD6A00yQWGAEF
+Z2nlRdFWqJu/r/qsVQgMAn5Ld6w3wdjtmTSgQbM1OusxNMk738Q9KUU1VLh/ls8I
+D+mxnlXKZ4SgJ2Cr+lAxOdV7yraa7ZGMeB757uDiWUHUH0KAefX0g1AIrfNHQV9Q
+o5+J87QnKlS5GllrCZxRwChrW7go0m81ftWTA250JWXqFgWRAfEHY0+rhMVy2c1o
+m00sfgQ48OpHAgMBAAGjYzBhMB0GA1UdDgQWBBTZWir/pc6doZF9/4ddq2o1EtnJ
+TDAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNlaKv+lzp2hkX3/h12rajUS
+2clMMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAvIzPI/q9M1eW
+H9CC8BKuNETq8bwh1/WJxjQeeKbiUd/deIDV6m3Gqm8JAoyn5svIiVqUekqzVu/d
+3VMyY/Bp791AuZCiLgN3lrUpAFLu+w6nlGjFPAMt6Wuqne6n2GeS4hFaON+YZqOg
+jssMQjZMxVZbn3XwQNHoOyoIm1LDHF+QNFf7xvkdcfwlfM96fR5pxrv0FP4dHeeX
+ooab8t9XkgZSZJMpWQovoRfcu+6tO7MAZTjZqJyBrc01nIvp4vSEjw7PjXFtAIA5
+b7MENaA4YanyL/Q1jdjf3qRpMPqgJnxaInnwaP7LzbzvlYwn5YT5/YRCxrr9ucnG
+WnEwdjYCH9B8qRMO4SDZUgysHoh3oCmGOohmU6/DpcnbVLGk6O5Mbj+5ezCjQugC
+pr2EbSp8/fTtRbcw+mxcI1ZaPGEqx5vmxfJEtwe/dp1C5Fzw7rk+EPPPUtLNzlIY
+f2D2LpVMNQBMRtYQ7DTLWHtqDeRjVcxY2U9jZzHCUqF5DyrPyU7MEsuNGlqqRjET
+Ow3pV2haC4QENi+fEbw8eq1av0bjtyCJHdwHfNx66+l2yQANcLeflxpi7xjmZL4I
+p6SZu3+MaJqYyYZi9qGYNjmj85ZXpAJj+VU+sIyfv6l6SzzZua4PivS6HCWrVVmh
+VsIzuTrEQM+LGvcDDr0bYGN9JdSpvuU=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC
+VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T
+U0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0
+aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz
+WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0
+b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS
+b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI
+7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg
+CemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud
+EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD
+VR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T
+kdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+
+gA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE
+BhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK
+DA9TU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTcz
+OTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv
+dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv
+bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2R
+xFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX
+qhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcC
+C52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ3
+6YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh
+/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrF
+YD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93E
+JNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVc
+US4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8
+ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2snYxnP/Okm
++Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi
+M+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV
+HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4G
+A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGV
+cpNxJK1ok1iOMq8bs3AD/CUrdIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBc
+Hadm47GUBwwyOabqG7B52B2ccETjit3E+ZUfijhDPwGFpUenPUayvOUiaPd7nNgs
+PgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAslu1OJD7OAUN5F7kR/
+q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjqerQ0
+cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jr
+a6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I
+H37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/Y
+K9f1JmzJBjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtu
+nLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktuf
+oYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY
+Ic2wBlX7Jz9TkHCpBB5XJ7k=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQEL
+BQAwRjELMAkGA1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNV
+BAMMFkx1eFRydXN0IEdsb2JhbCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUw
+MzA1MTMyMTU3WjBGMQswCQYDVQQGEwJMVTEWMBQGA1UECgwNTHV4VHJ1c3QgUy5B
+LjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xvYmFsIFJvb3QgMjCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNMPIf5U2o3C/IPPIfOb9wmKb3F
+ibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJIcRHIbjuend+JZTem
+hfY7RBi2xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy95iJMHZP1
+EMShduxq3sVs35a0VkBCwGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsn
+Xpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4
+zDRbIvCGp4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkmFRseTJIpgp7VkoGSQXAZ
+96Tlk0u8d2cx3Rz9MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niFwpN6cj5m
+j5wWEWCPnolvZ77gR1o7DJpni89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4g
+DEa/a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+
+8kPREd8vZS9kzl8UubG/Mb2HeFpZZYiq/FkySIbWTLkpS5XTdvN3JW1CHDiDTf2j
+X5t/Lax5Gw5CMZdjpPuKadUiDTSQMC6otOBttpSsvItO13D8xTiOZCXhTTmQzsmH
+hFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB/zBCBgNVHSAEOzA5MDcGByuB
+KwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5Lmx1eHRydXN0
+Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT
++Et8szAdBgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQEL
+BQADggIBAGoZFO1uecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9
+BzZAcg4atmpZ1gDlaCDdLnINH2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTO
+jFu1EVzPig4N1qx3gf4ynCSecs5U89BvolbW7MM3LGVYvlcAGvI1+ut7MV3CwRI9
+loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaXcozrhAIuZY+kt9J/Z93I055c
+qqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8wkbIEa91WvpWAVWe+
+2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/
+JEAdemrRTxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKre
+zrnK+T+Tb/mjuuqlPpmt/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQf
+LSoSOcbDWjLtR5EWDrw4wVDej8oqkDQc7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+
+x9CWttrhSmQGbmBNvUJO/3jaJMobtNeWOWyu8Q6qp31IiyBMz2TWuJdGsE7RKlY6
+oJO9r4Ak4Ap+58rVyuiFVdw2KuGUaJPHZnJED4AhMmwlxyOAgwrr
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFyDCCA7CgAwIBAgIQR0ORJD/Oww1XSChr7oBdqzANBgkqhkiG9w0BAQsFADBd
+MQswCQYDVQQGEwJFUzESMBAGA1UEBRMJUTI4NjMwMDZJMScwJQYDVQQKDB5DT05T
+RUpPIEdFTkVSQUwgREUgTEEgQUJPR0FDSUExETAPBgNVBAMMCEFDQSBST09UMB4X
+DTE2MDUyNzEwNTg1MVoXDTQxMDUyNzEwNTg1MVowXTELMAkGA1UEBhMCRVMxEjAQ
+BgNVBAUTCVEyODYzMDA2STEnMCUGA1UECgweQ09OU0VKTyBHRU5FUkFMIERFIExB
+IEFCT0dBQ0lBMREwDwYDVQQDDAhBQ0EgUk9PVDCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBALkrXvU+uokenfXRE8+7o1666d85cmSYUodppbbe4b+URb7F
++KRTZxVQ3FJPKnYsLo0gaozmXbnZaL6RG7ppAxitGE42oqxGqyD4A2qqrXnV3x3B
+7kVvIXT5TbGxPZA7PDKA7f8Vz1HK16SHLqrlDrbRelrHufhRu9mU3T7Ghk4K/juJ
+8vhuJM6RA1gFEkrdUKtBes7tqR8RUx6lE9th8PWqgN50eR2k4ynW++D8l9qiuKsi
+PmWwIcTlxRBEh7Lj4CqCLn3m9LikEyXzd2BfY1OuLrGdimt2ezpxvZKBNrCcgvH3
+xYkoXf+8QgazCGpPYc2kLZDTObh3/8jHo3m7A7mRAwE0Etgwi7aMAsrkSOw4KjJM
+bcp2KFqGCrrUII6voF8gLWKciPnxFW1bvbEDUMA/NteuP1HRyuNYZkTmo5t3LjH6
+2X8ixAVM63QbXGN6pgKTfkMOdhQPTW8ylYiAklKXFPU8/JQH02wpBZVGD+Rx4X/4
+bRQSgpK181M+mRGXR3ZKCXLu1MOWCaza//FLS7bXJc8eTJcmCzS7tpTxLGRxX4ny
+FTs3pwLkDU9IiTOjjGh4MVFnChnbtOJ0Lz1683cAn3ESY/9zKmRpVOysOq7a8lhj
+NH74PF7AQjql27Oo1FrBTli4abasgmLb0fsaQyEi/B31nE9OO+WN/3ZaI15bAgMB
+AAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
+BBYEFBpV5BUx4jGbEdSIcXoAPXAoBb/NMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkG
+CCsGAQUFBwIBFh1odHRwOi8vd3d3LmFjYWJvZ2FjaWEub3JnL2RvYzANBgkqhkiG
+9w0BAQsFAAOCAgEAezDKVYbTr+4a17iVmOz5O92QE6OckkWgkolpoXGRvHGFh6At
+MAnkwlM99Km3aC1Nmc2kz547kJ2aCikNKkLBPVtrQILFixOxQWePvqR34MB25PO2
+KVYs73FPwmTx2rQLytA5X1OygwH7sn3Zg3R6NdDBXY+b917nUt/uqjeTq9k9fR7x
+vRzb6HXduFtM4xaj9nWIDo88wwts22BZ5AWrKEb3Zmkld97KSjPYWF57j5rPUo49
+bf3Rsr0+eVeGHkQcB030whCqeMvzURcNdj2NbmhJ6e8HSdG4Fsl5ncyuCwVHev2Y
+rDGhkFqHYvn4q2Ja4CF20GhC6By+coHwxmd9fnQ81VVvj6VolhHxytMwF71GtjGv
+cOmkhDdXugk8LtkLE1YHPpXEtXAvk8Kur4FdRhQw+67F85r3QXqx3ksW2UV1RwJ8
+FB7VsTugLEG1m0t7o4PwuczOHpS3Xi4jBpWRHDhHHO3EeA6kD/wbfNbya9CKW+qW
+8zHUXmrElLgwn5XhB4m4iNInhaRhdOWoRDF6IHXo+Njrs0+q/1M/lu3qu/xRQKYr
+7CSh+/lEjSPnppcAD8ukar9QoMpxomyub9/Zg4Jm3FNdr/pU94P/qz+Jlae0bfMP
+Cg1IMy+BKcdLBcTGV3SEw5g2/++FMqtinBPRIoexvpjbdJqP6sLWk3lFIMM=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9
+MQswCQYDVQQGEwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBH
+bG9iYWwgRzIgUm9vdDAeFw0xNjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0x
+CzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlUcnVzdDEbMBkGA1UEAwwSVUNBIEds
+b2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxeYr
+b3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmToni9
+kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzm
+VHqUwCoV8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/R
+VogvGjqNO7uCEeBHANBSh6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDc
+C/Vkw85DvG1xudLeJ1uK6NjGruFZfc8oLTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIj
+tm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/R+zvWr9LesGtOxdQXGLY
+D0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBeKW4bHAyv
+j5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6Dl
+NaBa4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6
+iIis7nCs+dwp4wwcOxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznP
+O6Q0ibd5Ei9Hxeepl2n8pndntd978XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/
+BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFIHEjMz15DD/pQwIX4wV
+ZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo5sOASD0Ee/oj
+L3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5
+1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl
+1qnN3e92mI0ADs0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oU
+b3n09tDh05S60FdRvScFDcH9yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LV
+PtateJLbXDzz2K36uGt/xDYotgIVilQsnLAXc47QN6MUPJiVAAwpBVueSUmxX8fj
+y88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHojhJi6IjMtX9Gl8Cb
+EGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZkbxqg
+DMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI
++Vg7RE+xygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGy
+YiGqhkCyLmTTX8jjfhFnRR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bX
+UB+K+wb1whnw0A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYT
+AkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYD
+VQQDEyJTZWN1cml0eSBDb21tdW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYx
+NjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTELMAkGA1UEBhMCSlAxJTAjBgNVBAoT
+HFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNVBAMTIlNlY3VyaXR5
+IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQAIgNi
+AASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+Cnnfdl
+dB9sELLo5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpK
+ULGjQjBAMB0GA1UdDgQWBBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu
+9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3LsnNdo4gIxwwCMQDAqy0O
+be0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70eN9k=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFfzCCA2egAwIBAgIJAOF8N0D9G/5nMA0GCSqGSIb3DQEBDAUAMF0xCzAJBgNV
+BAYTAkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMScw
+JQYDVQQDEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTMwHhcNMTYwNjE2
+MDYxNzE2WhcNMzgwMTE4MDYxNzE2WjBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
+U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UEAxMeU2VjdXJpdHkg
+Q29tbXVuaWNhdGlvbiBSb290Q0EzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEA48lySfcw3gl8qUCBWNO0Ot26YQ+TUG5pPDXC7ltzkBtnTCHsXzW7OT4r
+CmDvu20rhvtxosis5FaU+cmvsXLUIKx00rgVrVH+hXShuRD+BYD5UpOzQD11EKzA
+lrenfna84xtSGc4RHwsENPXY9Wk8d/Nk9A2qhd7gCVAEF5aEt8iKvE1y/By7z/MG
+TfmfZPd+pmaGNXHIEYBMwXFAWB6+oHP2/D5Q4eAvJj1+XCO1eXDe+uDRpdYMQXF7
+9+qMHIjH7Iv10S9VlkZ8WjtYO/u62C21Jdp6Ts9EriGmnpjKIG58u4iFW/vAEGK7
+8vknR+/RiTlDxN/e4UG/VHMgly1s2vPUB6PmudhvrvyMGS7TZ2crldtYXLVqAvO4
+g160a75BflcJdURQVc1aEWEhCmHCqYj9E7wtiS/NYeCVvsq1e+F7NGcLH7YMx3we
+GVPKp7FKFSBWFHA9K4IsD50VHUeAR/94mQ4xr28+j+2GaR57GIgUssL8gjMunEst
++3A7caoreyYn8xrC3PsXuKHqy6C0rtOUfnrQq8PsOC0RLoi/1D+tEjtCrI8Cbn3M
+0V9hvqG8OmpI6iZVIhZdXw3/JzOfGAN0iltSIEdrRU0id4xVJ/CvHozJgyJUt5rQ
+T9nO/NkuHJYosQLTA70lUhw0Zk8jq/R3gpYd0VcwCBEF/VfR2ccCAwEAAaNCMEAw
+HQYDVR0OBBYEFGQUfPxYchamCik0FW8qy7z8r6irMA4GA1UdDwEB/wQEAwIBBjAP
+BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4ICAQDcAiMI4u8hOscNtybS
+YpOnpSNyByCCYN8Y11StaSWSntkUz5m5UoHPrmyKO1o5yGwBQ8IibQLwYs1OY0PA
+FNr0Y/Dq9HHuTofjcan0yVflLl8cebsjqodEV+m9NU1Bu0soo5iyG9kLFwfl9+qd
+9XbXv8S2gVj/yP9kaWJ5rW4OH3/uHWnlt3Jxs/6lATWUVCvAUm2PVcTJ0rjLyjQI
+UYWg9by0F1jqClx6vWPGOi//lkkZhOpn2ASxYfQAW0q3nHE3GYV5v4GwxxMOdnE+
+OoAGrgYWp421wsTL/0ClXI2lyTrtcoHKXJg80jQDdwj98ClZXSEIx2C/pHF7uNke
+gr4Jr2VvKKu/S7XuPghHJ6APbw+LP6yVGPO5DtxnVW5inkYO0QR4ynKudtml+LLf
+iAlhi+8kTtFZP1rUPcmTPCtk9YENFpb3ksP+MW/oKjJ0DvRMmEoYDjBU1cXrvMUV
+nuiZIesnKwkK2/HmcBhWuwzkvvnoEKQTkrgc4NtnHVMDpCKn3F2SEDzq//wbEBrD
+2NCcnWXL0CsnMQMeNuE9dnUM/0Umud1RvCPHX9jYhxBAEg09ODfnRDwYwFMJZI//
+1ZqmfHAuc1Uh6N//g7kdPjIe1qZ9LPFm6Vwdp6POXiUyK+OVrCoHzrQoeIY8Laad
+TdJ0MN1kURXbg4NR16/9M51NZg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIG4DCCBMigAwIBAgIINJotoYIGsrMwDQYJKoZIhvcNAQELBQAwggEMMQswCQYD
+VQQGEwJFUzEPMA0GA1UECAwGTUFEUklEMQ8wDQYDVQQHDAZNQURSSUQxOjA4BgNV
+BAsMMXNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2Fk
+ZHJlc3MxKTAnBgNVBAsMIENIQU1CRVJTIE9GIENPTU1FUkNFIFJPT1QgLSAyMDE2
+MRIwEAYDVQQFEwlBODI3NDMyODcxGDAWBgNVBGEMD1ZBVEVTLUE4Mjc0MzI4NzEb
+MBkGA1UECgwSQUMgQ0FNRVJGSVJNQSBTLkEuMSkwJwYDVQQDDCBDSEFNQkVSUyBP
+RiBDT01NRVJDRSBST09UIC0gMjAxNjAeFw0xNjA0MTQwNzM1NDhaFw00MDA0MDgw
+NzM1NDhaMIIBDDELMAkGA1UEBhMCRVMxDzANBgNVBAgMBk1BRFJJRDEPMA0GA1UE
+BwwGTUFEUklEMTowOAYDVQQLDDFzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5j
+YW1lcmZpcm1hLmNvbS9hZGRyZXNzMSkwJwYDVQQLDCBDSEFNQkVSUyBPRiBDT01N
+RVJDRSBST09UIC0gMjAxNjESMBAGA1UEBRMJQTgyNzQzMjg3MRgwFgYDVQRhDA9W
+QVRFUy1BODI3NDMyODcxGzAZBgNVBAoMEkFDIENBTUVSRklSTUEgUy5BLjEpMCcG
+A1UEAwwgQ0hBTUJFUlMgT0YgQ09NTUVSQ0UgUk9PVCAtIDIwMTYwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQDqxqSh1K2Zlsmf9bxQAPQsz/J46PIsAifW
+g4wEq9MOe1cgydSvZfSH3TAI185Bo3YK24pG5Kb97QjOcD/6EGB5TGuBVIBV5Od6
+IbZ1mtxe9g6Z/PjC30GOL6vHW20cUFnA7eisgkL+ua8vDEFRnL0AbmRRsjvlNquV
+kRL7McdzrBzYZXY7zhtMTrAfIAb7ULT7m6F5jhaV45/rGEuEqzmTzTeD0Ol8CyeP
+7UII6YZGMqyaJmlwYS0YvT9Q8J72aFBOaZVwwe2TqZdOKaK63cKfbkkIK6P6I/Ep
+XrB9MVmb7YzNpm74+PfYGOjaVulI8kB0fp7NIK8UJFnudzWFv0qZSql13bMm4wbO
+fW9LZKN2NBk+FG+FVDjiiy1AtWRmH1czHHDNw7QoWhQjXPy4vbP+OxJf9rmMHciU
+Clbbcn7vJwcNALS/fZk/TUWzm/cdGdBPBPrHc5SIfYsUKpng6ZmSCcbWAWu38NtD
+V2Ibx0RS4pdjus/qzmDmCuUYaC0zgHWgMAdo9tX3Eyw6sJ7oWFVujFZETUMXQQLM
+d9xfRQVZz81g07/S9uL01dyHcTMHGvVvtH89l/tfZPRODgBECenr7D5xGQQXOUhg
+uEv/XshlmSumMvJbhqid6CN0EHjvyyedMbpgi04GUOJQHQdgwkGMFbRbNxwK5QkZ
+cgSKPOMB2wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSeLmVP
+Plf1q32WxovfszVtSuieizAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQAD
+ggIBAAVpKoWXJlC6QjkckyzST1vRXUQm2m9pK7V7ntD0Si5Ix+x/n8pZerlE9z69
+91BrUZ90/5AaQNCTeZIPiiNei6+BC9CLrWbgKtyaKb012GxAFElCPYkvupsrOLwa
+owu3iNetxhQM7nxJrK7s8j0YT4xtFF0Oqrffd6s7j2JOiwxlxhmOzcAMoXeqtN16
+pxMF5jkYx5VkfgO2i5DB5V8AI5jmc9oR0hD/HlMiJ8fTAckvxTsybvDDOMoSZ7y6
+Iym7xJVJWgbd1FqQ1BNt59XCfOJYBMDsxL2iPH7GI4F1fKtwXzSElfez1UeWT3HK
+eDIIILRCpEJr1SWcsifrwQ5HRAnhKw/QIzZuHLm6TqzM8AyUzkEPa90P1cjgF4ve
+Ol1Svul1JR26BQfaVhk8jdHX8VE22ZLvonhRBVi9UswKXm+v2tDlDNtswSPvOTF3
+FwcAjPa6D3D5vL7h5H3hzER6pCHsRz+o1hWl7AGpyHDomGcdvVlUfqFXFTUHxXLJ
+Prcpho2f2jJ5MtzbqOUJ/+9WKv6TsY4qE+2toitrLwTezS+SktY+YLV4AZUHCKls
+4xza++WbI1YgW+nQXMZKJDu847YiFiqEkv+o/pe/o53bYV7uGSos1+sNdlY4dX5J
+AJNXyfwjWvz08d8qnbCMafQQo1WdcDwi/wfWK7aZwJfQ9Cqg
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF4jCCA8qgAwIBAgIQTANLrGcYTH+vRAhNgpbHsjANBgkqhkiG9w0BAQwFADCB
+ijELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkZMMRUwEwYDVQQHEwxKYWNrc29udmls
+bGUxITAfBgNVBAoTGE5ldHdvcmsgU29sdXRpb25zIEwuTC5DLjE0MDIGA1UEAxMr
+TmV0d29yayBTb2x1dGlvbnMgUlNBIENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0x
+NTExMTgwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGKMQswCQYDVQQGEwJVUzELMAkG
+A1UECBMCRkwxFTATBgNVBAcTDEphY2tzb252aWxsZTEhMB8GA1UEChMYTmV0d29y
+ayBTb2x1dGlvbnMgTC5MLkMuMTQwMgYDVQQDEytOZXR3b3JrIFNvbHV0aW9ucyBS
+U0EgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
+MIICCgKCAgEAhN+opqOMC3geyE0Zld0pkJIgNZAqlI2CMy1wElilCIqewQjzk9Zo
+wC8Uvnmk/H3M1bw+j+2cSgJhWT2qw290ANL4GjTUVJ5qdEeaL+DS9w/3w90/pb/B
++n1CaWAAgOw85ruBN6QeBhQ9V4+QpDVKNHOHthrDXZDvBk1wdjY8gontz2QZgyVD
+Thzi8WpShv5R5H443xWNTGxgQUpPsEBVRjl1yYE5AHOKYuoPZbePT5dAzs/uwWoo
+oHGpmSfRPck1c3qAmfh9hrmdeTrt0yr6fqa4/1cqc7Kmv9qJugYb2mWg5r5glIj2
+32bhJ2ob/tBeqY0giwrEH36IQS+ywdDztmjtyDvx76oH3n7XIuCB9qXqexb0QlSd
+ln72YhZTzf0Kq7JCoU4qiEJ1g72M5U165x3jTLje46tgOC1nKf7kX67CqOi/rmz5
+67NS8X/p7MIv2Z3KF55C+jtYwT6IYk9fk8GXbWaPHCLzmsH07blrGn42hMgxuPBe
+K36V5HnPdUzC2AS/OI4os91btthPI26S6DeVroOu1vw5KkYGH/GEdSHWuE6mKpdY
+ZfWaGAHX9cN/KckQ7nNKQ3Z70aYwUf/WKx0eYoS++b5pl5nHDed8JFB1F/2kIOc1
+aANglKfZDcYaLOXiTtXMDsB6MFbvYJK+2S71x/DoRc/ahq7v2HepEicCAwEAAaNC
+MEAwHQYDVR0OBBYEFA/xSkp1dAURDB3YW5nrv/6qfV7XMA4GA1UdDwEB/wQEAwIB
+hjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4ICAQA9y9JGePX2Ohfo
+w3tk0cW7kHiN9U+5xC2X+wvmxbjxturoWEs0rXd5LDUfcn0CPu610BaKBjeWte9D
+0AkQLJdmx4EfHuYnxYKRWF7zyFtBaICDkbmcgfgn+kXf7nnyXG1wAlTuwFPYQ+sF
+esz0Ud2p1CJ9ajvy/ojUUkk6hZJkU/hqU2CIj/Jb1K4rUuDq/1R+oeTvhhungwsG
+Zl4wgIxVoEcz/2seREhLYaoePuhMZMfYbX0Orjw8Qj3KJBpw8WEUnDoY1fAGKZEi
+sjo6oRZUYxr5M5VEnySjIWQECOKb1d4IUhxiHFMWRzVCJsenDP3zWxN3Aoxc4hbw
+GB/ZffXfAiSIevNe/xcOs2JnoauxF449Okaw9UaMq4TY9Q6hIOvC8Jl0PY6zA9gk
+xWzrawxTv2Bp3YwoxW/Pu9KBdyvGfLHESmwVEDcpXa74sREFxBSN7BOjRP1Ni2i4
+wf+d1TcuSPgofNz5c1PZtgF1Qnq/C99RULhTsuHudJDLvKrQcYOiq07JELY9HO9A
+109DkDO5AZZUXSrVBluShrgGEIEGyJHbKSCyU73zS1tM22kfiW5UP9eJXee1zQy+
+P314OAHStmemz1hIlBpF/ZBzScq1Q6AhYo1JBCaq+B8uP/IuofKr9AYesC3EwXBC
+Pf3DUUmIAA7Kgg2beQLiwC6T3+Ty8Q==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIClDCCAhmgAwIBAgIQeThLtBkajXQizP+FMvLkujAKBggqhkjOPQQDAzCBijEL
+MAkGA1UEBhMCVVMxCzAJBgNVBAgTAkZMMRUwEwYDVQQHEwxKYWNrc29udmlsbGUx
+ITAfBgNVBAoTGE5ldHdvcmsgU29sdXRpb25zIEwuTC5DLjE0MDIGA1UEAxMrTmV0
+d29yayBTb2x1dGlvbnMgRUNDIENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xNTEx
+MTgwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGKMQswCQYDVQQGEwJVUzELMAkGA1UE
+CBMCRkwxFTATBgNVBAcTDEphY2tzb252aWxsZTEhMB8GA1UEChMYTmV0d29yayBT
+b2x1dGlvbnMgTC5MLkMuMTQwMgYDVQQDEytOZXR3b3JrIFNvbHV0aW9ucyBFQ0Mg
+Q2VydGlmaWNhdGUgQXV0aG9yaXR5MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEFOED
+C2VvrVnWHu7Jv7RMxcZcLzDHn1LbaGHAaRDiknoaw7+SqIk5ivvnoLtxpKDD33fW
+lDcTX35TXVC640wIx2XiQbDmWfKc+MCyd8EKkSZ38mm2u9BBPCqIGpSRFsY+o0Iw
+QDAdBgNVHQ4EFgQUm3vryP+D8lKYRzAKVvg4vuPrAM4wDgYDVR0PAQH/BAQDAgGG
+MA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwMDaQAwZgIxAKlkWPecuRNmIkl/
+stEC6RP8HPukNJLkygcNt7FSeCg0y/IhVpGGhsiKC68yhFRliQIxAOx5DZ2J8AwY
+6ntXUq0L5tR5W8ub4gZFdRi90Pyn3cfhxyK240EkXSPmqJ8AalAyJQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEIjCCAwqgAwIBAgIUKeuSM0ZPMkH/gxkAqa3E2fjj4n8wDQYJKoZIhvcNAQEL
+BQAwcTELMAkGA1UEBhMCQVUxDDAKBgNVBAoTA0dPVjEMMAoGA1UECxMDRG9EMQww
+CgYDVQQLEwNQS0kxDDAKBgNVBAsTA0NBczEqMCgGA1UEAxMhQXVzdHJhbGlhbiBE
+ZWZlbmNlIFB1YmxpYyBSb290IENBMB4XDTE2MTEyODIyMjUyOFoXDTM2MTEyODIy
+MTM0OFowcTELMAkGA1UEBhMCQVUxDDAKBgNVBAoTA0dPVjEMMAoGA1UECxMDRG9E
+MQwwCgYDVQQLEwNQS0kxDDAKBgNVBAsTA0NBczEqMCgGA1UEAxMhQXVzdHJhbGlh
+biBEZWZlbmNlIFB1YmxpYyBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEA005UBBvQ9JuduCOH4CDHnpixcXoGkC7irUj+kwVs7Ia/KECFs0x5
+70dTmBAeVO59eLgYEwxEUv3QgaqTCCM5vl8Pa90ll/MBQt/UgQDEUL56iS0Zr3NK
+P8w6wL+iqMUV9z58QXSCay53ZuJqpZGIbgYxp68L5lrgrn1ary9H0PL7hHOcRqEe
+hERRxF8u2pACX4HfEQ7S+7s6F3Oj8o1jqk//cnplYoNaKjzyzSwjjc/rIR+/1ANX
+9TcWDF7lVxHCqPr/bDnyPVLmtXnAW+Ky6mMgDA6lKl4S4eavX4t8oK05NTWYX/Gv
+ONAm0029Ynd1Pa9rFIZ7WvYhj9bq4qcOrQIDAQABo4GxMIGuMA8GA1UdEwEB/wQF
+MAMBAf8wSwYDVR0gBEQwQjAGBgRVHSAAMDgGCSokAYJOAQEBBzArMCkGCCsGAQUF
+BwIBFh1odHRwOi8vY3JsLmRlZmVuY2UuZ292LmF1L3BraTAOBgNVHQ8BAf8EBAMC
+AcYwHwYDVR0jBBgwFoAUrJnhAi/oXEtBtzS4HumbgzYNlLQwHQYDVR0OBBYEFKyZ
+4QIv6FxLQbc0uB7pm4M2DZS0MA0GCSqGSIb3DQEBCwUAA4IBAQB4vIFK2DpXu70m
+v+oqKPCIivJQTJBn2kv1uBQIutt/cqiaWbzxHImo9DoDEFQTel3G2ro+D4jVatMb
+ly1iYTpv+QCvcgZz7BDAYR7MXE8ZMkY4wd0/0jcapY6GoPAJzDXWGQJ8zTn89/kf
+55R5Tj23+JdOO0RqzZSwufd+4uP5mX/F06ZQtEn7Fn5OQSzPPsd5QLqBGCYI+cWd
+49jxbxxoP2pbdxdSowbeGcJLbqKV/NUIvyy1aTVR4+PfTxopbYN4PTgkygI/VBDh
+s2Th1Zre8zf2MxC1drOr18kfUzqtVUEcSMk2nof/ddxp0K/ZelfGyrFD/DmB/Nx6
+o5qlmFBU
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIEijCCAvKgAwIBAgINAJCud3YAAAAAVx3QbzANBgkqhkiG9w0BAQsFADBcMQsw
+CQYDVQQGEwJTSTEcMBoGA1UEChMTUmVwdWJsaWthIFNsb3ZlbmlqYTEXMBUGA1UE
+YRMOVkFUU0ktMTc2NTk5NTcxFjAUBgNVBAMTDVNJLVRSVVNUIFJvb3QwHhcNMTYw
+NDI1MDczODE3WhcNMzcxMjI1MDgwODE3WjBcMQswCQYDVQQGEwJTSTEcMBoGA1UE
+ChMTUmVwdWJsaWthIFNsb3ZlbmlqYTEXMBUGA1UEYRMOVkFUU0ktMTc2NTk5NTcx
+FjAUBgNVBAMTDVNJLVRSVVNUIFJvb3QwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAw
+ggGKAoIBgQDTy5wtwuAwQ2UxJP9LsDjZqVPXNdHbt0uTtHKN8cuV0lMrdJsymqQv
+PgIG3a9wFaGqzxGHimZ7y8wdcERcj6zK5sNbJ7SNo44Qv25UdAhwiiPoysd0xGaR
+IN1L6KWEdaWYlYKLG+EgJAdGqwxlNkBni3XuqdmRKRvtby1FwtbiYAGx8045Kztv
+P4W+CPZTK3uiyUWhRIGAZppgOhvEvgzMMBB/ETY4SuaboZZTnJTMEcYETKJVS/+A
+4a+MHDX8uZM33/ldPdzrDSdsRMlZZitWb/8EG/f1acNdwxj+vafZZC+in2DZcmw9
+PHXyJSeYLjq4yd1Ndb2rsCJhWAE3KKYgnS5gXPuQvEZDuP5t2MBmIiRrNHgi5bni
+WOlIOO5MvQF7bj5A6tHCCkKTZ8MmLz8HW8+v4x3oOuJl4YSRP/VmAP2qM0ZC7BY+
+0hNlLw4JU/bkKnUUnBkzFppF4dtXz8841Kf37VhD5A6YXMTgMT+UpG9LSqLVSo0m
+qR1kJQg1DecCAwEAAaNLMEkwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwEwYDVR0jBAwwCoAITKPDaF4IAmMwEQYDVR0OBAoECEyjw2heCAJjMA0GCSqG
+SIb3DQEBCwUAA4IBgQAmI4W7XUEZbpKDiu4BiwQ1GX+rj9zWM8H5eZZeI/Xwzt3q
+22E7Wq/dWOlCiUDv+dlnEX9N8e3pEXuxQQ/tpNIWtu/B/Yv2ESss7/wHBkYMzwIL
+7Tvejwm5M6smgFREQmXX56/NUA7KyIihEpwqlTs+VDxIc/Z8eNSb/5P3ReQphGP8
++n4a51zgclewL3gdMMYT/YhfsWWI2l6XE4F7/h7Pe79XMMFwkkOmmfBVn5jFI0K9
+dBwxjhKl2UVqKlrIWM291t0+NQsZfwMczgcPh0WTFaFrvTQc4N711LjlkRxLBbUn
+JrzP0QmYFsbh8VVLOntt3sZntsE3LZ+ojlnHt6bF798W4u3esrfzojakKDI6CpTL
+P17+blntujayk9bGwxn+9Zl460dH5a1Ceuy8e8kuQU5NDwQOikszh9zxdnxaGIyc
+ChLXorPChYeubTFQYjIhoGgWX5Q1dFUp0nGBCErh112qVAGzG3xZrr6sDMq4QGRn
+W53qBgYR1tAwcx7jvCs=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFlzCCA3+gAwIBAgIEAJggXDANBgkqhkiG9w0BAQ0FADBTMQswCQYDVQQGEwJN
+WTEbMBkGA1UEChMSRGlnaWNlcnQgU2RuLiBCaGQuMScwJQYDVQQDEx5Qb3NEaWdp
+Y2VydCBDbGFzcyAyIFJvb3QgQ0EgRzIwHhcNMTYxMDE3MDMwMjA5WhcNMzYxMDE3
+MDMwMjA5WjBTMQswCQYDVQQGEwJNWTEbMBkGA1UEChMSRGlnaWNlcnQgU2RuLiBC
+aGQuMScwJQYDVQQDEx5Qb3NEaWdpY2VydCBDbGFzcyAyIFJvb3QgQ0EgRzIwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDiCITb+8aEEHwFP6THQZ7TqBtb
+3TaYSs8ew0Z9S7ZLPe+emUZAgiKw2Q7RokOUYbJtjjKzurAsZ0n2WqJzxFnZXClZ
+yKaOYDVguIROe6ww3pLetZfQnjDu3DjFahdEjej9c3YfskfCMe5OyUNQQd6BSdLE
+U3iyZ/M7fKHYB1N3REW7CtqIXF5Dk7KPwVOaF9VonyJ1swK0Idey63TVPiu3ZM4L
+pNPANjpQq8NLcB6aPIW6dqmrU9NOypahSofhYjS+WELMwVgAwUkl0MWMpRx+bQ1X
+xya8irk2npmZ3xOjkT3lerwHM6oyEALOsw01rlCMPuqzOvOiPYPHBBu31RxC4vBb
+Wc2chAGN6peteIPvhCxlUqvYYv0OmLj3bniEdXF62MThh0XycsUzVCJ+Ml6oif3n
+z3t9AvuNombifzAWsY7zMFiQPeBt2WDC52V/+QFtSPejH9LZprFDjYzVv+CmxUHa
+umtctYS60GMUeQBIh9Nz0nEi+a9gIkNSD/0dZv0ygNWpx/N5OpEDN9KIj95EWNQq
+1diUvX94BIGaVWmM58Bts1sHoYjXd3wK32aMeMyeWSwFZzDt2eK+GTFDxjVMmWJO
+PZWackxSqa974uhWkx+5FzMsS+VhkHBjB6rp49lhBnXtnp2Hw84FFRyaSg+PXNlp
+jZSNjQDxTP95DFnxswIDAQABo3MwcTA7BgNVHSUENDAyBggrBgEFBQcDAgYIKwYB
+BQUHAwEGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwMwDwYDVR0TAQH/BAUw
+AwEB/zARBgNVHQ4ECgQIQaEFrr4+4PgwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
+DQEBDQUAA4ICAQBTg4Bfdkwlp+j52cs/Sqg5kK1mwsmbP0OvAPc3tNbek0gCrPMW
+3s6yQnfdoNeP4xBKwDjVyL5fpLV6iEdjiaBNapXggpvnQVstRQqhRc0+3To+M5Xq
+CGmyMfv5Y/x/iQsMdYOw5AhMxiafqo6+iMQkm25Q8OXDKV8RbfpjKkg2K+bRguTd
+YekklhS5/j8rKLJLVPwbJ+f0Cri1V/gcd+Airke8dTfr3CifEvb8RHVR4pcfojCd
+vto9idrcyHoHfPP4RYxXF7ZFDOld3G/EaCI+YvGpfMuZTEq/fbHFnvYH7YPqjyuJ
+5J9K4zNAo/Phn/l9W+/gd+lmRWkUQBmMLjbIdKtPkzmDDXX9j6xtC+14YQ3F6oNp
+reDk5qATmKo3UKBs4MP54/t0V24ddS14K1bm9RK9561Q0DZjHxVRu2fmyrKyRXkj
+wLYxNzi/MZ8OO7TBb+py2fHfMXQej3UpOb1B9NM0dVnKyrP2YKjF+pNHitRRUqiA
+xK21arHej7E48d4ADSN5VCPOwkPUQhoCYJgc8kpp/NYMbKFy6FTzkgOSm0jbiPFi
+Zmbz8oXKcjO3BWPP3YJmQxnc56O1bqyvcZtxH2vLpstzA6N4PbGbsk3uDIJXeyxH
+pgDhwRnraCFlkiciqyR/0s1D8FAHFXcPQEFb0MrCylIzplAFDb+o2491Hw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF4zCCA8ugAwIBAgIEV8fs9DANBgkqhkiG9w0BAQsFADBrMQswCQYDVQQGEwJT
+RzEYMBYGA1UEChMPTmV0cnVzdCBQdGUgTHRkMSYwJAYDVQQLEx1OZXRydXN0IENl
+cnRpZmljYXRlIEF1dGhvcml0eTEaMBgGA1UEAxMRTmV0cnVzdCBSb290IENBIDIw
+HhcNMTYwOTAxMDgyNTE3WhcNNDEwOTAxMDg1NTE3WjBrMQswCQYDVQQGEwJTRzEY
+MBYGA1UEChMPTmV0cnVzdCBQdGUgTHRkMSYwJAYDVQQLEx1OZXRydXN0IENlcnRp
+ZmljYXRlIEF1dGhvcml0eTEaMBgGA1UEAxMRTmV0cnVzdCBSb290IENBIDIwggIi
+MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDV39ONmRdqmz3gsGnbtAXMvqUg
++E8NB7MZPJeDPey8uVwMrKIDZKN/DHcT5siHq1IYTzDv6g7dgveVDzCKwBlQvGBl
+odwRxn8W8RuY5CJXUUKMynCWXG4NuY9naloFm98ePzjjqiVGwZwrkn/0grEjPN1s
+Z2ABVPLkqhD9o4p3JyGe1j3dRlwFPxgIFgplyAxNT2Y9XhZfFw8O/8EXC+cid18a
+C3hpp8oGj17F30CzDvjg12g+cUHJn41h60uZ4K8zAHetxBZZZgg2p0rkUixZP3t8
+OEPkC6PT5Yl4U+ZrvPUnMOggNg6xDI4OFMhUNwd6rujTtsBGTMe1MS51/FHyqmz4
+GKsmhWC/ELnDQRNf9HnBCfaRrPeOxY9INakW3R7gX4XzGrM/gVvRfkLu5BtnRGy5
+wen7kHQ/lE6TybTpfUJLHfCnlptIfaKQXLQUcCCpCASL0nyy0glMI2ypMZPWKYFF
+LsPkqqbvvZvxy64Ct2RdgD1BTYlLi5qct4FvX9xoU4aKcXTSVxcyg77V9Hrbmu4N
+CtVjq9QR5cxdbT7Bj/SPTl0SJkTPLX1XekED2c0eOC8Q1JShNXI6Yd7uQ4tIKdJ2
+4S1RLtS+vIDb/02LXw0wraMwpTDr1SRnljz6gW249RiBzMW2QgfzvITmHF6D1Gka
+uELq29THck1NpZm/owIDAQABo4GOMIGLMA8GA1UdEwEB/wQFMAMBAf8wKwYDVR0Q
+BCQwIoAPMjAxNjA5MDEwODI1MTdagQ8yMDQxMDkwMTA4NTUxN1owCwYDVR0PBAQD
+AgEGMB8GA1UdIwQYMBaAFDofR9lvhhjpKfr+Oc7L7YrJVlUrMB0GA1UdDgQWBBQ6
+H0fZb4YY6Sn6/jnOy+2KyVZVKzANBgkqhkiG9w0BAQsFAAOCAgEARbJm3IEyIRyA
+mmkJ9aaUVVkB93asquqINx6sVfVKH26JV6OiBuudmCkasa0EVtruWDtoKm7j+QSP
+KlKbW+wQ/kwors+qFCzeFgJAU/3XXGAZ5UWWkuzjHhDf+RtK1aS/opcp20BBb9qu
+7AmBukLwJDN+wFVssEd2Yo1Y6oG5FpkTBxou/xUqrWW7u9JNjCNVuxYo9SkZnsn8
+avw+o+4XAgwTNJkvreeu4kA8dgxKsYQ5Ke3DPbiox5ZA/rK8t3LsoU++Pnf4fY7o
+Dqa5IsPkt5FkD/2RjaWoL4POYf1Z3mNpo4YwbsXubM+272ZcXvZ1Uf2YSCM4yb/p
+dQb9cWwhf/zJGceoAMYqXACd+vLkc0i1eIteq+l07Cvjph38Kdbhd1GXikEwzNHM
+k+rJT8V+caOm2Whsbn9Duxa9RbwBQp4O5x/Zn9q+GDfH1COy7jIMy2/owbhGasW4
+BzI5zUq+w757LqLd8qtL2qbOkF49c35RlNLeL8dxFDaRV/VdpMvtxgIxaML7RfVa
+c/p7oT+o+W3NN9/APyjxvZKAuaCZo5JXcuXrsgXOzEYbobD3w4j1CCR1ZIc/K9MB
+Z1KPSTADjsdBUW2EmR4blEU+HkRHxSnM+gZp+Usn3GSkFkFrZuPN+c1+9a8nLZ3P
+7naLqfk3x/LtOfB6wiMDtoXZPJRBvNM=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx
+CzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ
+WiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ
+BgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG
+Tk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/
+yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf
+BBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz
+WHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF
+tBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z
+374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC
+IfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL
+mbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7
+wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS
+MKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2
+ZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet
+UqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw
+AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H
+YJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3
+LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD
+nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1
+RXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM
+LVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf
+77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N
+JpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm
+fZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp
+6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp
+1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B
+9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok
+RqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv
+uu8wd+RU4riEmViAqhOLUTpPSPaLtrM=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNV
+BAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE
+CgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQy
+MDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G
+A1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQD
+DC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy
+MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvq
+M0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf
+OePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa
+4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9
+HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYR
+aZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcA
+b9ZhCBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQ
+Gp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQV
+PWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMO
+pgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUCYHBBXtSu
+UDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY
+MBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV
+HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa4
+9QaAJadz20ZpqJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBW
+s47LCp1Jjr+kxJG7ZhcFUZh1++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5
+Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAg
+cLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2GguDKBAdRUNf/ktUM
+79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDzOFSz
+/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXt
+ll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm
+Kf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKK
+QbNmC1r7fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQ
+w/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooi
+S9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07
+mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBH
+MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM
+QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy
+MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl
+cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM
+f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vX
+mX7wCl7raKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7
+zUjwTcLCeoiKu7rPWRnWr4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0P
+fyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXWnOunVmSPlk9orj2XwoSPwLxAwAtc
+vfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk9+aCEI3oncKKiPo4
+Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zqkUsp
+zBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOO
+Rc92wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYW
+k70paDPvOmbsB4om3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+
+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgF
+lQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
+HQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQADggIBADiW
+Cu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1
+d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6Z
+XPYfcX3v73svfuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZR
+gyFmxhE+885H7pwoHyXa/6xmld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3
+d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9bgsiG1eGZbYwE8na6SfZu6W0eX6Dv
+J4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq4BjFbkerQUIpm/Zg
+DdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWErtXvM
++SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyy
+F62ARPBopY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9
+SQ98POyDGCBDTtWTurQ0sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdws
+E3PYJ/HQcu51OyLemGhmW/HGY0dVHLqlCFF1pkgl
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBH
+MQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExM
+QzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIy
+MDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNl
+cnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv
+CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3Kg
+GjSY6Dlo7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9Bu
+XvAuMC6C/Pq8tBcKSOWIm8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOd
+re7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS+LFjKBC4swm4VndAoiaYecb+3yXu
+PuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7MkogwTZq9TwtImoS1
+mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJGr61K
+8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqj
+x5RWIr9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsR
+nTKaG73VululycslaVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0
+kzCqgc7dGtxRcw1PcOnlthYhGXmy5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9Ok
+twIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
+HQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQADggIBALZp
+8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT
+vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiT
+z9D2PGcDFWEJ+YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiA
+pJiS4wGWAqoC7o87xdFtCjMwc3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvb
+pxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3DaWsYDQvTtN6LwG1BUSw7YhN4ZKJmB
+R64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5rn/WkhLx3+WuXrD5R
+RaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56GtmwfuNmsk
+0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC
+5AwiWVIQ7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiF
+izoHCBy69Y9Vmhh1fuXsgWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLn
+yOd/xCxgXS/Dr55FBcOEArf9LAhST4Ldo/DUhgkC
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQsw
+CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU
+MBIGA1UEAxMLR1RTIFJvb3QgUjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw
+MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp
+Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjOPQIBBgUrgQQA
+IgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout
+736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2A
+DDL24CejQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
+DgQWBBTB8Sa6oC2uhYHP0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFuk
+fCPAlaUs3L6JbyO5o91lAFJekazInXJ0glMLfalAvWhgxeG4VDvBNhcl2MG9AjEA
+njWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOaKaqW04MjyaR7YbPMAuhd
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQsw
+CQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEU
+MBIGA1UEAxMLR1RTIFJvb3QgUjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAw
+MDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZp
+Y2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjOPQIBBgUrgQQA
+IgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu
+hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/l
+xKvRHYqjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud
+DgQWBBSATNbrdP9JNqPV2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0
+CMRw3J5QdCHojXohw0+WbhXRIjVhLfoIN+4Zba3bssx9BzT1YBkstTTZbyACMANx
+sbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11xzPKwTdb+mciUqXWi4w==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDgDCCAmigAwIBAgIDDN+bMA0GCSqGSIb3DQEBCwUAMGgxCzAJBgNVBAYTAlNJ
+MRQwEgYDVQQKEwtIYWxjb20gZC5kLjEXMBUGA1UEYRMOVkFUU0ktNDMzNTMxMjYx
+KjAoBgNVBAMTIUhhbGNvbSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0x
+NjA2MTAwNzA3NTBaFw0zNjA2MTAwNzA3NTBaMGgxCzAJBgNVBAYTAlNJMRQwEgYD
+VQQKEwtIYWxjb20gZC5kLjEXMBUGA1UEYRMOVkFUU0ktNDMzNTMxMjYxKjAoBgNV
+BAMTIUhhbGNvbSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eTCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAOlSpsYa72O7rYH0kLJajw3VFjO0HBj7y4kq
+MLtlgcTh+wKplAd25dcV5HpkEIDqPNCzoq2uHB/qu4FhmNT5jWmVxEUuAwnKhvpc
+WhEXQDA+8MZjCcnxjUGlVg0FZGlLWKwqKZa7QDMWNEtnbNfxtEal6lmoQ2gPjDgq
+qjz2RAOG+IrbRSErKR4St/qlZUHeBghYcJU+9EzZ6w8pqZGKnq3KEvXlleY42Rqm
+i5xPpkgTEKV5RL1qOyn1FndAy36bXN++i+vnoBlvnxU/J54psfUN/F9HojzdLgsC
++/SN6uwMsfm0Baz5j6k9biwdOZ/QTp9OyGqegANh3M/4bZTLD88CAwEAAaMzMDEw
+DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQIQq6mQ8eYKLAwCwYDVR0PBAQDAgEG
+MA0GCSqGSIb3DQEBCwUAA4IBAQBSuXnQ22P+GYH7DPnB5VBZyp2y+1wz0Dioq7Ua
+TlMldSLTSb/Kgc/T4XujkUZ1yhrr2fVdvHuGNf2Bl5yE1yaYIvyxNdCplbZ8/+SX
+tEB+SV1oyOLUOXUnTwORsjFXv4bXbcpxACI30DtYJFCgnIyaiY71KEZs5xbtsIGr
+9EYmr6boGkV3cBaSsntxcdz330lnwDMIDi5TwXerx0qRTBLv5w4J5XUxIK5u/FqK
+gJwQsNuoSszzK9w2NKb3qQtnnZDLPSafdc1MyR0GCnWLUsCB8NEmrMySphScXDwW
+QvuTzAKoE/PargrDuBX0sNDU4BYgT6xQmHgmlB5o65Ry/veL
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFPzCCAyegAwIBAgICPs8wDQYJKoZIhvcNAQEMBQAwSDELMAkGA1UEBhMCR1Ix
+HjAcBgNVBAoTFUFUSEVOUyBTVE9DSyBFWENIQU5HRTEZMBcGA1UEAxMQQVRIRVgg
+Um9vdCBDQSBHMjAeFw0xNjAzMTUxMTE0MzJaFw0zNjAzMTQyMjAwMDBaMEgxCzAJ
+BgNVBAYTAkdSMR4wHAYDVQQKExVBVEhFTlMgU1RPQ0sgRVhDSEFOR0UxGTAXBgNV
+BAMTEEFUSEVYIFJvb3QgQ0EgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
+AoICAQCv8F+SyvwcsJAt1CaLvyqZeTbHdIwB76G9cvg0hMwtTdfrk5HLCYO2+tRl
+M12cmBtew+bgQENlZ2OlcKvlqxZgtqsUezqjbvUZbyrEdKBZdJT2ntf8Mn8M+a8U
+UbiPWrjVdg6n/XEKPgv8EFJL78LEH1Kh8eXpsRAyrKluW68rt4DJUStKA+w//fBT
+LO++WqbEAfCcBO3g+n1GvxE36w+BrDoZhwed+F5YqP9jvHB1puCrMdGzgoY2aaOx
+atU2RdWf8IWKCkUOC0GxEZqx7MAmbUuIN1/sFIOF570+ZZ1K0geHbYaDWLplGcww
+ldusUvq2zH5uHbmwgFV5U1wNCFZTUrfkl4NjarnSH7xqIREiVhzoPRmEzlmGKtEG
+JxLbRyukp7DD+B68/qw/sp7csCLFT3Bh0/4o4RUZLHg8P8N9mWA2eW5byThmoaXp
+LYHGUqyezxteyybZ7dQF7VcmdqQC4zbkTkV+NGcY//wUKPX2vANOvIjLegkorQHj
+cOi5O1WNEMiUJAduG5pyxAsY+21rZXlv6L2MFaDkoBUU6TvJXfph4nnDCzNKBQ9B
+UQm8YoB3V+C0uxiSBe2OVCHd9YcYHGqosgJqQoxD1R4fZ+HV3QBjj+ALf0GUYQaW
+fACPoN9TGUe8VDLZGwu+jp89TNygUzyV2FHZp7idkbyDyPHkgQIDAQABozMwMTAP
+BgNVHRMBAf8EBTADAQH/MBEGA1UdDgQKBAhHo6YEnS2W5TALBgNVHQ8EBAMCAQYw
+DQYJKoZIhvcNAQEMBQADggIBAIbX9Rko9qewUKpuPSM+Bu/nNHusyYUusKmiwn0k
+RT+tyNaTJ7XKjyygBDiD2ZrP7lcs7LEJE7LOfCQbZ+BEgszipWRLSzVsZ0Jvc7w4
+uX7ARMh1/AVxp/udBcLlJdkssXVntDH3uiUMjp3JfGxK/HUFYKTNz7ufjl+dsiBA
+S2tuHacQHu+/YA/LN/1MI/pi431dgM2ubMfmp6STGHcfU9Z9qf914yTgT8uiYedm
+PtS0Ch0MFY46hQbG72xy/dRD0/2MqEOBWTjBhnwgh46oJIpGxAWtbaDVWBBTmZTy
+rIosVqZSSkw3OVW8wviueay5NoVuYVI+/TTqYWhlgYFM2xT5YI0EdQ8Q30PTJcdA
+X5vk0DB92gZB9O1m/jgRcyBZ2YB7FeFC1zqebGVfMXahE2XaJzuwEuisSLaZEQd+
+LspikapRYfRnyit50o8hWl8WcI5UmJ/281kBba61pBJzn4KfF5/a7YOPI/1izjbe
+A8HRMKbTou+rXXV699ccLPfZ6WY6l5QpUNv8AgNf8jDXUTKcxC+dStkx8TUPfoOq
+HeK1xlFBa1ctIhmPO6cjuwN1nrv8+SCHzHBfjiBwLzo+Yg1f0uE2nUbWVbKYCi6c
+wFXS+x56a0p2KSYS9q+kp7ztMqFw0/mNiweBpX0GwI3xNb62YLJvHiOikcr5YI3m
+6JPv
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQsw
+CQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91
+bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwg
+Um9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRaFw00MjA1MDkwOTU4MzNaMG0xCzAJ
+BgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBGb3Vu
+ZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2JhbCBS
+b290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4ni
+eUqjFqdrVCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4W
+p2OQ0jnUsYd4XxiWD1AbNTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7T
+rYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0EAwMDaAAwZQIwJsdpW9zV
+57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtkAjEA2zQg
+Mgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGAzCCA+ugAwIBAgIQL9Z6QyKTMpBF6VM0PuJ0ZjANBgkqhkiG9w0BAQsFADCB
+kzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
+ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE9MDsGA1UEAxM0
+TWljcm9zb2Z0IFRpbWUgU3RhbXAgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkg
+MjAxNDAeFw0xNDEwMjIyMjA4NTdaFw0zOTEwMjIyMjE1MTlaMIGTMQswCQYDVQQG
+EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
+A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMT0wOwYDVQQDEzRNaWNyb3NvZnQg
+VGltZSBTdGFtcCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE0MIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEArgHUXaBYyu3ozOE3RkYQW3rEUrgL
+WI8FPV2prVHiA4ngBhL4AnhrXgRQz7bWBAxUHnk3IDzjfmMdRXeYFB2+diLcWqo/
+5G9AYiRjyDzATIcoPWt4a5g5lRpBf3NR/gf8FHzzj4QJ4fjCL6FOvTl9zGNniQyA
+BM2wgskAiz4JhwOdwnlCxFwhkSuVGmw1R2zIvzwKTur2hXDVxV/BnkfbXMIyYVoI
+1nGdLIGffri+baHYZkNpCuTzcvCRSyhgqNXj3YSuKGVVn4QrSnXtJKYsdTHUhXd0
+8oBVAmNB8nAI9MjCU5HbFAdlIAmB5orXmw/KDNcbX/3R5XSFXBD7msmmK55Dlsxb
+cnPQD1WZhxgbPfgpeLBv0XS85SC6Q4sUOGlkoXMPwRYpeU+bhSlosT6ZKo+y3EcG
+zd/Q6yLcHlccflmQJaMDgr6Myx2buY0quKEQ5/qtFv7s5VPGrcCXfESbgfN6pvn/
+rvqsF6mmYL1nPHlshQtVrzHEw1mQDqHVfEg5i63juw7k5frf/dqdnltvGzIOpjfT
+qqosBBdl08ZORyStglCZQSvWs+cmWrE1m+ZxVeHIb6JEHchchPz5eAF2wT53k/Ki
+lOHacDDsZAquoqEdP4NDc0DS4IlwWa+NLtTUIQphpPT3I4ZDgCiyHEMMRdr8Bvgl
+QAd1aXjjphOD15cCAwEAAaNRME8wCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB
+Af8wHQYDVR0OBBYEFMvR8s5I/QGf6laqV9F+mVj4P//gMBAGCSsGAQQBgjcVAQQD
+AgEAMA0GCSqGSIb3DQEBCwUAA4ICAQAT2NPko9gmzv07R++AvvujloXafZWcKQBi
+Rr5ICsoU7B1Osh71zkavWQEQOP3iZQu/+A/mddncM8qD764gV30n+shcID4Lhiy8
+EnYDXNMhU6DPPvdFGSIPbiE3xmiHxJwpVaOQ6KkevrNB549H6R00xWQkW0wy7Laa
+DLhW4AbkQIvyEAf6jo5mIOYcS+Slo7suBulFe57J/5SKV8Fpo11lWN20wmNKpt1j
+MRiv7RYY2sFqPx/Sqpa2YW/Vgym0eWbBwVADHNDqLsa6z8aYbdYbxs4QsMnxQxor
+1/8VNIY72Uo8bT4juwI9zlTDSiXvRjx5W46zwiqCEkVSlsIJ1Ep4nt1vn/mfcEqa
+o03vLfqqlvq0fdY2l87w2HzSL1ZUCgBg0DyOaOLNKao9LiCDy7JVRqDfuJF5KJJB
+Dv4mOEN103el3YdS8U2dv9yjLfIeD0kspRGwijYTObD1G5J3tIPdmJ4Fr6CjCdDf
+HXaYQkQBc7CyqTtS5bZvq4zy1Rcpf2/45aM0625FkkhNAlW2N6ECsTTfx7KSPQK9
+NxoG4aGAjpIlMc72geeu5ZIXrFnEkqzfyCwnUkIeJh14h7lOi/dHescBcNWhyQui
+Igg4/MqowjtT3As2O+Gjyq33tgjDE1WvAzpptOmk0S3NZ9TDQspjX56ApOxjbHLE
+WOUH+pb4jQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAkKgAwIBAgIBMTANBgkqhkiG9w0BAQsFADA+MQswCQYDVQQGEwJKUDEO
+MAwGA1UEChMFTEdQS0kxHzAdBgNVBAMTFkFwcGxpY2F0aW9uIENBIEczIFJvb3Qw
+HhcNMTQwNjAzMTUwMDAwWhcNMzQwNjAzMTQ1OTU5WjA+MQswCQYDVQQGEwJKUDEO
+MAwGA1UEChMFTEdQS0kxHzAdBgNVBAMTFkFwcGxpY2F0aW9uIENBIEczIFJvb3Qw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDNRT730ZYiXJEvPgoAA8y2
+92xU/Cg31AQY7K2Yya/Tpbnn2b9O5qOZPJluoSAeRhvidVW80uz2iBrsNEVLg53T
+subdB4nBCNn4O4uSZHJdmjvMrTeJx9xgeQjgcKz3K+2fA0kfjj6DqG7iklxU0Xnf
+7Bg6fbhtj9ajJU2tH0CmX9SqTrFwGFmZ8gtUaT55KESI93GXzX8F3MrcdkqQTGtg
+6PomMdi1+Of8bYskarbvQtcjVMUaY4o7x/yqbTyPy2zaILDyvGUcAUwilQ0cIx+s
+1fnOdVvqML1MASQfddRhScMbmWWOCFw5OM0pwzhFzWR5t5tNR+pYMvqm9pLwwbdf
+AgMBAAGjYzBhMB0GA1UdDgQWBBSpNSpIviw37YbbfFWHACa+GC1cLjAOBgNVHQ8B
+Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSpNSpIviw37Ybb
+fFWHACa+GC1cLjANBgkqhkiG9w0BAQsFAAOCAQEAtoK9xUbQcYulkT1+LVr5nIR9
+ByeVHedNyHzs5pPoVhp6MEg7DPpO9Qmyr4itlOz9sq0v5gV0IRuEizgqw+3vRmi1
+3VL6cMJ1T/+jQS48F5RMCSK0jsF/xKas7YNoz2Ve7Hq9xWbu0KN/8lexCMJ5cOty
+f0FZCXl18byxIf6Ds0Q9iaO+sXrYncMf5sRU4Y3l2FDc5FY3e74oAPMsd9ojf2CY
+PQUW8nhprZnDOnRsPpqylO2PqvZTa+fIt+g8jPvHfE8ZXaRmFel/h6DQ1a0gpEYJ
+RazlyGWHuwbf/NdoVkNzogCZMpLCDqAcDpG9lVi8k5+EwqVm52XNKeJi8gWSYA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGDDCCA/SgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBlzELMAkGA1UEBhMCQVQx
+DTALBgNVBAgTBFdpZW4xDTALBgNVBAcTBFdpZW4xIzAhBgNVBAoTGmUtY29tbWVy
+Y2UgbW9uaXRvcmluZyBHbWJIMSowKAYDVQQLEyFHTE9CQUxUUlVTVCBDZXJ0aWZp
+Y2F0aW9uIFNlcnZpY2UxGTAXBgNVBAMTEEdMT0JBTFRSVVNUIDIwMTUwHhcNMTUw
+NjExMDAwMDAwWhcNNDAwNjEwMDAwMDAwWjCBlzELMAkGA1UEBhMCQVQxDTALBgNV
+BAgTBFdpZW4xDTALBgNVBAcTBFdpZW4xIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9u
+aXRvcmluZyBHbWJIMSowKAYDVQQLEyFHTE9CQUxUUlVTVCBDZXJ0aWZpY2F0aW9u
+IFNlcnZpY2UxGTAXBgNVBAMTEEdMT0JBTFRSVVNUIDIwMTUwggIgMA0GCSqGSIb3
+DQEBAQUAA4ICDQAwggIIAoICAQDUppeo8vSQEUOttIJGQfEvkW9jos0NINy9DDiK
+ZUoKKzqodKl3oYuO8i+B94QYza3rYraSfeBB5U5UODeC78vg7c+7ysyjS/db/rh8
+pwhty0PETCIUZuOdA7l3IatEayFHI8gg+irLkXYddWz4m+kPJulDL5ogBWgYx46Z
+hS1BB6ZkjljhjZWApE1f9QLYgXnb1effoiL9FKdnFuzZWEzKqd3qGo6pCGRPUSG2
+cqJO/1BxvTtl5L1/UxGu3xA5e132R3AX90ORA3phJV8s/PiJETzsOVQWScQhmnHg
+eYt2HXY9B1m4B7GM3MfNTuH7rUNNP0DvIWIvMUROacdvIsurVEvowvoRaKzIbg7e
+bMUnlglRAk0Btle/MijVCUOW98SItflU/ho6arcstSRk+0p4csP82U/ITiO5KdgN
+oUhBkwJtvxKFm8bFYC3wkfyZ/SCUnnFjq9VJq5DshzmFf42FzAvo20s7DvzCdn1G
+5zkmnt9V3x6E+UE2JmwCWSuO+7zpHyckYgRnhOE/2J0YTpagJe7KKANPAlHP9zU3
+aaS01tbVHhlDJxYfR1HuSglMEVq2Wz1h6DsQvtZG5vQc/bhFvXz6dVrs4VIjDY4f
+hpdTkVybmyjWjuVuJ60gjKfBQamXN4ss6m4YBZf2zgNS8b15NJtAxyOSdPNv7aPp
+WfBVSwIBA6NjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0OBBYEFMuw3T2MPN9iLCtmPJ486RVtcbTXMB8GA1UdIwQYMBaAFMuw3T2MPN9i
+LCtmPJ486RVtcbTXMA0GCSqGSIb3DQEBCwUAA4ICAQCifVUEZu4WFLyCgYclGTli
+9P47H+HAcwBxynWp4nPxxQ1Bo12OwS3ZZVvZieLwjsWgfb3LzEZTH1/tILYCKtYT
+8p19UUpAVXGtnux26kUgjqr6ekOacGd+E96Y6MuN3R+sNNKhte3+uOcWz/jRODCN
+NInSzn2B0h7/URhTNpPcCcsIFrgI11owkIoK+S+1z8TNVHIqxr0B51gLbgZAtAnO
+tI6zmumJkZSselTh++OELIOgT/7r6MH067Ym0zjELa2sRYA0bSE9XYU64nv+VLfd
+6IVUy6TxqylQeNcktaMvnq8RZq4YuP1dKM9A11XgLOtSMWhDZgWXkrvF8SEs/RJk
+MZlDb4udS2D+FF5SsyOo4Zh67hTJoeLMP3YhYv1rDdm0SpXmblt6JMPTxtYfous3
+a06j32Lr6w5KCL/rGIj7RxqtwlHD1Xz3HyuzyEpQDmlYIGIBSlvKY5YmIq726ZxA
+rGcDnZ1pFcLA+F2nJLEnPL8F4quiysmwLX6jwTEgRiFlkt3K3t+TG7xtL1+pFqRX
+hyxymlqCZ9FE4j0JCoGMHhD9xjRo7P93YXZ/Jvfb/BJGEqrA0fh5haICzIuqpK1s
+FMC9/GiuRH0i+QpFXewE5vrjpMXm+bIZw9mMqJN7OoppO1ITPB0zAk6WQJ+5lf2T
+FzPByQv2/b1pEPWtKfvj2g==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDIzCCAqigAwIBAgIQFJgmZtx8zY9AU2d7uZnshTAKBggqhkjOPQQDAzCBlDEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE+MDwGA1UEAxM1TWlj
+cm9zb2Z0IEVDQyBQcm9kdWN0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw
+MTgwHhcNMTgwMjI3MjA0MjA4WhcNNDMwMjI3MjA1MDQ2WjCBlDELMAkGA1UEBhMC
+VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
+BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE+MDwGA1UEAxM1TWljcm9zb2Z0IEVD
+QyBQcm9kdWN0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTgwdjAQBgcq
+hkjOPQIBBgUrgQQAIgNiAATHERYqdh1Wjr65YmXUw8608MMw7I9t1245vMhJq6u4
+40N41YEGXe/HfZ/O1rOQdd4MsJDeI7rI0T5n4BmpG4YxHl80Le4X/RX7fieKMqHq
+yY/JfhjLLzssSHp9pvQBB6yjgbwwgbkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB
+/wQFMAMBAf8wHQYDVR0OBBYEFEPvcIe4nb/siBncxsRrdQ11NDMIMBAGCSsGAQQB
+gjcVAQQDAgEAMGUGA1UdIAReMFwwBgYEVR0gADBSBgwrBgEEAYI3TIN9AQEwQjBA
+BggrBgEFBQcCARY0aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2Nz
+L1JlcG9zaXRvcnkuaHRtADAKBggqhkjOPQQDAwNpADBmAjEAocBJRF0yVSfMPpBu
+JSKdJFubUTXHkUlJKqP5b08czd2c4bVXyZ7CIkWbBhVwHEW/AjEAxdMo63LHPrCs
+Jwl/Yj1geeWS8UUquaUC5GC7/nornGCntZkU8rC+8LsFllZWj8Fo
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAw
+gb4xCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQL
+Ex9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykg
+MjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAw
+BgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc0
+MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYTAlVT
+MRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1
+c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJ
+bmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3Qg
+Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc0MIICIjANBgkqhkiG9w0B
+AQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3DumSXbcr3DbVZwbPLqGgZ
+2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV3imz/f3E
+T+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j
+5pds8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAM
+C1rlLAHGVK/XqsEQe9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73T
+DtTUXm6Hnmo9RR3RXRv06QqsYJn7ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNX
+wbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5XxNMhIWNlUpEbsZmOeX7m640A
+2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV7rtNOzK+mndm
+nqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8
+dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwl
+N4y6mACXi0mWHv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNj
+c0kCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
+VR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9nMA0GCSqGSIb3DQEBCwUAA4ICAQAS
+5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4QjbRaZIxowLByQzTS
+Gwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht7LGr
+hFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/
+B7NTeLUKYvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uI
+AeV8KEsD+UmDfLJ/fOPtjqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbw
+H5Lk6rWS02FREAutp9lfx1/cH6NcjKF+m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+
+b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKWRGhXxNUzzxkvFMSUHHuk
+2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjAJOgc47Ol
+IQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk
+5F6G+TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuY
+n/PIjhs4ViFqUZPTkcpG2om3PVODLAgfi49T3f+sHw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFlTCCA32gAwIBAgILAIZNvw/jXtd9jtgwDQYJKoZIhvcNAQEMBQAwZzELMAkG
+A1UEBhMCSU4xEzARBgNVBAsTCmVtU2lnbiBQS0kxJTAjBgNVBAoTHGVNdWRocmEg
+VGVjaG5vbG9naWVzIExpbWl0ZWQxHDAaBgNVBAMTE2VtU2lnbiBSb290IENBIC0g
+RzIwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4MTgzMDAwWjBnMQswCQYDVQQGEwJJ
+TjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9s
+b2dpZXMgTGltaXRlZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMjCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMNwGIWW2kHfHK+sXTNwxF07K+IV
+ySTuyFM2r1v002wUfcdT+zs5OM5QbMYFFnedXQI6gCFLsjKrcaej48Zt37OyEb3i
+aPs7CsP4kAyTwzKH9aZe6gXYHrJq40/ZVMNcQVI2PcIp40B/SAN2gUZ+ZaUtIOvV
+jEx26/ebNaXRIsthlkOG/caB+QRwDw1tl7338Zlv0M2oTBUy4B3e7dGP5pgXH71M
+jqHPCoNo+xv9f0NTBT+hUDa8h8wUtcGQq9CDeJTpjWcD2bP2AMdVG6oVpMAUeUzo
+cCyglvtFdUMjggxBbw4qhau1HXPG8Ot9hwL7ZMi8tkTzrvUIxxb8G9LF/7kKeCE7
+tGZaVzDTnXuifl3msR4ErHsQ4P7lVu2AIjIAhrAXoedDidb7pMcf7TABdrYUT1Jo
+G/AiK+J9jO6GTjeADD4LMDSBZhHMuBK/PJ/g0kGBt+/C1L+/HURzQhJkMlRnM6Rv
+XoCtfKopSlns5trZmTi971Wjbn88QXP61lGpBCUPwCjs7rpOYvSUJtI+lcbF+37q
+kIqOXYkVT3cupDSpw+H89kFtj5GKY+Xny4LxY+3IvDIRiyd6ky1DPj713DI0yqve
+EpsIr3A0PdwuyUI7CS1jg0NnGFT6Xxyr0xB+VDt83FJYW8v16k2pbaQ4kVxA3aXd
+X9dZYyVR1S59KM75AgMBAAGjQjBAMB0GA1UdDgQWBBTt7E1FYRgo57MjKBEcTaUn
+DV7s9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B
+AQwFAAOCAgEACFC/ilQg8KTCVBxFJW/sazomkS0kNYbEIZg4B3obqwsJ7SX98z8Z
+gfzBpz0nYClwwJjWbFN1R2zY8pCEot6/dgmA8Vbq0GxhwPM5YN/SZquNyRIxO3cU
+dlAcwf+vSezdVCf9wOzvSAF3q0a5ljvbdbNJNpfScQVp7UUd5sBsZk8jXO1KQ/go
+/Vf/GDPnrIFmxpAIGE3sgnO8lAv9FzUaAeuv7HWe47xN9J7+bQzF93yHuIXACPTL
+pQHhg2zMv5C7BAbuDHfbj1Cu294Z832yhSfBcziWGskOvl3es2EcHytbS9c9P+0z
+Mpka7zGC1FHrvLb/FoduH86TeZt0QjZ6pcplNzoaxDnDvzTJ6CC2Eny+qH/APFCu
+VUv5/wjwF+HPm8Pup2ARj9cEp92+0qcerfHacNq5hMeGZdbA/dzdUR/5z5zXdxAk
+nl8mcfGb0eMNSTXQmmB/i4AecNnr72uYjzlaXUGYN7Nrb6XouG0pnh0/BBtWWp0U
+ShIPpWEAqs7RJBj6+1ZUYXZ4ObrCw962DxhN2p19Hxw9LtuUUcLqqTPrFXYvwO4t
+ouj7KJnAkaTUfXGdEaFVtFig1EA30WzJY2X1vAQ7hVnniCjgaXAGqjsU6sklNM9n
+xDx5rFCCCEtj9Kh8UHjGK2QqgP5kwgttjOApQMaCoezMfK4KD7WpOXU=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQG
+EwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNo
+bm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g
+RzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4MTgzMDAwWjBrMQswCQYDVQQGEwJJ
+TjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9s
+b2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMw
+djAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0
+WXTsuwYc58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xyS
+fvalY8L1X44uT6EYGQIrMgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuB
+zhccLikenEhjQjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggq
+hkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+DCBeQyh+KTOgNG3qxrdWB
+CUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7jHvrZQnD
++JbNR6iC8hZVdyR+EhCVBCyj
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFcjCCA1qgAwIBAgIKLwq3aw3LSq8nWDANBgkqhkiG9w0BAQwFADBWMQswCQYD
+VQQGEwJVUzETMBEGA1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJ
+bmMxHDAaBgNVBAMTE2VtU2lnbiBSb290IENBIC0gQzIwHhcNMTgwMjE4MTgzMDAw
+WhcNNDMwMjE4MTgzMDAwWjBWMQswCQYDVQQGEwJVUzETMBEGA1UECxMKZW1TaWdu
+IFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxHDAaBgNVBAMTE2VtU2lnbiBSb290
+IENBIC0gQzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCMfX1lA+Tb
+mh9YInmRgOW97IVx4LUJf2DRZfs837Jrml+py64aVnYgWO4t6C78fgjfS7jX+c4T
+inIzEquWcI+zi0fd4Sc8NDf7JONp27VWX0qwUYqzLDRCt+s7zpLcfx1ky0zVIJj6
+L06uPyK3kIr9+YAsrVj+39utm6e2MBQsRNstSI3fCQYAGvoQTQ8fULauTqNWaYAk
+NYFe6HUHHQPp2u1Ua00odMXiD5oRFxLcDnGAcE1I/9E9mLCdkggXijYUmico7+Xw
+ZeFoPhva6eIJ5p03Lt3Du5W3EcHR0cJmmY1pyeA36JaXKWRNM9IRjYMVNCcp4jhB
+2tIYiZ+LVk8bwQ9/1c23txmv3u97taZlV22NF4ttS1qq3J+MOp0oGULBzpKfRx0q
+GVqbPukQNGAjOLIN8KDNQNzbR1iAl2d8H+MSoicBo4Aid8TjLWcNv48oCWL53ZrF
+BMTDjaIA6frG1t4IpbnHadA7qCJJe2qpJN6n2eQKAUn6UiQDHPsSqNBlcUhQ4Y/0
+Y0mU5rghm2OB9rXQS1Fb1JRCfJMNnJIm5AUB2+2RWzq5Tgz7SbSho8NsZk0UbQnF
+xciqQ9uoVTAsK14Sk9oG8Q3zfsM08cdPoRb0WlIZklR6mKD7L8nH/zfGu8PIJv94
+GGB9RZ9U4A69r3ePmy8MvrzfNxHKtH6svwIDAQABo0IwQDAdBgNVHQ4EFgQUs/eK
+pNYPiABZ6FEXT9V+7IYigZ0wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB
+Af8wDQYJKoZIhvcNAQEMBQADggIBADQlpiWM0cv2nZ0H5jVsBq0x2q62Q0LwqATs
+CFvyub7gxNCytRuoA8stmPOEu/lg8Igxj4FIjoyhIrWUVxyiLU7No4P+WjEUOwUT
+xIpkEOtvGUQ9fiOlcGHtIZDNBlZq7WpktXAxeV55RPPsor26p2FNAMRFfZQh0sLX
+hKgk8iulSSggqx8ezgPye63FaiYEi4c/dzRj3HOCnsZiwZZU02df5YpNFjxSwZvE
+41cjGpsrpWMfQFI2s53RbeXp47lSAxYE4NzjBFMe+EwFuEveBCJBEAH5rvYu3pi2
+orsJ424TqWEQV1tCsCkQz+Yq/Okal7yHAkKDeOXcP7oN4A+TdXc2pdqxuVCnBO0R
+mWz2JpGSSeJjiTk/OPwRsPNWtwG/KXL04o2ta3jiPpJuICVtWDAc9R3auBEgJl5r
+ShRmBdszG0LmzsHuZPCFSYC15RBDCOBsa8bDRJ8pBFU2Wi/CVXCACEuavgoveA4F
+a5bt38o0PWxsBP+MpocCdVtDMqzQhxy9IohKuXWAGresoIvKDg3xFk6rBOrjfVwJ
+elwi/xAisojHPJVQv9W1zVIoHp+EQg/4MQC21NbIX2RoioB+V3hK439b/w7deU8x
+2M8cl1OG0nPfbnARl5GPM7vJgi470jto4SeMg6HMAW3Egb56tQcNLwI9U8mZnNvR
+gUMrkAgL
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQG
+EwJVUzETMBEGA1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMx
+IDAeBgNVBAMTF2VtU2lnbiBFQ0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAw
+MFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UEBhMCVVMxEzARBgNVBAsTCmVtU2ln
+biBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQDExdlbVNpZ24gRUND
+IFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd6bci
+MK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4Ojavti
+sIGJAnB9SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0O
+BBYEFPtaSNCAIEDyqOkAB2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMB
+Af8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQC02C8Cif22TGK6Q04ThHK1rt0c
+3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwUZOR8loMRnLDRWmFLpg9J
+0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFcDCCA1igAwIBAgINAJgzyagAAAAAVlS8bjANBgkqhkiG9w0BAQsFADBDMQsw
+CQYDVQQGEwJIUjEdMBsGA1UEChMURmluYW5jaWpza2EgYWdlbmNpamExFTATBgNV
+BAMTDEZpbmEgUm9vdCBDQTAeFw0xNTExMjQxOTA3MzBaFw0zNTExMjQxOTM3MzBa
+MEMxCzAJBgNVBAYTAkhSMR0wGwYDVQQKExRGaW5hbmNpanNrYSBhZ2VuY2lqYTEV
+MBMGA1UEAxMMRmluYSBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEAtHPS1mXTAu9YOvSCgtOn4Ipgsjr1sWU4pyQOIWt96aCdM6J0za6RupS1
+zMaAtXHfSHHKdUunv/8m64T+uXIWyMJ+htS/r+5jNbnA5NoFT7hIniIo/1UFI2uB
+TrMXESwqJR/k4d9hyDzyVmnQVX2WELKoe1aQW6ZeU4tB48eHxzG9NDnsGSHZgMTo
+DdvaAwwA9Kq1ggYlDMXZGmKd/QpJBfwcvpNG/M6Jkf/NzF9IX9w40HVv0i2rzCIS
+eIgSH+DVTne8LIlNdnqIm10H2rNnmNE5znpGq8/2fVclE/qExANwrwx2DNJAJHxZ
+33c3WVCxJUZOQh0IIglyVcRC6m9vZVnUTuA9o6twfOYJMFV2Yonzb9IKprNuGT2W
+hnpmlM3yzHrwBwizaa4b/xxxGKJE+dvWDYQQgXRJYWLXEPABpkXAtdBS9FGGPeL3
+Fila+kqeJ0uORvFyPqf1pAzgCxeaIv/5fqs1jgGE1XWTf+Z1qHpk3mI6AkcaoCPE
+TD/Q3E4z52y7+vYYECs0MF/HM1CZAumxWUZVZaa6pIMYi83h8coY4tkg5reEhx8L
+VnxNMVQm8plWyKZZ1oUz8pDMKFrIbKTLpkdGxJpVOYRkjXfnCj3D0BL3dqjMHLMf
+WIU6xDaN7JrsDuccyZ9P+9B6BwzGBbCrjbpyXU4j2W8MXPimctECAwEAAaNjMGEw
+DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU/hGi
+bBDu3uIDuFWCTiI8huQ+a1QwHQYDVR0OBBYEFP4RomwQ7t7iA7hVgk4iPIbkPmtU
+MA0GCSqGSIb3DQEBCwUAA4ICAQCkgIYu56adjf+CV2Ny5xpg36uyubIBEmc4QOZA
+fFi8zEhxWwGXnHkcHnHSO6PY6KLiGAGlRajj9O+ru4p4/MeIffIFYJrbcMN41av4
+LTOMa6L2yQPAijxm3Z3o7qdOJQ8U3/gPFi4eF6dYyNkF05iivGRCU/4kyXWqJu5u
+MjMIYaA2fcq7nbu1cV4GgWr/Z+6miD+2P9MXTM4EzrMLdTnRwOOcs5qiGVYoi5ak
+s58WSdyEICLt73JMXxCqHwkBO1XIxmyvp9Iunu2wzJFtZMPsGL46akuuAS4/ec00
+HDiuuQ1hBHP3nik7p7aQOrgsIzTDuAwGUcI+IZmfPBSQyqkm9UDjIul9zgMX7P+8
+0ZkuxGSPPyxZYCQ8sNvDlQiqAHWynQsgGbT3bqmjvWDwMw/iZr1H9giKkDV9RYZK
+yZ7Ez1/fcd7MyW45iE25Ss8DdAdZK+386+7V0tU5bXcN2NF/L353vmGYjSxScTCE
+vqDmsLAHCMW0dLeLsti62ADyGcf4oSIKZkSoFgh1XllESEU0NQhK8HslC6ZLUX93
+zQ0zOKsAkWZMiMFOKtQ6wLSG3oSAylBvgPlNZYAJFXUtIlbltZEjne4l2BgwKHLb
+f8MxTo7YvkP6246aBZn999yUiad42J1r6f71JMe60ulED4NLXZ//JBif0dWE6CFJ
+t9sg5w==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIDFzCCAp6gAwIBAgIQFTh14WR+0bBHtO+vQRKCRTAKBggqhkjOPQQDAzCBjzEL
+MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
+bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE5MDcGA1UEAxMwTWlj
+cm9zb2Z0IEVDQyBUUyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDE4MB4X
+DTE4MDIyNzIwNTEzNFoXDTQzMDIyNzIxMDAxMlowgY8xCzAJBgNVBAYTAlVTMRMw
+EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
+aWNyb3NvZnQgQ29ycG9yYXRpb24xOTA3BgNVBAMTME1pY3Jvc29mdCBFQ0MgVFMg
+Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxODB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABN7Nu3Ag8SUgtJTo17Q7D26H3ausz01AL4Eza1kJGNaHDSYjnLSNlZ12
+n6W5BkLmrTayxLOuejwI1cudOl5FIWwL4yD1m8LdRDPjQrnq8ihCkqr+DAfKihOZ
+O2IA7drzNaOBvDCBuTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAd
+BgNVHQ4EFgQU6EfIQpqwna5vCyg7mBWP47HogLIwEAYJKwYBBAGCNxUBBAMCAQAw
+ZQYDVR0gBF4wXDAGBgRVHSAAMFIGDCsGAQQBgjdMg30BATBCMEAGCCsGAQUFBwIB
+FjRodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3NpdG9y
+eS5odG0AMAoGCCqGSM49BAMDA2cAMGQCMBSGUMAmGuvqoRR3OlvfYzmlM8dQQNVr
+NWsPtN99VrnhpZ14GYKhQ24a11ijVQNC2wIwGJS0HjqNZPoMJxuHE0rStzoAlMby
+5WO/r+P63JPV50aaa4FpPgLfUQ2PKHFBiZEv
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF7DCCA9SgAwIBAgIIAlQaqVDXzh8wDQYJKoZIhvcNAQELBQAwYTELMAkGA1UE
+BhMCQkUxJDAiBgNVBAoMG1pFVEVTIFNBIChWQVRCRS0wNDA4NDI1NjI2KTEMMAoG
+A1UEBRMDMDAxMR4wHAYDVQQDDBVaRVRFUyBUU1AgUk9PVCBDQSAwMDEwHhcNMTYw
+NTIwMTMyMzM4WhcNMzYwNTIwMTMyMzM4WjBhMQswCQYDVQQGEwJCRTEkMCIGA1UE
+CgwbWkVURVMgU0EgKFZBVEJFLTA0MDg0MjU2MjYpMQwwCgYDVQQFEwMwMDExHjAc
+BgNVBAMMFVpFVEVTIFRTUCBST09UIENBIDAwMTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAKv5lg6EKHY1gSpWPwLt1fFwkQ5AlyJcu5bmmh4OPCuZPC9r
+NGGrB8xKJhVlngsozAA4D1v2rEZMxVwiiI4j1lYoXnXixE9S4zkEczk55k/386my
+IOoMJ9LH9HRzO+wkzmFsGpXb3FVCsRaUMfmmfIwU+DiifaC1OZzX1l+VL4VzUb+s
+qYgcHMkybDgAw6KwK9aPsobKujk4bGeDykeHV4udVqR/dk1IFRazwJeKwgz6ZLAg
+Q1aMaofDLSEXPl7gCKoat6qEPVYjK4Mx49MC2RIDBcI5r29TVhcDqyMcevC8CheV
+lyaB73ggPebf9Nq+jl9f0R79mXz3IW1ctwSWYsPTbh3K9++mRZNT3yZ75NRE121/
+sFSZfrYn4sO+SmdCBa5qSvLulwZdZ56Bvl/oAFpUSrZM2RUuCPZCGiUZPiuBe1rc
+GfRqJwLdj5QCl+zilge0VubkLu/dLBaFCPoc9wCWfg7koPopgJC2RFN9O3UV71lG
+4crc2JcbkElDly5YBXK0XTEGfTnhdP8aTE2VMuiNpa/0PHv/IBzL8LD3MvPmEsWh
+1+SSGelJZ8A8f5u4gt4E8RVX1rAJHjk6a6bi+KafIXCZqLBZeRK6SEbm9XLMzNQP
+s7dMw6PfLpd4yF97KyEitT6yHNlrQ1GL2yBJjtpqEzQLO071a46HG07GSgArAgMB
+AAGjgacwgaQwHQYDVR0OBBYEFDi8XDBU3OK7IO/ub0GgMW5c/Yt1MA8GA1UdEwEB
+/wQFMAMBAf8wHwYDVR0jBBgwFoAUOLxcMFTc4rsg7+5vQaAxblz9i3UwQQYDVR0g
+BDowODA2BgRVHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vcmVwb3NpdG9yeS50
+c3AuemV0ZXMuY29tMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEA
+nDEKHd7KpKBSsJYq4Pws5aF23BQ4ZYazLtWll/NzYK5GaHWHsTPIEo3ZKaPqH71u
+/ronUIHhcWzOqzCcJppRcXBnH9FEpxQ0zUbdK+MOZb3GTkNoU7K4sT3wZD0Hh7H5
+hzIEepbkQrswKMeaXStrx1AKIbaGIvYSrS4V8LtTqTDKLesCoZRnYxHYt+bzpwsG
+H5J5ofKrU3s/o0gITPtEAAP/yQDCbMJKxYbEs+pZXA595T+2qU+S4xEEXbd3xjXD
+sjFz2nfXP38QGa0AIt1DyOASfkSYOFHSOMi2QxpMUV2cOovIPHm43LAe693l5p5E
+m+lQPcsRvFX+x3RlZQgNpKp3PRwTtpyfFSr5TuE0gnA2c9I0GYRV8w3AT43/Vhaa
+W2US8DJBnBtYv72vMhB21y0PxTdx5hr9Mea0Nhhs+0v1qjWwbFAt51siSuD6nTkg
+QcYuACXkkd+bONMFm5z9BGiRuA6CXNg192LcyWAFi5XMP3zrj8b9mp+pbzIBVJpk
+pN3lxUVe6lXt4UPLreIebgqejjLk4668AdBTBA6dQk02+5nlGukH1FPwRQdCE8dr
+IT6Et/fFiVdTH/jzTlFb/mcyw1n2kRmIDYBs4d5FCkaZej/MPvAgbPi8z653LPtu
+9QsRdouZzq6OM5F4CqUMJLNTD2sR6bOwHWQBLpQdIdU=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIHMDCCBRigAwIBAgICD6AwDQYJKoZIhvcNAQENBQAwZTELMAkGA1UEBhMCQ1ox
+FzAVBgNVBGETDk5UUkNaLTQ3MTE0OTgzMR0wGwYDVQQKDBTEjGVza8OhIHBvxaF0
+YSwgcy5wLjEeMBwGA1UEAxMVUG9zdFNpZ251bSBSb290IFFDQSA0MB4XDTE4MDcy
+NjA5NTYwOFoXDTM4MDcyNjA5NTYwOFowZTELMAkGA1UEBhMCQ1oxFzAVBgNVBGET
+Dk5UUkNaLTQ3MTE0OTgzMR0wGwYDVQQKDBTEjGVza8OhIHBvxaF0YSwgcy5wLjEe
+MBwGA1UEAxMVUG9zdFNpZ251bSBSb290IFFDQSA0MIICIjANBgkqhkiG9w0BAQEF
+AAOCAg8AMIICCgKCAgEAxmaNgqB+vosiJXgQwAiLmhl/1a0AFA5k3t4hcB3IYUL6
+VRyLnjvonYJHfLuOAn6dS9zi++i3PZkRqB1xHkfCJNFClXxk4tfbmhDeTJ6mQjx+
+fu2wywPtxrtd/Dn0xO6Kc7Mb/ffwaFSSh6f0bZt61RLov4JPNKOvhq9qjOQgjGZy
+rBGIle60IppJm8bl0A5bmRL4FQygNwIascskyl0Vy69LHx4CNUIwtgN7b1s++leV
+NpETeLFpCtPdLoxEswg/kJuMRf8XaBZmGJIYSArCKIVYyC/gO7PRUmiwv2yLYdm7
+9xvCd1xoIXHqPd23bqQs4vr5O0QzmYjU6kZbuLV8GIBuVFOH35tjtOUxMrZ+2Dja
+yuNcNc7OGnAoofqXvD5dfp5snqP+ZZYlVPXi9Y+N5e4PLt0rdud+uiLDW27ekSXR
+hvJMBxJxSb8XFgKPUbMnatCNTmtFaD9nfv5Uhlx7kfn2XzO61rnzuf2CcgSlNiT7
+TQSXepGBIPjg+5QYJlhacazdL7JHdUTjJqYVbnA/Zje68lzDMfL1wDSMExh2HWGL
+VGJZj6inVKBZB+4suo7FtdqyzT9AmVW9a1ekPlk7g/s93freyoA/EIwHy/Hvosk7
+VivLdYwU8IdUbX8JMA1QaxVgkMe6F7A7EKvFujf1L/nAnPt5CC0A2niFS+XBMikC
+AwEAAaOCAegwggHkMIGlBgNVHR8EgZ0wgZowMaAvoC2GK2h0dHA6Ly9jcmwucG9z
+dHNpZ251bS5jei9jcmwvcHNyb290cWNhNC5jcmwwMqAwoC6GLGh0dHA6Ly9jcmwy
+LnBvc3RzaWdudW0uY3ovY3JsL3Bzcm9vdHFjYTQuY3JsMDGgL6AthitodHRwOi8v
+Y3JsLnBvc3RzaWdudW0uZXUvY3JsL3Bzcm9vdHFjYTQuY3JsMIHVBgNVHSAEgc0w
+gcowgccGBFUdIAAwgb4wgbsGCCsGAQUFBwICMIGuGoGrVGVudG8gY2VydGlmaWth
+dCBwcm8gZWxla3Ryb25pY2tvdSBwZWNldCBieWwgdnlkYW4gdiBzb3VsYWR1IHMg
+bmFyaXplbmltIEVVIGMuIDkxMC8yMDE0LlRoaXMgaXMgYSBjZXJ0aWZpY2F0ZSBm
+b3IgZWxlY3Ryb25pYyBzZWFsIGFjY29yZGluZyB0byBSZWd1bGF0aW9uIChFVSkg
+Tm8gOTEwLzIwMTQuMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEG
+MB8GA1UdIwQYMBaAFJMYNh+paXBRNapPP6yNUH4mBSkKMB0GA1UdDgQWBBSTGDYf
+qWlwUTWqTz+sjVB+JgUpCjANBgkqhkiG9w0BAQ0FAAOCAgEAO01Radk3mUuojS9G
++JksIhH6qWebQZg0UpN2v5H22JEI+HfBat2ept+TMmB9o9D51rhRoC8Y85yS0WB9
+JJCMauZcF77PjF2LTT4pO/bvEgI3ahrjf63iJiTNHFNztqyzKuOBGNAqQ2S0bV9a
+GNcAqvSbF7gJbyDE/74EFz9Qq0BHnmQJH4xQN3uzGJPM8XkRvxRgj+SD/tXnqGGI
+PWurj4J6GGBsIfr6ecYReq9B2syPC9E4uB8qFfvEQunA9NJ2mLLoCqtTICU3/t95
+IvUVOBl1o6q+QmYEfmUg2qJuIBbtXb5WhQ5hkRfIBFlQ8upyZQZaXXqlmJmjZJzk
+dNk7hstyRP7BhVdgyCyHZtBTX2p+cEO644M0fzw58ORo0s1zvG/tooRm9tWg+5ry
+hLmG2Xcrll4V+QxjFgmG8wFakq2AqNq4W7PxDHiAl/xqnh/kNgwkI+7VoTHrdqrz
+CSbyAwzjDd9T2kgRxQG8U6vfuEt84iNtySCdmp6pWPNPkfjNOGCQEv7GamcUlHw4
+11SfvD70YnW5nxgNdmqxcDcUtxzGngcXtFa/qAjxWR7TS25ESNkzzKAZELQs9ORy
+DLQkgzbYhCLdvDolc33xA0+Ge1bjzpH6PbpGDZxmWKTFM2ZJQQYNvWH7P55T3pbE
+53TUes0DYl+ICmA+jPmN4YzcGrI=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGoTCCBImgAwIBAgIBATANBgkqhkiG9w0BAQ0FADCBlzELMAkGA1UEBhMCQlIx
+EzARBgNVBAoMCklDUC1CcmFzaWwxPTA7BgNVBAsMNEluc3RpdHV0byBOYWNpb25h
+bCBkZSBUZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxNDAyBgNVBAMMK0F1
+dG9yaWRhZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVpcmEgdjUwHhcNMTYw
+MzAyMTMwMTM4WhcNMjkwMzAyMjM1OTM4WjCBlzELMAkGA1UEBhMCQlIxEzARBgNV
+BAoMCklDUC1CcmFzaWwxPTA7BgNVBAsMNEluc3RpdHV0byBOYWNpb25hbCBkZSBU
+ZWNub2xvZ2lhIGRhIEluZm9ybWFjYW8gLSBJVEkxNDAyBgNVBAMMK0F1dG9yaWRh
+ZGUgQ2VydGlmaWNhZG9yYSBSYWl6IEJyYXNpbGVpcmEgdjUwggIiMA0GCSqGSIb3
+DQEBAQUAA4ICDwAwggIKAoICAQD3LXgabUWsF+gUXw/6YODeF2XkqEyfk3VehdsI
+x+3/ERgdjCS/ouxYR0Epi2hdoMUVJDNf3XQfjAWXJyCoTneHYAl2McMdvoqtLB2i
+leQlJiis0fTtYTJayee9BAIdIrCor1Lc0vozXCpDtq5nTwhjIocaZtcuFsdrkl+n
+bfYxl5m7vjTkTMS6j8ffjmFzbNPDlJuV3Vy7AzapPVJrMl6UHPXCHMYMzl0KxR/4
+7S5XGgmLYkYt8bNCHA3fg07y+Gtvgu+SNhMPwWKIgwhYw+9vErOnavRhOimYo4M2
+AwNpNK0OKLI7Im5V094jFp4Ty+mlmfQH00k8nkSUEN+1TGGkhv16c2hukbx9iCfb
+mk7im2hGKjQA8eH64VPYoS2qdKbPbd3xDDHN2croYKpy2U2oQTVBSf9hC3o6fKo3
+zp0U3dNiw7ZgWKS9UwP31Q0gwgB1orZgLuF+LIppHYwxcTG/AovNWa4sTPukMiX2
+L+p7uIHExTZJJU4YoDacQh/mfbPIz3261He4YFmQ35sfw3eKHQSOLyiVfev/n0l/
+r308PijEd+d+Hz5RmqIzS8jYXZIeJxym4mEjE1fKpeP56Ea52LlIJ8ZqsJ3xzHWu
+3WkAVz4hMqrX6BPMGW2IxOuEUQyIaCBg1lI6QLiPMHvo2/J7gu4YfqRcH6i27W3H
+yzamEQIDAQABo4H1MIHyME4GA1UdIARHMEUwQwYFYEwBAQAwOjA4BggrBgEFBQcC
+ARYsaHR0cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJyL0RQQ2FjcmFpei5wZGYw
+PwYDVR0fBDgwNjA0oDKgMIYuaHR0cDovL2FjcmFpei5pY3BicmFzaWwuZ292LmJy
+L0xDUmFjcmFpenY1LmNybDAfBgNVHSMEGDAWgBRpqL512cTvbOcTReRhbuVo+LZA
+XjAdBgNVHQ4EFgQUaai+ddnE72znE0XkYW7laPi2QF4wDwYDVR0TAQH/BAUwAwEB
+/zAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQADggIBABRt2/JiWapef7o/
+plhR4PxymlMIp/JeZ5F0BZ1XafmYpl5g6pRokFrIRMFXLyEhlgo51I05InyCc9Td
+6UXjlsOASTc/LRavyjB/8NcQjlRYDh6xf7OdP05mFcT/0+6bYRtNgsnUbr10pfsK
+/UzyUvQWbumGS57hCZrAZOyd9MzukiF/azAa6JfoZk2nDkEudKOY8tRyTpMmDzN5
+fufPSC3v7tSJUqTqo5z7roN/FmckRzGAYyz5XulbOc5/UsAT/tk+KP/clbbqd/hh
+evmmdJclLr9qWZZcOgzuFU2YsgProtVu0fFNXGr6KK9fu44pOHajmMsTXK3X7r/P
+wh19kFRow5F3RQMUZC6Re0YLfXh+ypnUSCzA+uL4JPtHIGyvkbWiulkustpOKUSV
+wBPzvA2sQUOvqdbAR7C8jcHYFJMuK2HZFji7pxcWWab/NKsFcJ3sluDjmhizpQax
+bYTfAVXu3q8yd0su/BHHhBpteyHvYyyz0Eb9LUysR2cMtWvfPU6vnoPgYvOGO1Cz
+iyGEsgKULkCH4o2Vgl1gQuKWO4V68rFW8a/jvq28sbY+y/Ao0I5ohpnBcQOAawiF
+bz6yJtObajYMuztDDP8oY656EuuJXBJhuKAJPI/7WDtgfV8ffOh/iQGQATVMtgDN
+0gv8bn5NdUX8UMNX1sHhU3H1UpoW
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw
+CQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x
+ITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1
+c3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx
+OTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI
+SWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI
+b2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+ALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn
+swuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu
+7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8
+1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW
+80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP
+JqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l
+RtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw
+hI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10
+coos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc
+BW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n
+twiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud
+DwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W
+0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe
+uyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q
+lG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB
+aCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE
+sLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT
+MaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe
+qu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh
+VicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8
+h6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9
+EEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK
+yeC2nOnOcXHebD8WpHk=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD
+VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf
+BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3
+YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
+NzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G
+A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0
+d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF
+Q0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG
+SM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN
+FWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w
+DwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw
+CgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh
+DDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD
+VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf
+BgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3
+YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x
+NzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G
+A1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0
+d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF
+Q0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB
+BAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ
+j9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF
+1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G
+A1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3
+AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC
+MGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu
+Sw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFcjCCA1qgAwIBAgIQdlP+uT3Z5+kmMqzWCr6sODANBgkqhkiG9w0BAQwFADBT
+MQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTEpMCcGA1UE
+AxMgR2xvYmFsU2lnbiBUaW1lc3RhbXBpbmcgUm9vdCBSNDUwHhcNMjAwMzE4MDAw
+MDAwWhcNNDUwMzE4MDAwMDAwWjBTMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xv
+YmFsU2lnbiBudi1zYTEpMCcGA1UEAxMgR2xvYmFsU2lnbiBUaW1lc3RhbXBpbmcg
+Um9vdCBSNDUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC6dDPsJ9wS
+OCEbxdNhKNZavE/fi8yRhEMkV7xkIbw7HB89T4ytB7fzxdcC6REUgpqqtJRyO3EN
+Gu9oa4V5jq9m6liYDbrBfHnS/82zbzFF0AV0BAByaid+uDc/Oojtl4P1qzVND59Z
+O/Uv31nFfKUydmCWyO3u+AR+GVFyqL9EQXq8ex47AJu8uuCWv5D+jZvDcosAEvgg
+OmA498HMhYr7h3kuoSsg5sughZEjtsQoB1Qo3uwQMU+K8s0UHx7dVRzqKDFM+SFq
+qM3zlmf6AUGbzQ8LaH+73vFD6hflsNxwIrNpNll0a8bliSp85QuBXas/j7jRdnLz
+fKKp4pdBv8yMRf5hyfZsBwsABOgVI0+CKi3278P6ETZIodH9ejk6NF2jLA6bd1Ag
+NEDdsQMxrV/pYodzlgNh95Sw2VxsT+cUxeHxew0jnM1wjB1q3kotiyq720IUBQeq
++xTcMdP2H2zLvmhmRHBNbRf5cesFc46RknXraFwe9kRhGCli3RdmiOwouklv2z53
+/rkxH3UcGKKmR73Y7kiFO/2z4g8/KpjGmvqCb7GlpYYdWjr6pGx0D3dSYWp/hyne
+OZuL7rNFYDAklxUSKoUwkyaslqYt6HBtC6kyrSybKAp2QvJVYVGYlN7t9sUXbzwV
+ELAOrbDexRb0ZdHML1pWCM+ZxPBVkcIseQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC
+AYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQURrIcd+F7FfClOaFw3tHELupt
+st4wDQYJKoZIhvcNAQEMBQADggIBABZ8CmdKAzyTKj4cT0ZVsJqeiOHrU/1MVXmE
++Wy2n6kKtomrVAcUFkpJWvS4LoYUxH4ZifmHiLzsstKVjOAM+fKUZqaYVxuh39Fx
+fYy1+HEC3RO2vvqwMcMsZ+saGA4aTdwszzFcYSipneNqLK5QSw460Gn7ijRE335L
+jhqQCdox2sovpff0Nyw1DRpizTx7PFZ3ZZVclHNwn2EvaWQjHUx5B8IXfDrtqm1x
+AxRiRcy3PlTYUXFC6juSQqUvVIGjsAxWWFa75JjuZscR+ahFF+JlKore4qjOxS32
+9c6t8OMKCd1Te2ypbIZ+od42NQAPX4D9RbtxZkPURCzQuwFOmZ4+TeFeVh8FeoId
+ssstpTO5OeXEt9pC4b3QlEKA+hiUO5NDqMiUOm1+nfxPoMLT5aWqECZvBiJb4AHi
+Sr8Z5USesK2rGdLN60fEYoHs8MJ6jUz9wiW3vCxwjqqtUvQUPKp4HQTTydUlgqda
+y4x8H1cCO4cbyNf5VBodyhpLJ7HiSu/nmkAUT6U8n9WjvpQ1nMLXPyjupBcrQ71k
+p9ev6VPnp3cexRIbMeJLxn+eHO6jOpRQXaZQBlJeRQMrtADgwe3YDcGuu0kJgYJa
+QkOvmWO4FNE8i93V8FTtcmfC9so+NYSHgA1SlVBB1rINGUAvthNN97Fg1HbFVzlu
+WqJeCnnc
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQsw
+CQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScw
+JQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMT
+EENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2MDcyNDU0WhcNNDMwMzI2MDcyNDU0
+WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBT
+LkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxGTAX
+BgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATE
+KI6rGFtqvm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7Tm
+Fy8as10CW4kjPMIRBSqniBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68Kj
+QjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI0GZnQkdjrzife81r1HfS+8
+EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjADVS2m5hjEfO/J
+UG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0QoSZ/6vn
+nvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFwDCCA6igAwIBAgIQHr9ZULjJgDdMBvfrVU+17TANBgkqhkiG9w0BAQ0FADB6
+MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEu
+MScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHzAdBgNV
+BAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwHhcNMTgwMzE2MTIxMDEzWhcNNDMw
+MzE2MTIxMDEzWjB6MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERhdGEg
+U3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkxHzAdBgNVBAMTFkNlcnR1bSBUcnVzdGVkIFJvb3QgQ0EwggIiMA0GCSqG
+SIb3DQEBAQUAA4ICDwAwggIKAoICAQDRLY67tzbqbTeRn06TpwXkKQMlzhyC93yZ
+n0EGze2jusDbCSzBfN8pfktlL5On1AFrAygYo9idBcEq2EXxkd7fO9CAAozPOA/q
+p1x4EaTByIVcJdPTsuclzxFUl6s1wB52HO8AU5853BSlLCIls3Jy/I2z5T4IHhQq
+NwuIPMqw9MjCoa68wb4pZ1Xi/K1ZXP69VyywkI3C7Te2fJmItdUDmj0VDT06qKhF
+8JVOJVkdzZhpu9PMMsmN74H+rX2Ju7pgE8pllWeg8xn2A1bUatMn4qGtg/BKEiJ3
+HAVz4hlxQsDsdUaakFjgao4rpUYwBI4Zshfjvqm6f1bxJAPXsiEodg42MEx51UGa
+mqi4NboMOvJEGyCI98Ul1z3G4z5D3Yf+xOr1Uz5MZf87Sst4WmsXXw3Hw09Omiqi
+7VdNIuJGmj8PkTQkfVXjjJU30xrwCSss0smNtA0Aq2cpKNgB9RkEth2+dv5yXMSF
+ytKAQd8FqKPVhJBPC/PgP5sZ0jeJP/J7UhyM9uH3PAeXjA6iWYEMspA90+NZRu0P
+qafegGtaqge2Gcu8V/OXIXoMsSt0Puvap2ctTMSYnjYJdmZm/Bo/6khUHL4wvYBQ
+v3y1zgD2DGHZ5yQD4OMBgQ692IU0iL2yNqh7XAjlRICMb/gv1SHKHRzQ+8S1h9E6
+Tsd2tTVItQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSM+xx1
+vALTn04uSNn5YFSqxLNP+jAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQENBQAD
+ggIBAEii1QALLtA/vBzVtVRJHlpr9OTy4EA34MwUe7nJ+jW1dReTagVphZzNTxl4
+WxmB82M+w85bj/UvXgF2Ez8sALnNllI5SW0ETsXpD4YN4fqzX4IS8TrOZgYkNCvo
+zMrnadyHncI013nR03e4qllY/p0m+jiGPp2Kh2RX5Rc64vmNueMzeMGQ2Ljdt4NR
+5MTMI9UGfOZR0800McD2RrsLrfw9EAUqO0qRJe6M1ISHgCq8CYyqOhNf6DR5UMEQ
+GfnTKB7U0VEwKbOukGfWHwpjscWpxkIxYxeU72nLL/qMFH3EQxiJ2fAyQOaA4kZf
+5ePBAFmo+eggvIksDkc0C+pXwlM2/KfUrzHN/gLldfq5Jwn58/U7yn2fqSLLiMmq
+0Uc9NneoWWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7D
+P78v3DSk+yshzWePS/Tj6tQ/50+6uaWTRRxmHyH6ZF5v4HaUMst19W7l9o/HuKTM
+qJZ9ZPskWkoDbGs4xugDQ5r3V7mzKWmTOPQD8rv7gmsHINFSH5pkAnuYZttcTVoP
+0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZckbxJF0WddCajJFdr60qZf
+E2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkG
+A1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkw
+FwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYx
+MDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAhBgNVBAoTGmUtY29tbWVyY2UgbW9u
+aXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAyMDIwMIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWiD59b
+RatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9Z
+YybNpyrOVPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3
+QWPKzv9pj2gOlTblzLmMCcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPw
+yJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCmfecqQjuCgGOlYx8ZzHyyZqjC0203b+J+
+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKAA1GqtH6qRNdDYfOiaxaJ
+SaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9ORJitHHmkH
+r96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj0
+4KlGDfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9Me
+dKZssCz3AwyIDMvUclOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIw
+q7ejMZdnrY8XD2zHc+0klGvIg5rQmjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2
+nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1UdIwQYMBaAFNwu
+H9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA
+VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJC
+XtzoRlgHNQIw4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd
+6IwPS3BD0IL/qMy/pJTAvoe9iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf
++I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS8cE54+X1+NZK3TTN+2/BT+MAi1bi
+kvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2HcqtbepBEX4tdJP7
+wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxSvTOB
+TI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6C
+MUO+1918oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn
+4rnvyOL2NSl6dPrFf4IFYqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+I
+aFvowdlxfv1k7/9nR4hYJS8+hge9+6jlgqispdNpQ80xiEmEU5LAsTkbOYMBMMTy
+qfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICFjCCAZ2gAwIBAgIQA2mP5xLVGfPO0P23sWQwETAKBggqhkjOPQQDAzBNMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERp
+Z2lDZXJ0IENTIEVDQyBQMzg0IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYw
+MTE0MjM1OTU5WjBNMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIElu
+Yy4xJTAjBgNVBAMTHERpZ2lDZXJ0IENTIEVDQyBQMzg0IFJvb3QgRzUwdjAQBgcq
+hkjOPQIBBgUrgQQAIgNiAAR/FK2Ftpf9AiE1TWDoOJOTmz0FEG2v0/7v+rv7c5nz
+7DISjcdouIveiaKIVHeNuyF+M5VWlgno1YyhBLibbhkAYuhCKKZYN4QZVSZ7Mzdn
+8ppyraGurgBCPBx+uHqeIZyjQjBAMB0GA1UdDgQWBBTwjJhxOThlwjobphdmHcjt
+Zd6SNjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQD
+AwNnADBkAjAjb+EAGSZQ5EYgZYs3p8/rBuHMMskqoewyDXOiHgIcNWEqTmmrOXft
+l4jAfWvqid0CMEPx0VijdT6Gm7ZVEYsX9z3+CmnFf07GdRtalMvqERHGCCKI3tB6
+oqV56OMhp80Tsw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFZDCCA0ygAwIBAgIQBs7hMb5tVcgH98DH+0TmIDANBgkqhkiG9w0BAQwFADBM
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJDAiBgNVBAMT
+G0RpZ2lDZXJ0IENTIFJTQTQwOTYgUm9vdCBHNTAeFw0yMTAxMTUwMDAwMDBaFw00
+NjAxMTQyMzU5NTlaMEwxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg
+SW5jLjEkMCIGA1UEAxMbRGlnaUNlcnQgQ1MgUlNBNDA5NiBSb290IEc1MIICIjAN
+BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtjNzgNhiA3AULBEcOV58rnyDhh3+
+Ji9MJK2L6oNfqbw9W/wLmEwCRzDs4v7s6DRbZl6/O9cspiX/jFmz3+rafCnZRlBy
+CB1u0RsK3R/NmYn6Dw9zxOGcHXUyzW+X2ipqlbJsyQnQ6gt7fRcGSZnv1t7gyFPU
+rsZ38Ya7Ixy4wN9Z94590e+C5iaLWji1/3XVstlPCfM3iFDaEaSKFBTRUwQAffNq
+RBj+UHAyBxyomg46HcUKH24LJmm3PKJXcCyG+kxulalYQ7msEtb/P+3XQxdrTM6e
+xJCr//oQUJqjkFfW54wQrp8WGs81HX/Xdu2KnDWnKLinXSH8MDfd3ggZTxXG56ba
+kEeO95RTTI5TAr79meXqhtCvAwLTm6qT8asojiAB/0z7zLcpQPWHpBITBR9DbtdR
+UJ84tCDtFwkSj8y5Ga+fzb5pEdOvVRBtF4Z5llLGsgCd5a84sDX0iGuPDgQ9fO6v
+zdNqEErGzYbKIj2hSlz7Dv+I31xip8C5HtmsbH44N/53kyXChYpPtTcGWgaBFPHO
+lJ2ZkeoyWs5nPW4EZq0MTy2jLvee9Xid9wr9fo/jQopVlrzxnzct/J5flf6MGBv8
+jv1LkK/XA2gSY6zik6eiywTlT2TOA/rGFJ/Zi+jM1GKMa+QALBmfGgbGMYFU+1Mk
+mq9Vmbqdda64wt0CAwEAAaNCMEAwHQYDVR0OBBYEFGgBk7HSSkBCaZRGLBxaiKkl
+tEdPMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB
+DAUAA4ICAQCS/O64AnkXAlF9IcVJZ6ek8agkOOsMaOpaQmuc9HPBaUotszcFUEKY
+kp4GeSwuBpn2798roM2zkgGDtaDLJ7U8IxqYSaLsLZmlWUOs0rGT1lfXHLyT1sZA
+4bNvGVW3E9flQzOktavL2sExZA101iztw41u67uvGUdhYS3A9AW5b3jcOvdCQGVT
+kb2ZDZOSVKapN1krm8uZxrw99wSE8JQzHQ+CWjnLLkXDKBmjspuYyPwxa2CP9umG
+KLzgPH10XRaJW2kkxxCLxEu7Nk/UWT/DsKSRmfgu0UoBnfWIEu+/WhFqWU9Za1pn
+84+0Ew/A2C89KHKqGX8RfWpbn5XnX7eUT/E+oVr/Lcyd3yd3jzJzHGcKdvP6XLG/
+vB29DCibsscXZwszD8O9Ntz7ukILq+2Ew2LWhBapsQdrqW7uxs/msEQpwvCzYYAq
+i2/SFFwlh1Rk86RMwaH4p2vq/uo6/HnbDo/cxvPJ1Gze6YOhjh0i7Mk6sgB73Dun
+Qhp/3IupET2Op8Agb10JXUNE5o9mzKlbB/Hvm3oOs1ThlP0OLMaT11X9cZg1uAlK
+/8YpKCz2Ui3bFBiSJ+IWfozK1GG+goeR65g3P79fXXc/NKwbOEOraHKZMh46Ghml
+ozhMI9ej58zVKpIXkAtaS70WvfuGauKJmezkoFUYyaMIHxPgMghy0A==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFXjCCA0agAwIBAgIQCL+ib5o/M2WirPCmOMQBcDANBgkqhkiG9w0BAQwFADBJ
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xITAfBgNVBAMT
+GERpZ2lDZXJ0IFJTQTQwOTYgUm9vdCBHNTAeFw0yMTAxMTUwMDAwMDBaFw00NjAx
+MTQyMzU5NTlaMEkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5j
+LjEhMB8GA1UEAxMYRGlnaUNlcnQgUlNBNDA5NiBSb290IEc1MIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAqr4NsgZ9JvlH6uQb50JpuJnCue4ksUaQy1kk
+UlQ1piTCX5EZyLZC1vNHZZVk54VlZ6mufABP4HgDUK3zf464EeeBYrGL3/JJJgne
+Dxa82iibociXL5OQ2iAq44TU/6mesC2/tADemx/IoGNTaIVvTYXGqmP5jbI1dmJ0
+A9yTmGgFns2QZd3SejGrJC1tQC6QP2NsLOv6HoBUjXkCkBSztU9O9YgEQ4DDSLMm
+L6xRlTJVJS9BlrBWoQg73JgfcoUsd8qYzDj7jnLJbewF7O1NtzxbFFCF3Zf7WfeQ
+EvQTv4NNgLIVZRGXYOXWXOYEtVDmcTO2IJOpaAA4zknbtFw7ctdFXFS/zTwBIx58
+1vhpLKUACmwySLTecC06ExfBf2TL8zDtoT2WZ/GUtWBsW2lo9YIzCaK22fOFsm6g
+lPDCxH2hLMpz9a7gUpyiZuYDzurf7RjUuWOL9+j/+7Nbj0PFr7d0lFA1Za7WL/GF
+j1OhcPSNMl28lsMewgQEnAQPs11+iSDKXicNiUoSI7T2xN3YH/hoszb4HrzG94S2
+6IpOiDA4wCbYcAoJOjQOa4ISlhwv5p6t2HE1gbGMBm70bmb/S0quvfD+11xfU7sy
+PM1i0RSgKR8Q3qlyT7GtZOWDKo+L6oSV7pglmJqzcTzBp1DyrEJiMcKhkMbu4reK
+qLW2GzsCAwEAAaNCMEAwHQYDVR0OBBYEFGJtt5FPxOqjYmCPoNC+tY8GfGgAMA4G
+A1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4IC
+AQBh6PsnbdbiuLMJr6rwsYJM/j0XiU0tFZ377tC7hOyEddtDE96Mn8cp74d0yxNw
+gVYAdPyu9Nk63iIIUaWgXIJmtntMqdqPq6wcQZZm1p3eVua/TrGyXl/Aw27UwoSQ
+9X2xuhbRKYrInenP0McZOz/P7vfhM65CyJjACJ7zWvPf1Cs7jqgoVhnHTnc8JVTc
+uEhI0fknaj7sE6+yBYn9VV/zfY4NnAldLIp+hc744b8RPTKMWtd+PfQzWM+iBZij
+s/vOib/9whbdbtyISQ0LoAP/50XpBMHp/aqddfi4H4eD2es501qny5isE4kA/G+V
+TuF9EUZt9jhGoxOgLAH1Ys+/HFCRJ3Rdt+xHfNDRdct77tFNIwrDYKV3LYDaZw+O
+a3YH8KYP6oSuHnm/CIraCfP07rU289R6Q7qUNeH6wTsblpmkV2PrtaiC9634d9d2
+hvN2U1Zb/CZChM6fg5GRr/S+cBWApdjoabHYkVS4GbJi+aL6Ve0Ev7lEhuTP8ZsA
+vxEPvrV0JFH/dzRj7EgjDugR63dt2sqCkb6khJNM2qH+zAaE6CHoVLrm0x1jPcJa
+/ObJg55yZKmGWQCMwvcTg7bQpDHGrJGOe6QiVhPGdccjvItb/EY9/l1SKa+v6MnD
+dkvoq0cC8poN0yyIgAeGwGMPAkyOBFN2uVhCb3wpcF2/Jw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICETCCAZegAwIBAgIQDfPZN2WjecWVZuqS4iRPNDAKBggqhkjOPQQDAzBKMQsw
+CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xIjAgBgNVBAMTGURp
+Z2lDZXJ0IEVDQyBQMzg0IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0
+MjM1OTU5WjBKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4x
+IjAgBgNVBAMTGURpZ2lDZXJ0IEVDQyBQMzg0IFJvb3QgRzUwdjAQBgcqhkjOPQIB
+BgUrgQQAIgNiAAT8WR/OmWx/mw62KWNvxoXzCtPWm65XFUwO7V3jCX5tKqOGqrp4
+oKdxvUT6CMBKBtZv3SxKOHTl0L3/ev/lOU69vRceH0Ot1bwn2Eu/dowwMqT7+VPl
+2Ko4U12ooDegZwqjQjBAMB0GA1UdDgQWBBSSlvfmutURuvkiLnt+WtnwJeUFGzAO
+BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBl
+AjEA/cBN8aSn26cMJhH0Sb0HOGMrRGIGeQjHw9TPmz6rOieqkMf9WaK4MlLbyo4X
+CwqQAjBdGuxRidRk3PnlHji9Wy7j5UTkOxh61/CVQI/y68/0+dBlokHysOZ8wTYs
+j1453Tc=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICQDCCAeWgAwIBAgIMAVRI7yH9l1kN9QQKMAoGCCqGSM49BAMCMHExCzAJBgNV
+BAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMgTHRk
+LjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25vIFJv
+b3QgQ0EgMjAxNzAeFw0xNzA4MjIxMjA3MDZaFw00MjA4MjIxMjA3MDZaMHExCzAJ
+BgNVBAYTAkhVMREwDwYDVQQHDAhCdWRhcGVzdDEWMBQGA1UECgwNTWljcm9zZWMg
+THRkLjEXMBUGA1UEYQwOVkFUSFUtMjM1ODQ0OTcxHjAcBgNVBAMMFWUtU3ppZ25v
+IFJvb3QgQ0EgMjAxNzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABJbcPYrYsHtv
+xie+RJCxs1YVe45DJH0ahFnuY2iyxl6H0BVIHqiQrb1TotreOpCmYF9oMrWGQd+H
+Wyx7xf58etqjYzBhMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBSHERUI0arBeAyxr87GyZDvvzAEwDAfBgNVHSMEGDAWgBSHERUI0arB
+eAyxr87GyZDvvzAEwDAKBggqhkjOPQQDAgNJADBGAiEAtVfd14pVCzbhhkT61Nlo
+jbjcI4qKDdQvfepz7L9NbKgCIQDLpbQS+ue16M9+k/zzNY9vTlp8tLxOsvxyqltZ
++efcMQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFtjCCA56gAwIBAgIQFcKuKk2ZmmOM07oTGXYI9TANBgkqhkiG9w0BAQsFADB1
+MQswCQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl
+c2VhcmNoIEluc3RpdHV0aW9ucyBDQTEtMCsGA1UEAwwkSEFSSUNBIENvZGUgU2ln
+bmluZyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTk1NFoXDTQ1MDIxMzEw
+NTk1M1owdTELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj
+IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExLTArBgNVBAMMJEhBUklDQSBD
+b2RlIFNpZ25pbmcgUlNBIFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAIpq7qoKI1UMiwZC45VbVHhfxY4GLHw8Mb6vDamh7EogWAWd
+4miyu+tffyozufJVnG+qpB7tEL6DKRE25p4/+m17UeHVd6W9y2kOOyIglAwxZUAN
+Ca8QNXqb6nkIRKSLZ6krTcHn0Nen9rU6jdmjqXm4pGVcvPM+95+Z9rjDZWgtq4Mu
+3YWZBKn10VzVUUIBuZ9BtUsisgD0y2cQ72nEEK36lAZ2UBJXgq7FFK08fbud8XPh
+fPCucd5b9xLd94Dx3D7xYLrJGZdvdXSFTP05Q8NkbjSsE8EcZbZSQvFG6y/6XabP
+Dkmd93R8eA0GOiwS++JLJuRviyGBM0I5E+hCq1tV1Bu7N7YSkffzfbzS/+yxw9Wg
+zLIrx49dfkxSQkj7j/1akHMQ1alyVI1J2zhSqkZIDi/6ACzMcww2SyTOE2ympKSj
+1nyb6TgLxiTbTaxnIUlbQTdk5mBrH+0qL2AZMB7YPJwZQ4ffwAr05MpgiHrWo7nk
+JS554v7Byzy3989OWEz7w62rfarKiPsOOA0fnlw567gHxFAiTfiFf27sjPq2cU3e
+fZZpxN0+Ht4mkAosTRWVqaI+3D0Od3yNQShPuINRvj63j5A6cDGJWvqTU/xgyY11
+kO5aLx2EnwCp5sOGI6Ie3RLjoUZgG2e/UBUiknxKtIyPbpyVwizcOzogtryLAgMB
+AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFLRkFkjo/FpLMymJ65lA
+uSC09mEaMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAK6xZi+Y5
+RNz7rUqI4GT/q8Py0s5wLwPlb7LE9TbWU2uHqx2LmQfIMI5Hcv2huHXWF6EWvWRz
+kTBXrX39BUCGk9FJlrIL1HxkE4vTIUk4u/vozD4x8a57TCrfggajjgWEnH9wzsC7
+RRffXWUM5FBIB0SLpC9W2sZ69mCNpDjxnYcWMLLwX3pCVSBxz8zuALESR79CueSz
+tR0ZhLmYbeBptBVBteJQSMcf6pq3eZHd1dVTGfyuGGxp261ZKJtkmKc8x1WO0TAA
+z9QynmKxwyruNSLGu/B8u4O4AIn13BqX2TiaKVNhGaan9DtH/d1nlQ+OpGYsgpq3
+LXHm3674+GjBuw/qUKBFl7calRJvyLO2BWjaah4ONYWErHQMirT0dZ8ir7BUu7ae
+IvnZ69WKDcfc+JgxX576xpf0QRB104G2MV963YiFCK9wRwI3e+JK7F3y3SkSRMiK
+qt3SVXgXda9xaQ13cEqwH39C28dx3FjWGL1QxblyBMdne3xTYMpJGBW8QHOuK6gr
+rG8RRDnsgkh+Ecr71j+2wLm4BpN1vZMndxcNXKWe6sFbAC0MqDVgx+JvNRs9drXn
+rd10I0+GskfvyC/QhXw5ljehKykCvT6Hz6j2HXUyzzjjc7HuEIG1KrGIBlEeWjpI
+UfM2WWLfQmZZULdYvvV2QJoSFuYOqtdsoNU=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICZjCCAe2gAwIBAgIQTIpjHaljjwWi+3YU/1uizTAKBggqhkjOPQQDAzB1MQsw
+CQYDVQQGEwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2Vh
+cmNoIEluc3RpdHV0aW9ucyBDQTEtMCsGA1UEAwwkSEFSSUNBIENvZGUgU2lnbmlu
+ZyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDQzNloXDTQ1MDIxMzExMDQz
+NVowdTELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWljIGFu
+ZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExLTArBgNVBAMMJEhBUklDQSBDb2Rl
+IFNpZ25pbmcgRUNDIFJvb3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IA
+BEOfvFxCakPhrEu4Dl+ABuMFd4t/C3nXYaCQv/JTKKNYupTAZmocWdqAWIEATLzJ
+eZgQDMcdC+OT3IU5aNm/p0PSMcyCgie6iNHSLVY39zrabjnccRBl7jgLh3oDujBf
+ZKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUanHBc2qTQqaXcl67kF+C
+kg8r1uswDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMB6l1QtElRDk
+Z3xOhV65RUkCc7CyHLOnItEAYUAPs4c3Fo0A7baLVSUGlJDc1+d1nwIwf3Rr8Urf
+8PeEe/LFeTADSPIeICJXZFRXNIB3tz8jT7T1gJjCwVZboOfWoY/1DG8d
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFzDCCA7SgAwIBAgIQVJjS0dRbGZVIE3nIEcCHmTANBgkqhkiG9w0BAQwFADB3
+MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMUgw
+RgYDVQQDEz9NaWNyb3NvZnQgSWRlbnRpdHkgVmVyaWZpY2F0aW9uIFJvb3QgQ2Vy
+dGlmaWNhdGUgQXV0aG9yaXR5IDIwMjAwHhcNMjAwNDE2MTgzNjE2WhcNNDUwNDE2
+MTg0NDQwWjB3MQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
+cmF0aW9uMUgwRgYDVQQDEz9NaWNyb3NvZnQgSWRlbnRpdHkgVmVyaWZpY2F0aW9u
+IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMjAwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCzkSoHgwZn/Z6d4MfAt6TmQgR/D6bbX/vVWtdFoPt3
+C/CA86ZtWk15U9ighoRXRSDHolT7x6K/isduNfOiFcQvTuNKhZZJDf++mdgU9rwn
+B+5Cmyv1C5IG5P1pE2WokXLymITrgz0O5NdxEkghyw3t9kdJt5v5yccXtoRP/7is
+mtdzZ0mF44a9N0DQJYbU3rXCbWJq1al4vC1vSfnlbBQU/RTH02UWN97LbrxeKY39
+YpsVLNYF5rmJMjOjYsfX1lJnCMQu9FYrnguHzOyntKaq6wXNGVelOgsEJxyRZ54t
+Yi0vHr7awCDLBBnKM/uJvpjicqByNb554ZyDb+RtF2+Q8z0AhnU4jtDgSZq729P4
+MMrVV4hoTXLTv21/cdj9vQ2ukmRIt1tveSa1zZuVIYTR7w8yPXtXjPNFB0x84F4Y
+DjV2i22eyzZ0qwX44HNdMlaUZ5clCsY1PZSX58FEi4D9wfj0dBnlMPYG+yFXPgYc
+i2sVhidJe4KTylnodUfoPzj0x1N5oLa04lxR771fOMET5ngMlVouxUBZKMwPJMDs
+ugl3I5k4prYc2se6ILbXN9h/N68I4ztx225zG32ZcrDkhjNZdLUWAHtQbcaGE9r9
+xDmCPSQAmmDaupTABVEsNKxQmROHu7MFgLJNMAJcuCaDXbRjc++uI5VPYCi+N9Vb
+pQIDAQABo1QwUjAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
+HQ4EFgQUyH7SaoUqG8oZmAQHJ89QEE9oqKIwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ
+KoZIhvcNAQEMBQADggIBAK9q3eYZ5y2UQxlOy+lQlWSlA5ECi+I2gDsVolLCFhm2
+alpddEMw9Jv/YHQJsSEekBZtxSSPXGaIY/RPzH3yEkxAEIsBn9qpyK7ylRvPnQXr
+ST50oGhb5VYsZRyCflPaVtlGF3mSRcQQNghSKRfLL6byftRpJIoej7BzDcwcSquy
+qu2nkWMBZCKoMrh+MiizZ3MtkbTcMQEL90cKpvHXSu1WYMQsCKN7QLC8dCdSh9a+
+iN03ioluZ4gd9cldoP62qzqA1xqXPBc2IkEerE3Vg+Y8OL1PMOlUqdO2BMMydmG7
+sBjFKxizwIDVt5WwXlFNIvzsWKro2JS0pS7tkt7nGHwhV91VY/e/bc0f0qZ3KHDH
+4ls6WwjSW07IAJaz4YM2r4YKZVx09ursemp0oPBL7u+Uo6xQ8oft1zowg8n7fVe+
+5eP4QcrlZK6zo+xY7IWazO+56vNWGLlcc5qvxXcXg1nbNxoYclSlQdK2I3WjQ5rl
+d3yWebdBjb/s3ICgn9F3dVhfNRPgJRpnC33OJfoHCuRhIdjUHOUHxjaZ9JbQxhX+
+Ts3Xroud2xb9BMaSvdSI5qmjqrv3ZDg7X8wM0DW+dBkDpsWqTKJhNoI+HfMrvJdd
+20t4Oy31O+9gI+j17AsjNpWvmGa/U9N7uGlKKpZmacSUxvRfbqyYeIiABlyisu2i
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFtjCCA56gAwIBAgIMXkDoOwAAAABUkcpSMA0GCSqGSIb3DQEBCwUAMFIxCzAJ
+BgNVBAYTAkNBMRUwEwYDVQQKEwxOb3Rhcml1cyBJbmMxLDAqBgNVBAMTI05vdGFy
+aXVzIFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTIxMDUxNzE3NDcwNloX
+DTM2MDUxNzE4MTcwNlowUjELMAkGA1UEBhMCQ0ExFTATBgNVBAoTDE5vdGFyaXVz
+IEluYzEsMCoGA1UEAxMjTm90YXJpdXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3Jp
+dHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDzS+i62ZGguH6ehkx0
+eVor2OhwlIdDv/tdNTedqfNOa7eRThN0GMcR1fFzAHTt0V8fKJh7mq2sT1IJyBRi
+9qU7wYjCpsWjWoVE55MfOj8XhjMrmeHnvaYkvcV91y/xGjsX/2PO1ZzDIF5FRDYZ
+kg75AHYnI5IYiZPBBHnLqVdzDLW6RnntUtiI1CEVBRVtLC2a9nO5mYd1RzxcJNFW
++PEnLUdGrn69nLAaR5CqInb7s/3w8eSkJB02BRM/DFayRjupbMwYzksw3XYOz0/W
+eCzORlplDbdDr4hl0x14/RPh4te8ME3+AQSGJGpedpa1VssF6UBLoKKhSWRUBDfw
+wcXZBw91u+CFN7loq3ONceEv/GWVBfnCrwosNPvg/CmOvbq9EAheBT88aBgS6rwy
+RIC9nj7tMqQzlUDIQCprpfwCYpyqBebjyl9Iepnz6UPb72d/Sqv0VI35h04svEuV
+ezO/hxeVoOF40Un9qhZc/eq7BSae7yTwpC7LaKHs4G0HoehaeW54evoVDxIdfdDK
+8PPEDzbyuABGm/VjPGjKuxOEXVBHmoMPv8XlfcGCoyYj4af1iNhLT0S/YQKO1kmg
+DXl8o8e+Xl//RByvjv3hI0eTrHMzjxwz2ZKTiSaYRYQHqqJsM/smWWQYgvvJoVL/
+M3bESni03uXJ7SW/0wI5S10OywIDAQABo4GLMIGIMCsGA1UdEAQkMCKADzIwMjEw
+NTE3MTc0NzA2WoEPMjAzNjA1MTcxODE3MDZaMAsGA1UdDwQEAwIBBjAfBgNVHSME
+GDAWgBRfzShf2+WR+AoTp6hobMUYHMdYrzAdBgNVHQ4EFgQUX80oX9vlkfgKE6eo
+aGzFGBzHWK8wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEANvCfug5G
+G31PyBQqL5cc5rcEhw5skkbsiSu6uaV7VzBzO+U78vdSSc/AKfKj35U4g+Fr/Ul8
+F9hLfdN+aTK7V0h11Vv3y58JCICs2m2WWD2omY17gZvR6o6VMgT8UFYJ7S1QhtVL
+jLpwHY3UZtan1KLqCEQa2Fo3hJGrRGmpeofbqb3ZXoUKsdYM13OQp/sWdBFfNBbc
+onnqa0B1IuJRMWSNB415sKZdVq1DSF3rZP5OX2XSvRkD4F1hSS8hY5vg2zTo9Qnw
+QFaolr1B2TL/qySHEnPsVX7EXl19mwL3IC4lwGrBoPwVDe5E9+eLse0kB+eczlkZ
+yKVx6kPvd4NTFiIVCW86VLnoqdn8fKQg4iL+danRbUecKBdBcOKvntEpxTEENnu6
+qqDTpiLHqXTaOf7/8ZdOonIDjeIiUJDMoqfNhODCgf1XBcEAxVuobLBar/hmlFKU
+mU+Gdn5Qlg/+MSDyW/xiBij092bUnHBr+ThM7X5n5QcIvcl7zwFaVcyhfKITpC4d
+KjXyVmekuaLS2a/Y4lupS9aDn45Wr9kvizh0LkQO2ZXN/3SSwQd2kv1ep/LCAz/c
+zWIEm5dte7Q3toaZwmAK/G0ZBkI3ZLwXum1LzddoRhN51ltgmc6NzfDIG97qKL7M
+z4leKEMaJ8dId29zULSpxVPgc8dUrdyac1E=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIF2jCCA8KgAwIBAgIGRCnTs8Z9MA0GCSqGSIb3DQEBCwUAMIGLMQswCQYDVQQG
+EwJDQTErMCkGA1UEChMiQ2FyaWxsb24gSW5mb3JtYXRpb24gU2VjdXJpdHkgSW5j
+LjEiMCAGA1UECxMZQ2VydGlmaWNhdGlvbiBBdXRob3JpdGllczErMCkGA1UEAxMi
+Q2FyaWxsb24gUEtJIFNlcnZpY2VzIEcyIFJvb3QgQ0EgMTAeFw0yMDAxMjAxOTQy
+NDVaFw00MDAxMjAxOTQyNDVaMIGLMQswCQYDVQQGEwJDQTErMCkGA1UEChMiQ2Fy
+aWxsb24gSW5mb3JtYXRpb24gU2VjdXJpdHkgSW5jLjEiMCAGA1UECxMZQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdGllczErMCkGA1UEAxMiQ2FyaWxsb24gUEtJIFNlcnZp
+Y2VzIEcyIFJvb3QgQ0EgMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AMO5XBmVDlHyw4pIktk28Uy7Tdecwcxf2ogVKDW332xN1UmsGMXryGl2xr/ZN3JI
+0lBx6WibzlF7rZk2b3PjYInZe0/Q6AYOVYybGNZc7ywdKyBKjw2YPRZNgxgbadEE
+bpl8ClR2cTy/PrZSOSGF+6QBPuBSuNhmhg2gu2AUXhTyGcWHFRjpXC4G67eWLVK4
+CE1+t9KdgnvHXMTotK+9CGee/S8xszVwIl2bxdEoh7xW5LcEEp6bueL2JnSzG9OY
+ABrtkqIgzl6IRtasVPtLZWXc3QD0EZftiosUaC3nYLdylHfn27qyoL5A6BpitahO
+Qv0LqnCD6dkmAlKXMT0knuSaDnO9GQwGmlETyqegDh8bQ5XT+mylki8UQi4RLk+b
+MA/jY7cRLDep8Zn/F0KT/bhnjZ0gK3i5G+OzV8ht1i+SJ05zps7ILGt4rcJnIP9T
+xkbh3seyf5QCnStn5J+PwnHvesWBSxQ8i6mMh2Gkv8SsUxqlz0yT7ULwbydPHHdq
+0QbzoB/fiJy4drIO0tfn2vlDXhEU5BlGgb1d04jv3ynH9lW/ziTy0gH4Opjp+r2Y
+9oDv/dS6xVIe+VuBuy/xC3LoulsC2FGWgZPrfELhC89BWTSRqo32LmrhB199DtQe
+cPPivHXG4iL0mSbVy+04l6RFNtbK/YuNqtdlAWDETWKDAgMBAAGjQjBAMB0GA1Ud
+DgQWBBQ9YZY5F/sQgP8aaFhl/OkDGVYe+TAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud
+DwEB/wQEAwIBxjANBgkqhkiG9w0BAQsFAAOCAgEAftnQq/XkiRe7lRfAK5p1y+O1
+3XxbJCLrhr6R6y9aF7dsFzKiw2c+98978ihULzmi7UueTHINSBGcnF6p+2Mn/37D
+25MD7LjzJg5sZ99yQtQL89WS9w1fL72NnzIGasrNZ/Bcn8tujbgVE+ppyO05WME9
+NuoJr0sqVEgnyB0tv+1saYq9WqGMf2I9kN+UUClZyzZhXfvpqLcik6KVnjEX9p0d
+DdARB9pFL+HLqc7ppkwzzJ9RVDMG8Ak7tNJvXTlkslcDnrtNXfk16VDTqLfDHA2b
+R8QAg8nk7gbLtXU53OhXCQsZlY3RFaZVpj2SF2tzd8jDxid1tAhaEr5AukcxNfMn
+UUx9pdQOJqIWXKWSL7rabwvilc4QHjuLhopVkrxbtO+ocbki3DE039syuJtRchPa
+wr1FNdeFJgQMnpOu8r9nU7NKpyndE3tJBq0Zt3Ic/+049lcS9hp2lnYFd0BmAayD
+fOVgduDlbHaPo4Z3wmfH5rrxCjH4ANwtejD5ehQDIaCTnlJXNZwxX34IxTh7W/3p
+5Ce8cmXXLS3lD5BauFsSJ5ZDBQFdUgk4c4XbInLUVKKAutKccNeDwIDtnfrJB7rj
+0xU4BLl+FAyNNvHcuEW6yn3sAvaOxwLxtk3mpqrxx+Nt+blrhIW8kRG0NDKgVyHA
+PnqXWpa1VrLSGwWKBLU=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFojCCA4qgAwIBAgIUf/Go+fQ66IduLcb/XkM9su4wpkMwDQYJKoZIhvcNAQEN
+BQAwaTELMAkGA1UEBhMCVVMxFjAUBgNVBAoMDUVudHJ1c3QsIEluYy4xQjBABgNV
+BAMMOUVudHJ1c3QgQ29kZSBTaWduaW5nIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkgLSBDU0JSMTAeFw0yMTA1MDcxMzI2MzZaFw00MDEyMzAxMzI2MzZaMGkx
+CzAJBgNVBAYTAlVTMRYwFAYDVQQKDA1FbnRydXN0LCBJbmMuMUIwQAYDVQQDDDlF
+bnRydXN0IENvZGUgU2lnbmluZyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
+IC0gQ1NCUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCngY/3FEW2
+YkPy2K7TJV5IT1G/xX2fUBw10dZ+YSqUGW0nRqSmGl33VFFqgCLGqGZ1TVSDyV5o
+G6v2W2Swra0gvVTvRmttAudFrnX2joq5Mi6LuHccUk15iF+lOhjJUCyXJy2/2gB9
+Y3/vMuxGh2Pbmp/DWiE2e/mb1cqgbnIs/OHxnnBNCFYVb5Cr+0i6udfBgniFZS5/
+tcnA4hS3NxFBBuKK4Kj25X62eAUBw2DtTwdBLgoTSeOQm3/dvfqsv2RR0VybtPVc
+51z/O5uloBrXfQmywrf/bhy8yH3m6Sv8crMU6UpVEoScRCV1HfYq8E+lID1oJeth
+l3wP5bY9867DwRG8G47M4EcwXkIAhnHjWKwGymUfe5SmS1dnDH5erXhnW1XjXuvH
+2OxMbobL89z4n4eqclgSD32m+PhCOTs8LOQyTUmM4OEAwjignPqEPkHcblauxhpb
+9GdoBQHNG7+uh7ydU/Yu6LZr5JnexU+HWKjSZR7IH9Vybu5ZHFc7CXKd18q3kMbN
+e0WSkUIDTH0/yvKquMIOhvMQn0YupGaGaFpoGHApOBGAYGuKQ6NzbOOzazf/5p1n
+AZKG3y9I0ftQYNVc/iHTAUJj/u9wtBfAj6ju08FLXxLq/f0uDodEYOOp9MIYo+P9
+zgyEIg3zp3jak/PbOM+5LzPG/wc8Xr5F0wIDAQABo0IwQDAdBgNVHQ4EFgQUgrrW
+PZfOn89x6JI3r/2ztWk1V88wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC
+AYYwDQYJKoZIhvcNAQENBQADggIBABLvOKGI4aGj1mXcR5zzvNzPrEuMPBq+K/T3
+0GcXaIZNcKjyzdAxAld9qQyKO1c5nvBu9yQiBWfRwZbBvtHw+FZnC96614ibjddr
+CHb1WJHZtcNAUxqk8YXNPwBOP06TO3i50gdSZAyGaW3oVGVWF+gAU4SK89v7s84L
+VWKPzUxJBjh/UsPzHNc99zPKMq3Bqa9v6xHL7qxRv7AmmnpOI7RK9mm0QmnWoI22
+jEdKOyA3t0EH7y8g2GYcaZeobDB8d0Nea74mmIMPOtbHcCoWRi0lVIZjZVdC9yNB
+6VBqB0POTrXpH2jY2NYJSqjosvyQZ5LkkCbzR/rWIPuJgOJEczn3ioYzC/iqqedN
+7Nxv1c8xTauOH5BA1nxcgg+uF1Jx6aznTTjtKth2eYetF6NMq7dCV78GrOXQTTDp
+VU/jRcrz4GohNI3HnxyjY0iS0pYHvqVHPsIqmTinjtohfFFt3Ms9B+mpvUnUXTVf
+W4wEUeqaWJC6G69oeLEWD5QpO4+bKo/JIPBxQkxcTasxjKvpfyZoaaClFg2BxNEF
+DMOHZuUHY6obTv+yB0FPpSJGUKxmAIdSbDyyO5yXoUa0W97PwmpZVQeMo6TRdzVn
+RgQv2Ti5Rq+6jhtyJgIvdlTvg8IvLHdwzHcQkqoDrcrM4E/pg0blszwZb3p5h7Y4
+mr1CzqRi
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFwzCCA6ugAwIBAgIEBfXhAjANBgkqhkiG9w0BAQ0FADB4MSEwHwYDVQQDDBhJ
+LkNBIFJvb3QgQ0EvUlNBIDA1LzIwMjIxLTArBgNVBAoMJFBydm7DrSBjZXJ0aWZp
+a2HEjW7DrSBhdXRvcml0YSwgYS5zLjEXMBUGA1UEYQwOTlRSQ1otMjY0MzkzOTUx
+CzAJBgNVBAYTAkNaMB4XDTIyMDUwMzEyMDUwMFoXDTQ3MDUwMzEyMDUwMFoweDEh
+MB8GA1UEAwwYSS5DQSBSb290IENBL1JTQSAwNS8yMDIyMS0wKwYDVQQKDCRQcnZu
+w60gY2VydGlmaWthxI1uw60gYXV0b3JpdGEsIGEucy4xFzAVBgNVBGEMDk5UUkNa
+LTI2NDM5Mzk1MQswCQYDVQQGEwJDWjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
+AgoCggIBALI/FKJKQK/bDCQ4rD4u2Y3X3Zo4vey4yPbde1t0CRgVlZnR1y5inR4v
+B41NFBxi/QOVsos0n68i/Ap2yI8TJWrOTxKCo6gELj1H4cL7zJ4XrheMdbQZ9bkM
+3j5jbg1dg1fU+zjmQjLPJbQyk9sImf/eq7x/hjPsNr1Uo2Mz1XBa6KY7Svmlx2Bt
++P22IptmGAgANpZO91s5TwfHXBJCUSG5s5xr/CdKd/AeXAlh1d7bcfhjkBEMyaAc
+ILqK/TKOh9L8rFKt94s2a98qPXFKIh5fof/qp6hzlIGrnJMibK0g8uEJGv9vqQgd
+ECQ4tJfAF+b2vAFHtYsrBEbH9uxYmu01SKa0KK5XzVvpvHhdm6AnEPG3wSnkKnot
+eITnS765oxryT6xz9c+E0sO+B3Mau8bdHUUOLwc0Mprn17esgEyGFaivx21NdKRh
+7hrBoEqTgo4jrS9C+ipqM1x+jbKudDxDG7rv2GQOnJkHctxkUSEh7clq7rrwetU1
+A/x4Udr2EC+lOhEhse0FS9ffLsux1NpyJv4fEr1n+fg/P4CzrowIpiB+8UTPBAkF
+afjbUFkLQ5GdNZMkAbkyVBZSC5HdBA9/JmHT/I+lgGzQVUwaL6hba2W+Li3bQB04
+o6OXj9gLWjmqdSHEiYB9qWXN/dXwPgRwmJyjaBr2syfSVjHo6PZnAgMBAAGjVTBT
+MBEGA1UdIAQKMAgwBgYEVR0gADAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
+AwIBBjAdBgNVHQ4EFgQU+87+8S3hiIuKF0aIaqm67qoibOcwDQYJKoZIhvcNAQEN
+BQADggIBAFnSddf9L7Ll0uqS+B5+t4vG9c0FigKTOqbal7dfZTbzlxLmd2lMT+97
+FAkcb7KaXpzSW3ofw0/4yqRxS2RHYwKGzcetZPBho33tgWd+Sq4WB8vcYSpFwnwg
+7SCFKMNbIQskQJoyLHPQAeEZ6NZd4Tsn+UfRvvuKpHCakYXiw2SNRZrWfwCkmEpE
+Cc2wjQPqcwhpuw4POYHdUFlehLVsJJvVRrT8cjuarM86G5RFNUN3mt9o7cAtlRom
+kbZwHymWkkyTDP0wCanfu09krPdxiHgj9Ti5y+/H6+akmSWuwARvwuY5y47Sxv4e
+0Icc4HJyzZLduzMMGLn93gVe5SXC6ika3wp2fP+FakFYKUlFO8hqUVSl6Mx+rmzz
+hsCP2B5cSLFpxdQeomZEh7EZ+rxpb0wE0y9MR7ebn1NJHdoRouq+T2LYR5faoXH6
+EAh9GFnp8WpTnqogZiYouakkwjUnkpD77nSF0vaUHbiXOPDN6IujHRlT3bTlJu5u
+/pNg3wJfEP7Dfh5EDvcSsNT8cTZU9pzoqgwQW/7jJ5jjILRQvNSczzUrKstlu4D2
+iRYfEo7YmOYWH/KH6n2FJkrZV2L2lxpwrVZz/DCjK6qklzSHBTDguFZ6JcNaPPlu
+O21Zr2CPXwm5JhBwqzyAcF4/c7+vXjOtwYGxiLmIq1RZUjtQ1iJz
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICdDCCAfqgAwIBAgIEBfXhAzAKBggqhkjOPQQDAzB4MSEwHwYDVQQDDBhJLkNB
+IFJvb3QgQ0EvRUNDIDA1LzIwMjIxLTArBgNVBAoMJFBydm7DrSBjZXJ0aWZpa2HE
+jW7DrSBhdXRvcml0YSwgYS5zLjEXMBUGA1UEYQwOTlRSQ1otMjY0MzkzOTUxCzAJ
+BgNVBAYTAkNaMB4XDTIyMDUwMzEyMTAwMFoXDTQ3MDUwMzEyMTAwMFoweDEhMB8G
+A1UEAwwYSS5DQSBSb290IENBL0VDQyAwNS8yMDIyMS0wKwYDVQQKDCRQcnZuw60g
+Y2VydGlmaWthxI1uw60gYXV0b3JpdGEsIGEucy4xFzAVBgNVBGEMDk5UUkNaLTI2
+NDM5Mzk1MQswCQYDVQQGEwJDWjB2MBAGByqGSM49AgEGBSuBBAAiA2IABMF8C82C
+gbNtUNlAE2Vu34TjoDNT6kALav15eU0tqcTIPEOT33uvScANNFdLxOJWDJ74qxSU
+2R7rU1zihlkzvOoXVsO+Xi1xaNwvxe5BKTzuAihf3FRPd/6YzMQMYwJSUaNVMFMw
+EQYDVR0gBAowCDAGBgRVHSAAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
+AgEGMB0GA1UdDgQWBBRAJ5B0QwXUzyfgd/MbKC28LUgm4TAKBggqhkjOPQQDAwNo
+ADBlAjEA8ablZ3kU7ULAR/gNaBOnGJ4HYlzUgcoUXVVpZgWR+7vlHmeb15ASCLr7
+LuQMHHI2AjA/WMRr/DHG41fGi7b3mO0vtTVbiXxFTBWZfdwBnYg8B+xrP2X/HBsF
+inSYcCkqYqI=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFNDCCAxygAwIBAgIQdiQz69smdlqFYM0KqC/hFzANBgkqhkiG9w0BAQsFADA6
+MQswCQYDVQQGEwJJTjESMBAGA1UEChMJSW5kaWEgUEtJMRcwFQYDVQQDEw5DQ0Eg
+SW5kaWEgMjAyMjAeFw0yMjAyMDIxMjA0MzdaFw00MjAyMDIxMjA0MzdaMDoxCzAJ
+BgNVBAYTAklOMRIwEAYDVQQKEwlJbmRpYSBQS0kxFzAVBgNVBAMTDkNDQSBJbmRp
+YSAyMDIyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAv3EBudWC8HY0
+oSwtJZCqpjQTGpEewl3EdDqUORV0qoFp78mdR/vuATXI83G7nF9RLvmNjgQgKr/b
+Mx6gPO4Y57bMjAsgwEzleFclZka/sqc68iN5rS3huhrCX6MEINLyDOQ71MRA7GJC
+aNL6E3j1438eTu011mlikeZYBdkhvfpAVjCw90w8wcWDmqx66Y561T/RiXyz2uEh
+BBZAD43gV58eXStOeOTwAzEZYMrmp232GfmQKabYRfdIRus1avyuGea2nICEsRHE
+8M2tdzwpGP7oIy2qHBFJJ+3AwmwQA4DjmDkJtCD+58awohQavRNhqjsGD+ZifG3V
+R4i6WrKv8OWqZzcZj3g3Elr5+fRMlz1GSqkWPBw1Ev8KWTHazSUKF7OMxm3XzyXx
+Qnw7fZF9GOVtx3adpfRPqYGgtbOP34EVkz4wsHvNMrvUrYcKymdOrnkTjlX26fIH
+UJpKGYkLk9q0jhMNKs4Rn8lj4pJ7YF33/ND4bjpV0ex1EAQz0iZvT37OnxNiuAZ/
++4Djf075UuNX2ecWnadOrN1r8NAParZIwUoSUnWhU8TqAWWRqzFURHUZuOMQcA0g
+eg4c9zqtBoUPgtQksbIAEsEXmDuRpwSIFjEkK11f5Eemfmfdg37KyIjQ67TRTmBA
++kT9Q5JIm/e7m1ILg/HKckgLUOCnAMsCAwEAAaM2MDQwDwYDVR0TAQH/BAUwAwEB
+/zARBgNVHQ4ECgQITjtINlziX30wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB
+CwUAA4ICAQCdbE8d1c1DysKtrtYlApYIXTlY3N2XHNQ6gKoaVWsKa1TJ/ovrT+FV
+3bmQLet3aSoEG6pTe/vLZSg8WiF7cn7WuF4XlQS3yA2Uu8/cg/S4owqhQJp6K/Xg
+6UoSBad9Kog1H8deOfV8Nmb8a89zB4Yf8/AepId+Lr/3I6O7iub+PUT2QBXnksa+
+cf0yf+49GhyMCILZvctNSQd4Vxr9EgRvBARTrAgNQ9sEOJ6myOz4iTFR7T2pIFP8
+Cp15e8jEVI1q4IuHu3XlwJNk9f5k3gbwrzoy9P5rP8voQU3u9wh62JZa9U63b+u/
+Ur1tsKb5Lx0YUedtHvpIiIRurEPxumW0twjrx8TrAcXRrViSL7dsXAoYC0dXo154
+EE8jBAzgIIur7tJizxgXDEn4i2pu8Yd615YML9ii5BooEJ2j6fQ0nzyPRmx1Egw2
+Fjlgzzceai4TUOcaCKab86yyu5MZIp+BiPR840nw5MggbRgYH2nFRBA70toVm4VF
+lbZs3reGmaICm4ST6R395OxYS1iYBm5kXm9tLb4pkIhUxrkgyuiwE+DsWceBjHAY
+aXnCgUGKtiG9tfBMUw3fChoPb9L1yKdNof3zXDdTloMqEpO4BFrmjco8kt1v0LUQ
+PhNZmQP4nqd4Hqx2384nPmWDXbQ+eePyxRteYGY0hJeDLVpyeYG8VQ==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGEjCCA/qgAwIBAgIQPPt99H6ktMZyoD/D0lx8xjANBgkqhkiG9w0BAQsFADB4
+MQswCQYDVQQGEwJNTzExMC8GA1UEChMoTWFjYW8gUG9zdCBhbmQgVGVsZWNvbW11
+bmljYXRpb25zIEJ1cmVhdTE2MDQGA1UEAxMtZVNpZ25UcnVzdCBSb290IENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5IChHMDMpMB4XDTE3MDEwMTAwMDAwMFoXDTQxMTIz
+MTIzNTk1OVoweDELMAkGA1UEBhMCTU8xMTAvBgNVBAoTKE1hY2FvIFBvc3QgYW5k
+IFRlbGVjb21tdW5pY2F0aW9ucyBCdXJlYXUxNjA0BgNVBAMTLWVTaWduVHJ1c3Qg
+Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAoRzAzKTCCAiIwDQYJKoZIhvcN
+AQEBBQADggIPADCCAgoCggIBAMRTjgN1XSSze9lMBwJY56POLX9YVbYWxPJx8Pzo
+055B1hR9N6OdkFzPMiSq5LgxZ8JjlqXK82lWKv/JMEZBKcQ20k70hgaQMce/7SXv
+w5lTQ+O4cNzf7yXVv5/BgOQTtz+ESYJEeniTXeWt1GLyy1NC7hGT79azuQ0I3qnK
+EyOWUGlboD/2H5M6yPlBXzb334tgTFZ9h8e3m4eoAyj4Aq5tLQwCJPjkcSXcigDn
+iOKxs7bStSSQkoNzp7x4DbgAcNRiPMVXhx/aAGU1KBZ6mPKeYijBBsm1pd1fCPuI
+Q/qjoiF8gAZl/L66u06Sv5f2JHiIkksW63KN2Vof4v8PtHjCZg4Rqm6HMkbOX89/
+icxalBVVeEpndvhOSn4i5Pg8xU0YLx3hbe1/P56+pG2Rvv4lHGy1Ic9skiR/gJ72
+IKwUe+fg2hI0RXHODNRmOF1vVqm4mW4zdg7aGJK/r3fx5NucUsR8yIyBUyX/Cnvs
+a8AT+zp5/7zvERvbVnVFW/usZYZ/QtWLGRAEKne6t4PDCMIYapVuFgM3mXGGPq97
+ZsX+sKeACuqi4xLCVlFm+uQ5rSAfxQqUknUrQZicUAM3msRezyFa6nitTfzl/MGV
+2IM0AtyKgflZJtXlf5M/dfcRIKdoliAluHy30mA+JgsGL91ab/H9Dyiu9z+fHbVZ
+8abNAgMBAAGjgZcwgZQwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
+MQYDVR0RBCowKKQmMCQxIjAgBgNVBAMTGU1QRVNULVBST0QtT2ZmbGluZS00MDk2
+LTEwHQYDVR0OBBYEFBzgIGE9BuTtLG1VuI41rtls5UeBMB8GA1UdIwQYMBaAFBzg
+IGE9BuTtLG1VuI41rtls5UeBMA0GCSqGSIb3DQEBCwUAA4ICAQBcONUKhiMtAWTY
+xoo2RwG1wt42Zs+CXIAwaxX/n3SCwrQ5c2MVJrQtGJAsdONidAJOsQo45z2ah1WK
+FMtDfQHyfIfcv0fbgjPgfZ+H2XfnQCujZgNQOVPokBtk6JLVdRkM8QEI/ST7DZB1
+OtsXl32gZRpgf3bC/1fHm1N94wbEvfZp1l9XjYW9yhJxUJt+/4qTlEEojG1D7WaE
+DagxBGfe7WM7bDAg39TtsTeB7eCrQC4aQvnyYeA86AinuF4BerjVKcwPHl1F+ld/
+7h8xMONwpNCa49/TK2SeUKQzd/PZbSXz+quSYKAefbW03P4NOFah5duW/Nl+zfwn
+ExGik+Y7NZfXCQ/MhboMrJ5QjVJHULobOqoX5sDYGxo+GDwXz2iEgOBETijPKkPx
+x7iqx55Wfn/H1fsUmMMggB7+dS1jmKf1BVKpXn7pUCm2qZMuaGYJFBv8q5wIaTXa
+c5fOAi9MapIBymFIYY+DjjZxyRraIBn9gYLvwYD8V9R/+SnU3fQ/84CXPp9OHaRk
+uZehgmYi1uQgYIm1/mkNKy7WBIOdlHHMw2i6bKqFp7Ia4OtAP4nfa2oIQ8T0jENJ
+H/gEwUuTxYZSitBj00TEX528OsyuKoD9OFYsPyamAJclOWXL23QBEXaru0rkm2f0
+N6rD89yf8GkKtB/r2OAom62ooTchLg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICKzCCAbGgAwIBAgIQVWKmxZS9D8nZwdZJtffjFTAKBggqhkjOPQQDAzBXMQsw
+CQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS4wLAYDVQQDEyVT
+ZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIFJvb3QgRTQ2MB4XDTIxMDMyMjAw
+MDAwMFoXDTQ2MDMyMTIzNTk1OVowVzELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1Nl
+Y3RpZ28gTGltaXRlZDEuMCwGA1UEAxMlU2VjdGlnbyBQdWJsaWMgVGltZSBTdGFt
+cGluZyBSb290IEU0NjB2MBAGByqGSM49AgEGBSuBBAAiA2IABNyiD7Sl1t4p03wW
+ByX1PBd702QZC2WxghlJwr4YXAfE48F84LhBns77yP5KSCqZo+dtvK7/MhSh4k5I
+CLdCR2JwDQbN28S1ypkwT0e4hXM0etMtOotYSlxf8N3ClyGjt6NCMEAwHQYDVR0O
+BBYEFMxHPqoV3ZI2JS+wAd/PbkXBXd8qMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMB
+Af8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMECx3XLh2pJo9kD1/Cukj9yf5Uml
+MuxgVfxVVvUlYGGz3v4sOgSRDHvy6mzE2WsaVAIxAI4DpnVIJ0Yr/nI9+bExuc8l
+lPov4BAdnS880mtVlyBYc/s7+vZpK+XBTnzXXeZgOw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFejCCA2KgAwIBAgIQeD0FbPqDLn5p+FYidp8CuTANBgkqhkiG9w0BAQwFADBX
+MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS4wLAYDVQQD
+EyVTZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIFJvb3QgUjQ2MB4XDTIxMDMy
+MjAwMDAwMFoXDTQ2MDMyMTIzNTk1OVowVzELMAkGA1UEBhMCR0IxGDAWBgNVBAoT
+D1NlY3RpZ28gTGltaXRlZDEuMCwGA1UEAxMlU2VjdGlnbyBQdWJsaWMgVGltZSBT
+dGFtcGluZyBSb290IFI0NjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AIid2LlFZ50d3ei5JoGaVFTAfEkFm8xaFQ/ZlBBEtEFAgXcUmanU5HYsyAhTXiDQ
+kiUvpVdYqZ1uYoZEMgtHES1l1Cc6HaqZzEbOOp6YiTx63ywTon434aXVydmhx7Dx
+4IBrAou7hNGsKioIBPy5GMN7KmgYmuu4f92sKKjbxqohUSfjk1mJlAjthgF7Hjx4
+vvyVDQGsd5KarLW5d73E3ThobSkob2SL48LpUR/O627pDchxll+bTSv1gASn/hp6
+IuHJorEu6EopoB1CNFp/+HpTXeNARXUmdRMKbnXWflq+/g36NJXB35ZvxQw6zid6
+1qmrlD/IbKJA6COw/8lFSPQwBP1ityZdwuCysCKZ9ZjczMqbUcLFyq6KdOpuzVDR
+3ZUwxDKL1wCAxgL2Mpz7eZbrb/JWXiOcNzDpQsmwGQ6Stw8tTCqPumhLRPb7YkzM
+8/6NnWH3T9ClmcGSF22LEyJYNWCHrQqYubNeKolzqUbCqhSqmr/UdUeb49zYHr7A
+LL8bAJyPDmubNqMtuaobKASBqP84uhqcRY/pjnYd+V5/dcu9ieERjiRKKsxCG1t6
+tG9oj7liwPddXEcYGOUiWLm742st50jGwTzxbMpepmOP1mLnJskvZaN5e45NuzAH
+teORlsSuDt5t4BBRCJL+5EZnnw0ezntk9R8QJyAkL6/bAgMBAAGjQjBAMB0GA1Ud
+DgQWBBT2d2rdP/0BE/8WoWyCAi/QCj0UJTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T
+AQH/BAUwAwEB/zANBgkqhkiG9w0BAQwFAAOCAgEACv68sZqZvmHk7JoU7AfTEZ7b
+X45u40OrLX/6vzHQAwDg1TB00bWbiwj+7+we60BP8AMsw1h5NCXWxeyvrEVC54Mi
+rwVrcF6SFGjRwRoelRuiaZ5FDO4oWhaePjZx3/jkQ7j653CA5WscYqlneLXBEZiY
+o6rRNqnsZHZTQ606mlkNpsy3TFMADv5whZmilVEZ83OvydfH2DNL3FTkpZG7+lHS
+1DFHMSUB5UtSSeSRg2UWTXwU5oObGjFk/35fC/dlF+nJIXdqsw0TZSS86bi5GRCJ
+VjqjnkpZ0Jut7ucEv4PNOIU8ijkMRj17QPjHMtdy+WxBDDSdas/UFTVB/GF+Fofn
+OD3iZ4tXxFjPU3EWRcMWx8fcGyzlBfcjeoPNbNC7wfyV9Qkzfk2Bd48jGxG7OThY
+Wolc56vmBHqDEfguDwYc9AeWirMVRDi+WYlsktzAEObiFoPqs+LWU5q7+Q1+nEcs
+tNuDIedeBRcHmtjL2hV3luuEWwDSnRhSjhPLPXzqpJ1rG3r4yqm1NjKg5A5QO9Az
+veHqRQldluTSKuu96oPEPusL2oF+4MxkJ+SQMGFWTw/PNCblUN8GXeL5+mR20diP
+5LiJMq8U3IpM/0Q7OFFQ+lXuYFIuDvUprWBPsp5La2WhL2+iLVVXItSl7up5yQqX
+XftzTXTX48FRiJ6PA9o=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFkzCCA3ugAwIBAgIRAPZw+VmI9FIFjjHhaIY++nowDQYJKoZIhvcNAQELBQAw
+YzELMAkGA1UEBhMCVFcxIzAhBgNVBAoMGkNodW5naHdhIFRlbGVjb20gQ28uLCBM
+dGQuMS8wLQYDVQQDDCZlUEtJIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
+LSBHNDAeFw0yMjExMDMwMzQzMTRaFw00NzExMDMxNTU5NTlaMGMxCzAJBgNVBAYT
+AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEvMC0GA1UE
+AwwmZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwggIiMA0G
+CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC+6rvkEY1CtqIA4KNcNzeta2TDeCz4
+6DTWdEh/JPozqkf6VlTlS994ce3jGXJQeboea4tAmvNa/9OUidhfJJ9JwbIuiCKd
+q7ANTuyYZaS0qAw3jT9cnmbuZfCwlpwtvFzqQnMjDW7Q9WWS3rP2pZjPoo7k0T9q
+sLbjdWKTn3SZd75x7OhhVQ9wcvgeX79pGQ/KzRg1Gxmiuo38yLsEqQGhNejQhfE/
+FePtjqbmFx/SvDEWYi+BXJUC/KYM/VfZiuMRvsoQuNuP3SNY67H8ontqCzgagQCg
+M16geYHsNQg3sWl3C6pKMMOUxeC9lMsF/auHNTRNI9CRneAdjICoe+Ue7mnS7RSr
+9a+BaW7WywY6pxAq9bJqvUM6Z7sSVpjeeGHmxGn6UCUFdsC734CxTIctDJSQD4z/
+FTYmfBAe/QitHqGyrqVvXgtEcdBgyj983usjimugpQS2Wt9K5fVc2Kgiydwuw6l4
+rt+mDcRlr6rohFhNy8e74ipgOaby0xUxx5ce/5BiLKYEiCbTz4oeT+q0vudcahmu
+ibWi39QwhHDzvLsU6quVHWzcvRnab6eVCkT2MjkFcMbmaIxQpx1WWyUBmR8gfQFT
+XMTsYlu6tK3SDcwklJcg0MB/IPv/yXqoFAsH5Lar2rBzZ4jE1qa92EZo496Jt0tf
+zYrb9eImYfkRsQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSN
+zwp8byGdtlOqRml82j91ZFSgmDAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL
+BQADggIBAFyhwJkz+xQyLikIZWBqMVBDS5UvIrL34rqPmfwII5ZJUQHc0zgXgKt+
+2lL0JhqXXTvPuSkvv8UvmEOymBnGH5vPIs/hq8LI53zZZj07KqRQN8wBZ/QsAhKG
+po5GKhwwkSPyLZKcEJ4VwJMBkd1du47utkUn8QZk/0O0TEt/FU4comJUpZu8+Obz
+bDRV1CvWs/5hPX4SQRYNaNSwVpadl85t2rqD5gCmdmu3Jkoc8jnZAue5aLiblf0K
+sUOKMBDH8r+LKIAdAKY53t1RG++9v9nJ1rPEPkl8k0kvyWYDwT0ZE1ptK0dCtKpw
+wmmtT12PjZUEOBX9tCjBob0K16cmqYn46IbL938Y7EBigVSPvP9u3CvBXlySb3mB
+E5KcUwakkoXgaMseZOJ4fKgaxFWwglJ3htLjMvFtoR87IZUELPKfu3SoUrXai1bu
+jou0nrgG3B0/NjrcPHAmAK+GrY/nYyCWxnfmxVxCigAvVTcv70fTSxcXbAnMmZja
+26b/OzJ7Irt4Iw0ktpDJOaDhH+20hbOwz4qulcGQqU3nbiFYjkhxBE3vYi3hkdOM
+G4fSJZP29CmjjLEg1BHz4PzxZ7F++iAbKdOwSalNVNmqduMnYFkKE1M3LjVxiJ5R
+wyY+yw0SA2BnkQyMAdxv+8ALpRv5xI+OAegoZPS/BHLZ3NH0iv/K
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFlTCCA32gAwIBAgIQQAE0jMIAAAAAAAAAAZdY9DANBgkqhkiG9w0BAQwFADBU
+MQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290
+IENBMR8wHQYDVQQDExZUV0NBIEdsb2JhbCBSb290IENBIEcyMB4XDTIyMTEyMjA2
+NDIyMVoXDTQ3MTEyMjE1NTk1OVowVDELMAkGA1UEBhMCVFcxEjAQBgNVBAoTCVRB
+SVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEfMB0GA1UEAxMWVFdDQSBHbG9iYWwg
+Um9vdCBDQSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKoO1SCS
+Aa2C+QwIkTRrihbQRhb/A7jYjeqTNPv/K739bqrcm/KGgVX1iRzEjXVqWHiREx4C
+E3A9774K5wCPuDHldMUwvv991pnlwkKjzyHWswh/kdVh5qKVEA3vXpcLSTjVIrDX
+i1lvnzWbf9KRzHp/u6Cf3lUz9kuNCup9CcB53L1E4v4c52QhKM8ESuK0v4Z5KrsO
+k8mPXqwwOVKQB7nqnCZCFMRnRv7RGmihPlAZoyYKJymQwva063OaeB7hmPRlDDUh
+BvgL3mLlTcGzXdm5+mGXKuPqx0RVJJL+Eqc/xHfgLQKBB9X7feYQnjq0qO/s+1Dq
+Nc/MfrtCuURsUum/KnIfP96bcOncWsU7u7/wWYWvL8GwFHkFrHWfJfURJwZgIcdt
+Zb6oiZzlrEbf+F1EA41gvfexDcwv70FUL+5rlblOfDTfO/l3nX3NBz0cBjMSgOxy
+nPItgtrVO8TH+QTDZAJ89TVgp7RGKS4b76VYgC56iVE4Njz9oXe4gDDQit6NpzQm
+7CO7GFUYNkXu7QEGqk2/ZAzKmJcaMQJm+HhoW4jfCajnm/o0bXAcIa0Ii/Khtqx2
+ar/xgCUAvjweTa65PLaVY71rfkcSkFVFEY3sFx/BvieBk1djaQAmd4vDWeV70Q1E
+8qjw94WaBffCLnCak4XYlZAxkFSm7AufN0UPAgMBAAGjYzBhMA4GA1UdDwEB/wQE
+AwIBBjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFJKM1DbRW0dTxHENhN1k
+KvU2ZEDnMB0GA1UdDgQWBBSSjNQ20VtHU8RxDYTdZCr1NmRA5zANBgkqhkiG9w0B
+AQwFAAOCAgEAJfxL2pC02nXnQTqB0ab+oGrzGHFiaiQIi6l6TclVzs8QKC4EGZYF
+z10CICo7s1U/Ac1CzbJ37f9183x325alz4xnBvSkm3L2IUkJmKMyXndaYwnvYkOX
+Aji16jwYUGj8WVvZedTx5FZIE1bY03ELXniUOBFF+gUX9Q51HmJSYUa6LhmthrSI
+D7FQ5kAANBqVnZPgUfnUVUbplTwlhi6X1wExGETsHGDpfWmvMviXQCUkto0aVTzF
+t/e8BlI7cTBwPnEXfvFmBF5dvIoxQ6aSHXtU0qU2i2+N1l7a1MMuHd85VWCCMJ4n
+/46A3WNMplU12NAzqYBtPl6dzKhngGb6mVcMUsoZdbA4NVUqgcWMHlbXX5DyINja
+4GZx6bJ4q2e5JG5rNnL8b439f3I5KGdSkQUfV2XSo6cNYfqh59U1RpXJBof2MOwy
+UamsVsAhTqMUdAU6vOO/bT1OP16lpG0pv4RRdVOOhhr1UXAqDRxOQOH9o+OlK2eQ
+ksdsroW/OpsXFcqcKpPUTTkNvCAIo42IbAkNjK5EIU3JcezYJtcXni0RGDyjIn24
+J1S/aMg7QsyPXk7n3MLF+mpED41WiHrfiYRsoLM+PfFlAAmI6irrQM6zXawyF67B
+m+nQwfVJlN2nznxaB+uuIJwXMJJpk3Lzmltxm/5q33owaY6zLtsPLN0=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFmzCCA4OgAwIBAgIQEJfEnIwlQyi7pui5m6tPoTANBgkqhkiG9w0BAQsFADBX
+MQswCQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMS4wLAYDVQQD
+DCVTU0wuY29tIENvZGUgU2lnbmluZyBSU0EgUm9vdCBDQSAyMDIyMB4XDTIyMDgy
+NTE2MzIwOFoXDTQ2MDgxOTE2MzIwN1owVzELMAkGA1UEBhMCVVMxGDAWBgNVBAoM
+D1NTTCBDb3Jwb3JhdGlvbjEuMCwGA1UEAwwlU1NMLmNvbSBDb2RlIFNpZ25pbmcg
+UlNBIFJvb3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
+AIx1IMiM3E6RUQa1W+9Fu9n+YOtKk4fs/5ePYJOecWFA6u9Ly5JY2GsW3N4tiPLz
+0wSWwCVnIeUd259SgfYAK2aQ8aweqE9hJN12LwPHNcg2rIFTYCLAUZKZ7+gmLplU
+zQmPX1w88KvnO7OnqwbGMZe+TO30BoExgktQELWgEXncWMvA5R6zwW9IXK2XCrMe
+rC5X2L2+OFBE4zP918G1v6JO+3i0OziYKOlWLVSAi2t+HeOVhqeeF1RGW17/n+Zr
+NYpRpaZ7XAoiDcLXgy/aPD3yih79Hj6h2BxPbghSbk+sH8n+n5lNu1JUsZKDW0AT
+7xS1M5E8gqSr9apIaum4+4BABvzlHn4/vAqrJuLFqwcE1014tevaa1NbU4qm8tde
+USJNH8yqi7rADoLZFLrZ8i33JbjLqUPSTEQeFnXMteRwHymBVTSyPv7/0XgaQJIn
+KmgltdKe77z4FEtvUiMWaxCJ1N+63MwYWXGp5svYkHG9IPSkaiZJlZ1GGEUWiR8V
+XahDsGCXntc22jqyb0tyTpl21zA396adu9tdpu58GOxC+RXoDrjbbEJrEF1EDNbU
+zoKM7yswi3HhCPJBkWPj/uDAqKWNmQBBYs5CRqGdyuWanFHbYHpEVQ4qKnCkmf8q
+fmC0HZZXujv827/GMYCqOgAZL4gfSaTrd0D3TIPugpEvAgMBAAGjYzBhMA8GA1Ud
+EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUx/bIC2LtFAyjF7aquR7R4INWoV0wHQYD
+VR0OBBYEFMf2yAti7RQMoxe2qrke0eCDVqFdMA4GA1UdDwEB/wQEAwIBhjANBgkq
+hkiG9w0BAQsFAAOCAgEAYlDeMj/rNjV4jYl3SA8Po10HqLr2Uj82Us61wHlM610r
++BKsQ9vne4wpKp9rOtN89RV3lzv9If3zyFzJPgWUr3ur6I3irw3AoBvfrwu6qrRF
+VYHIYZlhuLCa6FnMCRPZp1YHhu7toOyNAWWamcwjosCRHV0G3Q2n+jzExFkixps6
+wB1pPSy2sR6Kvj2CD2sxcmBXkAtUit5VCh51SQBstkoz70bY1svE8XxsCZbpqeEY
+/a//tM9nb38HpUiNBRCWOZB5Wpa34+Y3ODKxxjEBJHQCxMsLz7p2vlyKIMPpdGfr
+bRKcOT3gitUrSyTjeYxInJGr14IhOL/Es8EH7pA9rfqivilbUjGqbLMcdfPmoNiM
+A5aIuvjKUTNhCx3Va5wTGS4Wz88Nh0uXxAfZC6uYkeq6B4OYkkAKIM24a5r3gP47
+yeL5Q8go502XF8B38zDqJoQb1VO8MIVfae48tAnosZukOIK668BqjG0rKDB45DKr
+txvhUiQAkedLGtuhiAxu6l0cR5mNcU293t5AmQSzQOHDi6rEkhiXe/zMg4A82iny
+f87EaQCbYX1tltYVgoz1gyoc91N2ciXwKYDEMmRTD09U9FcN1gvc/nKItF9L2R4/
+A4YvORA2pzHFJgeVi0hx8assBurSHE6VjecX6q2xRkXTNv3LxGFvCSJEMiena2g=
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICSzCCAdKgAwIBAgIQbo7kWxBMyQx+tNiIj+XsZDAKBggqhkjOPQQDAzBXMQsw
+CQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMS4wLAYDVQQDDCVT
+U0wuY29tIENvZGUgU2lnbmluZyBFQ0MgUm9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2
+MzEzNVoXDTQ2MDgxOTE2MzEzNFowVzELMAkGA1UEBhMCVVMxGDAWBgNVBAoMD1NT
+TCBDb3Jwb3JhdGlvbjEuMCwGA1UEAwwlU1NMLmNvbSBDb2RlIFNpZ25pbmcgRUND
+IFJvb3QgQ0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABHbIrNTWlZJ8FzLl
+y2tB+Sm7seuidrU22GxLjeU+SlcmJsefO19GZidRwCxjHHTdrDnTbz0OlL6+KzCS
+zqJCVg1Q1KQscfQnYduggT/VTVYWtcwcN8szNBFoxzx7DemUzaNjMGEwDwYDVR0T
+AQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRYXhbDLbPm6qNJs6W+1t6ueZVrjTAdBgNV
+HQ4EFgQUWF4Wwy2z5uqjSbOlvtbernmVa40wDgYDVR0PAQH/BAQDAgGGMAoGCCqG
+SM49BAMDA2cAMGQCMFOMczFOgFy3njsPCFgTvtlA9vG/ffeZoOvMgAANqnA27TYj
+e0G4FBVWdtOW4xWFZAIwJOT2+L0Tbjq3P9y/zXjfJoBXEq9oZ0//8iuxoqGZtMOT
+G456y3y/FI7r6rj+4QNf
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFpjCCA46gAwIBAgIUbHPJNrGF5QuATVvOwp+D0hpRwaMwDQYJKoZIhvcNAQEN
+BQAwazELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xRDBCBgNV
+BAMTO0VudHJ1c3QgRGlnaXRhbCBTaWduaW5nIFJvb3QgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkgLSBEU1IxMB4XDTIxMTExMjE4Mjg0N1oXDTQwMTIzMDE4Mjg0N1ow
+azELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xRDBCBgNVBAMT
+O0VudHJ1c3QgRGlnaXRhbCBTaWduaW5nIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkgLSBEU1IxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqS2C
+6cK4I00zul2xjk6mWjsefTLMd9VRNwOxHEqwrNe39xjzzum6Fi64AUqED5EsHVzt
+KqeoDlWjwzyjIvTxgIaCLBsDDKFdkXIg9buMl3ENopcTgz5Sbta4/0GxSCzgeb9L
+fMLsDMdbOEZYwP6wcmJCSmWLJ/lEbO0HZVFktUoEilsUxHq9ErSUjFEAg9C0Phh7
+ihJ1YM3XyM0Cr3XT3CtNx2PAy6Ticoxp2S2JA9botrxQ+ebLVnNjz/yTwYGG6Tqv
++QdNRoLmVwPye8X8NNGc5j13PeNeWwXXxZIWIX9mnMyugAcyonNX5MQ+hsp/72UH
+rbbQbtEzaZI0SBHx5Ee3o65S2QymhHuIWBWKQRaDbu/nhdqRtzLyaybx1enpkl1w
+i4hqz7v1xEcpMu3FS1AlfoexFRSh0NoWGlj10EIkDO8IdDpTH5PghV6qYeVeg7i+
+2Zrb1vcMHQ5JRWbT6WDAEb1KMN0vuaZdWOkvP7EsRJlKxPtktOq3NcNwvmkhd3Bw
+8IC0HbX8eT5v8mHlDHGlpvbSQH82j8EUW7ZD8aMvcB1X+ReNv6bTRloBF54kPxjS
+XcV9ruHPQ/oRWPaKXYUXrciJy/uE7naIAHHqxUrqdy38g6NSiQL4S+qUE4eOfU+U
+Kojit2ezLVkfifk5px4roxgQ7ha03SMC5sftT0cCAwEAAaNCMEAwHQYDVR0OBBYE
+FKZlQYHyW4cFat39ilROj5h73CO4MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/
+BAQDAgGGMA0GCSqGSIb3DQEBDQUAA4ICAQCi6KUmCrRRytbVPFjX33uEW1Ny8j5R
+xqpvLZ2H1/j9sAhmYdRYNSzJsedQCcFWoqFHBS7Oba+mk7vZPuZToldy27TqT/u2
+x81nvzjcjGijtWkidwwnCqLyj3EeieMJnOjceMoZ/7NSg9GM5Hz49C511DBXKY1O
+gl+x4RgHMnM39GbAngPPlFDiM76sOP2NxEIlSja/judxsWm2Eh/tOHBnVJu+g6kw
+Md7Oum1nG5RkUaHcUbUnJ5mlFsTUHAC0c85ky8CwX8uLoZ9Zk39ZLJYMpMtIhi5P
+qCEaJkvxmDD9EXLlohH58EfV8s98aAQy3GOtkugHapntfbMHjSmPNPUDZo+RYq2s
+OudOMnsm5FTkW83BDIgPeoLnxBZZHOVy4Yh6gdhpey0cuU5xD++mToxOKAv16LVT
+WQv0Oifp/L+p7dbvsmndApaLGW4MnHSnn+9YIJav8WOo/zvKah0U4//xdaHWPQp8
+6Fv4hSWv67uF22v0leAA6fyhN86br750PIv7UR2kBZOfCnF8Fli7fAIzBOK20QTK
+sEn9loiN7TPb5cHvtvLTRX9Dvr82zadlqpFiHzd/7Uvv7nMXbi8LgNW1asp98aib
+0wGLtsZCwk7heIOOyen6mlJ9TQJsQZsN6QC9SFMjQ4DRRwSQ6ZxkSl1EwOIeFYBf
+oTM3VxKKcl+Yqg==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIICNjCCAb2gAwIBAgIUNdzqqPFud6Xd/BatNpw0vRVFzikwCgYIKoZIzj0EAwMw
+WzELMAkGA1UEBhMCTkwxIDAeBgNVBAoMF1F1b1ZhZGlzIFRydXN0bGluayBCLlYu
+MSowKAYDVQQDDCFRdW9WYWRpcyBTaWduaW5nIEVDQyBQMzg0IFJvb3QgRzQwHhcN
+MjMwMzE2MTUzNjAyWhcNNDgwMzA5MTUzNjAxWjBbMQswCQYDVQQGEwJOTDEgMB4G
+A1UECgwXUXVvVmFkaXMgVHJ1c3RsaW5rIEIuVi4xKjAoBgNVBAMMIVF1b1ZhZGlz
+IFNpZ25pbmcgRUNDIFAzODQgUm9vdCBHNDB2MBAGByqGSM49AgEGBSuBBAAiA2IA
+BFI7CA12eXWd/JJ/J6R9xlocD5E82+Q5+IKq2PzmYohXxrVz2z72REWsGaRBYykL
+liyHxKYC012KoqjnXjbs38WhRVVKDFRRkBCcHpoM+PM0sJSy54NIx1jKetHHJGgF
+LKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUWRZsDiAtkUp02ppPs/4p
+UbnpynwwDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBZ8eADXpJ2W
+4XVLDPFJMoABShYkMQVq5PHCRA1/t5l5Lgkw15p6O0DmoSYM500L/QIwRmBoIwwu
+shW7GPd4iqd4bGvn1U+4UL+binQ0f4vyuAw62hoABxh7IH+mdNN+g6gT
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFhjCCA26gAwIBAgIUDx0XQGkARJQ7rWtetIcEV1mwgI0wDQYJKoZIhvcNAQEM
+BQAwWzELMAkGA1UEBhMCTkwxIDAeBgNVBAoMF1F1b1ZhZGlzIFRydXN0bGluayBC
+LlYuMSowKAYDVQQDDCFRdW9WYWRpcyBTaWduaW5nIFJTQSA0MDk2IFJvb3QgRzQw
+HhcNMjMwMzE2MTUzMjQ4WhcNNDgwMzA5MTUzMjQ3WjBbMQswCQYDVQQGEwJOTDEg
+MB4GA1UECgwXUXVvVmFkaXMgVHJ1c3RsaW5rIEIuVi4xKjAoBgNVBAMMIVF1b1Zh
+ZGlzIFNpZ25pbmcgUlNBIDQwOTYgUm9vdCBHNDCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBANCMA/gAIDZZWuEcZP0bo8ss5R5zIRDr5DYOLLh2vyg6HsEK
+lEXzWuk7wBrF/Od8OMzpHCy3eWGse+BO9i63oTIVG5Usix1Q9qWzsBtj8kbCw1ah
+ydO8E87y24Yapmjr/e+jY6++44IZ/dcSBK5vmJsUr6j353+z1npzUQNo5JeB01o8
+M73Gwf3kfkkc4xQNj8FluJcrYVr88zQ27Gcpe9JMkCrSpkKpxsgByVy/XDcx/gZZ
+V+5urRyeovFq3IjllYTV1h4BnVAW4y9xraGRIKayq/4IKAI2L0OYjDucphkEmrWx
+fP6wDX+kMCPCbw8jAWv/2fOFgq0Fq2xAp4FQbQF/xgTcDsm5zq9p8QOsw8wV4B7q
++2N+NGtSU/CYTPydg13Dik8/k71zWkWhuQ9S8LChI4MKh+lsKaLEN574U5UABwyo
+OSDDRurBPRQZrEtzebgE7lwMo3WWWrVuAp5e8rtyLNrxaSVcIDjqRydWbNLF+BB2
+3iKUaZ3tV6RspDUpmsp9Gl9VRErEVJ+/O5kS0M1oMyK9LB3GGTOkW4SGhEMJQiW5
+4pcs8ZQHrF6QjAEib6Ur9DcEB6vI10xQh/I+Qb8mKiyjZpHO/h5i5sbppaG+mMPv
+5GbN/dvvii+WTHuuM/g6zvyF+GOvyfLA/bRmez3zYyO9W29RPWnDQFTw1q43AgMB
+AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFNw9E+5WtshFimqEnp6
+WQvW/EXtMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQwFAAOCAgEABdc9SCeg
+Xz5mkfFh+wZoILbKSVY9qoP3Hp4WLAFpeQZiLSOoxvNLVIX4ENWYrM+wzVb+S32X
+VA9kvl3QK/QJirECmvyyfMprJvKkzYF0ZjNUo0fWUGwJzja4lQjeExGte0dcsQYL
+vCkqRRnt0v019E5kVDVkXgNBUipl06AULYmUAjJ9xAukbzZcIfr7XuGtpWRZzIGP
+XA/R55Bn/KkJtWW7ALvB74auDpnnPT6PkJXTdgIlUOqJvtISRy0bLjv3r01ZkZvZ
+aAEzmMswZpCSiFJCX0evKp4BvOBrc/e63FZC4WfU7pqtAS43PzA9h/gdcWug6I9g
+R0tl50viFBfXmgYbyLcxeEJKDmHnfnWDwMENqAmsvLNroHNwdALkSdipcyA/pnYA
+aR/8fXg5dYPlpuVy4F6mQhyQ4R4aASXG6NxsR7O+1Y6Q4FL4oE2IHV5kkwkUXJad
+UHqicmqUZTynAe2cj+d28fmV4066TjbYiSfTRH/Ji6gJnpG9ySiYRCCHtMecjsfZ
+Y+wj87Hgonlo4ek+S05aqdOPaUX5v1K6KrchPNN2GE6Tdz5OO2v2ACWyinbBn12X
+dnnmQphmiOAQhu+wodWXUMTpoURWz+57cSnrKAvNbTz6DPvb1mU5UwNTfSQn09h4
+h31GcJwT1UuEv1xp188BqF4OvBPFXkjrhyE=
+-----END CERTIFICATE-----
+
diff --git a/dotnet/sdk/8.0.402/vstest.console.deps.json b/dotnet/sdk/8.0.402/vstest.console.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..874b1c21b4e6cba8c8b078ae53802bef0febba8a
--- /dev/null
+++ b/dotnet/sdk/8.0.402/vstest.console.deps.json
@@ -0,0 +1,1725 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v3.1",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v3.1": {
+ "vstest.console/17.11.0-release-24352-05": {
+ "dependencies": {
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.11.0-beta1.23525.2",
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers": "3.11.0-beta1.23525.2",
+ "Microsoft.DiaSymReader.Pdb2Pdb": "1.1.0-beta2-19575-01",
+ "Microsoft.DotNet.XliffTasks": "9.0.0-beta.24306.4",
+ "Microsoft.Extensions.FileSystemGlobbing": "2.0.0",
+ "Microsoft.Net.Compilers.Toolset.Framework": "4.11.0-2.24252.3",
+ "Microsoft.TestPlatform.CommunicationUtilities": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.CoreUtilities": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.CrossPlatEngine": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.ObjectModel": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.PlatformAbstractions": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.TranslationLayer": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.Utilities": "17.11.0-release-24352-05",
+ "Microsoft.VisualStudio.TestPlatform.Client": "17.11.0-release-24352-05",
+ "Microsoft.VisualStudio.TestPlatform.Common": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.VsTestConsole.TranslationLayer": "15.0.0.0",
+ "Microsoft.VisualStudio.TestPlatform.Client.Reference": "15.0.0.0",
+ "Microsoft.VisualStudio.TestPlatform.Common.Reference": "15.0.0.0"
+ },
+ "runtime": {
+ "vstest.console.dll": {}
+ },
+ "resources": {
+ "cs/vstest.console.resources.dll": {
+ "locale": "cs"
+ },
+ "de/vstest.console.resources.dll": {
+ "locale": "de"
+ },
+ "es/vstest.console.resources.dll": {
+ "locale": "es"
+ },
+ "fr/vstest.console.resources.dll": {
+ "locale": "fr"
+ },
+ "it/vstest.console.resources.dll": {
+ "locale": "it"
+ },
+ "ja/vstest.console.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/vstest.console.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/vstest.console.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/vstest.console.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/vstest.console.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/vstest.console.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/vstest.console.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/vstest.console.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers/3.11.0-beta1.23525.2": {},
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers/3.11.0-beta1.23525.2": {},
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {},
+ "Microsoft.DotNet.XliffTasks/9.0.0-beta.24306.4": {},
+ "Microsoft.Extensions.FileSystemGlobbing/2.0.0": {
+ "runtime": {
+ "lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
+ "assemblyVersion": "2.0.0.0",
+ "fileVersion": "2.0.0.17205"
+ }
+ }
+ },
+ "Microsoft.Net.Compilers.Toolset.Framework/4.11.0-2.24252.3": {},
+ "Microsoft.NETCore.Platforms/1.1.1": {},
+ "Microsoft.NETCore.Targets/1.1.0": {},
+ "Microsoft.Win32.Primitives/4.0.1": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "Microsoft.Win32.Registry/4.0.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "System.Collections": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "Newtonsoft.Json/13.0.1": {
+ "runtime": {
+ "lib/netstandard2.0/Newtonsoft.Json.dll": {
+ "assemblyVersion": "13.0.0.0",
+ "fileVersion": "13.0.1.25517"
+ }
+ }
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.native.System/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Net.Http/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.Apple/4.3.0": {
+ "dependencies": {
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "4.3.0"
+ }
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "dependencies": {
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
+ }
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {},
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {},
+ "System.Collections/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Collections.Concurrent/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Debug/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Diagnostics.DiagnosticSource/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Diagnostics.FileVersionInfo/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Reflection.Metadata": "1.6.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Process/4.1.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.Win32.Primitives": "4.0.1",
+ "Microsoft.Win32.Registry": "4.0.0",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Text.Encoding.Extensions": "4.0.11",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "System.Threading.Thread": "4.0.0",
+ "System.Threading.ThreadPool": "4.0.10",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TextWriterTraceListener/4.0.0": {
+ "dependencies": {
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Diagnostics.TraceSource/4.0.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Diagnostics.Tracing/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Calendars/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Globalization.Extensions/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0"
+ }
+ },
+ "System.IO/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.IO.FileSystem.Primitives/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Linq/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Net.Http/4.3.4": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Diagnostics.DiagnosticSource": "4.3.0",
+ "System.Diagnostics.Tracing": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Extensions": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.Net.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Security.Cryptography.X509Certificates": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
+ }
+ },
+ "System.Net.Primitives/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Reflection/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.IO": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Reflection.Metadata/1.6.0": {},
+ "System.Reflection.Primitives/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Resources.ResourceManager/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Globalization": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0"
+ }
+ },
+ "System.Runtime.Extensions/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Handles/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Reflection": "4.3.0",
+ "System.Reflection.Primitives": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "System.Runtime.InteropServices.RuntimeInformation/4.0.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0"
+ }
+ },
+ "System.Runtime.Loader/4.0.0": {
+ "dependencies": {
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Runtime.Numerics/4.3.0": {
+ "dependencies": {
+ "System.Globalization": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Algorithms/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.Apple": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
+ }
+ },
+ "System.Security.Cryptography.Cng/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Csp/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "System.IO": "4.3.0",
+ "System.Reflection": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.Encoding/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "System.Collections": "4.3.0",
+ "System.Collections.Concurrent": "4.3.0",
+ "System.Linq": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
+ }
+ },
+ "System.Security.Cryptography.OpenSsl/4.3.0": {
+ "dependencies": {
+ "System.Collections": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
+ }
+ },
+ "System.Security.Cryptography.Primitives/4.3.0": {
+ "dependencies": {
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Threading": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Security.Cryptography.X509Certificates/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "System.Collections": "4.3.0",
+ "System.Diagnostics.Debug": "4.3.0",
+ "System.Globalization": "4.3.0",
+ "System.Globalization.Calendars": "4.3.0",
+ "System.IO": "4.3.0",
+ "System.IO.FileSystem": "4.3.0",
+ "System.IO.FileSystem.Primitives": "4.3.0",
+ "System.Resources.ResourceManager": "4.3.0",
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Extensions": "4.3.0",
+ "System.Runtime.Handles": "4.3.0",
+ "System.Runtime.InteropServices": "4.3.0",
+ "System.Runtime.Numerics": "4.3.0",
+ "System.Security.Cryptography.Algorithms": "4.3.0",
+ "System.Security.Cryptography.Cng": "4.3.0",
+ "System.Security.Cryptography.Csp": "4.3.0",
+ "System.Security.Cryptography.Encoding": "4.3.0",
+ "System.Security.Cryptography.OpenSsl": "4.3.0",
+ "System.Security.Cryptography.Primitives": "4.3.0",
+ "System.Text.Encoding": "4.3.0",
+ "System.Threading": "4.3.0",
+ "runtime.native.System": "4.3.0",
+ "runtime.native.System.Net.Http": "4.3.0",
+ "runtime.native.System.Security.Cryptography.OpenSsl": "4.3.2"
+ }
+ },
+ "System.Text.Encoding/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Text.Encoding.Extensions/4.0.11": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0",
+ "System.Text.Encoding": "4.3.0"
+ }
+ },
+ "System.Threading/4.3.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Threading.Tasks": "4.3.0"
+ }
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.1.1",
+ "Microsoft.NETCore.Targets": "1.1.0",
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.Thread/4.0.0": {
+ "dependencies": {
+ "System.Runtime": "4.3.0"
+ }
+ },
+ "System.Threading.ThreadPool/4.0.10": {
+ "dependencies": {
+ "System.Runtime": "4.3.0",
+ "System.Runtime.Handles": "4.3.0"
+ }
+ },
+ "Microsoft.TestPlatform.CommunicationUtilities/17.11.0-release-24352-05": {
+ "dependencies": {
+ "Microsoft.TestPlatform.CoreUtilities": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.ObjectModel": "17.11.0-release-24352-05",
+ "Microsoft.VisualStudio.TestPlatform.Common": "17.11.0-release-24352-05",
+ "Newtonsoft.Json": "13.0.1"
+ },
+ "runtime": {
+ "Microsoft.TestPlatform.CommunicationUtilities.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.TestPlatform.CoreUtilities/17.11.0-release-24352-05": {
+ "dependencies": {
+ "Microsoft.TestPlatform.PlatformAbstractions": "17.11.0-release-24352-05",
+ "Microsoft.Win32.Registry": "4.0.0",
+ "System.Diagnostics.FileVersionInfo": "4.3.0",
+ "System.Reflection.Metadata": "1.6.0"
+ },
+ "runtime": {
+ "Microsoft.TestPlatform.CoreUtilities.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.TestPlatform.CrossPlatEngine/17.11.0-release-24352-05": {
+ "dependencies": {
+ "Microsoft.TestPlatform.CommunicationUtilities": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.CoreUtilities": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.ObjectModel": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.Utilities": "17.11.0-release-24352-05",
+ "Microsoft.VisualStudio.TestPlatform.Common": "17.11.0-release-24352-05"
+ },
+ "runtime": {
+ "Microsoft.TestPlatform.CrossPlatEngine.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.TestPlatform.ObjectModel/17.11.0-release-24352-05": {
+ "dependencies": {
+ "Microsoft.TestPlatform.CoreUtilities": "17.11.0-release-24352-05",
+ "System.Reflection.Metadata": "1.6.0"
+ },
+ "runtime": {
+ "Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.TestPlatform.PlatformAbstractions/17.11.0-release-24352-05": {
+ "dependencies": {
+ "System.Diagnostics.Process": "4.1.0",
+ "System.Diagnostics.TextWriterTraceListener": "4.0.0",
+ "System.Diagnostics.TraceSource": "4.0.0",
+ "System.Net.Http": "4.3.4",
+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
+ "System.Runtime.Loader": "4.0.0",
+ "System.Threading.Thread": "4.0.0"
+ },
+ "runtime": {
+ "Microsoft.TestPlatform.PlatformAbstractions.dll": {}
+ }
+ },
+ "Microsoft.TestPlatform.TranslationLayer/17.11.0-release-24352-05": {
+ "dependencies": {
+ "Microsoft.TestPlatform.CommunicationUtilities": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.CoreUtilities": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.ObjectModel": "17.11.0-release-24352-05",
+ "Microsoft.VisualStudio.TestPlatform.Common": "17.11.0-release-24352-05"
+ },
+ "runtime": {
+ "Microsoft.TestPlatform.VsTestConsole.TranslationLayer.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.TestPlatform.Utilities/17.11.0-release-24352-05": {
+ "dependencies": {
+ "Microsoft.TestPlatform.CoreUtilities": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.ObjectModel": "17.11.0-release-24352-05"
+ },
+ "runtime": {
+ "Microsoft.TestPlatform.Utilities.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.TestPlatform.Utilities.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.TestPlatform.Utilities.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.TestPlatform.Utilities.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.TestPlatform.Utilities.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.TestPlatform.Utilities.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.TestPlatform.Utilities.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.TestPlatform.Utilities.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.TestPlatform.Utilities.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.TestPlatform.Utilities.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.TestPlatform.Utilities.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.TestPlatform.Utilities.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.TestPlatform.Utilities.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.TestPlatform.Utilities.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.VisualStudio.TestPlatform.Client/17.11.0-release-24352-05": {
+ "dependencies": {
+ "Microsoft.TestPlatform.CommunicationUtilities": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.CoreUtilities": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.CrossPlatEngine": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.ObjectModel": "17.11.0-release-24352-05",
+ "Microsoft.VisualStudio.TestPlatform.Common": "17.11.0-release-24352-05"
+ },
+ "runtime": {
+ "Microsoft.VisualStudio.TestPlatform.Client.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.VisualStudio.TestPlatform.Common/17.11.0-release-24352-05": {
+ "dependencies": {
+ "Microsoft.TestPlatform.CoreUtilities": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.ObjectModel": "17.11.0-release-24352-05",
+ "Microsoft.TestPlatform.Utilities": "17.11.0-release-24352-05"
+ },
+ "runtime": {
+ "Microsoft.VisualStudio.TestPlatform.Common.dll": {}
+ },
+ "resources": {
+ "cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.TestPlatform.VsTestConsole.TranslationLayer/15.0.0.0": {
+ "runtime": {
+ "Microsoft.TestPlatform.VsTestConsole.TranslationLayer.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "17.1100.24.35205"
+ }
+ },
+ "resources": {
+ "cs/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.VisualStudio.TestPlatform.Client.Reference/15.0.0.0": {
+ "runtime": {
+ "Microsoft.VisualStudio.TestPlatform.Client.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "17.1100.24.35205"
+ }
+ },
+ "resources": {
+ "cs/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.VisualStudio.TestPlatform.Client.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ },
+ "Microsoft.VisualStudio.TestPlatform.Common.Reference/15.0.0.0": {
+ "runtime": {
+ "Microsoft.VisualStudio.TestPlatform.Common.dll": {
+ "assemblyVersion": "15.0.0.0",
+ "fileVersion": "17.1100.24.35205"
+ }
+ },
+ "resources": {
+ "cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "cs"
+ },
+ "de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "de"
+ },
+ "es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "es"
+ },
+ "fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "fr"
+ },
+ "it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "it"
+ },
+ "ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "ja"
+ },
+ "ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "ko"
+ },
+ "pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "pl"
+ },
+ "pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "pt-BR"
+ },
+ "ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "ru"
+ },
+ "tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "tr"
+ },
+ "zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "zh-Hans"
+ },
+ "zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
+ "locale": "zh-Hant"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "vstest.console/17.11.0-release-24352-05": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.CodeAnalysis.BannedApiAnalyzers/3.11.0-beta1.23525.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-YLyflWZC188MjattGCs3yIGo/q93moJGblrWiPwUij/a1JMFtSkbzhS56RDMjK+5NwO7iE/5i1YCfU9KkIG1mg==",
+ "path": "microsoft.codeanalysis.bannedapianalyzers/3.11.0-beta1.23525.2",
+ "hashPath": "microsoft.codeanalysis.bannedapianalyzers.3.11.0-beta1.23525.2.nupkg.sha512"
+ },
+ "Microsoft.CodeAnalysis.PublicApiAnalyzers/3.11.0-beta1.23525.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3zCcSOHReM6pqIxMRBmW/noFx+xCJwsZ4EaZ8tWoRkmKKYtAly/kTgcAYa8jrWwYqEZ0atv8XOMiP7RURnsZtQ==",
+ "path": "microsoft.codeanalysis.publicapianalyzers/3.11.0-beta1.23525.2",
+ "hashPath": "microsoft.codeanalysis.publicapianalyzers.3.11.0-beta1.23525.2.nupkg.sha512"
+ },
+ "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kY6eTNkeWLHvfOjg97Q7tgQKrPpX+Y3fR6fS4nyfpgFLHBxHriLBR4v3e9t71it91gIMEeKUqOqrFJ7Pj48eHA==",
+ "path": "microsoft.diasymreader.pdb2pdb/1.1.0-beta2-19575-01",
+ "hashPath": "microsoft.diasymreader.pdb2pdb.1.1.0-beta2-19575-01.nupkg.sha512"
+ },
+ "Microsoft.DotNet.XliffTasks/9.0.0-beta.24306.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mqaNpFNNzwEhEBba/mXwDby/2BUaSV9Ilonp8kWiziH4/AXFhfQnXPcP6B5mspyHbQMOONpPYsvHFVm/VVtUXw==",
+ "path": "microsoft.dotnet.xlifftasks/9.0.0-beta.24306.4",
+ "hashPath": "microsoft.dotnet.xlifftasks.9.0.0-beta.24306.4.nupkg.sha512"
+ },
+ "Microsoft.Extensions.FileSystemGlobbing/2.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-UC87vRDUB7/vSaNY/FVhbdAyRkfFBTkYmcUoglxk6TyTojhSqYaG5pZsoP4e1ZuXktFXJXJBTvK8U/QwCo0z3g==",
+ "path": "microsoft.extensions.filesystemglobbing/2.0.0",
+ "hashPath": "microsoft.extensions.filesystemglobbing.2.0.0.nupkg.sha512"
+ },
+ "Microsoft.Net.Compilers.Toolset.Framework/4.11.0-2.24252.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-gNoYvUIDRRdMFIiCln3mO6fT4SLoQUWxu7D6aHh6Fon/yYPHDlkB3wnPjSegdAW9d9EE0KPHvzeEx8I8HwirIg==",
+ "path": "microsoft.net.compilers.toolset.framework/4.11.0-2.24252.3",
+ "hashPath": "microsoft.net.compilers.toolset.framework.4.11.0-2.24252.3.nupkg.sha512"
+ },
+ "Microsoft.NETCore.Platforms/1.1.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-TMBuzAHpTenGbGgk0SMTwyEkyijY/Eae4ZGsFNYJvAr/LDn1ku3Etp3FPxChmDp5HHF3kzJuoaa08N0xjqAJfQ==",
+ "path": "microsoft.netcore.platforms/1.1.1",
+ "hashPath": "microsoft.netcore.platforms.1.1.1.nupkg.sha512"
+ },
+ "Microsoft.NETCore.Targets/1.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
+ "path": "microsoft.netcore.targets/1.1.0",
+ "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
+ },
+ "Microsoft.Win32.Primitives/4.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-fQnBHO9DgcmkC9dYSJoBqo6sH1VJwJprUHh8F3hbcRlxiQiBUuTntdk8tUwV490OqC2kQUrinGwZyQHTieuXRA==",
+ "path": "microsoft.win32.primitives/4.0.1",
+ "hashPath": "microsoft.win32.primitives.4.0.1.nupkg.sha512"
+ },
+ "Microsoft.Win32.Registry/4.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-q+eLtROUAQ3OxYA5mpQrgyFgzLQxIyrfT2eLpYX5IEPlHmIio2nh4F5bgOaQoGOV865kFKZZso9Oq9RlazvXtg==",
+ "path": "microsoft.win32.registry/4.0.0",
+ "hashPath": "microsoft.win32.registry.4.0.0.nupkg.sha512"
+ },
+ "Newtonsoft.Json/13.0.1": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
+ "path": "newtonsoft.json/13.0.1",
+ "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512"
+ },
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-7VSGO0URRKoMEAq0Sc9cRz8mb6zbyx/BZDEWhgPdzzpmFhkam3fJ1DAGWFXBI4nGlma+uPKpfuMQP5LXRnOH5g==",
+ "path": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-0oAaTAm6e2oVH+/Zttt0cuhGaePQYKII1dY8iaqP7CvOpVKgLybKRFvQjXR2LtxXOXTVPNv14j0ot8uV+HrUmw==",
+ "path": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-G24ibsCNi5Kbz0oXWynBoRgtGvsw5ZSVEWjv13/KiCAM8C6wz9zzcCniMeQFIkJ2tasjo2kXlvlBZhplL51kGg==",
+ "path": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.native.System/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
+ "path": "runtime.native.system/4.3.0",
+ "hashPath": "runtime.native.system.4.3.0.nupkg.sha512"
+ },
+ "runtime.native.System.Net.Http/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZVuZJqnnegJhd2k/PtAbbIcZ3aZeITq3sj06oKfMBSfphW3HDmk/t4ObvbOk/JA/swGR0LNqMksAh/f7gpTROg==",
+ "path": "runtime.native.system.net.http/4.3.0",
+ "hashPath": "runtime.native.system.net.http.4.3.0.nupkg.sha512"
+ },
+ "runtime.native.System.Security.Cryptography.Apple/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-DloMk88juo0OuOWr56QG7MNchmafTLYWvABy36izkrLI5VledI0rq28KGs1i9wbpeT9NPQrx/wTf8U2vazqQ3Q==",
+ "path": "runtime.native.system.security.cryptography.apple/4.3.0",
+ "hashPath": "runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512"
+ },
+ "runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-QR1OwtwehHxSeQvZKXe+iSd+d3XZNkEcuWMFYa2i0aG1l+lR739HPicKMlTbJst3spmeekDVBUS7SeS26s4U/g==",
+ "path": "runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-I+GNKGg2xCHueRd1m9PzeEW7WLbNNLznmTuEi8/vZX71HudUbx1UTwlGkiwMri7JLl8hGaIAWnA/GONhu+LOyQ==",
+ "path": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1Z3TAq1ytS1IBRtPXJvEUZdVsfWfeNEhBkbiOCGEl9wwAfsjP2lz3ZFDx5tq8p60/EqbS0HItG5piHuB71RjoA==",
+ "path": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kVXCuMTrTlxq4XOOMAysuNwsXWpYeboGddNGpIgNSZmv1b6r/s/DPk0fYMB7Q5Qo4bY68o48jt4T4y5BVecbCQ==",
+ "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0",
+ "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512"
+ },
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-6mU/cVmmHtQiDXhnzUImxIcDL48GbTk+TsptXyJA+MIOG9LRjPoAQC/qBFB7X+UNyK86bmvGwC8t+M66wsYC8w==",
+ "path": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-vjwG0GGcTW/PPg6KVud8F9GLWYuAV1rrw1BKAqY0oh4jcUqg15oYF1+qkGR2x2ZHM4DQnWKQ7cJgYbfncz/lYg==",
+ "path": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-7KMFpTkHC/zoExs+PwP8jDCWcrK9H6L7soowT80CUx3e+nxP/AFnq0AQAW5W76z2WYbLAYCRyPfwYFG6zkvQRw==",
+ "path": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-xrlmRCnKZJLHxyyLIqkZjNXqgxnKdZxfItrPkjI+6pkRo5lHX8YvSZlWrSI5AVwLMi4HbNWP7064hcAWeZKp5w==",
+ "path": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl/4.3.2": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-leXiwfiIkW7Gmn7cgnNcdtNAU70SjmKW3jxGj1iKHOvdn0zRWsgv/l2OJUO5zdGdiv2VRFnAsxxhDgMzofPdWg==",
+ "path": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.2",
+ "hashPath": "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512"
+ },
+ "System.Collections/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
+ "path": "system.collections/4.3.0",
+ "hashPath": "system.collections.4.3.0.nupkg.sha512"
+ },
+ "System.Collections.Concurrent/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ztl69Xp0Y/UXCL+3v3tEU+lIy+bvjKNUmopn1wep/a291pVPK7dxBd6T7WnlQqRog+d1a/hSsgRsmFnIBKTPLQ==",
+ "path": "system.collections.concurrent/4.3.0",
+ "hashPath": "system.collections.concurrent.4.3.0.nupkg.sha512"
+ },
+ "System.Diagnostics.Debug/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
+ "path": "system.diagnostics.debug/4.3.0",
+ "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512"
+ },
+ "System.Diagnostics.DiagnosticSource/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-tD6kosZnTAGdrEa0tZSuFyunMbt/5KYDnHdndJYGqZoNy00XVXyACd5d6KnE1YgYv3ne2CjtAfNXo/fwEhnKUA==",
+ "path": "system.diagnostics.diagnosticsource/4.3.0",
+ "hashPath": "system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512"
+ },
+ "System.Diagnostics.FileVersionInfo/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-omCF64wzQ3Q2CeIqkD6lmmxeMZtGHUmzgFMPjfVaOsyqpR66p/JaZzManMw1s33osoAb5gqpncsjie67+yUPHQ==",
+ "path": "system.diagnostics.fileversioninfo/4.3.0",
+ "hashPath": "system.diagnostics.fileversioninfo.4.3.0.nupkg.sha512"
+ },
+ "System.Diagnostics.Process/4.1.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==",
+ "path": "system.diagnostics.process/4.1.0",
+ "hashPath": "system.diagnostics.process.4.1.0.nupkg.sha512"
+ },
+ "System.Diagnostics.TextWriterTraceListener/4.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-w36Dr8yKy8xP150qPANe7Td+/zOI3G62ImRcHDIEW+oUXUuTKZHd4DHmqRx5+x8RXd85v3tXd1uhNTfsr+yxjA==",
+ "path": "system.diagnostics.textwritertracelistener/4.0.0",
+ "hashPath": "system.diagnostics.textwritertracelistener.4.0.0.nupkg.sha512"
+ },
+ "System.Diagnostics.TraceSource/4.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
+ "path": "system.diagnostics.tracesource/4.0.0",
+ "hashPath": "system.diagnostics.tracesource.4.0.0.nupkg.sha512"
+ },
+ "System.Diagnostics.Tracing/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-rswfv0f/Cqkh78rA5S8eN8Neocz234+emGCtTF3lxPY96F+mmmUen6tbn0glN6PMvlKQb9bPAY5e9u7fgPTkKw==",
+ "path": "system.diagnostics.tracing/4.3.0",
+ "hashPath": "system.diagnostics.tracing.4.3.0.nupkg.sha512"
+ },
+ "System.Globalization/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
+ "path": "system.globalization/4.3.0",
+ "hashPath": "system.globalization.4.3.0.nupkg.sha512"
+ },
+ "System.Globalization.Calendars/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-GUlBtdOWT4LTV3I+9/PJW+56AnnChTaOqqTLFtdmype/L500M2LIyXgmtd9X2P2VOkmJd5c67H5SaC2QcL1bFA==",
+ "path": "system.globalization.calendars/4.3.0",
+ "hashPath": "system.globalization.calendars.4.3.0.nupkg.sha512"
+ },
+ "System.Globalization.Extensions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-FhKmdR6MPG+pxow6wGtNAWdZh7noIOpdD5TwQ3CprzgIE1bBBoim0vbR1+AWsWjQmU7zXHgQo4TWSP6lCeiWcQ==",
+ "path": "system.globalization.extensions/4.3.0",
+ "hashPath": "system.globalization.extensions.4.3.0.nupkg.sha512"
+ },
+ "System.IO/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
+ "path": "system.io/4.3.0",
+ "hashPath": "system.io.4.3.0.nupkg.sha512"
+ },
+ "System.IO.FileSystem/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-3wEMARTnuio+ulnvi+hkRNROYwa1kylvYahhcLk4HSoVdl+xxTFVeVlYOfLwrDPImGls0mDqbMhrza8qnWPTdA==",
+ "path": "system.io.filesystem/4.3.0",
+ "hashPath": "system.io.filesystem.4.3.0.nupkg.sha512"
+ },
+ "System.IO.FileSystem.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-6QOb2XFLch7bEc4lIcJH49nJN2HV+OC3fHDgsLVsBVBk3Y4hFAnOBGzJ2lUu7CyDDFo9IBWkSsnbkT6IBwwiMw==",
+ "path": "system.io.filesystem.primitives/4.3.0",
+ "hashPath": "system.io.filesystem.primitives.4.3.0.nupkg.sha512"
+ },
+ "System.Linq/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
+ "path": "system.linq/4.3.0",
+ "hashPath": "system.linq.4.3.0.nupkg.sha512"
+ },
+ "System.Net.Http/4.3.4": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-aOa2d51SEbmM+H+Csw7yJOuNZoHkrP2XnAurye5HWYgGVVU54YZDvsLUYRv6h18X3sPnjNCANmN7ZhIPiqMcjA==",
+ "path": "system.net.http/4.3.4",
+ "hashPath": "system.net.http.4.3.4.nupkg.sha512"
+ },
+ "System.Net.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-qOu+hDwFwoZPbzPvwut2qATe3ygjeQBDQj91xlsaqGFQUI5i4ZnZb8yyQuLGpDGivEPIt8EJkd1BVzVoP31FXA==",
+ "path": "system.net.primitives/4.3.0",
+ "hashPath": "system.net.primitives.4.3.0.nupkg.sha512"
+ },
+ "System.Reflection/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
+ "path": "system.reflection/4.3.0",
+ "hashPath": "system.reflection.4.3.0.nupkg.sha512"
+ },
+ "System.Reflection.Metadata/1.6.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ==",
+ "path": "system.reflection.metadata/1.6.0",
+ "hashPath": "system.reflection.metadata.1.6.0.nupkg.sha512"
+ },
+ "System.Reflection.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
+ "path": "system.reflection.primitives/4.3.0",
+ "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
+ },
+ "System.Resources.ResourceManager/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
+ "path": "system.resources.resourcemanager/4.3.0",
+ "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
+ "path": "system.runtime/4.3.0",
+ "hashPath": "system.runtime.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.Extensions/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
+ "path": "system.runtime.extensions/4.3.0",
+ "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.Handles/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
+ "path": "system.runtime.handles/4.3.0",
+ "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.InteropServices/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
+ "path": "system.runtime.interopservices/4.3.0",
+ "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512"
+ },
+ "System.Runtime.InteropServices.RuntimeInformation/4.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-hWPhJxc453RCa8Z29O91EmfGeZIHX1ZH2A8L6lYQVSaKzku2DfArSfMEb1/MYYzPQRJZeu0c9dmYeJKxW5Fgng==",
+ "path": "system.runtime.interopservices.runtimeinformation/4.0.0",
+ "hashPath": "system.runtime.interopservices.runtimeinformation.4.0.0.nupkg.sha512"
+ },
+ "System.Runtime.Loader/4.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==",
+ "path": "system.runtime.loader/4.0.0",
+ "hashPath": "system.runtime.loader.4.0.0.nupkg.sha512"
+ },
+ "System.Runtime.Numerics/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-yMH+MfdzHjy17l2KESnPiF2dwq7T+xLnSJar7slyimAkUh/gTrS9/UQOtv7xarskJ2/XDSNvfLGOBQPjL7PaHQ==",
+ "path": "system.runtime.numerics/4.3.0",
+ "hashPath": "system.runtime.numerics.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Algorithms/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-W1kd2Y8mYSCgc3ULTAZ0hOP2dSdG5YauTb1089T0/kRcN2MpSAW1izOFROrJgxSlMn3ArsgHXagigyi+ibhevg==",
+ "path": "system.security.cryptography.algorithms/4.3.0",
+ "hashPath": "system.security.cryptography.algorithms.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Cng/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-03idZOqFlsKRL4W+LuCpJ6dBYDUWReug6lZjBa3uJWnk5sPCUXckocevTaUA8iT/MFSrY/2HXkOt753xQ/cf8g==",
+ "path": "system.security.cryptography.cng/4.3.0",
+ "hashPath": "system.security.cryptography.cng.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Csp/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-X4s/FCkEUnRGnwR3aSfVIkldBmtURMhmexALNTwpjklzxWU7yjMk7GHLKOZTNkgnWnE0q7+BCf9N2LVRWxewaA==",
+ "path": "system.security.cryptography.csp/4.3.0",
+ "hashPath": "system.security.cryptography.csp.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Encoding/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-1DEWjZZly9ae9C79vFwqaO5kaOlI5q+3/55ohmq/7dpDyDfc8lYe7YVxJUZ5MF/NtbkRjwFRo14yM4OEo9EmDw==",
+ "path": "system.security.cryptography.encoding/4.3.0",
+ "hashPath": "system.security.cryptography.encoding.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.OpenSsl/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-h4CEgOgv5PKVF/HwaHzJRiVboL2THYCou97zpmhjghx5frc7fIvlkY1jL+lnIQyChrJDMNEXS6r7byGif8Cy4w==",
+ "path": "system.security.cryptography.openssl/4.3.0",
+ "hashPath": "system.security.cryptography.openssl.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.Primitives/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-7bDIyVFNL/xKeFHjhobUAQqSpJq9YTOpbEs6mR233Et01STBMXNAc/V+BM6dwYGc95gVh/Zf+iVXWzj3mE8DWg==",
+ "path": "system.security.cryptography.primitives/4.3.0",
+ "hashPath": "system.security.cryptography.primitives.4.3.0.nupkg.sha512"
+ },
+ "System.Security.Cryptography.X509Certificates/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-t2Tmu6Y2NtJ2um0RtcuhP7ZdNNxXEgUm2JeoA/0NvlMjAhKCnM1NX07TDl3244mVp3QU6LPEhT3HTtH1uF7IYw==",
+ "path": "system.security.cryptography.x509certificates/4.3.0",
+ "hashPath": "system.security.cryptography.x509certificates.4.3.0.nupkg.sha512"
+ },
+ "System.Text.Encoding/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
+ "path": "system.text.encoding/4.3.0",
+ "hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
+ },
+ "System.Text.Encoding.Extensions/4.0.11": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==",
+ "path": "system.text.encoding.extensions/4.0.11",
+ "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512"
+ },
+ "System.Threading/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
+ "path": "system.threading/4.3.0",
+ "hashPath": "system.threading.4.3.0.nupkg.sha512"
+ },
+ "System.Threading.Tasks/4.3.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
+ "path": "system.threading.tasks/4.3.0",
+ "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
+ },
+ "System.Threading.Thread/4.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==",
+ "path": "system.threading.thread/4.0.0",
+ "hashPath": "system.threading.thread.4.0.0.nupkg.sha512"
+ },
+ "System.Threading.ThreadPool/4.0.10": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==",
+ "path": "system.threading.threadpool/4.0.10",
+ "hashPath": "system.threading.threadpool.4.0.10.nupkg.sha512"
+ },
+ "Microsoft.TestPlatform.CommunicationUtilities/17.11.0-release-24352-05": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.TestPlatform.CoreUtilities/17.11.0-release-24352-05": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.TestPlatform.CrossPlatEngine/17.11.0-release-24352-05": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.TestPlatform.ObjectModel/17.11.0-release-24352-05": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.TestPlatform.PlatformAbstractions/17.11.0-release-24352-05": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.TestPlatform.TranslationLayer/17.11.0-release-24352-05": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.TestPlatform.Utilities/17.11.0-release-24352-05": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.VisualStudio.TestPlatform.Client/17.11.0-release-24352-05": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.VisualStudio.TestPlatform.Common/17.11.0-release-24352-05": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.TestPlatform.VsTestConsole.TranslationLayer/15.0.0.0": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.VisualStudio.TestPlatform.Client.Reference/15.0.0.0": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "Microsoft.VisualStudio.TestPlatform.Common.Reference/15.0.0.0": {
+ "type": "reference",
+ "serviceable": false,
+ "sha512": ""
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/vstest.console.dll b/dotnet/sdk/8.0.402/vstest.console.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ed132800e0f1d880ad3af2543b90e7472ee54739
Binary files /dev/null and b/dotnet/sdk/8.0.402/vstest.console.dll differ
diff --git a/dotnet/sdk/8.0.402/vstest.console.runtimeconfig.json b/dotnet/sdk/8.0.402/vstest.console.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..13f4a5ad1dffb3c081c360a3f66169acfbb115c1
--- /dev/null
+++ b/dotnet/sdk/8.0.402/vstest.console.runtimeconfig.json
@@ -0,0 +1,13 @@
+{
+ "runtimeOptions": {
+ "tfm": "netcoreapp3.1",
+ "rollForward": "Major",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ },
+ "configProperties": {
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/sdk/8.0.402/zh-Hans/MSBuild.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/MSBuild.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..24b848a1363dca94d3af688b14e5cdddb93623f9
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/MSBuild.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.Build.Tasks.Core.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.Build.Tasks.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..785b2cbbd6fdf473639ba8e6e6d21a4f4f3845df
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.Build.Tasks.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.Build.Utilities.Core.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.Build.Utilities.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f5409778e95deda8b82ef9e889575a6387034462
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.Build.Utilities.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.Build.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5c279d572ef32ae30d963e165166ccf8944d024c
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.CodeCoverage.IO.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.CodeCoverage.IO.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c5217f93e992c9aa56c7f566964494c163b11072
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.CodeCoverage.IO.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..37701c0518234966d63993fc87173235f3061331
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.DotNet.Cli.Sln.Internal.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.DotNet.Cli.Sln.Internal.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1195248f10beb902561975b56732f10dffc6ba5e
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.DotNet.Cli.Sln.Internal.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.DotNet.Cli.Utils.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.DotNet.Cli.Utils.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cbd6d6aad2377c410c31241d055c83f46a7423c2
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.DotNet.Cli.Utils.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.DotNet.Configurer.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.DotNet.Configurer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e8f1a45518a9c3770335e52e2b5a5e656fbca77f
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.DotNet.Configurer.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.DotNet.TemplateLocator.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.DotNet.TemplateLocator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..88796833251aad48ddc3efe8564e444b5557a365
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.DotNet.TemplateLocator.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..68be4ad6f4ab0556589e036e44cd26f789ab83c5
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Cli.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Cli.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e5dc302df067d1c4ef4e0c6f61570aab7c4f6cac
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Cli.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Core.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..496fd21b80b5e447c0a6b107b1c7b59600fdb74a
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Edge.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Edge.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..31c7d0583e331ab7ed8781d2b98f20370fe391fd
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Edge.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..530dc2adcf7ef25892cfc925175f257bcbd4023a
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Utils.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Utils.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ce442ed1d4b651f47cce7f373e2b12c6b807817f
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateEngine.Utils.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateSearch.Common.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateSearch.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2684a6393b61c11424fbe01733c076c38f7401b3
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TemplateSearch.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.Build.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..07567c554444a5d3f6d9c2351767ba9257b58683
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..18ef29f2be3b4d8221813186d5a68435693525db
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2b24e7d4fa35e2fc635a49efd6c917bf3dc326a5
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0b5b80ce6249ce0531ed2853d69f99aa84086c51
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.Utilities.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.Utilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3c62acdce74abe06897d1c82f21c95986ad61823
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.Utilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2e95779056aede7053f7f8168b3bb97ef0dcabe4
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.VisualStudio.TestPlatform.Client.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.VisualStudio.TestPlatform.Client.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b8fb93d8d84006f9b0c12880219799a4c7da173b
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.VisualStudio.TestPlatform.Client.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..49ed39ac1b87d413dabfbdcd7be73fe7385814ed
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a2f9f89200aeaee0b5e2cf8123beaf1961ad9752
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/NuGet.Build.Tasks.Console.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Build.Tasks.Console.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..801eb22ab9f4fa10eea66650f9357127f828339b
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Build.Tasks.Console.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/NuGet.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5941c3216a1a55bf656450371f77714d60d2bbec
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/NuGet.CommandLine.XPlat.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/NuGet.CommandLine.XPlat.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c0ef3194ce34d2b07e702ea4c16b36d1edfcffd4
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/NuGet.CommandLine.XPlat.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/NuGet.Commands.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Commands.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..575a69cd3d11e3014f6168c34aaaaa9777f9babe
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Commands.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/NuGet.Common.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..59990da691d062b9bff2270f1215dbf0c5d51c4f
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/NuGet.Configuration.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Configuration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..19381d82c1de742b74ffcf1a4e691f30c09f5d79
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Configuration.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/NuGet.Credentials.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Credentials.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f0353befb27e401640d069b2b04ec260ce906c16
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Credentials.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/NuGet.DependencyResolver.Core.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/NuGet.DependencyResolver.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..581885f69f39e2a6acc7e2332c36d9cf8b92d70b
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/NuGet.DependencyResolver.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/NuGet.Frameworks.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Frameworks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c9411fe772546dd6fdfcc938d8f63193e3aaed36
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Frameworks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/NuGet.LibraryModel.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/NuGet.LibraryModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d93faa18d99a5062ff899c7a41a6081daa402df4
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/NuGet.LibraryModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/NuGet.Packaging.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Packaging.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dcd3453a09eaff7750fbd71db228a6be2e89b4e4
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Packaging.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/NuGet.ProjectModel.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/NuGet.ProjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5b6bc8983166ed7b378d2c11e73f4785ee8a110d
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/NuGet.ProjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/NuGet.Protocol.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Protocol.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..39db93463a7e764674decd8251e19f622c246982
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Protocol.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/NuGet.Versioning.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Versioning.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5b1006d9e70f1be49558a0744caaf3c46dcc1a6f
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/NuGet.Versioning.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/System.CommandLine.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/System.CommandLine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1ddaad62d186e30e9bb6aef1f2c94be557e7b08c
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/System.CommandLine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/dotnet.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/dotnet.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7cc765f79d7c2ffab1e387f9bd69262dd2d83e93
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/dotnet.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hans/vstest.console.resources.dll b/dotnet/sdk/8.0.402/zh-Hans/vstest.console.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ab34386e92975dc5118e1134529fff6c0ac6dc00
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hans/vstest.console.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/MSBuild.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/MSBuild.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c9a183069cdc8abda9109052dbd508d293f18d3d
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/MSBuild.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.Build.Tasks.Core.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.Build.Tasks.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bf9d3eec49386b3086ea71c5871e048ad1dde70d
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.Build.Tasks.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.Build.Utilities.Core.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.Build.Utilities.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..73a3989793d3b2b0ee8f608249b6567376ec3770
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.Build.Utilities.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.Build.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a673ac0e7c2cf8ca066becc25cd7f52a46a43f20
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.CodeCoverage.IO.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.CodeCoverage.IO.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cf9be32de0e3b8521601f1036d149e92b7532cad
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.CodeCoverage.IO.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.Deployment.DotNet.Releases.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.Deployment.DotNet.Releases.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2670c5b5ba15b6cde9f3fd446258c4aee940728c
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.Deployment.DotNet.Releases.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.DotNet.Cli.Sln.Internal.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.DotNet.Cli.Sln.Internal.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b7c68df9c72eb1f24300181289dc4dcc3ceeaf4f
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.DotNet.Cli.Sln.Internal.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.DotNet.Cli.Utils.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.DotNet.Cli.Utils.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..74c158b1b9818b33c3320ad3d4c42f27f10b6821
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.DotNet.Cli.Utils.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.DotNet.Configurer.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.DotNet.Configurer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..18051539c77a0bced6ed52471a16e0be83c356e1
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.DotNet.Configurer.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.DotNet.TemplateLocator.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.DotNet.TemplateLocator.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c08b48891af5f3f973ac0afab9657facff7774dd
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.DotNet.TemplateLocator.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2cab38041bb079b48ca769ad553c0e4a10dbd61b
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.NET.Sdk.WorkloadManifestReader.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Cli.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Cli.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..021b5e7d0e170cee923d813d47b064aa63fc34b0
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Cli.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Core.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..49fa0c74435ca65c900a724191f2afd448cc944b
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Edge.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Edge.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1d7c335b85c3e27783481c28ecd4a85f39b44302
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Edge.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6ff37f572f473382a41e0d7e92b04b6362d82b47
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Orchestrator.RunnableProjects.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Utils.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Utils.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..248707df64aa310ab61d17767b4a62e1b5d39827
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateEngine.Utils.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateSearch.Common.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateSearch.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..45ce909b53006470ae15a489a14d53f7b9cba756
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TemplateSearch.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.Build.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.Build.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..110802a6dd2d3288cd2317c8231c43bdb69a928f
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.Build.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0ca17b2f4bc5332e0b5979fd93a1ec2ea5a425fd
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..12936be5e819f5f25c38ad06adc734dd2c0c7f94
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e584178a3a82051a64a7a4cb0112ce1071afee68
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.Utilities.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.Utilities.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..28e15f6beae214424493184c2ac447bf5500d9a7
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.Utilities.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7e9e065abed2d094eb66b441963fe00e4787f2b5
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.TestPlatform.VsTestConsole.TranslationLayer.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.VisualStudio.TestPlatform.Client.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.VisualStudio.TestPlatform.Client.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..bbd766fdb794aa7f9f3a40b88caf39fc91fe617e
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.VisualStudio.TestPlatform.Client.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f453d986b169baa0fe7c66e7ddf8b747af80299e
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4485493e3196e691354a87cc365bcf3d4c1065a6
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/NuGet.Build.Tasks.Console.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Build.Tasks.Console.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4465eb83377051e616399f3b1e637698894696fa
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Build.Tasks.Console.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/NuGet.Build.Tasks.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Build.Tasks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b0f5dbd8012d900e343afd03ca5574caa8c21a19
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Build.Tasks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/NuGet.CommandLine.XPlat.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/NuGet.CommandLine.XPlat.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f6773f2df47f99e28664cc3b4e7f05ea5622766a
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/NuGet.CommandLine.XPlat.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/NuGet.Commands.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Commands.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1208d24189b3133d537850c09401473f546f7653
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Commands.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/NuGet.Common.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Common.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3f6b65f83e9d277fc0dcc0c6053fe70be3840566
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Common.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/NuGet.Configuration.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Configuration.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4034f0f46f9b1283028b5f1cef6152c45dfbc32c
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Configuration.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/NuGet.Credentials.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Credentials.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c6846eb8939c1584ca4ca3a8418edee635b07e3b
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Credentials.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/NuGet.DependencyResolver.Core.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/NuGet.DependencyResolver.Core.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c395fe02282acda3000eb1f72b880c4f3d75eda2
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/NuGet.DependencyResolver.Core.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/NuGet.Frameworks.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Frameworks.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..62621103ac0aeebe33c7e4b5a73143f6dceb925a
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Frameworks.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/NuGet.LibraryModel.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/NuGet.LibraryModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8a8fbf99ae28acc9ffe48633aa971f9dc03e0018
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/NuGet.LibraryModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/NuGet.Packaging.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Packaging.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4443b7b8341f522e72dfada1e3ca3c5b23181597
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Packaging.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/NuGet.ProjectModel.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/NuGet.ProjectModel.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1a68bb62fee3c3799d8b108e8541e5ccb814c78a
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/NuGet.ProjectModel.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/NuGet.Protocol.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Protocol.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6122b23a19990d30b086dbbc77b15306a7e36761
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Protocol.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/NuGet.Versioning.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Versioning.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..76f5b3acbcc4a6c53b184f4b1e0f6aaa4d3ab892
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/NuGet.Versioning.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/System.CommandLine.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/System.CommandLine.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d9de58e6b8e94f3a0b809c50ba02cf2c5d786542
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/System.CommandLine.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/dotnet.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/dotnet.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d74476c4535db03e93bd4cc656d8415749181f6c
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/dotnet.resources.dll differ
diff --git a/dotnet/sdk/8.0.402/zh-Hant/vstest.console.resources.dll b/dotnet/sdk/8.0.402/zh-Hant/vstest.console.resources.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8324e49b1a46fc1bfefb7498d1f508f4be00bf2e
Binary files /dev/null and b/dotnet/sdk/8.0.402/zh-Hant/vstest.console.resources.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Antiforgery.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Antiforgery.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f7432bc3bebbff3fcc4b5c1581d34e6d7c5df707
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Antiforgery.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.App.runtimeconfig.json b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.App.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..5fd04c993703117f0d4cfdd2eca7a8c0651573f5
--- /dev/null
+++ b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.App.runtimeconfig.json
@@ -0,0 +1,13 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.8"
+ },
+ "rollForward": "LatestPatch",
+ "configProperties": {
+ "System.Reflection.Metadata.MetadataUpdater.IsSupported": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Authentication.Abstractions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Authentication.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b2bae9985ed3ad6fc0efb13915173948eccef20a
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Authentication.Abstractions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Authentication.BearerToken.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Authentication.BearerToken.dll
new file mode 100644
index 0000000000000000000000000000000000000000..20d23a565c78a56f74b382779e5ae4ee30c8a4a4
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Authentication.BearerToken.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Authentication.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Authentication.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c4c5f07dce3cddff502229cb09314b91a7ec018d
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Authentication.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Authorization.Policy.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Authorization.Policy.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a9b4f66f598512fe7845a3875c1be9935a5309f4
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Authorization.Policy.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Components.Server.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Components.Server.dll
new file mode 100644
index 0000000000000000000000000000000000000000..88952de736b2af69f22b26604bb8f4b4a98801c2
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Components.Server.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Components.Web.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Components.Web.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1565ed7f2908744ec146fd776b87f775160493b4
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Components.Web.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Components.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Components.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e47875fe47930be6bbf8d6c6f3b8f02f458a6c8d
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Components.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Connections.Abstractions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Connections.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e8ae8f0f931a25822033a3e34a86cd0c2dd72546
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Connections.Abstractions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.CookiePolicy.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.CookiePolicy.dll
new file mode 100644
index 0000000000000000000000000000000000000000..94e0c6204836421872741c6ea3246252f86482e5
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.CookiePolicy.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Cors.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Cors.dll
new file mode 100644
index 0000000000000000000000000000000000000000..36bde025e24600146933dabd1e769848be44f5b6
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Cors.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Cryptography.Internal.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Cryptography.Internal.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4d1cbd786cb5baa0497f830843a5bf27d7ccaef2
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Cryptography.Internal.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6ed710f6daa8f479061bbdabbdf871d83d670c28
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Cryptography.KeyDerivation.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.DataProtection.Abstractions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.DataProtection.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e701e728dc9b7f3163bb47de601ff2a601fb9197
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.DataProtection.Abstractions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.DataProtection.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.DataProtection.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6ca4008b2d41d7de02eaeb5f4178ec8c5fe151b8
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.DataProtection.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Diagnostics.HealthChecks.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Diagnostics.HealthChecks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4e63eb270fa75a34668b8f2728a6ca0b1773dfb8
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Diagnostics.HealthChecks.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Hosting.Abstractions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Hosting.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1f5ddb1ede4bfd59e8387a98d7b8cd9e9814c278
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Hosting.Abstractions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c38c9c850a2865a0ff526882203cde5758736d23
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Hosting.Server.Abstractions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Abstractions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fbdf228d488e997909a1eac98d45515b8a8ac1d4
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Abstractions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Connections.Common.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Connections.Common.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9796d170125fc774d1567f6701f05ea828b7ab5d
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Connections.Common.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Connections.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Connections.dll
new file mode 100644
index 0000000000000000000000000000000000000000..869e807ea1d41dbde530a339337f24db20ad89dd
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Connections.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Features.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Features.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a77776318e2d615e690c12c1d3fd98bfe1f05e54
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Features.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Results.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Results.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3ebef73a9c58ee14ef8a034fae7615b0e5f1fd62
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.Results.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.dll
new file mode 100644
index 0000000000000000000000000000000000000000..310a1284e53c0ee82788053fc7b177e3d0483356
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Http.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.HttpLogging.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.HttpLogging.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6c2f4d73cb2cdb40f508b1d49e38cf2b0f2f79cb
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.HttpLogging.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.HttpsPolicy.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.HttpsPolicy.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0ee90f0ab1172665aed59c3e619f48c8ab03478e
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.HttpsPolicy.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Identity.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Identity.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8d3f8132d8631b84a22a3b1d4f8b9bd8b801d7d9
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Identity.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Localization.Routing.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Localization.Routing.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e12088a62b2d848d9987e87bb4ec5969b33e5921
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Localization.Routing.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.Core.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.Core.dll
new file mode 100644
index 0000000000000000000000000000000000000000..889a945c86cfb467e9bf5f39713392f3dfe17dbd
--- /dev/null
+++ b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.Core.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eec7613384ad906976eda16b03e5d17658e8fd4053a69148208d7f3dd7b7cdd9
+size 1960448
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.Cors.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.Cors.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d3016d53905ed327339e0575281e328aba6003d5
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.Cors.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.DataAnnotations.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.DataAnnotations.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f42ff89501b67c6eeb9631e5f55ba0d572d86b71
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.DataAnnotations.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.Formatters.Json.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.Formatters.Json.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b52e1e23308feeaec9cb5e0cdd691242bceac0b9
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.Formatters.Json.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.Razor.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.Razor.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7089350cd346fbdc6e37ce369be8c400c2e7edd7
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.Razor.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.RazorPages.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.RazorPages.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0410cd1a97e51b9b969ee3afbb3b13668bd9998d
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.RazorPages.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.TagHelpers.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.TagHelpers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b48111751de9d34e778389ae27aa8c6537db236b
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.TagHelpers.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.ViewFeatures.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.ViewFeatures.dll
new file mode 100644
index 0000000000000000000000000000000000000000..aa839ce361798e337e959b1bbbfe31e010b487d4
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Mvc.ViewFeatures.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.OutputCaching.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.OutputCaching.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2c613a36157c34d7bce2408022d230b0c16ec11f
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.OutputCaching.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.RateLimiting.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.RateLimiting.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f6116fb94b8bf7d25f841bfaccdedced83af68a1
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.RateLimiting.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Razor.Runtime.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Razor.Runtime.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3061d2eaecd39772cbcd13f90ca2535e4c0d3d43
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Razor.Runtime.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Razor.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Razor.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9824053034047329162f13bb126582ec8d69e9af
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Razor.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.RequestDecompression.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.RequestDecompression.dll
new file mode 100644
index 0000000000000000000000000000000000000000..44ccff32ea649af92371fd57d1c7d57659dc2d81
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.RequestDecompression.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.ResponseCaching.Abstractions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.ResponseCaching.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..78ca3eb7f7b4c1bc2fa57c3503b2afcd113d8662
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.ResponseCaching.Abstractions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.ResponseCaching.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.ResponseCaching.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4afe17a08b43ab74a58eb8e89657f169e2cbbc66
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.ResponseCaching.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.ResponseCompression.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.ResponseCompression.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a2a9796a12c646b85c8bb915c3226384cc472a3c
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.ResponseCompression.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Rewrite.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Rewrite.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f2adcb0e2b919a7e1ba18483791f5b64d9430267
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Rewrite.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.HttpSys.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.HttpSys.dll
new file mode 100644
index 0000000000000000000000000000000000000000..38907da92e578ee21902f4e4d5a028e5542a3f87
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.HttpSys.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.IIS.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.IIS.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ce8b9ad05b500b680b6b8537906441c73105192b
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.IIS.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.Core.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.Core.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3a2862d0e09fe736ab4aa80d3a67c1644101244e
--- /dev/null
+++ b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.Core.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f3b3d37b35b2a6dce893b4ebc6ce3b765e3e6d2e0abe77c1cc9a711e29221537
+size 2231808
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e4c83aeaf49efd370baaec293efbccd65d54fae2
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5d062585e0355b0251028c3042dcdc4f97317aaa
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4449aa2c872274429bd50ec69836c18cade46983
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b1ebf6796b0f350f5593d22faecd9cc5a8179a93
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Server.Kestrel.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Session.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Session.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5712058e15c9e9338a2b59ae22e6c3593f882c0e
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.Session.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.SignalR.Common.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.SignalR.Common.dll
new file mode 100644
index 0000000000000000000000000000000000000000..58fc81bdd78c523b8abc3267a4d2e7f0bd5e0beb
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.SignalR.Common.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.SignalR.Protocols.Json.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.SignalR.Protocols.Json.dll
new file mode 100644
index 0000000000000000000000000000000000000000..75443063db52cc49904f8f8cbb0ce8be98cd930d
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.SignalR.Protocols.Json.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.SignalR.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.SignalR.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2c8a3053fb8a4dd584482a544240ed10ce69e2ff
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.SignalR.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.StaticFiles.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.StaticFiles.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7f5a4161bdefd85a1024d7a498ba7e9116bbd5ac
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.StaticFiles.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.WebSockets.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.WebSockets.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d60f4020ea2977220de4dae3a0d0f0344a98a71b
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.WebSockets.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.WebUtilities.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.WebUtilities.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1d03aa8b93f702e2e51055c0544dbd8e26449524
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.WebUtilities.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ef0c3e2a42ae30927d4f0a7d34452d3ba7db8d23
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.AspNetCore.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Caching.Abstractions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Caching.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c3a396a07592978ae806030e98809c2b050ca09a
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Caching.Abstractions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.Abstractions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cc436286da9064afabbd58c52d9156d56a77695f
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.Abstractions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.Binder.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.Binder.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d1461b321d4bc14fbfd585072fb33e5f87d58f66
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.Binder.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.CommandLine.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.CommandLine.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b616616e920bff1ed43b0078e58db7eb4d449ce1
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.CommandLine.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.EnvironmentVariables.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.EnvironmentVariables.dll
new file mode 100644
index 0000000000000000000000000000000000000000..04130d59f7bc692153b09571f82a875fbf0438e1
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.EnvironmentVariables.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.FileExtensions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.FileExtensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a5cc4416f1681659a18aa48f86d975f23962c26c
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.FileExtensions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.Ini.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.Ini.dll
new file mode 100644
index 0000000000000000000000000000000000000000..178160690a2a02f074c295aeaad41fa8f85251eb
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.Ini.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.KeyPerFile.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.KeyPerFile.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1930fd3787d163c04ae9e40e1723c46aed999170
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.KeyPerFile.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.UserSecrets.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.UserSecrets.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fb3ed2526467fe0bdd8b60131dbfdd153f81e968
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.UserSecrets.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.Xml.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.Xml.dll
new file mode 100644
index 0000000000000000000000000000000000000000..af7743d9bc9d260b4700e53f0a56e19ec2f45877
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.Xml.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3fa86cce4a0fd71b1067cd2c86baa10175b2276e
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Configuration.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.DependencyInjection.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.DependencyInjection.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2021530066cda395f83101d0ac6c0bab8d24b63f
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.DependencyInjection.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0feb891bfb508066d31fc7e3fff38c7371063b08
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Diagnostics.HealthChecks.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Diagnostics.HealthChecks.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f82d3774b72be385d2fbde5497f44e96b1a979d8
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Diagnostics.HealthChecks.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.FileProviders.Composite.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.FileProviders.Composite.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c519bee1a3b0741116cb47817afa6b5ade2304a2
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.FileProviders.Composite.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.FileSystemGlobbing.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.FileSystemGlobbing.dll
new file mode 100644
index 0000000000000000000000000000000000000000..561d01966e71f62e25f480fc3efb11ce9ae779fa
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.FileSystemGlobbing.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Hosting.Abstractions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Hosting.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cca51bb244bc628fc255582a76ded7ad1875f85a
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Hosting.Abstractions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Hosting.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Hosting.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f15e79e35b996b63fce37d0711e7ce234ee1b3ef
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Hosting.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Identity.Core.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Identity.Core.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f7c3ba68a8e003f7c1161a0dc776a1ea6b60b4b1
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Identity.Core.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Identity.Stores.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Identity.Stores.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5a05acc255ed67430d2cf0d1fbd163e0fb45c9f5
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Identity.Stores.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Localization.Abstractions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Localization.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0d66d9150399f9d630a910ab273f6061620c4c27
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Localization.Abstractions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Localization.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Localization.dll
new file mode 100644
index 0000000000000000000000000000000000000000..52cb4fa4e6c71fcb2a7feea3519fae089241c868
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Localization.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.Abstractions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.Abstractions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..63c3a6534cafe2670373fb6c66c84eaca1ce202e
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.Abstractions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.Configuration.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.Configuration.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e592c29915688001ef1023fcf475cd793aabf854
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.Configuration.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.EventLog.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.EventLog.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a2afcbc1993bdd45b6114715ccfa4a5971e18c0d
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.EventLog.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.EventSource.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.EventSource.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1c11ba7cd972e81dcd5c68ea1bc76282c7f6d201
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.EventSource.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.dll
new file mode 100644
index 0000000000000000000000000000000000000000..308a11fd9731947115dc16efb163e934c4d6637e
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Logging.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.ObjectPool.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.ObjectPool.dll
new file mode 100644
index 0000000000000000000000000000000000000000..725ae8dbe634ace67f83c5ddcecf3c56bed6107b
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.ObjectPool.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Options.ConfigurationExtensions.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Options.ConfigurationExtensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0fdd7896ab21c8c7c88c79165cdf89dfb11125ef
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Options.ConfigurationExtensions.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Options.DataAnnotations.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Options.DataAnnotations.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1d278912ea016b129c4dafe7d4c982cdbeea9da6
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Options.DataAnnotations.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Options.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Options.dll
new file mode 100644
index 0000000000000000000000000000000000000000..42d5a534a95e996a05e2b0d59007fa41df64a6a7
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Options.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Primitives.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..736a9f6ec1cf69d9ca26a845880af16f5dd01ad2
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.Primitives.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.WebEncoders.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.WebEncoders.dll
new file mode 100644
index 0000000000000000000000000000000000000000..586cb7501cd52df886bccd1cdad2625cb45f1fb8
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Extensions.WebEncoders.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.JSInterop.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.JSInterop.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e24e135c8343dfe55a1f89be8925694b9edc4583
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.JSInterop.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Net.Http.Headers.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Net.Http.Headers.dll
new file mode 100644
index 0000000000000000000000000000000000000000..af757ffd583e0d251d60f880531c950f8b3a43ad
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/Microsoft.Net.Http.Headers.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/System.IO.Pipelines.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/System.IO.Pipelines.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2ea3fd0fbb38d9c0b4d55f50fea7f30e577cdb7a
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/System.IO.Pipelines.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/System.Security.Cryptography.Pkcs.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/System.Security.Cryptography.Pkcs.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9e0074e2e01ed871a77951850fc774738ad4dda4
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/System.Security.Cryptography.Pkcs.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/System.Security.Cryptography.Xml.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/System.Security.Cryptography.Xml.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1400c765f73cf607397c9ff8db808f45fcb27336
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/System.Security.Cryptography.Xml.dll differ
diff --git a/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/System.Threading.RateLimiting.dll b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/System.Threading.RateLimiting.dll
new file mode 100644
index 0000000000000000000000000000000000000000..93a8e58b1df0daa52a32a1ee3a22250ddc720a5b
Binary files /dev/null and b/dotnet/shared/Microsoft.AspNetCore.App/8.0.8/System.Threading.RateLimiting.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.CSharp.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.CSharp.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6136cc3804a49285f5e9735b20d108147d791b9c
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.CSharp.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.NETCore.App.deps.json b/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.NETCore.App.deps.json
new file mode 100644
index 0000000000000000000000000000000000000000..fc3f364bf51384c1896eaff8a054265993aea9bf
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.NETCore.App.deps.json
@@ -0,0 +1,2995 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0/linux-x64",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {},
+ ".NETCoreApp,Version=v8.0/linux-x64": {
+ "Microsoft.NETCore.App.Runtime.linux-x64/8.0.8": {
+ "runtime": {
+ "System.Private.CoreLib.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "Microsoft.VisualBasic.dll": {
+ "assemblyVersion": "10.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "Microsoft.Win32.Primitives.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "mscorlib.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "netstandard.dll": {
+ "assemblyVersion": "2.1.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.AppContext.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Buffers.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.ComponentModel.DataAnnotations.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Configuration.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Core.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Data.DataSetExtensions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Data.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Diagnostics.Contracts.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Diagnostics.Debug.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Diagnostics.Tools.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Diagnostics.Tracing.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Drawing.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Dynamic.Runtime.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Globalization.Calendars.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Globalization.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Globalization.Extensions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.Compression.FileSystem.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.FileSystem.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.FileSystem.Primitives.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.UnmanagedMemoryStream.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Numerics.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Numerics.Vectors.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Reflection.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Reflection.Emit.ILGeneration.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Reflection.Emit.Lightweight.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Reflection.Extensions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Reflection.Primitives.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Resources.Reader.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Resources.ResourceManager.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.CompilerServices.Unsafe.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.Extensions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.Handles.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.InteropServices.RuntimeInformation.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.Intrinsics.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.Loader.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.Serialization.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.Serialization.Json.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.Serialization.Xml.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Security.Cryptography.Algorithms.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Security.Cryptography.Cng.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Security.Cryptography.Csp.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Security.Cryptography.Encoding.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Security.Cryptography.OpenSsl.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Security.Cryptography.Primitives.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Security.Cryptography.X509Certificates.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Security.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Security.Principal.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Security.SecureString.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.ServiceModel.Web.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.ServiceProcess.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Text.Encoding.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Text.Encoding.Extensions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Threading.Overlapped.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Threading.Tasks.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Threading.Tasks.Extensions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Threading.Thread.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Threading.ThreadPool.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Threading.Timer.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Transactions.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.ValueTuple.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Web.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Windows.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Xml.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Xml.Linq.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Xml.ReaderWriter.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Xml.Serialization.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Xml.XDocument.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Xml.XmlDocument.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Xml.XmlSerializer.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Xml.XPath.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "WindowsBase.dll": {
+ "assemblyVersion": "4.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "Microsoft.CSharp.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "Microsoft.VisualBasic.Core.dll": {
+ "assemblyVersion": "13.0.0.0",
+ "fileVersion": "13.0.824.36612"
+ },
+ "Microsoft.Win32.Registry.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Collections.Concurrent.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Collections.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Collections.Immutable.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Collections.NonGeneric.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Collections.Specialized.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.ComponentModel.Annotations.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.ComponentModel.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.ComponentModel.EventBasedAsync.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.ComponentModel.Primitives.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.ComponentModel.TypeConverter.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Console.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Data.Common.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Diagnostics.DiagnosticSource.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Diagnostics.FileVersionInfo.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Diagnostics.Process.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Diagnostics.StackTrace.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Diagnostics.TextWriterTraceListener.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Diagnostics.TraceSource.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Drawing.Primitives.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Formats.Asn1.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Formats.Tar.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.Compression.Brotli.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.Compression.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.Compression.ZipFile.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.FileSystem.AccessControl.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.FileSystem.DriveInfo.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.FileSystem.Watcher.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.IsolatedStorage.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.MemoryMappedFiles.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.Pipes.AccessControl.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.IO.Pipes.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Linq.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Linq.Expressions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Linq.Parallel.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Linq.Queryable.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Memory.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.Http.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.Http.Json.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.HttpListener.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.Mail.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.NameResolution.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.NetworkInformation.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.Ping.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.Primitives.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.Quic.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.Requests.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.Security.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.ServicePoint.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.Sockets.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.WebClient.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.WebHeaderCollection.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.WebProxy.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.WebSockets.Client.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Net.WebSockets.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.ObjectModel.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Private.DataContractSerialization.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Private.Uri.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Private.Xml.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Private.Xml.Linq.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Reflection.DispatchProxy.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Reflection.Emit.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Reflection.Metadata.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Reflection.TypeExtensions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Resources.Writer.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.CompilerServices.VisualC.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.InteropServices.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.InteropServices.JavaScript.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.Numerics.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.Serialization.Formatters.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Runtime.Serialization.Primitives.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Security.AccessControl.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Security.Claims.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Security.Cryptography.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Security.Principal.Windows.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Text.Encoding.CodePages.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Text.Encodings.Web.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Text.Json.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Text.RegularExpressions.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Threading.Channels.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Threading.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Threading.Tasks.Dataflow.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Threading.Tasks.Parallel.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Transactions.Local.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Web.HttpUtility.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ },
+ "System.Xml.XPath.XDocument.dll": {
+ "assemblyVersion": "8.0.0.0",
+ "fileVersion": "8.0.824.36612"
+ }
+ },
+ "native": {
+ "createdump": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libclrgc.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libclrjit.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libcoreclr.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libcoreclrtraceptprovider.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libmscordaccore.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libmscordbi.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.Globalization.Native.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.IO.Compression.Native.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.Native.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.Net.Security.Native.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libSystem.Security.Cryptography.Native.OpenSsl.so": {
+ "fileVersion": "0.0.0.0"
+ },
+ "libhostpolicy.so": {
+ "fileVersion": "0.0.0.0"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "Microsoft.NETCore.App.Runtime.linux-x64/8.0.8": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "",
+ "path": "microsoft.netcore.app.runtime.linux-x64/8.0.8"
+ }
+ },
+ "runtimes": {
+ "alpine-x64": [
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.10-x64": [
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.11-x64": [
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.12-x64": [
+ "alpine.3.12",
+ "alpine.3.11-x64",
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.13-x64": [
+ "alpine.3.13",
+ "alpine.3.12-x64",
+ "alpine.3.12",
+ "alpine.3.11-x64",
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.14-x64": [
+ "alpine.3.14",
+ "alpine.3.13-x64",
+ "alpine.3.13",
+ "alpine.3.12-x64",
+ "alpine.3.12",
+ "alpine.3.11-x64",
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.15-x64": [
+ "alpine.3.15",
+ "alpine.3.14-x64",
+ "alpine.3.14",
+ "alpine.3.13-x64",
+ "alpine.3.13",
+ "alpine.3.12-x64",
+ "alpine.3.12",
+ "alpine.3.11-x64",
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.16-x64": [
+ "alpine.3.16",
+ "alpine.3.15-x64",
+ "alpine.3.15",
+ "alpine.3.14-x64",
+ "alpine.3.14",
+ "alpine.3.13-x64",
+ "alpine.3.13",
+ "alpine.3.12-x64",
+ "alpine.3.12",
+ "alpine.3.11-x64",
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.17-x64": [
+ "alpine.3.17",
+ "alpine.3.16-x64",
+ "alpine.3.16",
+ "alpine.3.15-x64",
+ "alpine.3.15",
+ "alpine.3.14-x64",
+ "alpine.3.14",
+ "alpine.3.13-x64",
+ "alpine.3.13",
+ "alpine.3.12-x64",
+ "alpine.3.12",
+ "alpine.3.11-x64",
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.18-x64": [
+ "alpine.3.18",
+ "alpine.3.17-x64",
+ "alpine.3.17",
+ "alpine.3.16-x64",
+ "alpine.3.16",
+ "alpine.3.15-x64",
+ "alpine.3.15",
+ "alpine.3.14-x64",
+ "alpine.3.14",
+ "alpine.3.13-x64",
+ "alpine.3.13",
+ "alpine.3.12-x64",
+ "alpine.3.12",
+ "alpine.3.11-x64",
+ "alpine.3.11",
+ "alpine.3.10-x64",
+ "alpine.3.10",
+ "alpine.3.9-x64",
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.6-x64": [
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.7-x64": [
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.8-x64": [
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "alpine.3.9-x64": [
+ "alpine.3.9",
+ "alpine.3.8-x64",
+ "alpine.3.8",
+ "alpine.3.7-x64",
+ "alpine.3.7",
+ "alpine.3.6-x64",
+ "alpine.3.6",
+ "alpine-x64",
+ "alpine",
+ "linux-musl-x64",
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android-x64": [
+ "android",
+ "linux-bionic-x64",
+ "linux-bionic",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.21-x64": [
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-bionic-x64",
+ "linux-bionic",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.22-x64": [
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-bionic-x64",
+ "linux-bionic",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.23-x64": [
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-bionic-x64",
+ "linux-bionic",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.24-x64": [
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-bionic-x64",
+ "linux-bionic",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.25-x64": [
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-bionic-x64",
+ "linux-bionic",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.26-x64": [
+ "android.26",
+ "android.25-x64",
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-bionic-x64",
+ "linux-bionic",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.27-x64": [
+ "android.27",
+ "android.26-x64",
+ "android.26",
+ "android.25-x64",
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-bionic-x64",
+ "linux-bionic",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.28-x64": [
+ "android.28",
+ "android.27-x64",
+ "android.27",
+ "android.26-x64",
+ "android.26",
+ "android.25-x64",
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-bionic-x64",
+ "linux-bionic",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.29-x64": [
+ "android.29",
+ "android.28-x64",
+ "android.28",
+ "android.27-x64",
+ "android.27",
+ "android.26-x64",
+ "android.26",
+ "android.25-x64",
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-bionic-x64",
+ "linux-bionic",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.30-x64": [
+ "android.30",
+ "android.29-x64",
+ "android.29",
+ "android.28-x64",
+ "android.28",
+ "android.27-x64",
+ "android.27",
+ "android.26-x64",
+ "android.26",
+ "android.25-x64",
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-bionic-x64",
+ "linux-bionic",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.31-x64": [
+ "android.31",
+ "android.30-x64",
+ "android.30",
+ "android.29-x64",
+ "android.29",
+ "android.28-x64",
+ "android.28",
+ "android.27-x64",
+ "android.27",
+ "android.26-x64",
+ "android.26",
+ "android.25-x64",
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-bionic-x64",
+ "linux-bionic",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "android.32-x64": [
+ "android.32",
+ "android.31-x64",
+ "android.31",
+ "android.30-x64",
+ "android.30",
+ "android.29-x64",
+ "android.29",
+ "android.28-x64",
+ "android.28",
+ "android.27-x64",
+ "android.27",
+ "android.26-x64",
+ "android.26",
+ "android.25-x64",
+ "android.25",
+ "android.24-x64",
+ "android.24",
+ "android.23-x64",
+ "android.23",
+ "android.22-x64",
+ "android.22",
+ "android.21-x64",
+ "android.21",
+ "android-x64",
+ "android",
+ "linux-bionic-x64",
+ "linux-bionic",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "arch-x64": [
+ "arch",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "centos-x64": [
+ "centos",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "centos.7-x64": [
+ "centos.7",
+ "centos-x64",
+ "rhel.7-x64",
+ "centos",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "centos.8-x64": [
+ "centos.8",
+ "centos-x64",
+ "rhel.8-x64",
+ "centos",
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "centos.9-x64": [
+ "centos.9",
+ "centos-x64",
+ "rhel.9-x64",
+ "centos",
+ "rhel.9",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "debian-x64": [
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "debian.10-x64": [
+ "debian.10",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "debian.11-x64": [
+ "debian.11",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "debian.12-x64": [
+ "debian.12",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "debian.8-x64": [
+ "debian.8",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "debian.9-x64": [
+ "debian.9",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "exherbo-x64": [
+ "exherbo",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora-x64": [
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.23-x64": [
+ "fedora.23",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.24-x64": [
+ "fedora.24",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.25-x64": [
+ "fedora.25",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.26-x64": [
+ "fedora.26",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.27-x64": [
+ "fedora.27",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.28-x64": [
+ "fedora.28",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.29-x64": [
+ "fedora.29",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.30-x64": [
+ "fedora.30",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.31-x64": [
+ "fedora.31",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.32-x64": [
+ "fedora.32",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.33-x64": [
+ "fedora.33",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.34-x64": [
+ "fedora.34",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.35-x64": [
+ "fedora.35",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.36-x64": [
+ "fedora.36",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.37-x64": [
+ "fedora.37",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.38-x64": [
+ "fedora.38",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "fedora.39-x64": [
+ "fedora.39",
+ "fedora-x64",
+ "fedora",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "gentoo-x64": [
+ "gentoo",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linux-bionic-x64": [
+ "linux-bionic",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linux-musl-x64": [
+ "linux-musl",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linux-x64": [
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.17-x64": [
+ "linuxmint.17",
+ "ubuntu.14.04-x64",
+ "ubuntu.14.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.17.1-x64": [
+ "linuxmint.17.1",
+ "linuxmint.17-x64",
+ "linuxmint.17",
+ "ubuntu.14.04-x64",
+ "ubuntu.14.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.17.2-x64": [
+ "linuxmint.17.2",
+ "linuxmint.17.1-x64",
+ "linuxmint.17.1",
+ "linuxmint.17-x64",
+ "linuxmint.17",
+ "ubuntu.14.04-x64",
+ "ubuntu.14.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.17.3-x64": [
+ "linuxmint.17.3",
+ "linuxmint.17.2-x64",
+ "linuxmint.17.2",
+ "linuxmint.17.1-x64",
+ "linuxmint.17.1",
+ "linuxmint.17-x64",
+ "linuxmint.17",
+ "ubuntu.14.04-x64",
+ "ubuntu.14.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.18-x64": [
+ "linuxmint.18",
+ "ubuntu.16.04-x64",
+ "ubuntu.16.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.18.1-x64": [
+ "linuxmint.18.1",
+ "linuxmint.18-x64",
+ "linuxmint.18",
+ "ubuntu.16.04-x64",
+ "ubuntu.16.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.18.2-x64": [
+ "linuxmint.18.2",
+ "linuxmint.18.1-x64",
+ "linuxmint.18.1",
+ "linuxmint.18-x64",
+ "linuxmint.18",
+ "ubuntu.16.04-x64",
+ "ubuntu.16.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.18.3-x64": [
+ "linuxmint.18.3",
+ "linuxmint.18.2-x64",
+ "linuxmint.18.2",
+ "linuxmint.18.1-x64",
+ "linuxmint.18.1",
+ "linuxmint.18-x64",
+ "linuxmint.18",
+ "ubuntu.16.04-x64",
+ "ubuntu.16.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.19-x64": [
+ "linuxmint.19",
+ "ubuntu.18.04-x64",
+ "ubuntu.18.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.19.1-x64": [
+ "linuxmint.19.1",
+ "linuxmint.19-x64",
+ "linuxmint.19",
+ "ubuntu.18.04-x64",
+ "ubuntu.18.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "linuxmint.19.2-x64": [
+ "linuxmint.19.2",
+ "linuxmint.19.1-x64",
+ "linuxmint.19.1",
+ "linuxmint.19-x64",
+ "linuxmint.19",
+ "ubuntu.18.04-x64",
+ "ubuntu.18.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "manjaro-x64": [
+ "manjaro",
+ "arch-x64",
+ "arch",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "miraclelinux-x64": [
+ "miraclelinux",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "miraclelinux.8-x64": [
+ "miraclelinux.8",
+ "miraclelinux-x64",
+ "rhel.8-x64",
+ "miraclelinux",
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "miraclelinux.9-x64": [
+ "miraclelinux.9",
+ "miraclelinux-x64",
+ "rhel.9-x64",
+ "miraclelinux",
+ "rhel.9",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol-x64": [
+ "ol",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7-x64": [
+ "ol.7",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7.0-x64": [
+ "ol.7.0",
+ "ol.7-x64",
+ "rhel.7.0-x64",
+ "ol.7",
+ "rhel.7.0",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7.1-x64": [
+ "ol.7.1",
+ "ol.7.0-x64",
+ "rhel.7.1-x64",
+ "ol.7.0",
+ "rhel.7.1",
+ "ol.7-x64",
+ "rhel.7.0-x64",
+ "ol.7",
+ "rhel.7.0",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7.2-x64": [
+ "ol.7.2",
+ "ol.7.1-x64",
+ "rhel.7.2-x64",
+ "ol.7.1",
+ "rhel.7.2",
+ "ol.7.0-x64",
+ "rhel.7.1-x64",
+ "ol.7.0",
+ "rhel.7.1",
+ "ol.7-x64",
+ "rhel.7.0-x64",
+ "ol.7",
+ "rhel.7.0",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7.3-x64": [
+ "ol.7.3",
+ "ol.7.2-x64",
+ "rhel.7.3-x64",
+ "ol.7.2",
+ "rhel.7.3",
+ "ol.7.1-x64",
+ "rhel.7.2-x64",
+ "ol.7.1",
+ "rhel.7.2",
+ "ol.7.0-x64",
+ "rhel.7.1-x64",
+ "ol.7.0",
+ "rhel.7.1",
+ "ol.7-x64",
+ "rhel.7.0-x64",
+ "ol.7",
+ "rhel.7.0",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7.4-x64": [
+ "ol.7.4",
+ "ol.7.3-x64",
+ "rhel.7.4-x64",
+ "ol.7.3",
+ "rhel.7.4",
+ "ol.7.2-x64",
+ "rhel.7.3-x64",
+ "ol.7.2",
+ "rhel.7.3",
+ "ol.7.1-x64",
+ "rhel.7.2-x64",
+ "ol.7.1",
+ "rhel.7.2",
+ "ol.7.0-x64",
+ "rhel.7.1-x64",
+ "ol.7.0",
+ "rhel.7.1",
+ "ol.7-x64",
+ "rhel.7.0-x64",
+ "ol.7",
+ "rhel.7.0",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7.5-x64": [
+ "ol.7.5",
+ "ol.7.4-x64",
+ "rhel.7.5-x64",
+ "ol.7.4",
+ "rhel.7.5",
+ "ol.7.3-x64",
+ "rhel.7.4-x64",
+ "ol.7.3",
+ "rhel.7.4",
+ "ol.7.2-x64",
+ "rhel.7.3-x64",
+ "ol.7.2",
+ "rhel.7.3",
+ "ol.7.1-x64",
+ "rhel.7.2-x64",
+ "ol.7.1",
+ "rhel.7.2",
+ "ol.7.0-x64",
+ "rhel.7.1-x64",
+ "ol.7.0",
+ "rhel.7.1",
+ "ol.7-x64",
+ "rhel.7.0-x64",
+ "ol.7",
+ "rhel.7.0",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.7.6-x64": [
+ "ol.7.6",
+ "ol.7.5-x64",
+ "rhel.7.6-x64",
+ "ol.7.5",
+ "rhel.7.6",
+ "ol.7.4-x64",
+ "rhel.7.5-x64",
+ "ol.7.4",
+ "rhel.7.5",
+ "ol.7.3-x64",
+ "rhel.7.4-x64",
+ "ol.7.3",
+ "rhel.7.4",
+ "ol.7.2-x64",
+ "rhel.7.3-x64",
+ "ol.7.2",
+ "rhel.7.3",
+ "ol.7.1-x64",
+ "rhel.7.2-x64",
+ "ol.7.1",
+ "rhel.7.2",
+ "ol.7.0-x64",
+ "rhel.7.1-x64",
+ "ol.7.0",
+ "rhel.7.1",
+ "ol.7-x64",
+ "rhel.7.0-x64",
+ "ol.7",
+ "rhel.7.0",
+ "ol-x64",
+ "rhel.7-x64",
+ "ol",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.8-x64": [
+ "ol.8",
+ "ol-x64",
+ "rhel.8-x64",
+ "ol",
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ol.8.0-x64": [
+ "ol.8.0",
+ "ol.8-x64",
+ "rhel.8.0-x64",
+ "ol.8",
+ "rhel.8.0",
+ "ol-x64",
+ "rhel.8-x64",
+ "ol",
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "opensuse-x64": [
+ "opensuse",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "opensuse.13.2-x64": [
+ "opensuse.13.2",
+ "opensuse-x64",
+ "opensuse",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "opensuse.15.0-x64": [
+ "opensuse.15.0",
+ "opensuse-x64",
+ "opensuse",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "opensuse.15.1-x64": [
+ "opensuse.15.1",
+ "opensuse-x64",
+ "opensuse",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "opensuse.42.1-x64": [
+ "opensuse.42.1",
+ "opensuse-x64",
+ "opensuse",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "opensuse.42.2-x64": [
+ "opensuse.42.2",
+ "opensuse-x64",
+ "opensuse",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "opensuse.42.3-x64": [
+ "opensuse.42.3",
+ "opensuse-x64",
+ "opensuse",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel-x64": [
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.6-x64": [
+ "rhel.6",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7-x64": [
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7.0-x64": [
+ "rhel.7.0",
+ "rhel.7-x64",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7.1-x64": [
+ "rhel.7.1",
+ "rhel.7.0-x64",
+ "rhel.7.0",
+ "rhel.7-x64",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7.2-x64": [
+ "rhel.7.2",
+ "rhel.7.1-x64",
+ "rhel.7.1",
+ "rhel.7.0-x64",
+ "rhel.7.0",
+ "rhel.7-x64",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7.3-x64": [
+ "rhel.7.3",
+ "rhel.7.2-x64",
+ "rhel.7.2",
+ "rhel.7.1-x64",
+ "rhel.7.1",
+ "rhel.7.0-x64",
+ "rhel.7.0",
+ "rhel.7-x64",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7.4-x64": [
+ "rhel.7.4",
+ "rhel.7.3-x64",
+ "rhel.7.3",
+ "rhel.7.2-x64",
+ "rhel.7.2",
+ "rhel.7.1-x64",
+ "rhel.7.1",
+ "rhel.7.0-x64",
+ "rhel.7.0",
+ "rhel.7-x64",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7.5-x64": [
+ "rhel.7.5",
+ "rhel.7.4-x64",
+ "rhel.7.4",
+ "rhel.7.3-x64",
+ "rhel.7.3",
+ "rhel.7.2-x64",
+ "rhel.7.2",
+ "rhel.7.1-x64",
+ "rhel.7.1",
+ "rhel.7.0-x64",
+ "rhel.7.0",
+ "rhel.7-x64",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.7.6-x64": [
+ "rhel.7.6",
+ "rhel.7.5-x64",
+ "rhel.7.5",
+ "rhel.7.4-x64",
+ "rhel.7.4",
+ "rhel.7.3-x64",
+ "rhel.7.3",
+ "rhel.7.2-x64",
+ "rhel.7.2",
+ "rhel.7.1-x64",
+ "rhel.7.1",
+ "rhel.7.0-x64",
+ "rhel.7.0",
+ "rhel.7-x64",
+ "rhel.7",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.8-x64": [
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.8.0-x64": [
+ "rhel.8.0",
+ "rhel.8-x64",
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.8.1-x64": [
+ "rhel.8.1",
+ "rhel.8.0-x64",
+ "rhel.8.0",
+ "rhel.8-x64",
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rhel.9-x64": [
+ "rhel.9",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rocky-x64": [
+ "rocky",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rocky.8-x64": [
+ "rocky.8",
+ "rocky-x64",
+ "rhel.8-x64",
+ "rocky",
+ "rhel.8",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "rocky.9-x64": [
+ "rocky.9",
+ "rocky-x64",
+ "rhel.9-x64",
+ "rocky",
+ "rhel.9",
+ "rhel-x64",
+ "rhel",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles-x64": [
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles.12-x64": [
+ "sles.12",
+ "sles-x64",
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles.12.1-x64": [
+ "sles.12.1",
+ "sles.12-x64",
+ "sles.12",
+ "sles-x64",
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles.12.2-x64": [
+ "sles.12.2",
+ "sles.12.1-x64",
+ "sles.12.1",
+ "sles.12-x64",
+ "sles.12",
+ "sles-x64",
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles.12.3-x64": [
+ "sles.12.3",
+ "sles.12.2-x64",
+ "sles.12.2",
+ "sles.12.1-x64",
+ "sles.12.1",
+ "sles.12-x64",
+ "sles.12",
+ "sles-x64",
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles.12.4-x64": [
+ "sles.12.4",
+ "sles.12.3-x64",
+ "sles.12.3",
+ "sles.12.2-x64",
+ "sles.12.2",
+ "sles.12.1-x64",
+ "sles.12.1",
+ "sles.12-x64",
+ "sles.12",
+ "sles-x64",
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles.15-x64": [
+ "sles.15",
+ "sles.12.4-x64",
+ "sles.12.4",
+ "sles.12.3-x64",
+ "sles.12.3",
+ "sles.12.2-x64",
+ "sles.12.2",
+ "sles.12.1-x64",
+ "sles.12.1",
+ "sles.12-x64",
+ "sles.12",
+ "sles-x64",
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "sles.15.1-x64": [
+ "sles.15.1",
+ "sles.15-x64",
+ "sles.15",
+ "sles.12.4-x64",
+ "sles.12.4",
+ "sles.12.3-x64",
+ "sles.12.3",
+ "sles.12.2-x64",
+ "sles.12.2",
+ "sles.12.1-x64",
+ "sles.12.1",
+ "sles.12-x64",
+ "sles.12",
+ "sles-x64",
+ "sles",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu-x64": [
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.14.04-x64": [
+ "ubuntu.14.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.14.10-x64": [
+ "ubuntu.14.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.15.04-x64": [
+ "ubuntu.15.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.15.10-x64": [
+ "ubuntu.15.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.16.04-x64": [
+ "ubuntu.16.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.16.10-x64": [
+ "ubuntu.16.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.17.04-x64": [
+ "ubuntu.17.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.17.10-x64": [
+ "ubuntu.17.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.18.04-x64": [
+ "ubuntu.18.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.18.10-x64": [
+ "ubuntu.18.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.19.04-x64": [
+ "ubuntu.19.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.19.10-x64": [
+ "ubuntu.19.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.20.04-x64": [
+ "ubuntu.20.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.20.10-x64": [
+ "ubuntu.20.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.21.04-x64": [
+ "ubuntu.21.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.21.10-x64": [
+ "ubuntu.21.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.22.04-x64": [
+ "ubuntu.22.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.22.10-x64": [
+ "ubuntu.22.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.23.04-x64": [
+ "ubuntu.23.04",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ],
+ "ubuntu.23.10-x64": [
+ "ubuntu.23.10",
+ "ubuntu-x64",
+ "ubuntu",
+ "debian-x64",
+ "debian",
+ "linux-x64",
+ "linux",
+ "unix-x64",
+ "unix",
+ "any",
+ "base"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.NETCore.App.runtimeconfig.json b/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.NETCore.App.runtimeconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..c4fb57258b982507b6c50f56372f6b92c5e6e20d
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.NETCore.App.runtimeconfig.json
@@ -0,0 +1,5 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0"
+ }
+}
\ No newline at end of file
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.VisualBasic.Core.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.VisualBasic.Core.dll
new file mode 100644
index 0000000000000000000000000000000000000000..296505f8ab21c89957efe5ce071fdaf0b9bdbfd8
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.VisualBasic.Core.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46ca941f69efc244c68495a88d23728d366db430b070159c85e0a5e1bd54a82a
+size 1208320
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.VisualBasic.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.VisualBasic.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d2756b6ca95cce024d1b0b3554136674175d219d
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/Microsoft.VisualBasic.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Collections.Concurrent.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Collections.Concurrent.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6a6d38610193c6c22ceaa353425e0e37dd5d62ea
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Collections.Concurrent.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Collections.NonGeneric.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Collections.NonGeneric.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f0088e95b524f2c76723ca68a233adbe3e9f5619
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Collections.NonGeneric.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ComponentModel.Annotations.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ComponentModel.Annotations.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2a2bfd1d4eaff62680e99e31c68d0c9cf1f4354b
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ComponentModel.Annotations.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ComponentModel.EventBasedAsync.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ComponentModel.EventBasedAsync.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dbe7068f5965bdee01a103ae777ac54b27c9fe69
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ComponentModel.EventBasedAsync.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ComponentModel.Primitives.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ComponentModel.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8c1e679c2ffe7cb89aa075c51bbbd9a053347a98
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ComponentModel.Primitives.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ComponentModel.TypeConverter.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ComponentModel.TypeConverter.dll
new file mode 100644
index 0000000000000000000000000000000000000000..df596f1c0d60617c3d90aa07c92640fe25da4b6a
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ComponentModel.TypeConverter.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Configuration.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Configuration.dll
new file mode 100644
index 0000000000000000000000000000000000000000..21ba3948542271ebe112837fea8261d19e396775
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Configuration.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Console.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Console.dll
new file mode 100644
index 0000000000000000000000000000000000000000..43d2e02fcc646559e4524b47610610597466cbaf
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Console.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Data.DataSetExtensions.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Data.DataSetExtensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..abfd919785d46e3d2205992379fcb2c357483a7a
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Data.DataSetExtensions.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Diagnostics.Contracts.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Diagnostics.Contracts.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ba7df29e6e338189cae3815ec579c5b6e49bbf56
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Diagnostics.Contracts.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Diagnostics.DiagnosticSource.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Diagnostics.DiagnosticSource.dll
new file mode 100644
index 0000000000000000000000000000000000000000..48a217e2be702b6276a025837ed59cc5fa4eba28
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Diagnostics.DiagnosticSource.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Diagnostics.FileVersionInfo.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Diagnostics.FileVersionInfo.dll
new file mode 100644
index 0000000000000000000000000000000000000000..70ab7830c8d1c48b691d076df2f4d3967fbcc43a
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Diagnostics.FileVersionInfo.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Diagnostics.TraceSource.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Diagnostics.TraceSource.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5cbcdeb8c440b8a17518fa5318834f2ea4a532ba
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Diagnostics.TraceSource.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Dynamic.Runtime.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Dynamic.Runtime.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ae0d4c070082a64b4f82a0e7cd36c74fed854cfa
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Dynamic.Runtime.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Formats.Tar.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Formats.Tar.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a8d85ee5efa4b4dcb42133b47578781363b48468
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Formats.Tar.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:db32a4e61980c9c784c3a2685bd840b628652966b02c96aba2df11229c7f5c7b
+size 267264
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Compression.Brotli.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Compression.Brotli.dll
new file mode 100644
index 0000000000000000000000000000000000000000..27006d0a2754103633c0f2d452217abe1630be49
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Compression.Brotli.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Compression.FileSystem.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Compression.FileSystem.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dff7d9353a5a49650c8e88622816ee10ea99261a
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Compression.FileSystem.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Compression.ZipFile.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Compression.ZipFile.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d4713e897005c57397cea1ee2675470fcd11be3b
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Compression.ZipFile.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Compression.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Compression.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dfafbf0f85b8800354a7984ee8b27fcdb1d86bba
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Compression.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.FileSystem.AccessControl.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.FileSystem.AccessControl.dll
new file mode 100644
index 0000000000000000000000000000000000000000..44d8136cfa5dfe25a81ea8c40ec4005020714ecb
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.FileSystem.AccessControl.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.FileSystem.DriveInfo.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.FileSystem.DriveInfo.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1fd969d42e54d4a6fd47071d49f632a5a694f755
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.FileSystem.DriveInfo.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.FileSystem.Primitives.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.FileSystem.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0fc664080c5d6ec91abebc08ec1408d467ef2f4d
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.FileSystem.Primitives.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.FileSystem.Watcher.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.FileSystem.Watcher.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b9de55adf073eb102f9707c1888104c8d4a5e77a
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.FileSystem.Watcher.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Pipes.AccessControl.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Pipes.AccessControl.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f7abd35707103869eda6b09876ce179769dd0f03
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Pipes.AccessControl.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Pipes.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Pipes.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fc86e71e5c5a70e343f785d4cd6c52583f35bc89
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.Pipes.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.UnmanagedMemoryStream.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.UnmanagedMemoryStream.dll
new file mode 100644
index 0000000000000000000000000000000000000000..50649718f5bbf0ab6bc00cacdb82163575927e71
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.UnmanagedMemoryStream.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2d44c4d9e1eff2bf18352af0f8e4525117291add
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.IO.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Linq.Expressions.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Linq.Expressions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a78d54291684ab700bc4414a637b866c190a1c17
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Linq.Expressions.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e00865ebe1bce753b35c12a3fbbe15760d9c9213702bd8b3d10ef3cd001ed796
+size 3756032
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Linq.Parallel.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Linq.Parallel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0d6fa7b4b0a3c15d5d334f1e320343a9d4698d36
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Linq.Parallel.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Http.Json.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Http.Json.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e4b6e40bfe53e28d7a148321fc3d8c5732034c9d
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Http.Json.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Http.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Http.dll
new file mode 100644
index 0000000000000000000000000000000000000000..799852b366869efcbd1dfe3fcad0f2e210c0a182
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Http.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:29a66d3d77e6fb2b540e295eb5caacc05159283c0a7ecee24b5b3b7d8232e8a6
+size 1699328
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.HttpListener.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.HttpListener.dll
new file mode 100644
index 0000000000000000000000000000000000000000..633d253f3ac472d3fb7c2c55340c8e1d04000ea8
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.HttpListener.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Mail.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Mail.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f24ec2c9dffcd3d1b48056b48cdfd2b479687815
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Mail.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.NetworkInformation.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.NetworkInformation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d296e1bef5946b3390d73b62630fee30855ab102
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.NetworkInformation.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Quic.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Quic.dll
new file mode 100644
index 0000000000000000000000000000000000000000..9d98584c700843493fac8fe62a4bc3906a63980c
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Quic.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Security.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Security.dll
new file mode 100644
index 0000000000000000000000000000000000000000..521807c02228e17a352deae512005cd3d6f44f33
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Security.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Sockets.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Sockets.dll
new file mode 100644
index 0000000000000000000000000000000000000000..a7e8f75f4555dce6ab915db4f6ec5dd43d174481
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.Sockets.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.WebHeaderCollection.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.WebHeaderCollection.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3e5a1eb24cdfee7156e7190b83c2e5d3db38882a
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.WebHeaderCollection.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.WebProxy.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.WebProxy.dll
new file mode 100644
index 0000000000000000000000000000000000000000..70f786ae8d427f7111028f8d40a3c682ab98340f
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.WebProxy.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.WebSockets.Client.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.WebSockets.Client.dll
new file mode 100644
index 0000000000000000000000000000000000000000..72fe2869b96e0ef26dcc364618de5eae912c0c1e
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.WebSockets.Client.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b0fd9421d8bf0a0503ebab45f96d4e360284b0eb
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Net.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ObjectModel.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ObjectModel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7878ee99bf5533dba991e2bcd2c4570c1060bc75
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ObjectModel.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Private.CoreLib.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Private.CoreLib.dll
new file mode 100644
index 0000000000000000000000000000000000000000..8c551acda92e5c14da8b3bc557cf8c6f7b8ae990
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Private.CoreLib.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:71e3025c9fe4bffbe4b77dfb2eb68063d83eb1eec94ddadfa2da259a6e204bc5
+size 12768768
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Private.DataContractSerialization.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Private.DataContractSerialization.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3dbfd78d86019eaff39749f5aae79845643e0382
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Private.DataContractSerialization.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e7b1aa6db2c9501a137072a3ed4a659b057c0ce89f0faa534a0f4e76742826c5
+size 2087936
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Private.Xml.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Private.Xml.dll
new file mode 100644
index 0000000000000000000000000000000000000000..6030685df4d00eb0971cb65b00abaa0da185ff26
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Private.Xml.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5d519c95493acfb734e3877f4ba9d8aa02fdaf6171cb7f27a74b08eee191a223
+size 8118272
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Reflection.Emit.Lightweight.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Reflection.Emit.Lightweight.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5f97eac41eea986db3e8fd838a32403c794bee97
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Reflection.Emit.Lightweight.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Reflection.Metadata.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Reflection.Metadata.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1957cce1af3d0875962d79fd081429e5740f458a
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Reflection.Metadata.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a4bb246347741b8b63a3f373ef2aa83bb8232680a7ef4805d673cf6c74749f18
+size 1087488
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Reflection.Primitives.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Reflection.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5cfcccdbcf745a64c35f44dac940ab78f7801f60
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Reflection.Primitives.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Reflection.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Reflection.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ae43b9167237db9d6697d91837ee9522ced6ffd0
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Reflection.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Resources.Writer.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Resources.Writer.dll
new file mode 100644
index 0000000000000000000000000000000000000000..518b461f650e6e277c91948dd65a23a59f492f3a
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Resources.Writer.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.CompilerServices.VisualC.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.CompilerServices.VisualC.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ee3a335a62625232ae757c1788516a103bb98edb
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.CompilerServices.VisualC.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Handles.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Handles.dll
new file mode 100644
index 0000000000000000000000000000000000000000..87fa6871f07e369e83200d88b1beded73e9c7be1
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Handles.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.InteropServices.JavaScript.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.InteropServices.JavaScript.dll
new file mode 100644
index 0000000000000000000000000000000000000000..fd3855d95c9229b69b05e35a54ce8c7d38224e16
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.InteropServices.JavaScript.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.InteropServices.RuntimeInformation.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.InteropServices.RuntimeInformation.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5819f1270fe55594d913c335f1cb044c11d30ecf
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.InteropServices.RuntimeInformation.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.InteropServices.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.InteropServices.dll
new file mode 100644
index 0000000000000000000000000000000000000000..66d8f1abd186659c955efc291dfa4889b2ce401d
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.InteropServices.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Intrinsics.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Intrinsics.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5a94be2af85aad9111b2b6022a8340af9b04d135
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Intrinsics.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Numerics.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Numerics.dll
new file mode 100644
index 0000000000000000000000000000000000000000..aa56c68fbb628092e79f23d1d168c51543ac6388
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Numerics.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Serialization.Xml.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Serialization.Xml.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e62d5156e584728bba442ee861bc884bb5d2c9a9
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Serialization.Xml.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Serialization.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Serialization.dll
new file mode 100644
index 0000000000000000000000000000000000000000..2d3835bb7ae92a1d731614d84ff4d3d731d59e25
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Runtime.Serialization.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Claims.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Claims.dll
new file mode 100644
index 0000000000000000000000000000000000000000..89df307dae2a5962893e2cb48d8c4a06237c7e7e
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Claims.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Cryptography.Cng.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Cryptography.Cng.dll
new file mode 100644
index 0000000000000000000000000000000000000000..521bfe319f3323c77537e179699c6461b887c239
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Cryptography.Cng.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Cryptography.Primitives.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Cryptography.Primitives.dll
new file mode 100644
index 0000000000000000000000000000000000000000..057f61a6cb5b57dd545304d30ebb68193eb65d3a
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Cryptography.Primitives.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Cryptography.X509Certificates.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Cryptography.X509Certificates.dll
new file mode 100644
index 0000000000000000000000000000000000000000..774899da226acf2336a6af10bbeff0359b3ac088
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Cryptography.X509Certificates.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Principal.Windows.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Principal.Windows.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cd4525372af2fb6165c03c3b05672915dbab50a1
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Principal.Windows.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Principal.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Principal.dll
new file mode 100644
index 0000000000000000000000000000000000000000..216e4435cb2f2f32c7e41a5a74f1b7090b0f6805
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.Principal.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.SecureString.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.SecureString.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5e559b71006c84078a3500a4b1c0c527f9201053
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Security.SecureString.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ServiceModel.Web.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ServiceModel.Web.dll
new file mode 100644
index 0000000000000000000000000000000000000000..ae3ad96abfc7fed4d48006640ceaaea30f053998
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.ServiceModel.Web.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.Encoding.CodePages.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.Encoding.CodePages.dll
new file mode 100644
index 0000000000000000000000000000000000000000..40c5225ea8dd5faac9636cfa4a081fd93dbaa9a6
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.Encoding.CodePages.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.Encoding.Extensions.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.Encoding.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cdcea7f6e885f69e3bb040f6d5aecdb99a7a0eb5
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.Encoding.Extensions.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.Encodings.Web.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.Encodings.Web.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dcd48ffd9f2c245f896d4078db3f221d884d0cd5
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.Encodings.Web.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.Json.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.Json.dll
new file mode 100644
index 0000000000000000000000000000000000000000..4b46c6eb5400fd94e0ec417e1e52d175b34734dc
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.Json.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bcb896201f2b98be64dc5d8290ad9d1a5877d6fff768e8a13eb1e2d084a77277
+size 1464320
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.RegularExpressions.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.RegularExpressions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..38f5ba4bc1cad3e8e8e56abaf594fb9ba52c4f9e
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Text.RegularExpressions.dll
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9adf5b6903dbf61b4721ee028da391d2065b7d837c2ecafa01a9096c162b134d
+size 1012224
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.Overlapped.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.Overlapped.dll
new file mode 100644
index 0000000000000000000000000000000000000000..31d23f56b2c93cb87af7c581b2f6f96eccee3a62
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.Overlapped.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.Tasks.Extensions.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.Tasks.Extensions.dll
new file mode 100644
index 0000000000000000000000000000000000000000..d23eeb05541057162d993202c798ab9e914656eb
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.Tasks.Extensions.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.Tasks.Parallel.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.Tasks.Parallel.dll
new file mode 100644
index 0000000000000000000000000000000000000000..1fff16a52c3e5d88d4d08390d5f1725b3bca6cce
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.Tasks.Parallel.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.ThreadPool.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.ThreadPool.dll
new file mode 100644
index 0000000000000000000000000000000000000000..57c3c37b913629c62f93d93ce41bf4cc85f020c2
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.ThreadPool.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.Timer.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.Timer.dll
new file mode 100644
index 0000000000000000000000000000000000000000..190f2860a23c99c69cfc6b86b53c97ed8ffe6c6a
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.Timer.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0faa90f2f2970341eb91c397fb6ba5f1f59f8f0d
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Threading.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Web.HttpUtility.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Web.HttpUtility.dll
new file mode 100644
index 0000000000000000000000000000000000000000..cb2148343d83ba8ac5c0a383da53a151ff36749c
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Web.HttpUtility.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Web.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Web.dll
new file mode 100644
index 0000000000000000000000000000000000000000..5b86cfe6d2ac328825f47acd8214ab6229ddc4c9
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Web.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.Linq.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.Linq.dll
new file mode 100644
index 0000000000000000000000000000000000000000..f5f50ebc277c1283cc7ef53771bf92b8ab7c14eb
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.Linq.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.Serialization.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.Serialization.dll
new file mode 100644
index 0000000000000000000000000000000000000000..0d45e96fe2b5ecc6ee612d5b6804928385271cd2
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.Serialization.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.XDocument.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.XDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..c2b3454add8795189180c1df87f7cb0dc0d51dd4
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.XDocument.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.XPath.XDocument.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.XPath.XDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..dbf6ae89fdd5ae565d5e2d2ee026f73f925102d2
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.XPath.XDocument.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.XPath.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.XPath.dll
new file mode 100644
index 0000000000000000000000000000000000000000..e2c0d2700f78fb68afa03fe18c9bad7cdcecc6d9
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.XPath.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.XmlDocument.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.XmlDocument.dll
new file mode 100644
index 0000000000000000000000000000000000000000..b91e71e07040be1a535afc8e1ebbd6c671bc12c8
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/System.Xml.XmlDocument.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/WindowsBase.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/WindowsBase.dll
new file mode 100644
index 0000000000000000000000000000000000000000..3a92dc7560aa7b3d43bf38c6a487dcd53f73f995
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/WindowsBase.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/createdump b/dotnet/shared/Microsoft.NETCore.App/8.0.8/createdump
new file mode 100644
index 0000000000000000000000000000000000000000..29ba8a8ddb94211cc416e48bf9d0e08ed7d1f66d
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/createdump differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/libSystem.Native.so b/dotnet/shared/Microsoft.NETCore.App/8.0.8/libSystem.Native.so
new file mode 100644
index 0000000000000000000000000000000000000000..3eeb13829a35f4e67d28a9c84ddcfd7ebfe24dda
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/libSystem.Native.so differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/libclrjit.so b/dotnet/shared/Microsoft.NETCore.App/8.0.8/libclrjit.so
new file mode 100644
index 0000000000000000000000000000000000000000..0d8a2997404e0ddefce92dbba0c1c5be5d02f190
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/libclrjit.so
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:17e1262ccc3028ed3c3630ae6cd11df9193ba6ef5b3223ff5ce1550f282e0cb5
+size 3615600
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/libcoreclrtraceptprovider.so b/dotnet/shared/Microsoft.NETCore.App/8.0.8/libcoreclrtraceptprovider.so
new file mode 100644
index 0000000000000000000000000000000000000000..705a55977bb34fdfbf0b1b6f037e963736c7c815
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/libcoreclrtraceptprovider.so differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/libmscordaccore.so b/dotnet/shared/Microsoft.NETCore.App/8.0.8/libmscordaccore.so
new file mode 100644
index 0000000000000000000000000000000000000000..53c6381ce95f3b090eb8a4df3d8615d9c1e14900
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/libmscordaccore.so
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f290000b5bc06f4f88b3bf651a003f25e68066998bfa45b05a8c723fb160e83e
+size 2438624
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/libmscordbi.so b/dotnet/shared/Microsoft.NETCore.App/8.0.8/libmscordbi.so
new file mode 100644
index 0000000000000000000000000000000000000000..ac14dcf8e8b4df0fd960ba468e4360acb84f2d1f
--- /dev/null
+++ b/dotnet/shared/Microsoft.NETCore.App/8.0.8/libmscordbi.so
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0977fcd6ab0c10de893ef2586323b3c601f110557bc34595d6191b007811c188
+size 1634440
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/mscorlib.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/mscorlib.dll
new file mode 100644
index 0000000000000000000000000000000000000000..7b524a19abb05e1ba17b6dbb6f36a46f5272c7c2
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/mscorlib.dll differ
diff --git a/dotnet/shared/Microsoft.NETCore.App/8.0.8/netstandard.dll b/dotnet/shared/Microsoft.NETCore.App/8.0.8/netstandard.dll
new file mode 100644
index 0000000000000000000000000000000000000000..168929a7fd7e6d86a75f7c995eb5cc3dfdd67880
Binary files /dev/null and b/dotnet/shared/Microsoft.NETCore.App/8.0.8/netstandard.dll differ
diff --git a/dotnet/templates/8.0.8/microsoft.dotnet.common.itemtemplates.8.0.402.nupkg b/dotnet/templates/8.0.8/microsoft.dotnet.common.itemtemplates.8.0.402.nupkg
new file mode 100644
index 0000000000000000000000000000000000000000..888cd9fb3c7aa16ee48e635324c3639bc9466749
Binary files /dev/null and b/dotnet/templates/8.0.8/microsoft.dotnet.common.itemtemplates.8.0.402.nupkg differ
diff --git a/dotnet/templates/8.0.8/microsoft.dotnet.common.projecttemplates.8.0.8.0.402.nupkg b/dotnet/templates/8.0.8/microsoft.dotnet.common.projecttemplates.8.0.8.0.402.nupkg
new file mode 100644
index 0000000000000000000000000000000000000000..e7346124990ad390a2fef30181f7bc1cdcb173af
Binary files /dev/null and b/dotnet/templates/8.0.8/microsoft.dotnet.common.projecttemplates.8.0.8.0.402.nupkg differ
diff --git a/dotnet/templates/8.0.8/microsoft.dotnet.test.projecttemplates.8.0.1.1.0-rc.24059.1.nupkg b/dotnet/templates/8.0.8/microsoft.dotnet.test.projecttemplates.8.0.1.1.0-rc.24059.1.nupkg
new file mode 100644
index 0000000000000000000000000000000000000000..f55852d45e591006f74cf7670520cb679974fef8
Binary files /dev/null and b/dotnet/templates/8.0.8/microsoft.dotnet.test.projecttemplates.8.0.1.1.0-rc.24059.1.nupkg differ
diff --git a/dotnet/templates/8.0.8/microsoft.dotnet.web.itemtemplates.8.0.8.0.8.nupkg b/dotnet/templates/8.0.8/microsoft.dotnet.web.itemtemplates.8.0.8.0.8.nupkg
new file mode 100644
index 0000000000000000000000000000000000000000..a426d3e3775a1c5883eb5955af1a01e843ca7330
Binary files /dev/null and b/dotnet/templates/8.0.8/microsoft.dotnet.web.itemtemplates.8.0.8.0.8.nupkg differ
diff --git a/dotnet/templates/8.0.8/microsoft.dotnet.web.projecttemplates.8.0.8.0.8.nupkg b/dotnet/templates/8.0.8/microsoft.dotnet.web.projecttemplates.8.0.8.0.8.nupkg
new file mode 100644
index 0000000000000000000000000000000000000000..e346d04f263aa90e6156b92cae06f9a9e44dd460
--- /dev/null
+++ b/dotnet/templates/8.0.8/microsoft.dotnet.web.projecttemplates.8.0.8.0.8.nupkg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:443eb486f7b5ad4d580514e22b3b1c3fce8fa9ce14c063b76fb14afd78c392c1
+size 5558245